HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GfPlane Class Reference

#include <plane.h>

Public Member Functions

 GfPlane ()
 The default constructor leaves the plane parameters undefined. More...
 
 GfPlane (const GfVec3d &normal, double distanceToOrigin)
 
 GfPlane (const GfVec3d &normal, const GfVec3d &point)
 
 GfPlane (const GfVec3d &p0, const GfVec3d &p1, const GfVec3d &p2)
 
 GfPlane (const GfVec4d &eqn)
 
void Set (const GfVec3d &normal, double distanceToOrigin)
 
GF_API void Set (const GfVec3d &normal, const GfVec3d &point)
 
GF_API void Set (const GfVec3d &p0, const GfVec3d &p1, const GfVec3d &p2)
 
GF_API void Set (const GfVec4d &eqn)
 
const GfVec3dGetNormal () const
 Returns the unit-length normal vector of the plane. More...
 
double GetDistanceFromOrigin () const
 Returns the distance of the plane from the origin. More...
 
GF_API GfVec4d GetEquation () const
 
bool operator== (const GfPlane &p) const
 
bool operator!= (const GfPlane &p) const
 
double GetDistance (const GfVec3d &p) const
 
GfVec3d Project (const GfVec3d &p) const
 Return the projection of p onto the plane. More...
 
GF_API GfPlaneTransform (const GfMatrix4d &matrix)
 Transforms the plane by the given matrix. More...
 
void Reorient (const GfVec3d &p)
 
GF_API bool IntersectsPositiveHalfSpace (const GfRange3d &box) const
 
bool IntersectsPositiveHalfSpace (const GfVec3d &pt) const
 

Detailed Description

Basic type: 3-dimensional plane

This class represents a three-dimensional plane as a normal vector and the distance of the plane from the origin, measured along the normal. The plane can also be used to represent a half-space: the side of the plane in the direction of the normal.

Definition at line 53 of file plane.h.

Constructor & Destructor Documentation

GfPlane::GfPlane ( )
inline

The default constructor leaves the plane parameters undefined.

Definition at line 58 of file plane.h.

GfPlane::GfPlane ( const GfVec3d normal,
double  distanceToOrigin 
)
inline

This constructor sets this to the plane perpendicular to normal and at distance units from the origin. The passed-in normal is normalized to unit length first.

Definition at line 64 of file plane.h.

GfPlane::GfPlane ( const GfVec3d normal,
const GfVec3d point 
)
inline

This constructor sets this to the plane perpendicular to normal and that passes through point. The passed-in normal is normalized to unit length first.

Definition at line 71 of file plane.h.

GfPlane::GfPlane ( const GfVec3d p0,
const GfVec3d p1,
const GfVec3d p2 
)
inline

This constructor sets this to the plane that contains the three given points. The normal is constructed from the cross product of (p1 - p0) (p2 - p0). Results are undefined if the points are collinear.

Definition at line 79 of file plane.h.

GfPlane::GfPlane ( const GfVec4d eqn)
inline

This constructor creates a plane given by the equation eqn[0] * x + eqn[1] * y + eqn[2] * z + eqn[3] = 0.

Definition at line 85 of file plane.h.

Member Function Documentation

double GfPlane::GetDistance ( const GfVec3d p) const
inline

Returns the distance of point from the plane. This distance will be positive if the point is on the side of the plane containing the normal.

Definition at line 148 of file plane.h.

double GfPlane::GetDistanceFromOrigin ( ) const
inline

Returns the distance of the plane from the origin.

Definition at line 123 of file plane.h.

GF_API GfVec4d GfPlane::GetEquation ( ) const

Give the coefficients of the equation of the plane. Suitable to OpenGL calls to set the clipping plane.

const GfVec3d& GfPlane::GetNormal ( ) const
inline

Returns the unit-length normal vector of the plane.

Definition at line 118 of file plane.h.

GF_API bool GfPlane::IntersectsPositiveHalfSpace ( const GfRange3d box) const

Returns true if the given aligned bounding box is at least partially on the positive side (the one the normal points into) of the plane.

bool GfPlane::IntersectsPositiveHalfSpace ( const GfVec3d pt) const
inline

Returns true if the given point is on the plane or within its positive half space.

Definition at line 178 of file plane.h.

bool GfPlane::operator!= ( const GfPlane p) const
inline

Component-wise inequality test. The normals and distances must match exactly for planes to be considered equal.

Definition at line 141 of file plane.h.

bool GfPlane::operator== ( const GfPlane p) const
inline

Component-wise equality test. The normals and distances must match exactly for planes to be considered equal.

Definition at line 134 of file plane.h.

GfVec3d GfPlane::Project ( const GfVec3d p) const
inline

Return the projection of p onto the plane.

Definition at line 153 of file plane.h.

void GfPlane::Reorient ( const GfVec3d p)
inline

Flip the plane normal (if necessary) so that p is in the positive halfspace.

Definition at line 163 of file plane.h.

void GfPlane::Set ( const GfVec3d normal,
double  distanceToOrigin 
)
inline

Sets this to the plane perpendicular to normal and at distance units from the origin. The passed-in normal is normalized to unit length first.

Definition at line 92 of file plane.h.

GF_API void GfPlane::Set ( const GfVec3d normal,
const GfVec3d point 
)

This constructor sets this to the plane perpendicular to normal and that passes through point. The passed-in normal is normalized to unit length first.

GF_API void GfPlane::Set ( const GfVec3d p0,
const GfVec3d p1,
const GfVec3d p2 
)

This constructor sets this to the plane that contains the three given points. The normal is constructed from the cross product of (p1 - p0) (p2 - p0). Results are undefined if the points are collinear.

GF_API void GfPlane::Set ( const GfVec4d eqn)

This method sets this to the plane given by the equation eqn[0] * x + eqn[1] * y + eqn[2] * z + eqn[3] = 0.

GF_API GfPlane& GfPlane::Transform ( const GfMatrix4d matrix)

Transforms the plane by the given matrix.


The documentation for this class was generated from the following file: