EggNurbsSurface

from panda3d.egg import EggNurbsSurface
class EggNurbsSurface

Bases: EggSurface

A parametric NURBS surface.

Inheritance diagram

Inheritance diagram of EggNurbsSurface

__init__(*args, **kwargs)
assign()

C++ Interface: assign(const EggNurbsSurface self, const EggNurbsSurface copy)

/**

*/

getClassType()

C++ Interface: get_class_type()

getCv()

C++ Interface: get_cv(EggNurbsSurface self, int ui, int vi)

/**
  • Returns the control vertex at the indicate U, V position.

*/

getNumCvs()

C++ Interface: get_num_cvs(EggNurbsSurface self)

/**
  • Returns the total number of control vertices that should be defined for

  • the surface. This is determined by the number of knots and the order, in

  • each direction; it does not necessarily reflect the number of vertices that

  • have actually been added to the surface. (However, if the number of

  • vertices in the surface are wrong, the surface is invalid.)

*/

getNumUCvs()

C++ Interface: get_num_u_cvs(EggNurbsSurface self)

/**
  • Returns the number of control vertices that should be present in the U

  • direction. This is determined by the number of knots and the order; it

  • does not necessarily reflect the number of vertices that have actually been

  • added to the surface. (However, if the number of vertices in the surface

  • are wrong, the surface is invalid.)

*/

getNumUKnots()

C++ Interface: get_num_u_knots(EggNurbsSurface self)

/**
  • Returns the number of knots in the U direction.

*/

getNumVCvs()

C++ Interface: get_num_v_cvs(EggNurbsSurface self)

/**
  • Returns the number of control vertices that should be present in the V

  • direction. This is determined by the number of knots and the order; it

  • does not necessarily reflect the number of vertices that have actually been

  • added to the surface. (However, if the number of vertices in the surface

  • are wrong, the surface is invalid.)

*/

getNumVKnots()

C++ Interface: get_num_v_knots(EggNurbsSurface self)

/**
  • Returns the number of knots in the V direction.

*/

getUDegree()

C++ Interface: get_u_degree(EggNurbsSurface self)

/**
  • Returns the degree of the surface in the U direction. For a typical NURBS,

  • the degree is 3.

*/

getUIndex()

C++ Interface: get_u_index(EggNurbsSurface self, int vertex_index)

/**
  • Returns the U index number of the given vertex within the EggPrimitive’s

  • linear list of vertices. An EggNurbsSurface maps a linear list of vertices

  • to its 2-d mesh; this returns the U index number that corresponds to the

  • nth vertex in the list.

*/

getUKnot()

C++ Interface: get_u_knot(EggNurbsSurface self, int k)

/**
  • Returns the nth knot value defined in the U direction.

*/

getUKnots()
getUOrder()

C++ Interface: get_u_order(EggNurbsSurface self)

/**
  • Returns the order of the surface in the U direction. The order is the

  • degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.

  • With this implementation of NURBS, the order must be in the range [1, 4].

*/

getVDegree()

C++ Interface: get_v_degree(EggNurbsSurface self)

/**
  • Returns the degree of the surface in the V direction. for a typical NURBS,

  • the degree is 3.

*/

getVIndex()

C++ Interface: get_v_index(EggNurbsSurface self, int vertex_index)

/**
  • Returns the V index number of the given vertex within the EggPrimitive’s

  • linear list of vertices. An EggNurbsSurface maps a linear list of vertices

  • to its 2-d mesh; this returns the V index number that corresponds to the

  • nth vertex in the list.

*/

getVKnot()

C++ Interface: get_v_knot(EggNurbsSurface self, int k)

/**
  • Returns the nth knot value defined in the V direction.

*/

getVKnots()
getVOrder()

C++ Interface: get_v_order(EggNurbsSurface self)

/**
  • Returns the order of the surface in the V direction. The order is the

  • degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.

  • With this implementation of NURBS, the order must be in the range [1, 4].

*/

getVertexIndex()

C++ Interface: get_vertex_index(EggNurbsSurface self, int ui, int vi)

/**
  • Returns the index number within the EggPrimitive’s list of the control

  • vertex at position ui, vi.

*/

get_class_type()

C++ Interface: get_class_type()

get_cv()

C++ Interface: get_cv(EggNurbsSurface self, int ui, int vi)

/**
  • Returns the control vertex at the indicate U, V position.

*/

get_num_cvs()

C++ Interface: get_num_cvs(EggNurbsSurface self)

/**
  • Returns the total number of control vertices that should be defined for

  • the surface. This is determined by the number of knots and the order, in

  • each direction; it does not necessarily reflect the number of vertices that

  • have actually been added to the surface. (However, if the number of

  • vertices in the surface are wrong, the surface is invalid.)

*/

get_num_u_cvs()

C++ Interface: get_num_u_cvs(EggNurbsSurface self)

/**
  • Returns the number of control vertices that should be present in the U

  • direction. This is determined by the number of knots and the order; it

  • does not necessarily reflect the number of vertices that have actually been

  • added to the surface. (However, if the number of vertices in the surface

  • are wrong, the surface is invalid.)

*/

get_num_u_knots()

C++ Interface: get_num_u_knots(EggNurbsSurface self)

/**
  • Returns the number of knots in the U direction.

*/

get_num_v_cvs()

C++ Interface: get_num_v_cvs(EggNurbsSurface self)

/**
  • Returns the number of control vertices that should be present in the V

  • direction. This is determined by the number of knots and the order; it

  • does not necessarily reflect the number of vertices that have actually been

  • added to the surface. (However, if the number of vertices in the surface

  • are wrong, the surface is invalid.)

*/

get_num_v_knots()

C++ Interface: get_num_v_knots(EggNurbsSurface self)

/**
  • Returns the number of knots in the V direction.

*/

get_u_degree()

C++ Interface: get_u_degree(EggNurbsSurface self)

/**
  • Returns the degree of the surface in the U direction. For a typical NURBS,

  • the degree is 3.

*/

get_u_index()

C++ Interface: get_u_index(EggNurbsSurface self, int vertex_index)

/**
  • Returns the U index number of the given vertex within the EggPrimitive’s

  • linear list of vertices. An EggNurbsSurface maps a linear list of vertices

  • to its 2-d mesh; this returns the U index number that corresponds to the

  • nth vertex in the list.

*/

get_u_knot()

C++ Interface: get_u_knot(EggNurbsSurface self, int k)

/**
  • Returns the nth knot value defined in the U direction.

*/

get_u_knots()
get_u_order()

C++ Interface: get_u_order(EggNurbsSurface self)

/**
  • Returns the order of the surface in the U direction. The order is the

  • degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.

  • With this implementation of NURBS, the order must be in the range [1, 4].

*/

get_v_degree()

C++ Interface: get_v_degree(EggNurbsSurface self)

/**
  • Returns the degree of the surface in the V direction. for a typical NURBS,

  • the degree is 3.

*/

get_v_index()

C++ Interface: get_v_index(EggNurbsSurface self, int vertex_index)

/**
  • Returns the V index number of the given vertex within the EggPrimitive’s

  • linear list of vertices. An EggNurbsSurface maps a linear list of vertices

  • to its 2-d mesh; this returns the V index number that corresponds to the

  • nth vertex in the list.

*/

get_v_knot()

C++ Interface: get_v_knot(EggNurbsSurface self, int k)

/**
  • Returns the nth knot value defined in the V direction.

*/

get_v_knots()
get_v_order()

C++ Interface: get_v_order(EggNurbsSurface self)

/**
  • Returns the order of the surface in the V direction. The order is the

  • degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.

  • With this implementation of NURBS, the order must be in the range [1, 4].

*/

get_vertex_index()

C++ Interface: get_vertex_index(EggNurbsSurface self, int ui, int vi)

/**
  • Returns the index number within the EggPrimitive’s list of the control

  • vertex at position ui, vi.

*/

isClosedU()

C++ Interface: is_closed_u(EggNurbsSurface self)

/**
  • Returns true if the surface appears to be closed in the U direction. Since

  • the Egg syntax does not provide a means for explicit indication of closure,

  • this has to be guessed at by examining the surface itself.

*/

isClosedV()

C++ Interface: is_closed_v(EggNurbsSurface self)

/**
  • Returns true if the surface appears to be closed in the V direction. Since

  • the Egg syntax does not provide a means for explicit indication of closure,

  • this has to be guessed at by examining the surface itself.

*/

isValid()

C++ Interface: is_valid(EggNurbsSurface self)

/**
  • Returns true if the NURBS parameters are all internally consistent (e.g.

  • it has the right number of vertices to match its number of knots and order

  • in each dimension), or false otherwise.

*/

is_closed_u()

C++ Interface: is_closed_u(EggNurbsSurface self)

/**
  • Returns true if the surface appears to be closed in the U direction. Since

  • the Egg syntax does not provide a means for explicit indication of closure,

  • this has to be guessed at by examining the surface itself.

*/

is_closed_v()

C++ Interface: is_closed_v(EggNurbsSurface self)

/**
  • Returns true if the surface appears to be closed in the V direction. Since

  • the Egg syntax does not provide a means for explicit indication of closure,

  • this has to be guessed at by examining the surface itself.

*/

is_valid()

C++ Interface: is_valid(EggNurbsSurface self)

/**
  • Returns true if the NURBS parameters are all internally consistent (e.g.

  • it has the right number of vertices to match its number of knots and order

  • in each dimension), or false otherwise.

*/

setCv()

C++ Interface: set_cv(const EggNurbsSurface self, int ui, int vi, EggVertex vertex)

/**
  • Redefines the control vertex associated with a particular u, v coordinate

  • pair. This is just a shorthand to access the EggPrimitive’s normal vertex

  • assignment for a 2-d control vertex.

*/

setNumUKnots()

C++ Interface: set_num_u_knots(const EggNurbsSurface self, int num)

/**
  • Directly changes the number of knots in the U direction. This will either

  • add zero-valued knots onto the end, or truncate knot values from the end,

  • depending on whether the list is being increased or decreased. If

  • possible, it is preferable to use the setup() method instead of directly

  • setting the number of knots, as this may result in an invalid surface.

*/

setNumVKnots()

C++ Interface: set_num_v_knots(const EggNurbsSurface self, int num)

/**
  • Directly changes the number of knots in the V direction. This will either

  • add zero-valued knots onto the end, or truncate knot values from the end,

  • depending on whether the list is being increased or decreased. If

  • possible, it is preferable to use the setup() method instead of directly

  • setting the number of knots, as this may result in an invalid surface.

*/

setUKnot()

C++ Interface: set_u_knot(const EggNurbsSurface self, int k, double value)

/**
  • Resets the value of the indicated knot as indicated. k must be in the

  • range 0 <= k < get_num_u_knots(), and the value must be in the range

  • get_u_knot(k - 1) <= value <= get_u_knot(k + 1).

*/

setUOrder()

C++ Interface: set_u_order(const EggNurbsSurface self, int u_order)

/**
  • Directly changes the order in the U direction to the indicated value (which

  • must be an integer in the range 1 <= u_order <= 4). If possible, it is

  • preferable to use the setup() method instead of this method, since changing

  • the order directly may result in an invalid surface.

*/

setVKnot()

C++ Interface: set_v_knot(const EggNurbsSurface self, int k, double value)

/**
  • Resets the value of the indicated knot as indicated. k must be in the

  • range 0 <= k < get_num_v_knots(), and the value must be in the range

  • get_v_knot(k - 1) <= value <= get_v_knot(k + 1).

*/

setVOrder()

C++ Interface: set_v_order(const EggNurbsSurface self, int v_order)

/**
  • Directly changes the order in the V direction to the indicated value (which

  • must be an integer in the range 1 <= v_order <= 4). If possible, it is

  • preferable to use the setup() method instead of this method, since changing

  • the order directly may result in an invalid surface.

*/

set_cv()

C++ Interface: set_cv(const EggNurbsSurface self, int ui, int vi, EggVertex vertex)

/**
  • Redefines the control vertex associated with a particular u, v coordinate

  • pair. This is just a shorthand to access the EggPrimitive’s normal vertex

  • assignment for a 2-d control vertex.

*/

set_num_u_knots()

C++ Interface: set_num_u_knots(const EggNurbsSurface self, int num)

/**
  • Directly changes the number of knots in the U direction. This will either

  • add zero-valued knots onto the end, or truncate knot values from the end,

  • depending on whether the list is being increased or decreased. If

  • possible, it is preferable to use the setup() method instead of directly

  • setting the number of knots, as this may result in an invalid surface.

*/

set_num_v_knots()

C++ Interface: set_num_v_knots(const EggNurbsSurface self, int num)

/**
  • Directly changes the number of knots in the V direction. This will either

  • add zero-valued knots onto the end, or truncate knot values from the end,

  • depending on whether the list is being increased or decreased. If

  • possible, it is preferable to use the setup() method instead of directly

  • setting the number of knots, as this may result in an invalid surface.

*/

set_u_knot()

C++ Interface: set_u_knot(const EggNurbsSurface self, int k, double value)

/**
  • Resets the value of the indicated knot as indicated. k must be in the

  • range 0 <= k < get_num_u_knots(), and the value must be in the range

  • get_u_knot(k - 1) <= value <= get_u_knot(k + 1).

*/

set_u_order()

C++ Interface: set_u_order(const EggNurbsSurface self, int u_order)

/**
  • Directly changes the order in the U direction to the indicated value (which

  • must be an integer in the range 1 <= u_order <= 4). If possible, it is

  • preferable to use the setup() method instead of this method, since changing

  • the order directly may result in an invalid surface.

*/

set_v_knot()

C++ Interface: set_v_knot(const EggNurbsSurface self, int k, double value)

/**
  • Resets the value of the indicated knot as indicated. k must be in the

  • range 0 <= k < get_num_v_knots(), and the value must be in the range

  • get_v_knot(k - 1) <= value <= get_v_knot(k + 1).

*/

set_v_order()

C++ Interface: set_v_order(const EggNurbsSurface self, int v_order)

/**
  • Directly changes the order in the V direction to the indicated value (which

  • must be an integer in the range 1 <= v_order <= 4). If possible, it is

  • preferable to use the setup() method instead of this method, since changing

  • the order directly may result in an invalid surface.

*/

setup()

C++ Interface: setup(const EggNurbsSurface self, int u_order, int v_order, int num_u_knots, int num_v_knots)

/**
  • Prepares a new surface definition with the indicated order and number of

  • knots in each dimension. This also implies a particular number of vertices

  • in each dimension as well (the number of knots minus the order), but it is

  • up to the user to add the correct number of vertices to the surface by

  • repeatedly calling push_back().

*/