
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) | |
| Plane & | operator= (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_type * | ptr () |
| const value_type * | ptr () const |
| Vec4_type | asVec4 () const |
| value_type & | operator[] (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 |
It can be used to represent an infinite plane.
| typedef double osg::Plane::value_type |
Type of Plane class.
| typedef Vec3d osg::Plane::Vec3_type |
| typedef Vec4d osg::Plane::Vec4_type |
| 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] |
| 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::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.
value_type osg::Plane::_fv[4] [protected] |
Vec member varaible.
unsigned int osg::Plane::_upperBBCorner [protected] |
unsigned int osg::Plane::_lowerBBCorner [protected] |