osg::Plane Class Reference

A plane class. More...

Inheritance diagram for osg::Plane:

Inheritance graph
[legend]

List of all members.

Public Types

enum  { num_components = 3 }
 Number of vector components. More...
typedef double value_type
 Type of Plane class.
typedef Vec3d Vec3_type
typedef Vec4d Vec4_type

Public Member Functions

 Plane ()
 Plane (const Plane &pl)
 Plane (value_type a, value_type b, value_type c, value_type d)
 Plane (const Vec4f &vec)
 Plane (const Vec4d &vec)
 Plane (const Vec3_type &norm, value_type d)
 Plane (const Vec3_type &v1, const Vec3_type &v2, const Vec3_type &v3)
 Plane (const Vec3_type &norm, const Vec3_type &point)
Planeoperator= (const Plane &pl)
void set (const Plane &pl)
void set (value_type a, value_type b, value_type c, value_type d)
void set (const Vec4f &vec)
void set (const Vec4d &vec)
void set (const Vec3_type &norm, double d)
void set (const Vec3_type &v1, const Vec3_type &v2, const Vec3_type &v3)
void set (const Vec3_type &norm, const Vec3_type &point)
void flip ()
 flip/reverse the orientation of the plane.
void makeUnitLength ()
void calculateUpperLowerBBCorners ()
 calculate the upper and lower bounding box corners to be used in the intersect(BoundingBox&) method for speeding calculations.
bool valid () const
bool isNaN () const
bool operator== (const Plane &plane) const
bool operator!= (const Plane &plane) const
bool operator< (const Plane &plane) const
value_typeptr ()
const value_typeptr () const
Vec4_type asVec4 () const
value_typeoperator[] (unsigned int i)
value_type operator[] (unsigned int i) const
Vec3_type getNormal () const
float distance (const osg::Vec3f &v) const
 calculate the distance between a point and the plane.
double distance (const osg::Vec3d &v) const
float dotProductNormal (const osg::Vec3f &v) const
 calculate the dot product of the plane normal and a point.
double dotProductNormal (const osg::Vec3d &v) const
 calculate the dot product of the plane normal and a point.
int intersect (const std::vector< Vec3 > &vertices) const
 intersection test between plane and vertex list return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.
int intersect (const std::vector< Vec3d > &vertices) const
 intersection test between plane and vertex list return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.
int intersect (const BoundingSphere &bs) const
 intersection test between plane and bounding sphere.
int intersect (const BoundingBox &bb) const
 intersection test between plane and bounding sphere.
void transform (const osg::Matrix &matrix)
 Transform the plane by matrix.
void transformProvidingInverse (const osg::Matrix &matrix)
 Transform the plane by providing a pre inverted matrix.

Protected Attributes

value_type _fv [4]
 Vec member varaible.
unsigned int _upperBBCorner
unsigned int _lowerBBCorner


Detailed Description

A plane class.

It can be used to represent an infinite plane.


Member Typedef Documentation

typedef double osg::Plane::value_type

Type of Plane class.

typedef Vec3d osg::Plane::Vec3_type

typedef Vec4d osg::Plane::Vec4_type


Member Enumeration Documentation

anonymous enum

Number of vector components.

Enumerator:
num_components 


Constructor & Destructor Documentation

osg::Plane::Plane (  )  [inline]

osg::Plane::Plane ( const Plane pl  )  [inline]

osg::Plane::Plane ( value_type  a,
value_type  b,
value_type  c,
value_type  d 
) [inline]

osg::Plane::Plane ( const Vec4f vec  )  [inline]

osg::Plane::Plane ( const Vec4d vec  )  [inline]

osg::Plane::Plane ( const Vec3_type norm,
value_type  d 
) [inline]

osg::Plane::Plane ( const Vec3_type v1,
const Vec3_type v2,
const Vec3_type v3 
) [inline]

osg::Plane::Plane ( const Vec3_type norm,
const Vec3_type point 
) [inline]


Member Function Documentation

Plane& osg::Plane::operator= ( const Plane pl  )  [inline]

void osg::Plane::set ( const Plane pl  )  [inline]

void osg::Plane::set ( value_type  a,
value_type  b,
value_type  c,
value_type  d 
) [inline]

void osg::Plane::set ( const Vec4f vec  )  [inline]

void osg::Plane::set ( const Vec4d vec  )  [inline]

void osg::Plane::set ( const Vec3_type norm,
double  d 
) [inline]

void osg::Plane::set ( const Vec3_type v1,
const Vec3_type v2,
const Vec3_type v3 
) [inline]

void osg::Plane::set ( const Vec3_type norm,
const Vec3_type point 
) [inline]

void osg::Plane::flip (  )  [inline]

flip/reverse the orientation of the plane.

void osg::Plane::makeUnitLength (  )  [inline]

void osg::Plane::calculateUpperLowerBBCorners (  )  [inline]

calculate the upper and lower bounding box corners to be used in the intersect(BoundingBox&) method for speeding calculations.

bool osg::Plane::valid (  )  const [inline]

bool osg::Plane::isNaN (  )  const [inline]

bool osg::Plane::operator== ( const Plane plane  )  const [inline]

bool osg::Plane::operator!= ( const Plane plane  )  const [inline]

bool osg::Plane::operator< ( const Plane plane  )  const [inline]

value_type* osg::Plane::ptr (  )  [inline]

const value_type* osg::Plane::ptr (  )  const [inline]

Vec4_type osg::Plane::asVec4 (  )  const [inline]

value_type& osg::Plane::operator[] ( unsigned int  i  )  [inline]

value_type osg::Plane::operator[] ( unsigned int  i  )  const [inline]

Vec3_type osg::Plane::getNormal (  )  const [inline]

float osg::Plane::distance ( const osg::Vec3f v  )  const [inline]

calculate the distance between a point and the plane.

double osg::Plane::distance ( const osg::Vec3d v  )  const [inline]

float osg::Plane::dotProductNormal ( const osg::Vec3f v  )  const [inline]

calculate the dot product of the plane normal and a point.

double osg::Plane::dotProductNormal ( const osg::Vec3d v  )  const [inline]

calculate the dot product of the plane normal and a point.

int osg::Plane::intersect ( const std::vector< Vec3 > &  vertices  )  const [inline]

intersection test between plane and vertex list return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.

int osg::Plane::intersect ( const std::vector< Vec3d > &  vertices  )  const [inline]

intersection test between plane and vertex list return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.

int osg::Plane::intersect ( const BoundingSphere bs  )  const [inline]

intersection test between plane and bounding sphere.

return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.

int osg::Plane::intersect ( const BoundingBox bb  )  const [inline]

intersection test between plane and bounding sphere.

return 1 if the bs is completely above plane, return 0 if the bs intersects the plane, return -1 if the bs is completely below the plane.

void osg::Plane::transform ( const osg::Matrix matrix  )  [inline]

Transform the plane by matrix.

Note, this operation carries out the calculation of the inverse of the matrix since a plane must be multiplied by the inverse transposed to transform it. This make this operation expensive. If the inverse has been already calculated elsewhere then use transformProvidingInverse() instead. See http://www.worldserver.com/turk/computergraphics/NormalTransformations.pdf

void osg::Plane::transformProvidingInverse ( const osg::Matrix matrix  )  [inline]

Transform the plane by providing a pre inverted matrix.

see transform for details.


Member Data Documentation

value_type osg::Plane::_fv[4] [protected]

Vec member varaible.

unsigned int osg::Plane::_upperBBCorner [protected]

unsigned int osg::Plane::_lowerBBCorner [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:13 2007 for the OpenSceneGraph by doxygen 1.5.3.