OpenSceneGraph 2.8.4
Public Types | Public Member Functions | Protected Attributes
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< Vec3f > &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 variable.
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.


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

Vec4_type osg::Plane::asVec4 ( ) const [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.

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

calculate the distance between a point and the plane.

References osg::Vec3f::x(), osg::Vec3f::y(), and osg::Vec3f::z().

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.

References osg::Vec3f::x(), osg::Vec3f::y(), and osg::Vec3f::z().

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

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

References osg::Vec3d::x(), osg::Vec3d::y(), and osg::Vec3d::z().

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

flip/reverse the orientation of the plane.

Vec3_type osg::Plane::getNormal ( ) const [inline]
int osg::Plane::intersect ( const std::vector< Vec3f > &  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.

References osg::BoundingSphereImpl< VT >::center(), and osg::BoundingSphereImpl< VT >::radius().

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.

References osg::BoundingBoxImpl< VT >::corner().

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

References osg::isNaN().

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

References _fv.

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

References _fv.

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

References _fv.

value_type& osg::Plane::operator[] ( unsigned int  i) [inline]
value_type osg::Plane::operator[] ( unsigned int  i) const [inline]
value_type* osg::Plane::ptr ( ) [inline]
const value_type* osg::Plane::ptr ( ) const [inline]
void osg::Plane::set ( const Vec4f vec) [inline]
void osg::Plane::set ( const Plane pl) [inline]

References _fv.

void osg::Plane::set ( const Vec4d vec) [inline]
void osg::Plane::set ( const Vec3_type norm,
const Vec3_type point 
) [inline]
void osg::Plane::set ( value_type  a,
value_type  b,
value_type  c,
value_type  d 
) [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::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

References osg::Matrixd::invert().

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

Transform the plane by providing a pre inverted matrix.

see transform for details.

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

References osg::isNaN().


Member Data Documentation

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

Vec member variable.

Referenced by operator!=(), operator<(), operator==(), and set().

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

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

osg logo
Generated at Sun Jan 8 2012 13:16:16 for the OpenSceneGraph by doxygen 1.7.4.