#ifndef _SolidHalfBoundingBox_H__ #define _SolidHalfBoundingBox_H__ #include "OgrePrerequisites.h" #include "OgreWireBoundingBox.h" namespace Ogre { /** Allows the rendering of one half of a solid bounding box. @remarks This class builds a wireframe renderable from a given aabb. A pointer to this class can be added to a render queue to display the bounding box of an object. */ class SolidHalfBoundingBox : public WireBoundingBox { public: SolidHalfBoundingBox( bool isFirstHalf ); void setupBoundingBox( const AxisAlignedBox& aabb ); /** Override this method to prevent parent transforms (rotation,translation,scale) and to make it public. */ void getWorldTransforms( Matrix4* xform ) const; protected: /** Builds the wireframe line list. @param the axis aligned bounding box for setting up the list. */ void setupBoundingBoxVertices( const AxisAlignedBox& aab ); /** Sets the material used for occlusion queries. @remarks the material is called "OcclusionQuery" and uses no lighting, no depth write, and no colours */ void setOcclusionQueryMaterial( void ); /** Whether this half box is the first or the second half of the bounding box. */ bool mIsFirstHalf; }; }// namespace #endif