Panda3D

- Main Page
- Packages
- Classes

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

Public Member Functions | Static Public Member Functions

# HermiteCurve Class Reference

A parametric curve defined by a sequence of control vertices, each with an in and out tangent. More...

Inheritance diagram for HermiteCurve:

List of all members.

## Public Member Functions
| HermiteCurve ()
| HermiteCurve (ParametricCurve const pc)
| Constructs a Hermite from the indicated (possibly non-hermite) curve.
int | appendCv (int type, VBase3 const v)
int | appendCv (int type, float x, float y, float z)
| Adds a new CV to the end of the curve.
VBase3 const | getCvIn (int n)
| Returns the in tangent of the given CV.
| getCvIn (int n, VBase3 v)
string | getCvName (int n)
| Returns the name of the given CV, or NULL.
VBase3 const | getCvOut (int n)
| Returns the out tangent of the given CV.
| getCvOut (int n, VBase3 v)
VBase3 const | getCvPoint (int n)
| Returns the position of the given CV.
| getCvPoint (int n, VBase3 v)
float | getCvTstart (int n)
| Returns the starting point in parametric space of the given CV.
int | getCvType (int n)
| Returns the given CV's continuity type, HC_CUT, HC_FREE, HC_G1, or HC_SMOOTH, or 0 if there is no such CV.
int | getNumCvs ()
| Returns the number of CV's in the curve.
int | insertCv (float t)
| Inserts a new CV at the given parametric point along the curve.
| removeAllCvs ()
| Removes all CV's from the curve.
bool | removeCv (int n)
| Removes the given CV from the curve.
bool | setCvIn (int n, float x, float y, float z)
| Changes the given CV's in tangent.
bool | setCvIn (int n, VBase3 const v)
bool | setCvName (int n, string name)
| Changes the name associated with a particular CV.
bool | setCvOut (int n, VBase3 const v)
bool | setCvOut (int n, float x, float y, float z)
| Changes the given CV's out tangent.
bool | setCvPoint (int n, VBase3 const v)
bool | setCvPoint (int n, float x, float y, float z)
| Changes the given CV's position.
bool | setCvTstart (int n, float tstart)
| Changes the given CV's parametric starting time.
bool | setCvType (int n, int type)
| Changes the given CV's continuity type.
| writeCv (ostream out, int n)
## Static Public Member Functions
static TypeHandle | getClassType ()

## Detailed Description

A parametric curve defined by a sequence of control vertices, each with an in and out tangent.

This class is actually implemented as a PiecewiseCurve made up of several CubicCurvesegs, each of which is created using the hermite_basis() method. The HermiteCurve class itself keeps its own list of the CV's that are used to define the curve (since the CubicCurveseg class doesn't retain these).

## Constructor & Destructor Documentation

HermiteCurve | ( |  | ) |

HermiteCurve | ( | ParametricCurve const | pc | ) |

Constructs a Hermite from the indicated (possibly non-hermite) curve.

## Member Function Documentation

int appendCv | ( | int | type,
|  | VBase3 const | v
| ) |  |

int appendCv | ( | int | type,
|  | float | x,
|  | float | y,
|  | float | z
| ) |  |

Adds a new CV to the end of the curve.

The new CV is given initial in/out tangents of 0. The return value is the index of the new CV.

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

Reimplemented from PiecewiseCurve.

VBase3 const getCvIn | ( | int | n | ) |

Returns the in tangent of the given CV.

getCvIn | ( | int | n,
|  | VBase3 | v
| ) |  |

string getCvName | ( | int | n | ) |

Returns the name of the given CV, or NULL.

VBase3 const getCvOut | ( | int | n | ) |

Returns the out tangent of the given CV.

getCvOut | ( | int | n,
|  | VBase3 | v
| ) |  |

VBase3 const getCvPoint | ( | int | n | ) |

Returns the position of the given CV.

getCvPoint | ( | int | n,
|  | VBase3 | v
| ) |  |

float getCvTstart | ( | int | n | ) |

Returns the starting point in parametric space of the given CV.

int getCvType | ( | int | n | ) |

Returns the given CV's continuity type, HC_CUT, HC_FREE, HC_G1, or HC_SMOOTH, or 0 if there is no such CV.

int getNumCvs | ( |  | ) |

Returns the number of CV's in the curve.

int insertCv | ( | float | t | ) |

Inserts a new CV at the given parametric point along the curve.

If this parametric point is already on the curve, the CV is assigned an index between its two neighbors and the indices of all following CV's are incremented by 1; its in and out tangents are chosen to keep the curve consistent. If the new parametric point is beyond the end of the existing curve, the curve is extended to meet it and the new CV's position, in tangent, and out tangent are set to zero.

The index number of the new CV is returned.

removeAllCvs | ( |  | ) |

Removes all CV's from the curve.

bool removeCv | ( | int | n | ) |

Removes the given CV from the curve.

Returns true if the CV existed, false otherwise.

bool setCvIn | ( | int | n,
|  | VBase3 const | v
| ) |  |

bool setCvIn | ( | int | n,
|  | float | x,
|  | float | y,
|  | float | z
| ) |  |

Changes the given CV's in tangent.

Depending on the continuity type, this may also adjust the out tangent.

bool setCvName | ( | int | n,
|  | string | name
| ) |  |

Changes the name associated with a particular CV.

bool setCvOut | ( | int | n,
|  | float | x,
|  | float | y,
|  | float | z
| ) |  |

Changes the given CV's out tangent.

Depending on the continuity type, this may also adjust the in tangent.

bool setCvOut | ( | int | n,
|  | VBase3 const | v
| ) |  |

bool setCvPoint | ( | int | n,
|  | VBase3 const | v
| ) |  |

bool setCvPoint | ( | int | n,
|  | float | x,
|  | float | y,
|  | float | z
| ) |  |

Changes the given CV's position.

bool setCvTstart | ( | int | n,
|  | float | tstart
| ) |  |

Changes the given CV's parametric starting time.

This may affect the shape of the curve.

bool setCvType | ( | int | n,
|  | int | type
| ) |  |

Changes the given CV's continuity type.

Legal values are HC_CUT, HC_FREE, HC_G1, or HC_SMOOTH.

Other than HC_CUT, these have no effect on the actual curve; it remains up to user software to impose the constraints these imply.

HC_CUT implies a disconnection of the curve; HC_FREE imposes no constraints on the tangents; HC_G1 forces the tangents to be collinear, and HC_SMOOTH forces the tangents to be identical. Setting type type to HC_G1 or HC_SMOOTH may adjust the out tangent to match the in tangent.

writeCv | ( | ostream | out,
|  | int | n
| ) |  |

All Classes Namespaces Functions Variables Enumerations Enumerator Properties