Represents part of the world geometry that is a result of a SceneQuery.
bool isLeaf(void) const
Returns true if this node is a leaf (i.e.
float Real
Software floating point type.
Plane mSplitPlane
The plane which splits space in a non-leaf node.
int mFaceGroupStart
Index to the part of the main leaf facegroup index buffer(held in BspLevel) for this leaf...
int mVisCluster
The cluster number of this leaf.
bool mIsLeaf
Back-reference to containing level.
Defines a plane in 3D space.
const AxisAlignedBox & getBoundingBox(void) const
Returns the axis-aligned box which contains this node if it is a leaf.
bool isLeafVisible(const BspNode *leaf) const
Determines if the passed in node (must also be a leaf) is visible from this leaf. ...
BspNode * mFront
Pointer to the node in front of this non-leaf node.
A 3D box aligned with the x/y/z axes.
BspNode * mBack
Pointer to the node behind this non-leaf node.
const IntersectingObjectSet & getObjects(void) const
Abstract class defining a movable object in a scene.
Real getDistance(const Vector3 &pos) const
Gets the signed distance to the dividing plane.
AxisAlignedBox mBounds
The axis-aligned box which bounds node if it is a leaf.
friend std::ostream & operator<<(std::ostream &o, BspNode &n)
set< const MovableObject * >::type IntersectingObjectSet
Side
The "positive side" of the plane is the half space to which the plane normal points.
Plane::Side getSide(const Vector3 &point) const
Determines which side of the splitting plane a worldspace point is.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
int mNumFaceGroups
Number of face groups in this node if it is a leaf.
BspNode * getBack(void) const
Returns a pointer to a BspNode containing the subspace on the negative side of the splitting plane...
Standard 3-dimensional vector.
int getNumFaceGroups(void) const
Returns the number of faces contained in this leaf node.
Holds all the data associated with a Binary Space Parition (BSP) based indoor level.
NodeBrushList mSolidBrushes
BspNode * getFront(void) const
Returns a pointer to a BspNode containing the subspace on the positive side of the splitting plane...
BspNode * getNextNode(const Vector3 &point) const
Gets the next node down in the tree, with the intention of locating the leaf containing the given poi...
void _removeMovable(const MovableObject *mov)
Internal method for telling the node that a movable no longer intersects it.
const NodeBrushList & getSolidBrushes(void) const
Main brush memory held on level.
void _addMovable(const MovableObject *mov)
Internal method for telling the node that a movable intersects it.
SceneQuery::WorldFragment fragment
const Plane & getSplitPlane(void) const
Returns details of the plane which is used to subdivide the space of his node's children.
Encapsulates a node in a BSP tree.
vector< Brush * >::type NodeBrushList
IntersectingObjectSet mMovables
int getFaceGroupStart(void) const
Returns the index to the face group index list for this leaf node.
list< Plane >::type planes