OGRE  1.10.12
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 Frustum &frustum)
 Clips the body with a frustum. More...
 
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 Plane &pl, bool keepNegative=true)
 Clips the object by the positive half space of a plane. More...
 
void define (const Frustum &frustum)
 Build a new polygon representation from a frustum. More...
 
void define (const AxisAlignedBox &aab)
 Build a new polygon representation from an AAB. More...
 
void extend (const Vector3 &pt)
 Extends the existing body to incorporate the passed in point as a convex hull. More...
 
AxisAlignedBox getAABB (void) 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 (void) 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 (void) const
 Checks if the body has a closed hull. More...
 
void logInfo () const
 Log details of this body. More...
 
void mergePolygons (void)
 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 (void)
 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

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

◆ define() [1/2]

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

Build a new polygon representation from a frustum.

◆ define() [2/2]

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

Build a new polygon representation from an AAB.

◆ clip() [1/4]

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

Clips the body with a frustum.

The resulting holes are filled with new polygons.

◆ clip() [2/4]

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

Clips the body with an AAB.

The resulting holes are filled with new polygons.

◆ clip() [3/4]

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

Clips the body with another body.

◆ clip() [4/4]

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

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

◆ 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.

◆ reset()

void Ogre::ConvexBody::reset ( void  )

Resets the object.

◆ getPolygonCount()

size_t Ogre::ConvexBody::getPolygonCount ( void  ) const

Returns the current number of polygons.

◆ getVertexCount()

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

Returns the number of vertices for a polygon.

◆ getPolygon()

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

Returns a polygon.

◆ getVertex()

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

Returns a specific vertex of a polygon.

◆ getNormal()

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

Returns the normal of a specified polygon.

◆ getAABB()

AxisAlignedBox Ogre::ConvexBody::getAABB ( void  ) const

Returns an AABB representation.

◆ hasClosedHull()

bool Ogre::ConvexBody::hasClosedHull ( void  ) const

Checks if the body has a closed hull.

◆ mergePolygons()

void Ogre::ConvexBody::mergePolygons ( void  )

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

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

◆ operator!=()

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

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

References Ogre::operator<<().

◆ logInfo()

void Ogre::ConvexBody::logInfo ( ) const

Log details of this body.

◆ _initialisePool()

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

Initialise the internal polygon pool used to minimise allocations.

◆ _destroyPool()

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

Tear down the internal polygon pool used to minimise allocations.

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: