NurbsSurfaceResult
from panda3d.core import NurbsSurfaceResult
- class NurbsSurfaceResult
Bases:
ReferenceCount
The result of a NurbsSurfaceEvaluator. This object represents a surface in a particular coordinate space. It can return the point and/or normal to the surface at any point.
Inheritance diagram
- __init__(*args, **kwargs)
- evalExtendedPoint()
C++ Interface: eval_extended_point(const NurbsSurfaceResult self, float u, float v, int d)
- /**
Evaluates the surface in n-dimensional space according to the extended
vertices associated with the surface in the indicated dimension.
*/
- evalExtendedPoints()
C++ Interface: eval_extended_points(const NurbsSurfaceResult self, float u, float v, int d, buffer result, int num_values)
- /**
Simultaneously performs eval_extended_point on a contiguous sequence of
dimensions. The dimensions evaluated are d through (d + num_values - 1);
the results are filled into the num_values elements in the indicated result
array.
*/
- evalNormal()
C++ Interface: eval_normal(const NurbsSurfaceResult self, float u, float v, LVecBase3f normal)
- /**
Computes the normal to the surface at the indicated point in parametric
time. This normal vector will not necessarily be normalized, and could be
zero. See also eval_point().
*/
- evalPoint()
C++ Interface: eval_point(const NurbsSurfaceResult self, float u, float v, LVecBase3f point)
- /**
Computes the point on the surface corresponding to the indicated value in
parametric time. Returns true if the u, v values are valid, false
otherwise.
*/
- evalSegmentExtendedPoint()
C++ Interface: eval_segment_extended_point(NurbsSurfaceResult self, int ui, int vi, float u, float v, int d)
- /**
Evaluates the surface in n-dimensional space according to the extended
vertices associated with the surface in the indicated dimension.
*/
- evalSegmentExtendedPoints()
C++ Interface: eval_segment_extended_points(NurbsSurfaceResult self, int ui, int vi, float u, float v, int d, buffer result, int num_values)
- /**
Simultaneously performs eval_extended_point on a contiguous sequence of
dimensions. The dimensions evaluated are d through (d + num_values - 1);
the results are filled into the num_values elements in the indicated result
array.
*/
- evalSegmentNormal()
C++ Interface: eval_segment_normal(NurbsSurfaceResult self, int ui, int vi, float u, float v, LVecBase3f normal)
- /**
As eval_segment_point, but computes the normal to the surface at the
indicated point. The normal vector will not necessarily be normalized, and
could be zero.
*/
- evalSegmentPoint()
C++ Interface: eval_segment_point(NurbsSurfaceResult self, int ui, int vi, float u, float v, LVecBase3f point)
- /**
Evaluates the point on the surface corresponding to the indicated value in
parametric time within the indicated surface segment. u and v should be in
the range [0, 1].
The surface is internally represented as a number of connected (or possibly
unconnected) piecewise continuous segments. The exact number of segments
for a particular surface depends on the knot vector, and is returned by
get_num_segments(). Normally, eval_point() is used to evaluate a point
along the continuous surface, but when you care more about local
continuity, you can use eval_segment_point() to evaluate the points along
each segment.
*/
- eval_extended_point()
C++ Interface: eval_extended_point(const NurbsSurfaceResult self, float u, float v, int d)
- /**
Evaluates the surface in n-dimensional space according to the extended
vertices associated with the surface in the indicated dimension.
*/
- eval_extended_points()
C++ Interface: eval_extended_points(const NurbsSurfaceResult self, float u, float v, int d, buffer result, int num_values)
- /**
Simultaneously performs eval_extended_point on a contiguous sequence of
dimensions. The dimensions evaluated are d through (d + num_values - 1);
the results are filled into the num_values elements in the indicated result
array.
*/
- eval_normal()
C++ Interface: eval_normal(const NurbsSurfaceResult self, float u, float v, LVecBase3f normal)
- /**
Computes the normal to the surface at the indicated point in parametric
time. This normal vector will not necessarily be normalized, and could be
zero. See also eval_point().
*/
- eval_point()
C++ Interface: eval_point(const NurbsSurfaceResult self, float u, float v, LVecBase3f point)
- /**
Computes the point on the surface corresponding to the indicated value in
parametric time. Returns true if the u, v values are valid, false
otherwise.
*/
- eval_segment_extended_point()
C++ Interface: eval_segment_extended_point(NurbsSurfaceResult self, int ui, int vi, float u, float v, int d)
- /**
Evaluates the surface in n-dimensional space according to the extended
vertices associated with the surface in the indicated dimension.
*/
- eval_segment_extended_points()
C++ Interface: eval_segment_extended_points(NurbsSurfaceResult self, int ui, int vi, float u, float v, int d, buffer result, int num_values)
- /**
Simultaneously performs eval_extended_point on a contiguous sequence of
dimensions. The dimensions evaluated are d through (d + num_values - 1);
the results are filled into the num_values elements in the indicated result
array.
*/
- eval_segment_normal()
C++ Interface: eval_segment_normal(NurbsSurfaceResult self, int ui, int vi, float u, float v, LVecBase3f normal)
- /**
As eval_segment_point, but computes the normal to the surface at the
indicated point. The normal vector will not necessarily be normalized, and
could be zero.
*/
- eval_segment_point()
C++ Interface: eval_segment_point(NurbsSurfaceResult self, int ui, int vi, float u, float v, LVecBase3f point)
- /**
Evaluates the point on the surface corresponding to the indicated value in
parametric time within the indicated surface segment. u and v should be in
the range [0, 1].
The surface is internally represented as a number of connected (or possibly
unconnected) piecewise continuous segments. The exact number of segments
for a particular surface depends on the knot vector, and is returned by
get_num_segments(). Normally, eval_point() is used to evaluate a point
along the continuous surface, but when you care more about local
continuity, you can use eval_segment_point() to evaluate the points along
each segment.
*/
- getEndU()
C++ Interface: get_end_u(NurbsSurfaceResult self)
- /**
Returns the last legal value of u on the surface.
*/
- getEndV()
C++ Interface: get_end_v(NurbsSurfaceResult self)
- /**
Returns the last legal value of v on the surface.
*/
- getNumUSegments()
C++ Interface: get_num_u_segments(NurbsSurfaceResult self)
- /**
Returns the number of piecewise continuous segments within the surface in
the U direction. This number is usually not important unless you plan to
call eval_segment_point().
*/
- getNumVSegments()
C++ Interface: get_num_v_segments(NurbsSurfaceResult self)
- /**
Returns the number of piecewise continuous segments within the surface in
the V direction. This number is usually not important unless you plan to
call eval_segment_point().
*/
- getSegmentU()
C++ Interface: get_segment_u(NurbsSurfaceResult self, int ui, float u)
- /**
Accepts a u value in the range [0, 1], and assumed to be relative to the
indicated segment (as in eval_segment_point()), and returns the
corresponding u value in the entire surface (as in eval_point()).
*/
- getSegmentV()
C++ Interface: get_segment_v(NurbsSurfaceResult self, int vi, float v)
- /**
Accepts a v value in the range [0, 1], and assumed to be relative to the
indicated segment (as in eval_segment_point()), and returns the
corresponding v value in the entire surface (as in eval_point()).
*/
- getStartU()
C++ Interface: get_start_u(NurbsSurfaceResult self)
- /**
Returns the first legal value of u on the surface. Usually this is 0.0.
*/
- getStartV()
C++ Interface: get_start_v(NurbsSurfaceResult self)
- /**
Returns the first legal value of v on the surface. Usually this is 0.0.
*/
- get_end_u()
C++ Interface: get_end_u(NurbsSurfaceResult self)
- /**
Returns the last legal value of u on the surface.
*/
- get_end_v()
C++ Interface: get_end_v(NurbsSurfaceResult self)
- /**
Returns the last legal value of v on the surface.
*/
- get_num_u_segments()
C++ Interface: get_num_u_segments(NurbsSurfaceResult self)
- /**
Returns the number of piecewise continuous segments within the surface in
the U direction. This number is usually not important unless you plan to
call eval_segment_point().
*/
- get_num_v_segments()
C++ Interface: get_num_v_segments(NurbsSurfaceResult self)
- /**
Returns the number of piecewise continuous segments within the surface in
the V direction. This number is usually not important unless you plan to
call eval_segment_point().
*/
- get_segment_u()
C++ Interface: get_segment_u(NurbsSurfaceResult self, int ui, float u)
- /**
Accepts a u value in the range [0, 1], and assumed to be relative to the
indicated segment (as in eval_segment_point()), and returns the
corresponding u value in the entire surface (as in eval_point()).
*/
- get_segment_v()
C++ Interface: get_segment_v(NurbsSurfaceResult self, int vi, float v)
- /**
Accepts a v value in the range [0, 1], and assumed to be relative to the
indicated segment (as in eval_segment_point()), and returns the
corresponding v value in the entire surface (as in eval_point()).
*/