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
- 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
RenderMode
is set to RM_tube.
- getNumSlices() int
Returns the number of radial subdivisions to make if
RenderMode
is 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
RenderMode
is 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
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. SeesetNumSlices()
.- 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
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
RenderMode
is 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
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).
- 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
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.
- 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
RenderMode
is 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
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
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