Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions

# ParametricCurve Class Reference

A virtual base class for parametric curves. More...

Inheritance diagram for ParametricCurve:

List of all members.

## Public Member Functions
bool | adjustPoint (float t, float px, float py, float pz)
| Recomputes the curve such that it passes through the point (px, py, pz) at time t, but keeps the same tangent value at that point.
bool | adjustPt (float t, float px, float py, float pz, float tx, float ty, float tz)
| Recomputes the curve such that it passes through the point (px, py, pz) with the tangent (tx, ty, tz).
bool | adjustTangent (float t, float tx, float ty, float tz)
| Recomputes the curve such that it has the tangent (tx, ty, tz) at time t, but keeps the same position at the point.
float | calcLength (float from, float to)
| Approximates the length of the curve segment from parametric time 'from' to time 'to'.
float | calcLength ()
| Approximates the length of the entire curve to within a few decimal places.
float | findLength (float start_t, float length_offset)
| Returns the parametric value corresponding to the indicated distance along the curve from the starting parametric value.
bool | get2ndtangent (float t, VBase3 tangent2)
int | getCurveType ()
| Returns the flag indicating the use to which the curve is intended to be put.
float | getMaxT ()
| Returns the upper bound of t for the entire curve.
int | getNumDimensions ()
| Returns the number of significant dimensions in the curve's vertices, as set by a previous call to set_num_dimensions().
bool | getPoint (float t, VBase3 point)
bool | getPt (float t, VBase3 point, VBase3 tangent)
bool | getTangent (float t, VBase3 tangent)
bool | isValid ()
| Returns true if the curve is defined.
bool | recompute ()
| Recalculates the curve, if necessary.
| setCurveType (int type)
| Sets the flag indicating the use to which the curve is intended to be put.
| setNumDimensions (int num)
| Specifies the number of significant dimensions in the curve's vertices.
bool | stitch (ParametricCurve const a, ParametricCurve const b)
| Regenerates this curve as one long curve: the first curve connected end-to-end with the second one.
bool | writeEgg (Filename filename, CoordinateSystem cs)
| Writes an egg description of the nurbs curve to the specified output file.
bool | writeEgg (Filename filename)
| Writes an egg description of the nurbs curve to the specified output file.
bool | writeEgg (ostream out, Filename const filename, CoordinateSystem cs)
| Writes an egg description of the nurbs curve to the specified output stream.
## Static Public Member Functions
static TypeHandle | getClassType ()

## Detailed Description

A virtual base class for parametric curves.

This encapsulates all curves in 3-d space defined for a single parameter t in the range [0,get_max_t()].

## Member Function Documentation

bool adjustPoint | ( | float | t,
|  | float | px,
|  | float | py,
|  | float | pz
| ) |  |

Recomputes the curve such that it passes through the point (px, py, pz) at time t, but keeps the same tangent value at that point.

bool adjustPt | ( | float | t,
|  | float | px,
|  | float | py,
|  | float | pz,
|  | float | tx,
|  | float | ty,
|  | float | tz
| ) |  |

Recomputes the curve such that it passes through the point (px, py, pz) with the tangent (tx, ty, tz).

bool adjustTangent | ( | float | t,
|  | float | tx,
|  | float | ty,
|  | float | tz
| ) |  |

Recomputes the curve such that it has the tangent (tx, ty, tz) at time t, but keeps the same position at the point.

float calcLength | ( | float | from,
|  | float | to
| ) |  |

Approximates the length of the curve segment from parametric time 'from' to time 'to'.

float calcLength | ( |  | ) |

Approximates the length of the entire curve to within a few decimal places.

float findLength | ( | float | start_t,
|  | float | length_offset
| ) |  |

Returns the parametric value corresponding to the indicated distance along the curve from the starting parametric value.

This is the inverse of calc_length(): rather than determining the length along the curve between two parametric points, it determines the position in parametric time of a point n units along the curve.

The search distance must not be negative.

bool get2ndtangent | ( | float | t,
|  | VBase3 | tangent2
| ) |  |

static TypeHandle getClassType | ( |  | ) | `[static]`

Reimplemented from PandaNode.

Reimplemented in CubicCurveseg, PiecewiseCurve, HermiteCurve, and NurbsCurve.

int getCurveType | ( |  | ) |

Returns the flag indicating the use to which the curve is intended to be put.

float getMaxT | ( |  | ) |

Returns the upper bound of t for the entire curve.

The curve is defined in the range 0.0f <= t <= get_max_t(). This base class function always returns 1.0f; derived classes might override this to return something else.

int getNumDimensions | ( |  | ) |

Returns the number of significant dimensions in the curve's vertices, as set by a previous call to set_num_dimensions().

This is only a hint as to how the curve is intended to be used; the actual number of dimensions of any curve is always three.

bool getPoint | ( | float | t,
|  | VBase3 | point
| ) |  |

bool getPt | ( | float | t,
|  | VBase3 | point,
|  | VBase3 | tangent
| ) |  |

bool getTangent | ( | float | t,
|  | VBase3 | tangent
| ) |  |

bool isValid | ( |  | ) |

Returns true if the curve is defined.

This base class function always returns true; derived classes might override this to sometimes return false.

bool recompute | ( |  | ) |

Recalculates the curve, if necessary.

Returns true if the resulting curve is valid, false otherwise.

setCurveType | ( | int | type | ) |

Sets the flag indicating the use to which the curve is intended to be put.

This flag is optional and only serves to provide a hint to the egg reader and writer code; it has no effect on the curve's behavior.

Setting the curve type also sets the num_dimensions to 3 or 1 according to the type.

THis flag may have one of the values PCT_XYZ, PCT_HPR, or PCT_T.

setNumDimensions | ( | int | num | ) |

Specifies the number of significant dimensions in the curve's vertices.

This should be one of 1, 2, or 3. Normally, XYZ and HPR curves have three dimensions; time curves should always have one dimension. This only serves as a hint to the mopath editor, and also controls how the curve is written out.

bool stitch | ( | ParametricCurve const | a,
|  | ParametricCurve const | b
| ) |  |

Regenerates this curve as one long curve: the first curve connected end-to-end with the second one.

Either a or b may be the same as 'this'.

Returns true if successful, false on failure or if the curve type does not support stitching.

bool writeEgg | ( | Filename | filename | ) |

Writes an egg description of the nurbs curve to the specified output file.

Returns true if the file is successfully written.

bool writeEgg | ( | Filename | filename,
|  | CoordinateSystem | cs
| ) |  |

Writes an egg description of the nurbs curve to the specified output file.

Returns true if the file is successfully written.

bool writeEgg | ( | ostream | out,
|  | Filename const | filename,
|  | CoordinateSystem | cs
| ) |  |

Writes an egg description of the nurbs curve to the specified output stream.

Returns true if the file is successfully written.

All Classes Namespaces Functions Variables Enumerations Enumerator Properties