![]() |
OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
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 Vector3 &p0, const Vector3 &p1, const Vector3 &p2) | |
Plane (const Vector3 &rkNormal, const Vector3 &rkPoint) | |
Plane (const Vector3 &rkNormal, Real fConstant) | |
Construct a plane through a normal, and a distance to move the plane along the normal. | |
Plane (const Vector4 &v) | |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Plane (Real a, Real b, Real c, Real _d) | |
Construct a plane using the 4 constants directly. | |
Real | getDistance (const Vector3 &rkPoint) const |
This is a pseudodistance. | |
Side | getSide (const AxisAlignedBox &box) 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. | |
Side | getSide (const Vector3 &rkPoint) const |
Real | normalise (void) |
Normalises the plane. | |
bool | operator!= (const Plane &rhs) const |
Plane | operator- () const |
Get flipped plane, with same location but reverted orientation. | |
bool | operator== (const Plane &rhs) const |
Comparison operator. | |
Vector3 | projectVector (const Vector3 &v) const |
Project a vector onto the plane. | |
void | redefine (const Vector3 &p0, const Vector3 &p1, const Vector3 &p2) |
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. | |
Public Attributes | |
Real | d |
Vector3 | normal |
Defines a plane in 3D space.
A plane is defined in 3D space by the equation
enum Ogre::Plane::Side |
|
inline |
Default constructor - sets everything to 0.
Referenced by Ogre::MovablePlane::MovablePlane(), Ogre::PCPlane::PCPlane(), Ogre::MovablePlane::_getDerivedPlane(), operator!=(), operator-(), operator<<, operator==(), and Ogre::PCPlane::setFromOgrePlane().
|
inlineexplicit |
References redefine().
References redefine().
References getDistance(), NEGATIVE_SIDE, NO_SIDE, and POSITIVE_SIDE.
Referenced by getSide(), Ogre::Math::intersects(), and Ogre::PlaneBoundedVolume::intersects().
|
inline |
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.
References BOTH_SIDE, Ogre::AxisAlignedBox::getCenter(), Ogre::AxisAlignedBox::getHalfSize(), getSide(), Ogre::AxisAlignedBox::isInfinite(), Ogre::AxisAlignedBox::isNull(), and NO_SIDE.
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. |
References BOTH_SIDE, getDistance(), NEGATIVE_SIDE, normal, and POSITIVE_SIDE.
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 getSide(), getSide(), Ogre::PlaneBoundedVolume::intersects(), and Ogre::Sphere::intersects().
Redefine this plane based on 3 points.
References Ogre::Math::calculateBasicFaceNormal(), d, and normal.
Redefine this plane based on a normal and a point.
References d, Ogre::Vector< dims, T >::dotProduct(), and normal.
Project a vector onto the plane.
v | The input vector |
References normal.
|
inline |
|
inline |
|
inline |
Vector3 Ogre::Plane::normal |
Real Ogre::Plane::d |
Referenced by Plane(), Plane(), Plane(), Plane(), getDistance(), Ogre::Ray::intersects(), normalise(), operator!=(), Ogre::operator*(), operator-(), operator<<, operator==(), redefine(), and redefine().