OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::ConvexBody Class Reference

Holds a solid representation of a convex body. More...

#include <OgreConvexBody.h>

Public Types

typedef vector< Polygon * >::type PolygonList
 

Public Member Functions

 ConvexBody ()
 
 ConvexBody (const ConvexBody &cpy)
 
 ~ConvexBody ()
 
void clip (const AxisAlignedBox &aab)
 Clips the body with an AAB. More...
 
void clip (const ConvexBody &body)
 Clips the body with another body. More...
 
void clip (const Frustum &frustum)
 Clips the body with a frustum. More...
 
void clip (const Plane &pl, bool keepNegative=true)
 Clips the object by the positive half space of a plane. More...
 
void define (const AxisAlignedBox &aab)
 Build a new polygon representation from an AAB. More...
 
void define (const Frustum &frustum)
 Build a new polygon representation from a frustum. More...
 
void define (const Vector3 corners[8])
 Build a new polygon representation from an axis-UNaligned box. More...
 
void extend (const Vector3 &pt)
 Extends the existing body to incorporate the passed in point as a convex hull. More...
 
AxisAlignedBox getAABB () const
 Returns an AABB representation. More...
 
const Vector3getNormal (size_t poly)
 Returns the normal of a specified polygon. More...
 
const PolygongetPolygon (size_t poly) const
 Returns a polygon. More...
 
size_t getPolygonCount () const
 Returns the current number of polygons. More...
 
const Vector3getVertex (size_t poly, size_t vertex) const
 Returns a specific vertex of a polygon. More...
 
size_t getVertexCount (size_t poly) const
 Returns the number of vertices for a polygon. More...
 
bool hasClosedHull () const
 Checks if the body has a closed hull. More...
 
void logInfo () const
 Log details of this body. More...
 
void mergePolygons ()
 Merges all neighboring polygons into one single polygon if they are lay in the same plane. More...
 
bool operator!= (const ConvexBody &rhs) const
 Determines if the current object is not equal to the compared one. More...
 
bool operator== (const ConvexBody &rhs) const
 Determines if the current object is equal to the compared one. More...
 
void reset ()
 Resets the object. More...
 

Static Public Member Functions

static void _destroyPool ()
 Tear down the internal polygon pool used to minimise allocations. More...
 
static void _initialisePool ()
 Initialise the internal polygon pool used to minimise allocations. More...
 

Friends

_OgreExport friend std::ostream & operator<< (std::ostream &strm, const ConvexBody &body)
 Prints out the body with all its polygons. More...
 

Detailed Description

Holds a solid representation of a convex body.

Remarks
Administers a convex body. All polygons of the body are convex and planar. Several operations may be applied, ranging from intersection to join where each result it itself a convex body.

Member Typedef Documentation

◆ PolygonList

typedef vector< Polygon* >::type Ogre::ConvexBody::PolygonList

Constructor & Destructor Documentation

◆ ConvexBody() [1/2]

Ogre::ConvexBody::ConvexBody ( )

◆ ~ConvexBody()

Ogre::ConvexBody::~ConvexBody ( )

◆ ConvexBody() [2/2]

Ogre::ConvexBody::ConvexBody ( const ConvexBody cpy)

Member Function Documentation

◆ _destroyPool()

static void Ogre::ConvexBody::_destroyPool ( )
static

Tear down the internal polygon pool used to minimise allocations.

◆ _initialisePool()

static void Ogre::ConvexBody::_initialisePool ( )
static

Initialise the internal polygon pool used to minimise allocations.

◆ clip() [1/4]

void Ogre::ConvexBody::clip ( const AxisAlignedBox aab)

Clips the body with an AAB.

The resulting holes are filled with new polygons.

◆ clip() [2/4]

void Ogre::ConvexBody::clip ( const ConvexBody body)

Clips the body with another body.

◆ clip() [3/4]

void Ogre::ConvexBody::clip ( const Frustum frustum)

Clips the body with a frustum.

The resulting holes are filled with new polygons.

◆ clip() [4/4]

void Ogre::ConvexBody::clip ( const Plane pl,
bool  keepNegative = true 
)

Clips the object by the positive half space of a plane.

◆ define() [1/3]

void Ogre::ConvexBody::define ( const AxisAlignedBox aab)

Build a new polygon representation from an AAB.

◆ define() [2/3]

void Ogre::ConvexBody::define ( const Frustum frustum)

Build a new polygon representation from a frustum.

◆ define() [3/3]

void Ogre::ConvexBody::define ( const Vector3  corners[8])

Build a new polygon representation from an axis-UNaligned box.

◆ extend()

void Ogre::ConvexBody::extend ( const Vector3 pt)

Extends the existing body to incorporate the passed in point as a convex hull.

Remarks
You must already have constructed a basic body using a 'construct' method.

◆ getAABB()

AxisAlignedBox Ogre::ConvexBody::getAABB ( ) const

Returns an AABB representation.

◆ getNormal()

const Vector3& Ogre::ConvexBody::getNormal ( size_t  poly)

Returns the normal of a specified polygon.

◆ getPolygon()

const Polygon& Ogre::ConvexBody::getPolygon ( size_t  poly) const

Returns a polygon.

◆ getPolygonCount()

size_t Ogre::ConvexBody::getPolygonCount ( ) const

Returns the current number of polygons.

◆ getVertex()

const Vector3& Ogre::ConvexBody::getVertex ( size_t  poly,
size_t  vertex 
) const

Returns a specific vertex of a polygon.

◆ getVertexCount()

size_t Ogre::ConvexBody::getVertexCount ( size_t  poly) const

Returns the number of vertices for a polygon.

◆ hasClosedHull()

bool Ogre::ConvexBody::hasClosedHull ( ) const

Checks if the body has a closed hull.

◆ logInfo()

void Ogre::ConvexBody::logInfo ( ) const

Log details of this body.

◆ mergePolygons()

void Ogre::ConvexBody::mergePolygons ( )

Merges all neighboring polygons into one single polygon if they are lay in the same plane.

◆ operator!=()

bool Ogre::ConvexBody::operator!= ( const ConvexBody rhs) const
inline

Determines if the current object is not equal to the compared one.

◆ operator==()

bool Ogre::ConvexBody::operator== ( const ConvexBody rhs) const

Determines if the current object is equal to the compared one.

◆ reset()

void Ogre::ConvexBody::reset ( )

Resets the object.

Friends And Related Function Documentation

◆ operator<<

_OgreExport friend std::ostream& operator<< ( std::ostream &  strm,
const ConvexBody body 
)
friend

Prints out the body with all its polygons.


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