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

Inheritance diagram of NurbsSurfaceResult

__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()).

*/

get_start_u()

C++ Interface: get_start_u(NurbsSurfaceResult self)

/**
  • Returns the first legal value of u on the surface. Usually this is 0.0.

*/

get_start_v()

C++ Interface: get_start_v(NurbsSurfaceResult self)

/**
  • Returns the first legal value of v on the surface. Usually this is 0.0.

*/