- Timestamp:
- 03/31/06 17:29:32 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/IMG/IMGBBox.h
r700 r721 27 27 class BBox: public Ogre::AxisAlignedBox { 28 28 public: 29 inline BBox() { BBox::StartBoundingBox(); }29 BBox(); 30 30 31 inline void StartBoundingBox() { 32 mMinimum.x = BOUNDINGBOX_MAXVALUE; 33 mMinimum.y = BOUNDINGBOX_MAXVALUE; 34 mMinimum.z = BOUNDINGBOX_MAXVALUE; 35 mMaximum.x = -BOUNDINGBOX_MAXVALUE; 36 mMaximum.y = -BOUNDINGBOX_MAXVALUE; 37 mMaximum.z = -BOUNDINGBOX_MAXVALUE; 38 }; 31 ~BBox(); 39 32 40 inline Ogre::Vector3 GetMinimum() { return mMinimum; } 33 void StartBoundingBox(); 41 34 42 // 43 // Vector3 * GetMinimum() 44 // { 45 // Vector3 *Vector3; 46 // 47 // Ogre::Vector3 v = mMinimum; 48 // Vector3.x = v.x; 49 // Vector3.y = v.y; 50 // Vector3.z = v.z; 51 // 52 // return v; 53 // } 54 55 inline Ogre::Vector3 GetMaximum() { return mMaximum;}; 35 Ogre::Vector3 GetMinimum(); 56 36 57 // 58 // Vector3 GetMaximum() 59 // { 60 // 61 // Vector3 Vector3; 62 // Ogre::Vector3 v = mMaximum; 63 // Vector3.x = v.x; 64 // Vector3.y = v.y; 65 // Vector3.z = v.z; 66 // return Vector3; 67 // } 68 // 69 inline void AddBoundingVector3(float x, float y, float z) { 70 if (x < mMinimum.x) mMinimum.x = x; if (x > mMaximum.x) mMaximum.x = x; 71 if (y < mMinimum.y) mMinimum.y = y; if (y > mMaximum.y) mMaximum.y = y; 72 if (z < mMinimum.z) mMinimum.z = z; if (z > mMaximum.z) mMaximum.z = z; 73 }; 37 Ogre::Vector3 GetMaximum(); 74 38 75 inline void Print() { 76 printf("\nValor de la Caixa: (%.4f, %.4f, %.4f) - (%.4f, %.4f, %.4f)\n\n", mMinimum.x, mMinimum.y, mMinimum.z, mMaximum.x, mMaximum.y, mMaximum.z); 77 }; 39 void AddBoundingVector3(float x, float y, float z); 78 40 79 //Ogre::Vector3* GetCorner (int corner) const 80 inline Ogre::Vector3 * GetCorner(int corner) const { 81 82 //if (corner < 0 || corner > 7) return Ogre::Vector3 (-1111111111, -1111111111, -1111111111); 83 //return Ogre::AxisAlignedBox::getAllCorners ()[corner]; 84 //printf("\nGetCorner: %d", corner); 85 86 if (corner < 0 || corner > 7) return NULL; 87 88 Ogre::Vector3 *vector; 89 switch (corner) 90 { 91 /* 92 case BOX_CORNER_xyz: return vector = new Ogre::Vector3(mMinimum.x, mMinimum.y, mMinimum.z ); 93 case BOX_CORNER_xyZ: return vector = new Ogre::Vector3(mMinimum.x, mMinimum.y, mMaximum.z ); 94 case BOX_CORNER_xYz: return vector = new Ogre::Vector3(mMinimum.x, mMaximum.y, mMinimum.z ); 95 case BOX_CORNER_xYZ: return vector = new Ogre::Vector3(mMinimum.x, mMaximum.y, mMaximum.z ); 96 case BOX_CORNER_Xyz: return vector = new Ogre::Vector3(mMaximum.x, mMinimum.y, mMinimum.z ); 97 case BOX_CORNER_XyZ: return vector = new Ogre::Vector3(mMaximum.x, mMinimum.y, mMaximum.z ); 98 case BOX_CORNER_XYz: return vector = new Ogre::Vector3(mMaximum.x, mMaximum.y, mMinimum.z ); 99 case BOX_CORNER_XYZ: return vector = new Ogre::Vector3(mMaximum.x, mMaximum.y, mMaximum.z ); 100 */ 101 case BOX_CORNER_xyz: vector = new Ogre::Vector3(mMinimum.x, mMinimum.y, mMinimum.z ); break; 102 case BOX_CORNER_xyZ: vector = new Ogre::Vector3(mMinimum.x, mMinimum.y, mMaximum.z ); break; 103 case BOX_CORNER_xYz: vector = new Ogre::Vector3(mMinimum.x, mMaximum.y, mMinimum.z ); break; 104 case BOX_CORNER_xYZ: vector = new Ogre::Vector3(mMinimum.x, mMaximum.y, mMaximum.z ); break; 105 case BOX_CORNER_Xyz: vector = new Ogre::Vector3(mMaximum.x, mMinimum.y, mMinimum.z ); break; 106 case BOX_CORNER_XyZ: vector = new Ogre::Vector3(mMaximum.x, mMinimum.y, mMaximum.z ); break; 107 case BOX_CORNER_XYz: vector = new Ogre::Vector3(mMaximum.x, mMaximum.y, mMinimum.z ); break; 108 case BOX_CORNER_XYZ: vector = new Ogre::Vector3(mMaximum.x, mMaximum.y, mMaximum.z ); break; 109 } 110 111 //vector->Print(); 112 return vector; 113 }; 41 void Print(); 114 42 115 inline bool intersects(Ogre::Vector3 * v) { 116 return Ogre::AxisAlignedBox::intersects(*v); 117 }; 43 Ogre::Vector3 GetCorner(int corner) const; 118 44 119 ~BBox();45 bool intersects(Ogre::Vector3 v); 120 46 121 47 };
Note: See TracChangeset
for help on using the changeset viewer.