OGRE: Ogre::ConvexBody Class Reference

| OGRE 14.5 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::ConvexBody Class Reference
Core » Math

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

`#include <OgreConvexBody.h>`

## Public Types
typedef std::vector< Polygon * > | PolygonList

## Public Member Functions
| ConvexBody ()
| ConvexBody (const ConvexBody &cpy)
| ~ConvexBody ()
void | clip (const AxisAlignedBox &aab)
| Clips the body with an AAB.
void | clip (const ConvexBody &body)
| Clips the body with another body.
void | clip (const Frustum &frustum)
| Clips the body with a frustum.
void | clip (const Plane &pl, bool keepNegative=true)
| Clips the object by the positive half space of a plane.
void | define (const AxisAlignedBox &aab)
| Build a new polygon representation from an AAB.
void | define (const Frustum &frustum)
| Build a new polygon representation from a frustum.
void | extend (const Vector3 &pt)
| Extends the existing body to incorporate the passed in point as a convex hull.
AxisAlignedBox | getAABB (void) const
| Returns an AABB representation.
const Vector3 & | getNormal (size_t poly)
| Returns the normal of a specified polygon.
const Polygon & | getPolygon (size_t poly) const
| Returns a polygon.
size_t | getPolygonCount (void) const
| Returns the current number of polygons.
const Vector3 & | getVertex (size_t poly, size_t vertex) const
| Returns a specific vertex of a polygon.
size_t | getVertexCount (size_t poly) const
| Returns the number of vertices for a polygon.
bool | hasClosedHull (void) const
| Checks if the body has a closed hull.
void | mergePolygons (void)
| Merges all neighboring polygons into one single polygon if they are lay in the same plane.
bool | operator!= (const ConvexBody &rhs) const
| Determines if the current object is not equal to the compared one.
bool | operator== (const ConvexBody &rhs) const
| Determines if the current object is equal to the compared one.
void | reset (void)
| Resets the object.

## Static Public Member Functions
static void | _destroyPool ()
| Tear down the internal polygon pool used to minimise allocations.
static void | _initialisePool ()
| Initialise the internal polygon pool used to minimise allocations.

## Detailed Description

Holds a solid representation of a convex body.

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 std::vector< Polygon* > Ogre::ConvexBody::PolygonList

## Constructor & Destructor Documentation

## ◆ ConvexBody() [1/2]

Ogre::ConvexBody::ConvexBody | ( |  | ) |

Referenced by ConvexBody(), _destroyPool(), clip(), operator!=(), operator<<, and operator==().

## ◆ ~ConvexBody()

Ogre::ConvexBody::~ConvexBody | ( |  | ) |

## ◆ ConvexBody() [2/2]

Ogre::ConvexBody::ConvexBody | ( | const ConvexBody & | cpy | ) |

References ConvexBody().

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

References ConvexBody().

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

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.

References ConvexBody().

## ◆ operator!=()

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

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

References ConvexBody().

## ◆ _initialisePool()

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

Initialise the internal polygon pool used to minimise allocations.

## ◆ _destroyPool()

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

Tear down the internal polygon pool used to minimise allocations.

References ConvexBody().

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

- OgreConvexBody.h