OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
A node in the volume octree. More...
#include <OgreVolumeOctreeNode.h>
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. |
|
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. |
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. |
Setter for the from-part of this cell.
from | The back lower left corner of the cell. |
Setter for the to-part of this cell.
to | The front upper right corner of the cell. |
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. |
Gets the center of this cell.
Gets the back lower left corner of the cell.
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. |
|
inline |
Gets whether this cell is at the right of the given root cell.
root | The octree root node to test against. |
|
inline |
Gets whether this cell is at the bottom of the given root cell.
root | The octree root node to test against. |
|
inline |
Gets whether this cell is at the top of the given root cell.
root | The octree root node to test against. |
|
inline |
Gets whether this cell is at the back of the given root cell.
root | The octree root node to test against. |
|
inline |
Gets whether this cell is at the front of the given root cell.
root | The octree root node to test against. |
Gets the center of the corners 0, 1, 4, 5.
Gets the center of the corners 2, 3, 6, 7.
Gets the center of the corners 0, 3, 4, 6.
Gets the center of the corners 1, 2, 5, 6.
Gets the center of the corners 4, 5, 6, 7.
Gets the center of the corners 0, 1, 2, 3.
Gets the center of the corners 4, 5.
Gets the center of the corners 0, 1.
Gets the center of the corners 6, 7.
Gets the center of the corners 2, 3.
Gets the center of the corners 4, 7.
Gets the center of the corners 0, 3.
Gets the center of the corners 5, 6.
Gets the center of the corners 1, 2.
Gets the center of the corners 0, 4.
Gets the center of the corners 3, 7.
Gets the center of the corners 1, 5.
Gets the center of the corners 2, 6.
Gets the coordinate of corner 1.
Gets the coordinate of corner 2.
Gets the coordinate of corner 3.
Gets the coordinate of corner 4.
Gets the coordinate of corner 5.
Gets the coordinate of corner 7.
Raw setter for the center value.
value | The density value. |
Gets the center value.
Gets whether the isosurface is somewhat near to this node.
Even in an OCtree, the amount of children should not be hardcoded.