from panda3d.core import ParametricCurve
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()].
adjustPoint(t: float, px: float, py: float, pz: float) → bool¶
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.
adjustPt(t: float, px: float, py: float, pz: float, tx: float, ty: float, tz: float) → bool¶
Recomputes the curve such that it passes through the point (px, py, pz) with the tangent (tx, ty, tz).
adjustTangent(t: float, tx: float, ty: float, tz: float) → bool¶
Recomputes the curve such that it has the tangent (tx, ty, tz) at time t, but keeps the same position at the point.
calcLength(from: float, to: float) → float
Approximates the length of the curve segment from parametric time ‘from’ to time ‘to’.
findLength(start_t: float, length_offset: float) → float¶
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.
getMaxT() → float¶
Returns the upper bound of t for the entire curve. The curve is defined in the range 0.0f <= t <=
getMaxT(). This base class function always returns 1.0f; derived classes might override this to return something else.
getNumDimensions() → int¶
Returns the number of significant dimensions in the curve’s vertices, as set by a previous call to
setNumDimensions(). 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.
isValid() → bool¶
Returns true if the curve is defined. This base class function always returns true; derived classes might override this to sometimes return false.
recompute() → bool¶
Recalculates the curve, if necessary. Returns true if the resulting curve is valid, false otherwise.
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.
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.
stitch(a: ParametricCurve, b: ParametricCurve) → bool¶
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.
writeEgg(filename: Filename, cs: CoordinateSystem) → bool¶
Writes an egg description of the nurbs curve to the specified output file. Returns true if the file is successfully written.