00001
00015 #ifndef MDS_TRIDATA_H
00016 #define MDS_TRIDATA_H
00017
00018
00019 #include <MDSTk/Base/mdsAssert.h>
00020 #include <MDSTk/Base/mdsTypes.h>
00021
00022
00023 #include <VectorEntity/mcentity.h>
00024 #include <VectorEntity/mcsphere.h>
00025
00026
00027 namespace mds
00028 {
00029 namespace seg
00030 {
00031
00032
00037 struct STriangleInfo
00038 {
00040 vctl::MCSphere Circumsphere;
00041
00043 void *pData;
00044
00046 STriangleInfo() : pData(NULL) {}
00047 };
00048
00049
00050
00051
00052
00053
00054
00056 inline vctl::MCSphere *getTriangleCircumsphere(vctl::MCTri *pTriangle)
00057 {
00058 return &(((STriangleInfo *)pTriangle->GetValuePtr())->Circumsphere);
00059 }
00060
00061
00064 inline void *getTriangleDataPtr(vctl::MCTri *pTriangle)
00065 {
00066 return ((STriangleInfo *)pTriangle->GetValuePtr())->pData;
00067 }
00068
00069
00071 inline void setTriangleDataPtr(vctl::MCTri *pTriangle, void *pData)
00072 {
00073 ((STriangleInfo *)pTriangle->GetValuePtr())->pData = pData;
00074 }
00075
00076
00077 }
00078 }
00079
00080 #endif // MDS_TRIDATA_H
00081