Holds a solid representation of a convex body. More...
#include <OgreConvexBody.h>
Public Types | |
| typedef vector< Polygon * >::type | PolygonList |
Public Member Functions | |
| ConvexBody () | |
| ~ConvexBody () | |
| ConvexBody (const ConvexBody &cpy) | |
| void | define (const Frustum &frustum) |
| Build a new polygon representation from a frustum. | |
| void | define (const AxisAlignedBox &aab) |
| Build a new polygon representation from an AAB. | |
| void | clip (const Frustum &frustum) |
| Clips the body with a frustum. | |
| 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 Plane &pl, bool keepNegative=true) |
| Clips the object by the positive half space of a plane. | |
| void | extend (const Vector3 &pt) |
| Extends the existing body to incorporate the passed in point as a convex hull. | |
| void | reset (void) |
| Resets the object. | |
| size_t | getPolygonCount (void) const |
| Returns the current number of polygons. | |
| size_t | getVertexCount (size_t poly) const |
| Returns the number of vertices for a polygon. | |
| const Polygon & | getPolygon (size_t poly) const |
| Returns a polygon. | |
| const Vector3 & | getVertex (size_t poly, size_t vertex) const |
| Returns a specific vertex of a polygon. | |
| const Vector3 & | getNormal (size_t poly) |
| Returns the normal of a specified polygon. | |
| AxisAlignedBox | getAABB (void) const |
| Returns an AABB representation. | |
| 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 equal to the compared one. | |
| bool | operator!= (const ConvexBody &rhs) const |
| Determines if the current object is not equal to the compared one. | |
| void | logInfo () const |
| Log details of this body. | |
Static Public Member Functions | |
| static void | _initialisePool () |
| Initialise the internal polygon pool used to minimise allocations. | |
| static void | _destroyPool () |
| Tear down the internal polygon pool used to minimise allocations. | |
Protected Member Functions | |
| void | insertPolygon (Polygon *pdata, size_t poly) |
| Inserts a polygon at a particular point in the body. | |
| void | insertPolygon (Polygon *pdata) |
| Inserts a polygon at the end. | |
| void | insertVertex (size_t poly, const Vector3 &vdata, size_t vertex) |
| Inserts a vertex for a polygon at a particular point. | |
| void | insertVertex (size_t poly, const Vector3 &vdata) |
| Inserts a vertex for a polygon at the end. | |
| void | deletePolygon (size_t poly) |
| Deletes a specific polygon. | |
| Polygon * | unlinkPolygon (size_t poly) |
| Removes a specific polygon from the body without deleting it. | |
| void | moveDataFromBody (ConvexBody &body) |
| Moves all polygons from the parameter body to this instance. | |
| void | deleteVertex (size_t poly, size_t vertex) |
| Deletes a specific vertex of a specific polygon. | |
| void | setPolygon (Polygon *pdata, size_t poly) |
| Replace a polygon at a particular index. | |
| void | setVertex (size_t poly, const Vector3 &vdata, size_t vertex) |
| Replace a specific vertex of a polygon. | |
| Polygon::EdgeMap | getSingleEdges () const |
| Returns the single edges in an EdgeMap (= edges where one side is a vertex and the other is empty space (a hole in the body)). | |
| void | storeEdgesOfPolygon (size_t poly, Polygon::EdgeMap *edgeMap) const |
| Stores the edges of a specific polygon in a passed in structure. | |
| void | allocateSpace (size_t numPolygons, size_t numVertices) |
| Allocates space for an specified amount of polygons with each of them having a specified number of vertices. | |
| bool | findAndEraseEdgePair (const Vector3 &vec, Polygon::EdgeMap &intersectionEdges, Vector3 &vNext) const |
| Searches for a pair (an edge) in the intersectionList with an entry that equals vec, and removes it from the passed in list. | |
Static Protected Member Functions | |
| static Polygon * | allocatePolygon () |
| Get a new polygon from the pool. | |
| static void | freePolygon (Polygon *poly) |
| Release a polygon back tot he pool. | |
Protected Attributes | |
| PolygonList | mPolygons |
Static Protected Attributes | |
| static PolygonList | msFreePolygons |
Friends | |
| _OgreExport friend std::ostream & | operator<< (std::ostream &strm, const ConvexBody &body) |
| Prints out the body with all its polygons. | |
Holds a solid representation of a convex body.
Definition at line 51 of file OgreConvexBody.h.
| typedef vector< Polygon* >::type Ogre::ConvexBody::PolygonList |
Definition at line 54 of file OgreConvexBody.h.
| Ogre::ConvexBody::ConvexBody | ( | const ConvexBody & | cpy | ) |
| static void Ogre::ConvexBody::_destroyPool | ( | ) | [static] |
Tear down the internal polygon pool used to minimise allocations.
| static void Ogre::ConvexBody::_initialisePool | ( | ) | [static] |
Initialise the internal polygon pool used to minimise allocations.
| static Polygon* Ogre::ConvexBody::allocatePolygon | ( | ) | [static, protected] |
Get a new polygon from the pool.
| void Ogre::ConvexBody::allocateSpace | ( | size_t | numPolygons, |
| size_t | numVertices | ||
| ) | [protected] |
Allocates space for an specified amount of polygons with each of them having a specified number of vertices.
| void Ogre::ConvexBody::clip | ( | const Frustum & | frustum | ) |
Clips the body with a frustum.
The resulting holes are filled with new polygons.
| void Ogre::ConvexBody::clip | ( | const AxisAlignedBox & | aab | ) |
Clips the body with an AAB.
The resulting holes are filled with new polygons.
| void Ogre::ConvexBody::clip | ( | const ConvexBody & | body | ) |
Clips the body with another body.
| void Ogre::ConvexBody::clip | ( | const Plane & | pl, |
| bool | keepNegative = true |
||
| ) |
Clips the object by the positive half space of a plane.
| void Ogre::ConvexBody::define | ( | const Frustum & | frustum | ) |
Build a new polygon representation from a frustum.
| void Ogre::ConvexBody::define | ( | const AxisAlignedBox & | aab | ) |
Build a new polygon representation from an AAB.
| void Ogre::ConvexBody::deletePolygon | ( | size_t | poly | ) | [protected] |
Deletes a specific polygon.
| void Ogre::ConvexBody::deleteVertex | ( | size_t | poly, |
| size_t | vertex | ||
| ) | [protected] |
Deletes a specific vertex of a specific polygon.
| void Ogre::ConvexBody::extend | ( | const Vector3 & | pt | ) |
Extends the existing body to incorporate the passed in point as a convex hull.
| bool Ogre::ConvexBody::findAndEraseEdgePair | ( | const Vector3 & | vec, |
| Polygon::EdgeMap & | intersectionEdges, | ||
| Vector3 & | vNext | ||
| ) | const [protected] |
Searches for a pair (an edge) in the intersectionList with an entry that equals vec, and removes it from the passed in list.
| vec | The vertex to search for in intersectionEdges |
| intersectionEdges | A list of edges, which is updated if a match is found |
| vNext | A reference to a vector which will be filled with the other vertex at the matching edge, if found. |
| static void Ogre::ConvexBody::freePolygon | ( | Polygon * | poly | ) | [static, protected] |
Release a polygon back tot he pool.
| AxisAlignedBox Ogre::ConvexBody::getAABB | ( | void | ) | const |
Returns an AABB representation.
| const Vector3& Ogre::ConvexBody::getNormal | ( | size_t | poly | ) |
Returns the normal of a specified polygon.
| const Polygon& Ogre::ConvexBody::getPolygon | ( | size_t | poly | ) | const |
Returns a polygon.
| size_t Ogre::ConvexBody::getPolygonCount | ( | void | ) | const |
Returns the current number of polygons.
| Polygon::EdgeMap Ogre::ConvexBody::getSingleEdges | ( | ) | const [protected] |
Returns the single edges in an EdgeMap (= edges where one side is a vertex and the other is empty space (a hole in the body)).
| const Vector3& Ogre::ConvexBody::getVertex | ( | size_t | poly, |
| size_t | vertex | ||
| ) | const |
Returns a specific vertex of a polygon.
| size_t Ogre::ConvexBody::getVertexCount | ( | size_t | poly | ) | const |
Returns the number of vertices for a polygon.
| bool Ogre::ConvexBody::hasClosedHull | ( | void | ) | const |
Checks if the body has a closed hull.
| void Ogre::ConvexBody::insertPolygon | ( | Polygon * | pdata, |
| size_t | poly | ||
| ) | [protected] |
Inserts a polygon at a particular point in the body.
| void Ogre::ConvexBody::insertPolygon | ( | Polygon * | pdata | ) | [protected] |
Inserts a polygon at the end.
| void Ogre::ConvexBody::insertVertex | ( | size_t | poly, |
| const Vector3 & | vdata, | ||
| size_t | vertex | ||
| ) | [protected] |
Inserts a vertex for a polygon at a particular point.
| void Ogre::ConvexBody::insertVertex | ( | size_t | poly, |
| const Vector3 & | vdata | ||
| ) | [protected] |
Inserts a vertex for a polygon at the end.
| void Ogre::ConvexBody::logInfo | ( | ) | const |
Log details of this body.
| void Ogre::ConvexBody::mergePolygons | ( | void | ) |
Merges all neighboring polygons into one single polygon if they are lay in the same plane.
| void Ogre::ConvexBody::moveDataFromBody | ( | ConvexBody & | body | ) | [protected] |
Moves all polygons from the parameter body to this instance.
| bool Ogre::ConvexBody::operator!= | ( | const ConvexBody & | rhs | ) | const |
Determines if the current object is not equal to the compared one.
Definition at line 147 of file OgreConvexBody.h.
| bool Ogre::ConvexBody::operator== | ( | const ConvexBody & | rhs | ) | const |
Determines if the current object is equal to the compared one.
| void Ogre::ConvexBody::reset | ( | void | ) |
Resets the object.
| void Ogre::ConvexBody::setPolygon | ( | Polygon * | pdata, |
| size_t | poly | ||
| ) | [protected] |
Replace a polygon at a particular index.
| void Ogre::ConvexBody::setVertex | ( | size_t | poly, |
| const Vector3 & | vdata, | ||
| size_t | vertex | ||
| ) | [protected] |
Replace a specific vertex of a polygon.
| void Ogre::ConvexBody::storeEdgesOfPolygon | ( | size_t | poly, |
| Polygon::EdgeMap * | edgeMap | ||
| ) | const [protected] |
Stores the edges of a specific polygon in a passed in structure.
| Polygon* Ogre::ConvexBody::unlinkPolygon | ( | size_t | poly | ) | [protected] |
Removes a specific polygon from the body without deleting it.
| _OgreExport friend std::ostream& operator<< | ( | std::ostream & | strm, |
| const ConvexBody & | body | ||
| ) | [friend] |
Prints out the body with all its polygons.
PolygonList Ogre::ConvexBody::mPolygons [protected] |
Definition at line 57 of file OgreConvexBody.h.
PolygonList Ogre::ConvexBody::msFreePolygons [static, protected] |
Definition at line 60 of file OgreConvexBody.h.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:27