cgma
|
00001 //-Class: TDSurfaceOverlap.hpp 00002 00003 #ifndef TD_SURFACE_OVERLAP 00004 #define TD_SURFACE_OVERLAP 00005 00006 #include "ToolData.hpp" 00007 #include "CastTo.hpp" 00008 #include "DLIList.hpp" 00009 #include "RTree.hpp" 00010 #include "AbstractTree.hpp" 00011 #include "CGMGeomConfigure.h" 00012 00013 class RefFace; 00014 class Body; 00015 class SurfaceOverlapFacet; 00016 00017 class CUBIT_GEOM_EXPORT TDSurfaceOverlap : public ToolData 00018 { 00019 public: 00020 00021 TDSurfaceOverlap( RefFace *ref_face_ptr, unsigned short ang_facet_tol, double abs_facet_tol, 00022 double gap_max ); 00023 ~TDSurfaceOverlap(); 00024 00025 int has_rtree(){if(aTree) return CUBIT_TRUE; else return CUBIT_FALSE;} 00026 00027 DLIList<SurfaceOverlapFacet*> *get_facet_list(); 00028 AbstractTree<SurfaceOverlapFacet*> *get_facet_rtree(); 00029 //- Get an AbstractTree containing the facets for this surface. Note this returns 00030 //- a pointer to the AbstractTree stored in this class, so the calling code should 00031 //- not free it. 00032 00033 DLIList<Body*> *get_body_list(); 00034 00035 static int is_surface_overlap(const ToolData* td) 00036 {return (CAST_TO(td, const TDSurfaceOverlap) != NULL);} 00037 00038 private: 00039 00040 RefFace *refFacePtr; 00041 DLIList<SurfaceOverlapFacet*> facetList; 00042 AbstractTree<SurfaceOverlapFacet*> *aTree; 00043 DLIList<Body*> bodyList; 00044 int bodiesRetrieved; 00045 int marked; 00046 unsigned short angFacetTol; 00047 double absFacetTol; 00048 double gapMax; 00049 }; 00050 00051 #endif // TD_SURFACE_OVERLAP 00052