Defines a plane in 3D space. More...
#include <OgrePlane.h>
Public Types | |
enum | Side { NO_SIDE, POSITIVE_SIDE, NEGATIVE_SIDE, BOTH_SIDE } |
The "positive side" of the plane is the half space to which the plane normal points. More... | |
Public Member Functions | |
Plane () | |
Default constructor - sets everything to 0. | |
Plane (const Plane &rhs) | |
Plane (const Vector3 &rkNormal, Real fConstant) | |
Construct a plane through a normal, and a distance to move the plane along the normal. | |
Plane (Real a, Real b, Real c, Real d) | |
Construct a plane using the 4 constants directly. | |
Plane (const Vector3 &rkNormal, const Vector3 &rkPoint) | |
Plane (const Vector3 &rkPoint0, const Vector3 &rkPoint1, const Vector3 &rkPoint2) | |
Side | getSide (const Vector3 &rkPoint) const |
Side | getSide (const AxisAlignedBox &rkBox) const |
Returns the side where the alignedBox is. | |
Side | getSide (const Vector3 ¢re, const Vector3 &halfSize) const |
Returns which side of the plane that the given box lies on. | |
Real | getDistance (const Vector3 &rkPoint) const |
This is a pseudodistance. | |
void | redefine (const Vector3 &rkPoint0, const Vector3 &rkPoint1, const Vector3 &rkPoint2) |
Redefine this plane based on 3 points. | |
void | redefine (const Vector3 &rkNormal, const Vector3 &rkPoint) |
Redefine this plane based on a normal and a point. | |
Vector3 | projectVector (const Vector3 &v) const |
Project a vector onto the plane. | |
Real | normalise (void) |
Normalises the plane. | |
bool | operator== (const Plane &rhs) const |
Comparison operator. | |
bool | operator!= (const Plane &rhs) const |
Public Attributes | |
Vector3 | normal |
Real | d |
Friends | |
_OgreExport friend std::ostream & | operator<< (std::ostream &o, const Plane &p) |
Defines a plane in 3D space.
Definition at line 61 of file OgrePlane.h.
enum Ogre::Plane::Side |
The "positive side" of the plane is the half space to which the plane normal points.
The "negative side" is the other half space. The flag "no side" indicates the plane itself.
Definition at line 80 of file OgrePlane.h.
Ogre::Plane::Plane | ( | ) |
Default constructor - sets everything to 0.
Ogre::Plane::Plane | ( | const Plane & | rhs | ) |
Construct a plane through a normal, and a distance to move the plane along the normal.
Construct a plane using the 4 constants directly.
This is a pseudodistance.
The sign of the return value is positive if the point is on the positive side of the plane, negative if the point is on the negative side, and zero if the point is on the plane.
Referenced by Ogre::PlaneBoundedVolume::intersects().
Returns which side of the plane that the given box lies on.
The box is defined as centre/half-size pairs for effectively.
centre | The centre of the box. | |
halfSize | The half-size of the box. |
Side Ogre::Plane::getSide | ( | const AxisAlignedBox & | rkBox | ) | const |
Returns the side where the alignedBox is.
The flag BOTH_SIDE indicates an intersecting box. One corner ON the plane is sufficient to consider the box and the plane intersecting.
Referenced by Ogre::PlaneBoundedVolume::intersects().
Real Ogre::Plane::normalise | ( | void | ) |
Normalises the plane.
bool Ogre::Plane::operator!= | ( | const Plane & | rhs | ) | const |
Definition at line 152 of file OgrePlane.h.
bool Ogre::Plane::operator== | ( | const Plane & | rhs | ) | const |
Project a vector onto the plane.
v | The input vector |
Redefine this plane based on a normal and a point.
void Ogre::Plane::redefine | ( | const Vector3 & | rkPoint0, | |
const Vector3 & | rkPoint1, | |||
const Vector3 & | rkPoint2 | |||
) |
Redefine this plane based on 3 points.
_OgreExport friend std::ostream& operator<< | ( | std::ostream & | o, | |
const Plane & | p | |||
) | [friend] |
Definition at line 145 of file OgrePlane.h.
Referenced by operator!=(), Ogre::Matrix4::operator*(), and operator==().
Definition at line 144 of file OgrePlane.h.
Referenced by operator!=(), Ogre::Matrix4::operator*(), and operator==().
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:38:57 2012