diff options
Diffstat (limited to 'intern/boolop/intern/BOP_Face.h')
-rw-r--r-- | intern/boolop/intern/BOP_Face.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/intern/boolop/intern/BOP_Face.h b/intern/boolop/intern/BOP_Face.h index 7db5ab1fe5c..1d854ec00ca 100644 --- a/intern/boolop/intern/BOP_Face.h +++ b/intern/boolop/intern/BOP_Face.h @@ -34,6 +34,7 @@ #include "BOP_Tag.h" #include "MT_Plane3.h" #include "BOP_Indexs.h" +#include "BOP_BBox.h" #include <iostream> #include <vector> using namespace std; @@ -53,10 +54,12 @@ private: protected: BOP_Index m_indexs[4]; unsigned int m_size; + unsigned int m_split; + BOP_BBox *m_bbox; public: BOP_Face(MT_Plane3 plane, BOP_Index originalFace); - virtual ~BOP_Face(){}; + virtual ~BOP_Face(){if (m_bbox) delete m_bbox;}; inline MT_Plane3 getPlane() const {return m_plane;}; inline void setPlane(const MT_Plane3 plane) {m_plane = plane;}; inline BOP_TAG getTAG() const {return m_tag;}; @@ -65,7 +68,15 @@ public: inline void setOriginalFace(const BOP_Index originalFace) {m_originalFace=originalFace;}; inline BOP_Index getVertex(unsigned int i) const {return m_indexs[i];}; inline void setVertex(const BOP_Index idx, const BOP_Index i) {m_indexs[idx]=i;}; + inline unsigned int getSplit() const {return m_split;}; + inline void setSplit(const unsigned int i) {m_split=i;}; + void invert(); + inline void setBBox(const MT_Point3& p1,const MT_Point3& p2,const MT_Point3& p3) { + m_bbox = new BOP_BBox(p1, p2, p3);}; + inline BOP_BBox *getBBox() {return m_bbox;}; + inline void freeBBox(){if (m_bbox!=NULL) {delete m_bbox; m_bbox=NULL;} }; + inline unsigned int size() const {return m_size;}; virtual bool getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e) = 0; |