|
| SmoothHeightMap (const BicubicSurface &surface) |
| Create a SmoothHeightMap surface using an already-existing BicubicSurface. More...
|
|
const BicubicSurface & | getBicubicSurface () const |
| Return a reference to the BicubicSurface object being used by this SmoothHeightMap. More...
|
|
const OBBTree & | getOBBTree () const |
| (Advanced) Return a reference to the oriented bounding box tree for this surface. More...
|
|
const Impl & | getImpl () const |
| Internal use only. More...
|
|
Impl & | updImpl () |
| Internal use only. More...
|
|
| ContactGeometry () |
| Base class default constructor creates an empty handle. More...
|
|
| ContactGeometry (const ContactGeometry &src) |
| Copy constructor makes a deep copy. More...
|
|
ContactGeometry & | operator= (const ContactGeometry &src) |
| Copy assignment makes a deep copy. More...
|
|
| ~ContactGeometry () |
| Base class destructor deletes the implementation object. Note that this is not virtual; handles should consist of just a pointer to the implementation. More...
|
|
DecorativeGeometry | createDecorativeGeometry () const |
| Generate a DecorativeGeometry that matches the shape of this ContactGeometry. More...
|
|
Vec3 | findNearestPoint (const Vec3 &position, bool &inside, UnitVec3 &normal) const |
| Given a point, find the nearest point on the surface of this object. More...
|
|
Vec3 | projectDownhillToNearestPoint (const Vec3 &pointQ) const |
| Given a query point Q, find the nearest point P on the surface of this object, looking only down the local gradient. More...
|
|
bool | trackSeparationFromLine (const Vec3 &pointOnLine, const UnitVec3 &directionOfLine, const Vec3 &startingGuessForClosestPoint, Vec3 &newClosestPointOnSurface, Vec3 &closestPointOnLine, Real &height) const |
| Track the closest point between this implicit surface and a given line, or the point of deepest penetration if the line intersects the surface. More...
|
|
bool | intersectsRay (const Vec3 &origin, const UnitVec3 &direction, Real &distance, UnitVec3 &normal) const |
| Determine whether this object intersects a ray, and if so, find the intersection point. More...
|
|
void | getBoundingSphere (Vec3 ¢er, Real &radius) const |
| Get a bounding sphere which completely encloses this object. More...
|
|
bool | isSmooth () const |
| Returns true if this is a smooth surface, meaning that it can provide meaningful curvature information and continuous derivatives with respect to its parameterization. More...
|
|
void | calcCurvature (const Vec3 &point, Vec2 &curvature, Rotation &orientation) const |
| Compute the principal curvatures and their directions, and the surface normal, at a given point on a smooth surface. More...
|
|
const Function & | getImplicitFunction () const |
| Our smooth surfaces define a function f(P)=0 that provides an implicit representation of the surface. More...
|
|
Real | calcSurfaceValue (const Vec3 &point) const |
| Calculate the value of the implicit surface function, at a given point. More...
|
|
UnitVec3 | calcSurfaceUnitNormal (const Vec3 &point) const |
| Calculate the implicit surface outward facing unit normal at the given point. More...
|
|
Vec3 | calcSurfaceGradient (const Vec3 &point) const |
| Calculate the gradient of the implicit surface function, at a given point. More...
|
|
Mat33 | calcSurfaceHessian (const Vec3 &point) const |
| Calculate the hessian of the implicit surface function, at a given point. More...
|
|
Real | calcGaussianCurvature (const Vec3 &gradient, const Mat33 &Hessian) const |
| For an implicit surface, return the Gaussian curvature at the point p whose implicit surface function gradient g(p) and Hessian H(p) are supplied. More...
|
|
Real | calcGaussianCurvature (const Vec3 &point) const |
| This signature is for convenience; use the other one to save time if you already have the gradient and Hessian available for this point. More...
|
|
Real | calcSurfaceCurvatureInDirection (const Vec3 &point, const UnitVec3 &direction) const |
| For an implicit surface, return the curvature k of the surface at a given point p in a given direction tp. More...
|
|
void | calcSurfacePrincipalCurvatures (const Vec3 &point, Vec2 &curvature, Rotation &R_SP) const |
| For an implicit surface at a given point p, return the principal curvatures and principal curvature directions, using only the implicit function and its derivatives. More...
|
|
bool | isConvex () const |
| Returns true if this surface is known to be convex. More...
|
|
Vec3 | calcSupportPoint (UnitVec3 direction) const |
| Given a direction expressed in the surface's frame S, return the point P on the surface that is the furthest in that direction (or one of those points if there is more than one). More...
|
|
ContactGeometryTypeId | getTypeId () const |
| ContactTrackerSubsystem uses this id for fast identification of specific surface shapes. More...
|
|
| ContactGeometry (ContactGeometryImpl *impl) |
| Internal use only. More...
|
|
bool | isOwnerHandle () const |
| Internal use only. More...
|
|
bool | isEmptyHandle () const |
| Internal use only. More...
|
|
bool | hasImpl () const |
| Internal use only. More...
|
|
const ContactGeometryImpl & | getImpl () const |
| Internal use only. More...
|
|
ContactGeometryImpl & | updImpl () |
| Internal use only. More...
|
|
void | initGeodesic (const Vec3 &xP, const Vec3 &xQ, const Vec3 &xSP, const GeodesicOptions &options, Geodesic &geod) const |
| Given two points, find a geodesic curve connecting them. More...
|
|
void | continueGeodesic (const Vec3 &xP, const Vec3 &xQ, const Geodesic &prevGeod, const GeodesicOptions &options, Geodesic &geod) const |
| Given the current positions of two points P and Q moving on this surface, and the previous geodesic curve G' connecting prior locations P' and Q' of those same two points, return the geodesic G between P and Q that is closest in length to the previous one. More...
|
|
void | makeStraightLineGeodesic (const Vec3 &xP, const Vec3 &xQ, const UnitVec3 &defaultDirectionIfNeeded, const GeodesicOptions &options, Geodesic &geod) const |
| Produce a straight-line approximation to the (presumably short) geodesic between two points on this implicit surface. More...
|
|
void | shootGeodesicInDirectionUntilLengthReached (const Vec3 &xP, const UnitVec3 &tP, const Real &terminatingLength, const GeodesicOptions &options, Geodesic &geod) const |
| Compute a geodesic curve starting at the given point, starting in the given direction, and terminating at the given length. More...
|
|
void | calcGeodesicReverseSensitivity (Geodesic &geodesic, const Vec2 &initSensitivity=Vec2(0, 1)) const |
| Given an already-calculated geodesic on this surface connecting points P and Q, fill in the sensitivity of point P with respect to a change of tangent direction at Q. More...
|
|
void | shootGeodesicInDirectionUntilPlaneHit (const Vec3 &xP, const UnitVec3 &tP, const Plane &terminatingPlane, const GeodesicOptions &options, Geodesic &geod) const |
| Compute a geodesic curve starting at the given point, starting in the given direction, and terminating when it hits the given plane. More...
|
|
void | calcGeodesic (const Vec3 &xP, const Vec3 &xQ, const Vec3 &tPhint, const Vec3 &tQhint, Geodesic &geod) const |
| Utility method to find geodesic between P and Q using split geodesic method with initial shooting directions tPhint and -tQhint. More...
|
|
void | calcGeodesicUsingOrthogonalMethod (const Vec3 &xP, const Vec3 &xQ, const Vec3 &tPhint, Real lengthHint, Geodesic &geod) const |
| Utility method to find geodesic between P and Q using the orthogonal method, with initial direction tPhint and initial length lengthHint. More...
|
|
void | calcGeodesicUsingOrthogonalMethod (const Vec3 &xP, const Vec3 &xQ, Geodesic &geod) const |
| This signature makes a guess at the initial direction and length and then calls the other signature. More...
|
|
Vec2 | calcSplitGeodError (const Vec3 &P, const Vec3 &Q, const UnitVec3 &tP, const UnitVec3 &tQ, Geodesic *geod=0) const |
| Utility method to calculate the "geodesic error" between one geodesic shot from P in the direction tP and another geodesic shot from Q in the direction tQ. More...
|
|
void | shootGeodesicInDirectionUntilLengthReachedAnalytical (const Vec3 &xP, const UnitVec3 &tP, const Real &terminatingLength, const GeodesicOptions &options, Geodesic &geod) const |
| Analytically compute a geodesic curve starting at the given point, starting in the given direction, and terminating at the given length. More...
|
|
void | shootGeodesicInDirectionUntilPlaneHitAnalytical (const Vec3 &xP, const UnitVec3 &tP, const Plane &terminatingPlane, const GeodesicOptions &options, Geodesic &geod) const |
| Analytically compute a geodesic curve starting at the given point, starting in the given direction, and terminating when it hits the given plane. More...
|
|
void | calcGeodesicAnalytical (const Vec3 &xP, const Vec3 &xQ, const Vec3 &tPhint, const Vec3 &tQhint, Geodesic &geod) const |
| Utility method to analytically find geodesic between P and Q with initial shooting directions tPhint and tQhint. More...
|
|
Vec2 | calcSplitGeodErrorAnalytical (const Vec3 &P, const Vec3 &Q, const UnitVec3 &tP, const UnitVec3 &tQ, Geodesic *geod=0) const |
|
Utility method to analytically calculate the "geodesic error" between one geodesic shot from P in the direction tP and another geodesic shot from Q in the direction tQ. More...
|
|
const Plane & | getPlane () const |
| Get the plane associated with the geodesic hit plane event handler. More...
|
|
void | setPlane (const Plane &plane) const |
| Set the plane associated with the geodesic hit plane event handler. More...
|
|
const Geodesic & | getGeodP () const |
| Get the geodesic for access by visualizer. More...
|
|
const Geodesic & | getGeodQ () const |
| Get the geodesic for access by visualizer. More...
|
|
const int | getNumGeodesicsShot () const |
| Get the plane associated with the geodesic hit plane event handler. More...
|
|
void | addVizReporter (ScheduledEventReporter *reporter) const |
| Get the plane associated with the geodesic hit plane event handler. More...
|
|
This ContactGeometry subclass represents a smooth surface fit through a set of sampled points using bicubic patches to provide C2 continuity.
It is particularly useful as a bounded terrain. The boundary is an axis-aligned rectangle in the local x-y plane. Within the boundary, every (x,y) location has a unique height z, so caves and overhangs cannot be represented.
The surface is parameterized as z=f(x,y) where x,y,z are measured in the surface's local coordinate frame. This can also be described as the implicit function F(x,y,z)=f(x,y)-z=0, as though this were an infinitely thick slab in the -z direction below the surface.