RopeNode
from panda3d.core import RopeNode
- class RopeNode
Bases:
Bases:
PandaNode
This class draws a visible representation of the NURBS curve stored in its
NurbsCurveEvaluator
. It automatically recomputes the curve every frame.This is not related to
NurbsCurve
,CubicCurveseg
or any of the ParametricCurve-derived objects in this module. It is a completely parallel implementation of NURBS curves, and will probably eventually replace the wholeParametricCurve
class hierarchy.Inheritance diagram
-
enum NormalMode
-
enumerator NM_none = 0
Don’t generate normals.
-
enumerator NM_vertex = 1
Generate vertex (smooth-shaded) normals.
-
enumerator NM_none = 0
-
enum RenderMode
-
enumerator RM_thread = 0
Render the rope as a one-pixel thread using a linestrip.
-
enumerator RM_tape = 1
Render the rope as a triangle strip oriented to be perpendicular to the tube_up vector.
-
enumerator RM_billboard = 2
Render the rope as a triangle strip oriented to be perpendicular to the view vector.
-
enumerator RM_tube = 3
Render the rope as a hollow tube extruded along its length.
-
enumerator RM_thread = 0
-
enum UVMode
-
enumerator UV_none = 0
Don’t generate UV’s along the curve.
-
enumerator UV_parametric = 1
Generate UV’s based on the parametric coordinates along the curve.
-
enumerator UV_distance = 2
Generate UV’s in proportion to spatial distance along the curve, by using the distance function to compute the length of each segment.
-
enumerator UV_distance2 = 3
As above, but don’t bother to take the square root of each segment. The distance is then in proportion to the sum-of-squares of the segments along the rope. If the segments are similar in length, this approximates the proportion of UV_distance while avoiding hundreds of square root operations.
-
enumerator UV_none = 0
- clear_matrix()
Resets the node’s matrix to identity. See
set_matrix()
.
- property curve NurbsCurveEvaluator
- static get_class_type() TypeHandle
- get_curve() NurbsCurveEvaluator
Returns the curve represented by the
RopeNode
.
- get_matrix() LMatrix4
Returns the optional matrix which is used to transform each control vertex after it has been transformed into the RopeNode’s coordinate space, but before the polygon vertices are generated.
- get_normal_mode() NormalMode
Returns the kind of normals to generate for the rope. This is only applicable when the
RenderMode
is set to RM_tube.
- get_num_slices() int
Returns the number of radial subdivisions to make if
RenderMode
is RM_tube. It is ignored in the other render modes. Seeset_num_slices()
.
- get_num_subdiv() int
Returns the number of subdivisions per cubic segment to draw. See
set_num_subdiv()
.
- get_render_mode() RenderMode
Returns the method used to render the rope. See
set_render_mode()
.
- get_thickness() float
Returns the thickness of the rope. See
set_thickness()
.
- get_tube_up() LVector3
Returns the normal vector used to control the “top” of the curve, when
RenderMode
is RM_tube. Seeset_tube_up()
.
- get_use_vertex_color() bool
Returns the “use vertex color” flag. See
set_use_vertex_color()
.
- get_use_vertex_thickness() bool
Returns the “use vertex thickness” flag. See
set_use_vertex_thickness()
.
- get_uv_direction() bool
Returns true if the rope runs down the U coordinate of the texture, or false if it runs down the V coordinate.
- get_uv_mode() UVMode
Returns the algorithm to use to generate UV’s for the rope.
- static get_vertex_color_dimension() int
Returns the numeric extended dimension in which the color components should be found. See
NurbsCurveEvaluator.set_extended_vertex()
.The color components will be expected at (n, n + 1, n + 2, n + 3).
- static get_vertex_thickness_dimension() int
Returns the numeric extended dimension in which the thickness component should be found. See
NurbsCurveEvaluator.set_extended_vertex()
.
- has_matrix() bool
Returns true if the node has a matrix set, false otherwise. See
set_matrix()
.
- property matrix LMatrix4
Returns/Specifies the/an optional matrix which is used to transform each control vertex after it has been transformed into the RopeNode’s coordinate space, but before the polygon vertices are generated.
- property normal_mode NormalMode
- Getter
Returns the kind of normals to generate for the rope. This is only applicable when the
RenderMode
is set to RM_tube.- Setter
Specifies the kind of normals to generate for the rope. This is only applicable when the
RenderMode
is set to RM_tube; in the other render modes, normals are never generated.
- property num_slices int
- Getter
Returns the number of radial subdivisions to make if
RenderMode
is RM_tube. It is ignored in the other render modes. Seeset_num_slices()
.- Setter
Specifies the number of radial subdivisions to make if
RenderMode
is RM_tube. It is ignored in the other render modes.Increasing this number increases the roundness of a cross-section of the tube. The minimum value for a dimensional tube is 3; setting it to 2 will get you a thin piece of tape (which is similar to RM_billboard, except it won’t rotate to face the camera).
- property num_subdiv int
- Getter
Returns the number of subdivisions per cubic segment to draw. See
set_num_subdiv()
.- Setter
Specifies the number of subdivisions per cubic segment (that is, per unique knot value) to draw in a fixed uniform tesselation of the curve.
- property render_mode RenderMode
- Getter
Returns the method used to render the rope. See
set_render_mode()
.- Setter
Specifies the method used to render the rope. The simplest is RM_thread, which just draws a one-pixel line segment.
- reset_bound(rel_to: NodePath)
Recomputes the bounding volume. This is normally called automatically, but it must occasionally be called explicitly when the curve has changed properties outside of this node’s knowledge.
- set_curve(curve: NurbsCurveEvaluator)
Sets the particular curve represented by the
RopeNode
.
- set_matrix(matrix: LMatrix4)
Specifies an optional matrix which is used to transform each control vertex after it has been transformed into the RopeNode’s coordinate space, but before the polygon vertices are generated.
- set_normal_mode(normal_mode: NormalMode)
Specifies the kind of normals to generate for the rope. This is only applicable when the
RenderMode
is set to RM_tube; in the other render modes, normals are never generated.
- set_num_slices(num_slices: int)
Specifies the number of radial subdivisions to make if
RenderMode
is RM_tube. It is ignored in the other render modes.Increasing this number increases the roundness of a cross-section of the tube. The minimum value for a dimensional tube is 3; setting it to 2 will get you a thin piece of tape (which is similar to RM_billboard, except it won’t rotate to face the camera).
- set_num_subdiv(num_subdiv: int)
Specifies the number of subdivisions per cubic segment (that is, per unique knot value) to draw in a fixed uniform tesselation of the curve.
- set_render_mode(render_mode: RenderMode)
Specifies the method used to render the rope. The simplest is RM_thread, which just draws a one-pixel line segment.
- set_thickness(thickness: float)
Specifies the thickness of the rope, in pixels or in spatial units, depending on the render mode. See
set_render_mode()
.The thickness may also be specified on a per-vertex basis. See
set_use_vertex_thickness()
.
- set_tube_up(tube_up: LVector3)
Specifies a normal vector, generally perpendicular to the main axis of the starting point of the curve, that controls the “top” of the curve, when
RenderMode
is RM_tube. This is used to orient the vertices that make up the tube. If this vector is too nearly parallel with the starting direction of the curve, there may be a tendency for the whole tube to gimble-lock around its primary axis.
- set_use_vertex_color(flag: bool)
Sets the “use vertex color” flag. When this is true, the R, G, B, A vertex color is assumed to be stored as the dimensions n + 0, n + 1, n + 2, n + 3, respectively, of the extended vertex values, where n is the value returned by
get_vertex_color_dimension()
. UseNurbsCurveEvaluator.set_extended_vertex()
to set these values.
- set_use_vertex_thickness(flag: bool)
Sets the “use vertex thickness” flag. When this is true, the vertex thickness is assumed to be stored as the dimension
get_vertex_thickness_dimension()
, of the extended vertex values. UseNurbsCurveEvaluator.set_extended_vertex()
to set these values.In this mode, the overall thickness is also applied as a scale to the vertex thickness. Not all render modes support vertex thickness.
- set_uv_direction(u_dominant: bool)
Specify true to vary the U coordinate down the length of the rope, or false to vary the V coordinate.
- set_uv_mode(uv_mode: UVMode)
Specifies the algorithm to use to generate UV’s for the rope.
- set_uv_scale(scale: float)
Specifies an additional scaling factor to apply to generated UV’s along the rope. This scale factor is applied in whichever direction is along the rope, as specified by
set_uv_direction()
.
- property thickness float
- Getter
Returns the thickness of the rope. See
set_thickness()
.- Setter
Specifies the thickness of the rope, in pixels or in spatial units, depending on the render mode. See
set_render_mode()
.The thickness may also be specified on a per-vertex basis. See
set_use_vertex_thickness()
.
- property tube_up LVector3
- Getter
Returns the normal vector used to control the “top” of the curve, when
RenderMode
is RM_tube. Seeset_tube_up()
.- Setter
Specifies a normal vector, generally perpendicular to the main axis of the starting point of the curve, that controls the “top” of the curve, when
RenderMode
is RM_tube. This is used to orient the vertices that make up the tube. If this vector is too nearly parallel with the starting direction of the curve, there may be a tendency for the whole tube to gimble-lock around its primary axis.
- property use_vertex_color bool
- Getter
Returns the “use vertex color” flag. See
set_use_vertex_color()
.- Setter
Sets the “use vertex color” flag. When this is true, the R, G, B, A vertex color is assumed to be stored as the dimensions n + 0, n + 1, n + 2, n + 3, respectively, of the extended vertex values, where n is the value returned by
get_vertex_color_dimension()
. UseNurbsCurveEvaluator.set_extended_vertex()
to set these values.
- property use_vertex_thickness bool
- Getter
Returns the “use vertex thickness” flag. See
set_use_vertex_thickness()
.- Setter
Sets the “use vertex thickness” flag. When this is true, the vertex thickness is assumed to be stored as the dimension
get_vertex_thickness_dimension()
, of the extended vertex values. UseNurbsCurveEvaluator.set_extended_vertex()
to set these values.In this mode, the overall thickness is also applied as a scale to the vertex thickness. Not all render modes support vertex thickness.
- property uv_direction bool
- Getter
Returns true if the rope runs down the U coordinate of the texture, or false if it runs down the V coordinate.
- Setter
Specify true to vary the U coordinate down the length of the rope, or false to vary the V coordinate.
- property uv_mode UVMode
Returns/Specifies the algorithm to use to generate UV’s for the rope.
- property uv_scale float
- Getter
Returns the scaling factor to apply to generated UV’s for the rope.
- Setter
Specifies an additional scaling factor to apply to generated UV’s along the rope. This scale factor is applied in whichever direction is along the rope, as specified by
set_uv_direction()
.
- property vertex_color_dimension int
Returns the numeric extended dimension in which the color components should be found. See
NurbsCurveEvaluator.set_extended_vertex()
.The color components will be expected at (n, n + 1, n + 2, n + 3).
- property vertex_thickness_dimension int
Returns the numeric extended dimension in which the thickness component should be found. See
NurbsCurveEvaluator.set_extended_vertex()
.
-
enum NormalMode