NurbsSurfaceEvaluator
from panda3d.core import NurbsSurfaceEvaluator
- class NurbsSurfaceEvaluator
Bases:
ReferenceCount
This class is an abstraction for evaluating NURBS surfaces. It accepts an array of vertices, each of which may be in a different coordinate space (as defined by a NodePath), as well as an optional knot vector.
Inheritance diagram
- __init__(*args, **kwargs)
- evaluate()
C++ Interface: evaluate(NurbsSurfaceEvaluator self, const NodePath rel_to)
- /**
Returns a NurbsSurfaceResult object that represents the result of applying
the knots to all of the current values of the vertices, transformed into
the indicated coordinate space.
*/
- getExtendedVertex()
C++ Interface: get_extended_vertex(NurbsSurfaceEvaluator self, int ui, int vi, int d)
- /**
Returns an n-dimensional vertex value. See set_extended_vertex(). This
returns the value set for the indicated dimension, or 0.0 if nothing has
been set.
*/
- getNumUKnots()
C++ Interface: get_num_u_knots(NurbsSurfaceEvaluator self)
- /**
Returns the number of knot values in the surface in the U direction. This
is based on the number of vertices and the order.
*/
- getNumUSegments()
C++ Interface: get_num_u_segments(NurbsSurfaceEvaluator self)
- /**
Returns the number of piecewise continuous segments in the surface in the U
direction. This is based on the knot vector.
*/
- getNumUVertices()
C++ Interface: get_num_u_vertices(NurbsSurfaceEvaluator self)
- /**
Returns the number of control vertices in the U direction on the surface.
This is the number passed to the last call to reset().
*/
- getNumVKnots()
C++ Interface: get_num_v_knots(NurbsSurfaceEvaluator self)
- /**
Returns the number of knot values in the surface in the V direction. This
is based on the number of vertices and the order.
*/
- getNumVSegments()
C++ Interface: get_num_v_segments(NurbsSurfaceEvaluator self)
- /**
Returns the number of piecewise continuous segments in the surface in the V
direction. This is based on the knot vector.
*/
- getNumVVertices()
C++ Interface: get_num_v_vertices(NurbsSurfaceEvaluator self)
- /**
Returns the number of control vertices in the V direction on the surface.
This is the number passed to the last call to reset().
*/
- getUKnot()
C++ Interface: get_u_knot(NurbsSurfaceEvaluator self, int i)
- /**
Returns the value of the nth knot.
*/
- getUKnots()
- getUOrder()
C++ Interface: get_u_order(NurbsSurfaceEvaluator self)
- /**
Returns the order of the surface in the U direction as set by a previous
call to set_u_order().
*/
- getVKnot()
C++ Interface: get_v_knot(NurbsSurfaceEvaluator self, int i)
- /**
Returns the value of the nth knot.
*/
- getVKnots()
- getVOrder()
C++ Interface: get_v_order(NurbsSurfaceEvaluator self)
- /**
Returns the order of the surface in the V direction as set by a previous
call to set_v_order().
*/
- getVertex()
C++ Interface: get_vertex(NurbsSurfaceEvaluator self, int ui, int vi) get_vertex(NurbsSurfaceEvaluator self, int ui, int vi, const NodePath rel_to)
- getVertexSpace()
C++ Interface: get_vertex_space(NurbsSurfaceEvaluator self, int ui, int vi, const NodePath rel_to)
- /**
Returns the coordinate space of the nth control vertex of the surface,
expressed as a NodePath.
*/
- get_extended_vertex()
C++ Interface: get_extended_vertex(NurbsSurfaceEvaluator self, int ui, int vi, int d)
- /**
Returns an n-dimensional vertex value. See set_extended_vertex(). This
returns the value set for the indicated dimension, or 0.0 if nothing has
been set.
*/
- get_num_u_knots()
C++ Interface: get_num_u_knots(NurbsSurfaceEvaluator self)
- /**
Returns the number of knot values in the surface in the U direction. This
is based on the number of vertices and the order.
*/
- get_num_u_segments()
C++ Interface: get_num_u_segments(NurbsSurfaceEvaluator self)
- /**
Returns the number of piecewise continuous segments in the surface in the U
direction. This is based on the knot vector.
*/
- get_num_u_vertices()
C++ Interface: get_num_u_vertices(NurbsSurfaceEvaluator self)
- /**
Returns the number of control vertices in the U direction on the surface.
This is the number passed to the last call to reset().
*/
- get_num_v_knots()
C++ Interface: get_num_v_knots(NurbsSurfaceEvaluator self)
- /**
Returns the number of knot values in the surface in the V direction. This
is based on the number of vertices and the order.
*/
- get_num_v_segments()
C++ Interface: get_num_v_segments(NurbsSurfaceEvaluator self)
- /**
Returns the number of piecewise continuous segments in the surface in the V
direction. This is based on the knot vector.
*/
- get_num_v_vertices()
C++ Interface: get_num_v_vertices(NurbsSurfaceEvaluator self)
- /**
Returns the number of control vertices in the V direction on the surface.
This is the number passed to the last call to reset().
*/
- get_u_knot()
C++ Interface: get_u_knot(NurbsSurfaceEvaluator self, int i)
- /**
Returns the value of the nth knot.
*/
- get_u_knots()
- get_u_order()
C++ Interface: get_u_order(NurbsSurfaceEvaluator self)
- /**
Returns the order of the surface in the U direction as set by a previous
call to set_u_order().
*/
- get_v_knot()
C++ Interface: get_v_knot(NurbsSurfaceEvaluator self, int i)
- /**
Returns the value of the nth knot.
*/
- get_v_knots()
- get_v_order()
C++ Interface: get_v_order(NurbsSurfaceEvaluator self)
- /**
Returns the order of the surface in the V direction as set by a previous
call to set_v_order().
*/
- get_vertex()
C++ Interface: get_vertex(NurbsSurfaceEvaluator self, int ui, int vi) get_vertex(NurbsSurfaceEvaluator self, int ui, int vi, const NodePath rel_to)
- get_vertex_space()
C++ Interface: get_vertex_space(NurbsSurfaceEvaluator self, int ui, int vi, const NodePath rel_to)
- /**
Returns the coordinate space of the nth control vertex of the surface,
expressed as a NodePath.
*/
- normalizeUKnots()
C++ Interface: normalize_u_knots(const NurbsSurfaceEvaluator self)
- /**
Normalizes the knot sequence so that the parametric range of the surface in
the U direction is 0 .. 1.
*/
- normalizeVKnots()
C++ Interface: normalize_v_knots(const NurbsSurfaceEvaluator self)
- /**
Normalizes the knot sequence so that the parametric range of the surface in
the U direction is 0 .. 1.
*/
- normalize_u_knots()
C++ Interface: normalize_u_knots(const NurbsSurfaceEvaluator self)
- /**
Normalizes the knot sequence so that the parametric range of the surface in
the U direction is 0 .. 1.
*/
- normalize_v_knots()
C++ Interface: normalize_v_knots(const NurbsSurfaceEvaluator self)
- /**
Normalizes the knot sequence so that the parametric range of the surface in
the U direction is 0 .. 1.
*/
- reset()
C++ Interface: reset(const NurbsSurfaceEvaluator self, int num_u_vertices, int num_v_vertices)
- /**
Resets all the vertices and knots to their default values, and sets the
surface up with the indicated number of vertices. You must then call
set_vertex() repeatedly to fill in all of the vertex values appropriately.
*/
- setExtendedVertex()
C++ Interface: set_extended_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, int d, float value)
- /**
Sets an n-dimensional vertex value. This allows definition of a NURBS
surface or surface in a sparse n-dimensional space, typically used for
associating additional properties (like color or joint membership) with
each vertex of a surface.
The value d is an arbitrary integer value and specifies the dimension of
question for this particular vertex. Any number of dimensions may be
specified, and they need not be consecutive. If a value for a given
dimension is not specified, is it implicitly 0.0.
The value is implicitly scaled by the homogenous weight value–that is, the
fourth component of the value passed to set_vertex(). This means the
ordinary vertex must be set first, before the extended vertices can be set.
*/
- setExtendedVertices()
C++ Interface: set_extended_vertices(const NurbsSurfaceEvaluator self, int ui, int vi, int d, buffer values, int num_values)
- /**
Simultaneously sets several extended values in the slots d through (d +
num_values - 1) from the num_values elements of the indicated array. This
is equivalent to calling set_extended_vertex() num_values times. See
set_extended_vertex().
*/
- setUKnot()
C++ Interface: set_u_knot(const NurbsSurfaceEvaluator self, int i, float knot)
- /**
Sets the value of the nth knot. Each knot value should be greater than or
equal to the preceding value. If no knot values are set, a default knot
vector is supplied.
*/
- setUOrder()
C++ Interface: set_u_order(const NurbsSurfaceEvaluator self, int u_order)
- /**
Sets the order of the surface in the U direction. This resets the knot
vector to the default knot vector for the number of vertices.
The order must be 1, 2, 3, or 4, and the value is one more than the degree
of the surface.
*/
- setVKnot()
C++ Interface: set_v_knot(const NurbsSurfaceEvaluator self, int i, float knot)
- /**
Sets the value of the nth knot. Each knot value should be greater than or
equal to the preceding value. If no knot values are set, a default knot
vector is supplied.
*/
- setVOrder()
C++ Interface: set_v_order(const NurbsSurfaceEvaluator self, int v_order)
- /**
Sets the order of the surface in the V direction. This resets the knot
vector to the default knot vector for the number of vertices.
The order must be 1, 2, 3, or 4, and the value is one more than the degree
of the surface.
*/
- setVertex()
C++ Interface: set_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, const LVecBase3f vertex, float weight) set_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, const LVecBase4f vertex)
- /**
Sets the nth control vertex of the surface, as a vertex in 4-d homogeneous
space. In this form, the first three components of the vertex should
already have been scaled by the fourth component, which is the homogeneous
weight.
*/
- /**
Sets the nth control vertex of the surface. This flavor sets the vertex as
a 3-d coordinate and a weight; the 3-d coordinate values are implicitly
scaled up by the weight factor.
*/
- setVertexSpace()
C++ Interface: set_vertex_space(const NurbsSurfaceEvaluator self, int ui, int vi, const NodePath space) set_vertex_space(const NurbsSurfaceEvaluator self, int ui, int vi, str space)
- /**
Sets the coordinate space of the nth control vertex. If this is not
specified, or is set to an empty NodePath, the nth control vertex is deemed
to be in the coordinate space passed to evaluate().
This specifies the space as a fixed NodePath, which is always the same
NodePath. Also see setting the space as a path string, which can specify a
different NodePath for different instances of the surface.
*/
- /**
Sets the coordinate space of the nth control vertex. If this is not
specified, or is set to an empty string, the nth control vertex is deemed
to be in the coordinate space passed to evaluate().
This specifies the space as a string, which describes the path to find the
node relative to the rel_to NodePath when the surface is evaluated.
*/
- set_extended_vertex()
C++ Interface: set_extended_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, int d, float value)
- /**
Sets an n-dimensional vertex value. This allows definition of a NURBS
surface or surface in a sparse n-dimensional space, typically used for
associating additional properties (like color or joint membership) with
each vertex of a surface.
The value d is an arbitrary integer value and specifies the dimension of
question for this particular vertex. Any number of dimensions may be
specified, and they need not be consecutive. If a value for a given
dimension is not specified, is it implicitly 0.0.
The value is implicitly scaled by the homogenous weight value–that is, the
fourth component of the value passed to set_vertex(). This means the
ordinary vertex must be set first, before the extended vertices can be set.
*/
- set_extended_vertices()
C++ Interface: set_extended_vertices(const NurbsSurfaceEvaluator self, int ui, int vi, int d, buffer values, int num_values)
- /**
Simultaneously sets several extended values in the slots d through (d +
num_values - 1) from the num_values elements of the indicated array. This
is equivalent to calling set_extended_vertex() num_values times. See
set_extended_vertex().
*/
- set_u_knot()
C++ Interface: set_u_knot(const NurbsSurfaceEvaluator self, int i, float knot)
- /**
Sets the value of the nth knot. Each knot value should be greater than or
equal to the preceding value. If no knot values are set, a default knot
vector is supplied.
*/
- set_u_order()
C++ Interface: set_u_order(const NurbsSurfaceEvaluator self, int u_order)
- /**
Sets the order of the surface in the U direction. This resets the knot
vector to the default knot vector for the number of vertices.
The order must be 1, 2, 3, or 4, and the value is one more than the degree
of the surface.
*/
- set_v_knot()
C++ Interface: set_v_knot(const NurbsSurfaceEvaluator self, int i, float knot)
- /**
Sets the value of the nth knot. Each knot value should be greater than or
equal to the preceding value. If no knot values are set, a default knot
vector is supplied.
*/
- set_v_order()
C++ Interface: set_v_order(const NurbsSurfaceEvaluator self, int v_order)
- /**
Sets the order of the surface in the V direction. This resets the knot
vector to the default knot vector for the number of vertices.
The order must be 1, 2, 3, or 4, and the value is one more than the degree
of the surface.
*/
- set_vertex()
C++ Interface: set_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, const LVecBase3f vertex, float weight) set_vertex(const NurbsSurfaceEvaluator self, int ui, int vi, const LVecBase4f vertex)
- /**
Sets the nth control vertex of the surface, as a vertex in 4-d homogeneous
space. In this form, the first three components of the vertex should
already have been scaled by the fourth component, which is the homogeneous
weight.
*/
- /**
Sets the nth control vertex of the surface. This flavor sets the vertex as
a 3-d coordinate and a weight; the 3-d coordinate values are implicitly
scaled up by the weight factor.
*/
- set_vertex_space()
C++ Interface: set_vertex_space(const NurbsSurfaceEvaluator self, int ui, int vi, const NodePath space) set_vertex_space(const NurbsSurfaceEvaluator self, int ui, int vi, str space)
- /**
Sets the coordinate space of the nth control vertex. If this is not
specified, or is set to an empty NodePath, the nth control vertex is deemed
to be in the coordinate space passed to evaluate().
This specifies the space as a fixed NodePath, which is always the same
NodePath. Also see setting the space as a path string, which can specify a
different NodePath for different instances of the surface.
*/
- /**
Sets the coordinate space of the nth control vertex. If this is not
specified, or is set to an empty string, the nth control vertex is deemed
to be in the coordinate space passed to evaluate().
This specifies the space as a string, which describes the path to find the
node relative to the rel_to NodePath when the surface is evaluated.
*/
- u_knots
- u_order
- v_knots
- v_order