#include "GL_BBox.h" #include using namespace std; namespace X3DTK { namespace GL { BBoxDrawArray BBox::BBox_array; BBox::BBox() : X3DTK::BBox() { } BBox::BBox(const X3DTK::BBox &BB) : X3DTK::BBox(BB) { } BBox::BBox(const SFVec3f &min, const SFVec3f &max) : X3DTK::BBox(0.5f*(min + max), max - min) { } void BBox::draw() const { SFVec3f center = getCenter(); SFVec3f size = getSize(); glPushAttrib(GL_ALL_ATTRIB_BITS); glMatrixMode(GL_MODELVIEW); glEnable(GL_COLOR_MATERIAL); glDisable(GL_LIGHTING); glColor3f(1.0f, 1.0f, 1.0f); glPushMatrix(); glTranslatef(center.x, center.y, center.z); glScalef(0.5f*size.x, 0.5f*size.y, 0.5f*size.z); glInterleavedArrays(GL_V3F, 0, BBox_array.getBBoxVertexArrayAddress()); glDrawElements(GL_LINES, BBox_array.getBBoxSize(), GL_UNSIGNED_INT, BBox_array.getBBoxIndexArrayAddress()); glPopMatrix(); glPopAttrib(); } } }