Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

BboxDrawArray.cpp

Go to the documentation of this file.
00001 #include "BboxDrawArray.h"
00002 
00003 using namespace X3DTK;
00004 using namespace std;
00005 
00006 BboxDrawArray::BboxDrawArray()
00007 : h(0.1f)
00008 {
00009   MFVec3f vertexArray(8);
00010   vertexArray[0] = SFVec3f(-1.0f, -1.0f, -1.0f);
00011   vertexArray[1] = SFVec3f(1.0f, -1.0f, -1.0f);
00012   vertexArray[2] = SFVec3f(1.0f, 1.0f, -1.0f);
00013   vertexArray[3] = SFVec3f(-1.0f, 1.0f, -1.0f);
00014   vertexArray[4] = SFVec3f(-1.0f, -1.0f, 1.0f);
00015   vertexArray[5] = SFVec3f(1.0f, -1.0f, 1.0f);
00016   vertexArray[6] = SFVec3f(1.0f, 1.0f, 1.0f);
00017   vertexArray[7] = SFVec3f(-1.0f, 1.0f, 1.0f);
00018   
00019   unsigned int k = 0;
00020   for (MFVec3f::const_iterator it = vertexArray.begin(); it != vertexArray.end(); ++it)
00021   {
00022     SFVec3f vx, vy, vz;
00023     SFVec3f dx(1.0f, 0.0f, 0.0f), dy(0.0f, 1.0f, 0.0f), dz(0.0f, 0.0f, 1.0f);
00024     SFVec3f v = *it;
00025     _bboxVertexArray.push_back(v);
00026     unsigned int ko = k;
00027     
00028     if (v.x < 0.0f)
00029       vx = v + h*dx;
00030     else  
00031       vx = v - h*dx;
00032     _bboxVertexArray.push_back(vx);
00033     _bboxIndexArray.push_back(ko);
00034     ++k;
00035     _bboxIndexArray.push_back(k);
00036          
00037       
00038     if (v.y < 0.0f)
00039       vy = v + h*dy;
00040     else  
00041       vy = v - h*dy;
00042     _bboxVertexArray.push_back(vy);
00043     _bboxIndexArray.push_back(ko);
00044     ++k;
00045     _bboxIndexArray.push_back(k);
00046      
00047     if (v.z < 0.0f)
00048       vz = v + h*dz;
00049     else  
00050       vz = v - h*dz;    
00051     _bboxVertexArray.push_back(vz);
00052     _bboxIndexArray.push_back(ko);
00053     ++k;
00054     _bboxIndexArray.push_back(k);  
00055     ++k;
00056   }
00057 }
00058 
00059 unsigned int BboxDrawArray::getBboxSize() const
00060 {
00061   return _bboxIndexArray.size();
00062 }
00063 
00064 const void *BboxDrawArray::getBboxVertexArrayAddress() const
00065 {
00066   return &_bboxVertexArray.front();
00067 }
00068 
00069 const unsigned int *BboxDrawArray::getBboxIndexArrayAddress() const
00070 {
00071   return &_bboxIndexArray.front(); 
00072 }

Generated on Wed May 14 10:03:07 2003 for X3DToolKit by doxygen1.3