![]() |
OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
A node in the volume octree. More...
#include <OgreVolumeOctreeNode.h>
Inheritance diagram for Ogre::Volume::OctreeNode:Public Member Functions | |
| OctreeNode (const Vector3 &from=Vector3::ZERO, const Vector3 &to=Vector3::ZERO) | |
| Constructor. | |
| virtual | ~OctreeNode (void) |
| Destructor. | |
| virtual OctreeNode * | createInstance (const Vector3 &from, const Vector3 &to) |
| Factory method to create octree nodes. | |
| const Vector3 | getCenter (void) const |
| Gets the center of this cell. | |
| const Vector3 | getCenterBack (void) const |
| Gets the center of the corners 0, 1, 4, 5. | |
| const Vector3 | getCenterBackBottom (void) const |
| Gets the center of the corners 0, 1. | |
| const Vector3 | getCenterBackLeft (void) const |
| Gets the center of the corners 0, 4. | |
| const Vector3 | getCenterBackRight (void) const |
| Gets the center of the corners 1, 5. | |
| const Vector3 | getCenterBackTop (void) const |
| Gets the center of the corners 4, 5. | |
| const Vector3 | getCenterBottom (void) const |
| Gets the center of the corners 0, 1, 2, 3. | |
| const Vector3 | getCenterFront (void) const |
| Gets the center of the corners 2, 3, 6, 7. | |
| const Vector3 | getCenterFrontBottom (void) const |
| Gets the center of the corners 2, 3. | |
| const Vector3 | getCenterFrontLeft (void) const |
| Gets the center of the corners 3, 7. | |
| const Vector3 | getCenterFrontRight (void) const |
| Gets the center of the corners 2, 6. | |
| const Vector3 | getCenterFrontTop (void) const |
| Gets the center of the corners 6, 7. | |
| const Vector3 | getCenterLeft (void) const |
| Gets the center of the corners 0, 3, 4, 6. | |
| const Vector3 | getCenterLeftBottom (void) const |
| Gets the center of the corners 0, 3. | |
| const Vector3 | getCenterLeftTop (void) const |
| Gets the center of the corners 4, 7. | |
| const Vector3 | getCenterRight (void) const |
| Gets the center of the corners 1, 2, 5, 6. | |
| const Vector3 | getCenterRightBottom (void) const |
| Gets the center of the corners 1, 2. | |
| const Vector3 | getCenterRightTop (void) const |
| Gets the center of the corners 5, 6. | |
| const Vector3 | getCenterTop (void) const |
| Gets the center of the corners 4, 5, 6, 7. | |
| const Vector4 | getCenterValue (void) const |
| Gets the center value. | |
| const OctreeNode * | getChild (const size_t i) const |
| Gets an octree child. | |
| const Vector3 | getCorner1 (void) const |
| Gets the coordinate of corner 1. | |
| const Vector3 | getCorner2 (void) const |
| Gets the coordinate of corner 2. | |
| const Vector3 | getCorner3 (void) const |
| Gets the coordinate of corner 3. | |
| const Vector3 | getCorner4 (void) const |
| Gets the coordinate of corner 4. | |
| const Vector3 | getCorner5 (void) const |
| Gets the coordinate of corner 5. | |
| const Vector3 | getCorner7 (void) const |
| Gets the coordinate of corner 7. | |
| const Vector3 & | getFrom (void) const |
| Gets the back lower left corner of the cell. | |
| Entity * | getOctreeGrid (SceneManager *sceneManager) |
| Getter for the octree debug visualization of the octree starting with this node. | |
| const Vector3 & | getTo (void) const |
| Gets the front upper right corner of the cell. | |
| bool | isBorderBack (const OctreeNode &root) const |
| Gets whether this cell is at the back of the given root cell. | |
| bool | isBorderBottom (const OctreeNode &root) const |
| Gets whether this cell is at the bottom of the given root cell. | |
| bool | isBorderFront (const OctreeNode &root) const |
| Gets whether this cell is at the front of the given root cell. | |
| bool | isBorderLeft (const OctreeNode &root) const |
| Gets whether this cell is at the left of the given root cell. | |
| bool | isBorderRight (const OctreeNode &root) const |
| Gets whether this cell is at the right of the given root cell. | |
| bool | isBorderTop (const OctreeNode &root) const |
| Gets whether this cell is at the top of the given root cell. | |
| bool | isIsoSurfaceNear (void) const |
| Gets whether the isosurface is somewhat near to this node. | |
| bool | isSubdivided (void) const |
| Gets whether this cell has any children. | |
| void | setCenterValue (Vector4 value) |
| Raw setter for the center value. | |
| void | setFrom (Vector3 from) |
| Setter for the from-part of this cell. | |
| void | setTo (Vector3 to) |
| Setter for the to-part of this cell. | |
| void | split (const OctreeNodeSplitPolicy *splitPolicy, const Source *src, const Real geometricError) |
| Splits this cell if the split policy says so. | |
Static Public Member Functions | |
| static void | getChildrenDimensions (const Vector3 &from, const Vector3 &to, Vector3 ¢er, Vector3 &width, Vector3 &height, Vector3 &depth) |
| Gets the center and width / height / depth vector of the children of a node. | |
Static Public Attributes | |
| static const size_t | OCTREE_CHILDREN_COUNT |
| Even in an OCtree, the amount of children should not be hardcoded. | |
A node in the volume octree.
| Ogre::Volume::OctreeNode::OctreeNode | ( | const Vector3 & | from = Vector3::ZERO, |
| const Vector3 & | to = Vector3::ZERO ) |
Constructor.
| from | The back lower left corner of the cell. |
| to | The front upper right corner of the cell. |
Referenced by createInstance(), getChild(), isBorderBack(), isBorderBottom(), isBorderFront(), isBorderLeft(), isBorderRight(), and isBorderTop().
|
virtual |
Destructor.
|
inlinestatic |
Gets the center and width / height / depth vector of the children of a node.
| from | The back lower left corner of the cell. |
| to | The front upper right corner of the cell. |
| center | Out parameter of the calculated center. |
| width | Out parameter of the width vector (width in x, rest zero). |
| height | Out parameter of the height vector (height in y, rest zero). |
| depth | Out parameter of the depth vector (depth in z, rest zero). |
|
virtual |
Factory method to create octree nodes.
| from | The back lower left corner of the cell. |
| to | The front upper right corner of the cell. |
References OctreeNode().
| void Ogre::Volume::OctreeNode::split | ( | const OctreeNodeSplitPolicy * | splitPolicy, |
| const Source * | src, | ||
| const Real | geometricError ) |
Splits this cell if the split policy says so.
| splitPolicy | Defines the policy deciding whether to split this node or not. |
| src | The volume source. |
| geometricError | The accepted geometric error. |
| Entity * Ogre::Volume::OctreeNode::getOctreeGrid | ( | SceneManager * | sceneManager | ) |
Getter for the octree debug visualization of the octree starting with this node.
| sceneManager | The scenemanager creating the actual entity. |
|
inline |
Setter for the from-part of this cell.
| from | The back lower left corner of the cell. |
|
inline |
Setter for the to-part of this cell.
| to | The front upper right corner of the cell. |
|
inline |
Gets whether this cell has any children.
|
inline |
Gets an octree child.
Enumeration: 4 5 7 6 0 1 3 2
| i | The child index. |
References OctreeNode().
|
inline |
Gets the center of this cell.
|
inline |
Gets the back lower left corner of the cell.
|
inline |
Gets the front upper right corner of the cell.
|
inline |
Gets whether this cell is at the left of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets whether this cell is at the right of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets whether this cell is at the bottom of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets whether this cell is at the top of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets whether this cell is at the back of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets whether this cell is at the front of the given root cell.
| root | The octree root node to test against. |
References OctreeNode().
|
inline |
Gets the center of the corners 0, 1, 4, 5.
|
inline |
Gets the center of the corners 2, 3, 6, 7.
|
inline |
Gets the center of the corners 0, 3, 4, 6.
|
inline |
Gets the center of the corners 1, 2, 5, 6.
|
inline |
Gets the center of the corners 4, 5, 6, 7.
|
inline |
Gets the center of the corners 0, 1, 2, 3.
|
inline |
Gets the center of the corners 4, 5.
|
inline |
Gets the center of the corners 0, 1.
|
inline |
Gets the center of the corners 6, 7.
|
inline |
Gets the center of the corners 2, 3.
|
inline |
Gets the center of the corners 4, 7.
|
inline |
Gets the center of the corners 0, 3.
|
inline |
Gets the center of the corners 5, 6.
|
inline |
Gets the center of the corners 1, 2.
|
inline |
Gets the center of the corners 0, 4.
|
inline |
Gets the center of the corners 3, 7.
|
inline |
Gets the center of the corners 1, 5.
|
inline |
Gets the center of the corners 2, 6.
|
inline |
Gets the coordinate of corner 1.
|
inline |
Gets the coordinate of corner 2.
|
inline |
Gets the coordinate of corner 3.
|
inline |
Gets the coordinate of corner 4.
|
inline |
Gets the coordinate of corner 5.
|
inline |
Gets the coordinate of corner 7.
|
inline |
Raw setter for the center value.
| value | The density value. |
|
inline |
Gets the center value.
|
inline |
Gets whether the isosurface is somewhat near to this node.
References Ogre::Math::Abs().
|
static |
Even in an OCtree, the amount of children should not be hardcoded.