00001 #ifndef IG_OPEN_INVENTOR_IG_BSP_TREE_H 00002 # define IG_OPEN_INVENTOR_IG_BSP_TREE_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Inventor/interface/config.h" 00007 # include "Iguana/Inventor/interface/IgBSPTriangle.h" 00008 # include "Iguana/Inventor/interface/IgBSPNode.h" 00009 00010 //<<<<<< PUBLIC DEFINES >>>>>> 00011 //<<<<<< PUBLIC CONSTANTS >>>>>> 00012 //<<<<<< PUBLIC TYPES >>>>>> 00013 00014 class SoNode; 00015 00016 //<<<<<< PUBLIC VARIABLES >>>>>> 00017 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00018 //<<<<<< CLASS DECLARATIONS >>>>>> 00019 00020 class IG_OPEN_INVENTOR_API IgBSPTree 00021 { 00022 public: 00023 enum 00024 { 00025 COPLANAR_IN_FRONT, 00026 COPLANAR_IN_BACK, 00027 COPLANAR_IN_NODE 00028 }; 00029 00030 IgBSPTree (void); 00031 ~IgBSPTree (void); 00032 void add (SoNode *node); 00033 void addOnlyOneFace (SoNode *node); 00034 00035 void intersect (IgBSPTriangle *triangle, 00036 IgBSPTriangle::List *frontTriangles, 00037 IgBSPTriangle::List *backTriangles); 00038 00039 void intersect (SoNode *node, 00040 IgBSPTriangle::List *frontTriangles, 00041 IgBSPTriangle::List *backTriangles); 00042 00043 int getTriangleCount (void); 00044 00046 bool empty (void); 00047 00048 private: 00049 IgBSPNode *m_rootNode; 00050 }; 00051 00052 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00053 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00054 00055 #endif // IG_OPEN_INVENTOR_IG_BSP_TREE_H