cgma
TDSurfaceOverlap.hpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines