RopeNode
from panda3d.core import RopeNode
- class RopeNode
Bases:
Bases:
PandaNodeThis 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,CubicCurvesegor any of the ParametricCurve-derived objects in this module. It is a completely parallel implementation of NURBS curves, and will probably eventually replace the wholeParametricCurveclass 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
- clearMatrix()
Resets the node’s matrix to identity. See
setMatrix().
- property curve NurbsCurveEvaluator
- static getClassType() TypeHandle
- getCurve() NurbsCurveEvaluator
Returns the curve represented by the
RopeNode.
- getMatrix() 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.
- getNormalMode() NormalMode
Returns the kind of normals to generate for the rope. This is only applicable when the
RenderModeis set to RM_tube.
- getNumSlices() int
Returns the number of radial subdivisions to make if
RenderModeis RM_tube. It is ignored in the other render modes. SeesetNumSlices().
- getNumSubdiv() int
Returns the number of subdivisions per cubic segment to draw. See
setNumSubdiv().
- getRenderMode() RenderMode
Returns the method used to render the rope. See
setRenderMode().
- getThickness() float
Returns the thickness of the rope. See
setThickness().
- getTubeUp() LVector3
Returns the normal vector used to control the “top” of the curve, when
RenderModeis RM_tube. SeesetTubeUp().
- getUseVertexColor() bool
Returns the “use vertex color” flag. See
setUseVertexColor().
- getUseVertexThickness() bool
Returns the “use vertex thickness” flag. See
setUseVertexThickness().
- getUvDirection() bool
Returns true if the rope runs down the U coordinate of the texture, or false if it runs down the V coordinate.
- getUvMode() UVMode
Returns the algorithm to use to generate UV’s for the rope.
- static getVertexColorDimension() int
Returns the numeric extended dimension in which the color components should be found. See
NurbsCurveEvaluator.setExtendedVertex().The color components will be expected at (n, n + 1, n + 2, n + 3).
- static getVertexThicknessDimension() int
Returns the numeric extended dimension in which the thickness component should be found. See
NurbsCurveEvaluator.setExtendedVertex().
- hasMatrix() bool
Returns true if the node has a matrix set, false otherwise. See
setMatrix().
- 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
RenderModeis set to RM_tube.- Setter
Specifies the kind of normals to generate for the rope. This is only applicable when the
RenderModeis 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
RenderModeis RM_tube. It is ignored in the other render modes. SeesetNumSlices().- Setter
Specifies the number of radial subdivisions to make if
RenderModeis 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
setNumSubdiv().- 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
setRenderMode().- Setter
Specifies the method used to render the rope. The simplest is RM_thread, which just draws a one-pixel line segment.
- resetBound(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.
- setCurve(curve: NurbsCurveEvaluator)
Sets the particular curve represented by the
RopeNode.
- setMatrix(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.
- setNormalMode(normal_mode: NormalMode)
Specifies the kind of normals to generate for the rope. This is only applicable when the
RenderModeis set to RM_tube; in the other render modes, normals are never generated.
- setNumSlices(num_slices: int)
Specifies the number of radial subdivisions to make if
RenderModeis 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).
- setNumSubdiv(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.
- setRenderMode(render_mode: RenderMode)
Specifies the method used to render the rope. The simplest is RM_thread, which just draws a one-pixel line segment.
- setThickness(thickness: float)
Specifies the thickness of the rope, in pixels or in spatial units, depending on the render mode. See
setRenderMode().The thickness may also be specified on a per-vertex basis. See
setUseVertexThickness().
- setTubeUp(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
RenderModeis 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.
- setUseVertexColor(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
getVertexColorDimension(). UseNurbsCurveEvaluator.setExtendedVertex()to set these values.
- setUseVertexThickness(flag: bool)
Sets the “use vertex thickness” flag. When this is true, the vertex thickness is assumed to be stored as the dimension
getVertexThicknessDimension(), of the extended vertex values. UseNurbsCurveEvaluator.setExtendedVertex()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.
- setUvDirection(u_dominant: bool)
Specify true to vary the U coordinate down the length of the rope, or false to vary the V coordinate.
- setUvMode(uv_mode: UVMode)
Specifies the algorithm to use to generate UV’s for the rope.
- setUvScale(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
setUvDirection().
- property thickness float
- Getter
Returns the thickness of the rope. See
setThickness().- Setter
Specifies the thickness of the rope, in pixels or in spatial units, depending on the render mode. See
setRenderMode().The thickness may also be specified on a per-vertex basis. See
setUseVertexThickness().
- property tube_up LVector3
- Getter
Returns the normal vector used to control the “top” of the curve, when
RenderModeis RM_tube. SeesetTubeUp().- 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
RenderModeis 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
setUseVertexColor().- 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
getVertexColorDimension(). UseNurbsCurveEvaluator.setExtendedVertex()to set these values.
- property use_vertex_thickness bool
- Getter
Returns the “use vertex thickness” flag. See
setUseVertexThickness().- Setter
Sets the “use vertex thickness” flag. When this is true, the vertex thickness is assumed to be stored as the dimension
getVertexThicknessDimension(), of the extended vertex values. UseNurbsCurveEvaluator.setExtendedVertex()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
setUvDirection().
- property vertex_color_dimension int
Returns the numeric extended dimension in which the color components should be found. See
NurbsCurveEvaluator.setExtendedVertex().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.setExtendedVertex().
-
enum NormalMode
