28 #ifndef __Ogre_Volume_OctreeNode_H__
29 #define __Ogre_Volume_OctreeNode_H__
41 class OctreeNodeSplitPolicy;
100 center = (to - from) / (
Real)2.0;
104 height.
x = (
Real)0.0;
106 height.
z = (
Real)0.0;
178 return mChildren != 0;
202 return (mFrom + mTo) / (
Real)2.0;
231 return mFrom.x == root.
mFrom.
x;
242 return mTo.x == root.
mTo.
x;
253 return mFrom.y == root.
mFrom.
y;
264 return mTo.y == root.
mTo.
y;
275 return mFrom.z == root.
mFrom.
z;
286 return mTo.z == root.
mTo.
z;
295 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mFrom.z);
304 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mTo.z);
313 return Vector3(mFrom.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
322 return Vector3(mTo.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
331 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mTo.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
340 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mFrom.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
349 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mTo.y, mFrom.z);
358 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mFrom.y, mFrom.z);
367 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mTo.y, mTo.z);
376 return Vector3(mFrom.x + (mTo.x - mFrom.x) / (
Real)2.0, mFrom.y, mTo.z);
385 return Vector3(mFrom.x, mTo.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
394 return Vector3(mFrom.x, mFrom.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
403 return Vector3(mTo.x, mTo.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
412 return Vector3(mTo.x, mFrom.y, mFrom.z + (mTo.z - mFrom.z) / (
Real)2.0);
421 return Vector3(mFrom.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mFrom.z);
430 return Vector3(mFrom.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mTo.z);
439 return Vector3(mTo.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mFrom.z);
448 return Vector3(mTo.x, mFrom.y + (mTo.y - mFrom.y) / (
Real)2.0, mTo.z);
457 return Vector3(mTo.x, mFrom.y, mFrom.z);
466 return Vector3(mTo.x, mFrom.y, mTo.z);
475 return Vector3(mFrom.x, mFrom.y, mTo.z);
484 return Vector3(mFrom.x, mTo.y, mFrom.z);
493 return Vector3(mTo.x, mTo.y, mFrom.z);
502 return Vector3(mFrom.x, mTo.y, mTo.z);
511 mCenterValue = value;
529 if (mCenterValue.w == (
Real)0.0)
533 return Math::Abs(mCenterValue.w) < (mFrom - mTo).length() * NEAR_FACTOR;