|
Panda3D
|
A virtual base class for parametric curves. More...
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 () |
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()].
| 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 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.
1.7.3