00001 00002 00008 00009 00011 // Include Guard 00012 #ifndef __ICETRILIST_H__ 00013 #define __ICETRILIST_H__ 00014 00015 class ICEMATHS_API TriList : public Container 00016 { 00017 public: 00018 // Constructor / Destructor 00019 TriList() {} 00020 ~TriList() {} 00021 00022 inline_ udword GetNbTriangles() const { return GetNbEntries()/9; } 00023 inline_ Triangle* GetTriangles() const { return (Triangle*)GetEntries(); } 00024 00025 void AddTri(const Triangle& tri) 00026 { 00027 Add(tri.mVerts[0].x).Add(tri.mVerts[0].y).Add(tri.mVerts[0].z); 00028 Add(tri.mVerts[1].x).Add(tri.mVerts[1].y).Add(tri.mVerts[1].z); 00029 Add(tri.mVerts[2].x).Add(tri.mVerts[2].y).Add(tri.mVerts[2].z); 00030 } 00031 00032 void AddTri(const Point& p0, const Point& p1, const Point& p2) 00033 { 00034 Add(p0.x).Add(p0.y).Add(p0.z); 00035 Add(p1.x).Add(p1.y).Add(p1.z); 00036 Add(p2.x).Add(p2.y).Add(p2.z); 00037 } 00038 }; 00039 00040 class ICEMATHS_API TriangleList : public Container 00041 { 00042 public: 00043 // Constructor / Destructor 00044 TriangleList() {} 00045 ~TriangleList() {} 00046 00047 inline_ udword GetNbTriangles() const { return GetNbEntries()/3; } 00048 inline_ IndexedTriangle* GetTriangles() const { return (IndexedTriangle*)GetEntries();} 00049 00050 void AddTriangle(const IndexedTriangle& tri) 00051 { 00052 Add(tri.mVRef[0]).Add(tri.mVRef[1]).Add(tri.mVRef[2]); 00053 } 00054 00055 void AddTriangle(udword vref0, udword vref1, udword vref2) 00056 { 00057 Add(vref0).Add(vref1).Add(vref2); 00058 } 00059 }; 00060 00061 #endif //__ICETRILIST_H__