#ifndef _SolidHalfBoundingBox_H__ #define _SolidHalfBoundingBox_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(); /** Sets up the first or second half of a the solid box. @param aab the axis aligned bounding box @param isFirstHalf if it is the first or the second half */ void SetupBoundingBox(const AxisAlignedBox& aabb, const bool isFirstHalf); /** Builds the wireframe line list. @param aab the axis aligned bounding box for setting up the vertices @param first or second half of the box */ void SetupBoundingBoxVertices(const AxisAlignedBox& aab, const bool isFirstHalf); protected: /** Sets the material used for occlusion queries. @remark the material is called "OcclusionQuery" and uses no lighting, no depth write, and no colours */ void SetOcclusionQueryMaterial(); /** Whether this half box is the first or the second half of the bounding box. */ bool mIsFirstHalf; }; }// namespace Ogre #endif // SolidHalfBoundingBox