cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : CubitOctreeGenerator.hpp 00003 // 00004 // Purpose : Base class for octree generation of surfaces, single volume or assembly 00005 // 00006 // Creator : William Roshan Quadros 00007 // 00008 // Creation Date : 08/28/2013 00009 // Owner : 00010 //------------------------------------------------------------------------- 00011 #ifndef CUBIT_OCTREE_GENERATOR_H 00012 #define CUBIT_OCTREE_GENERATOR_H 00013 00014 #include "CubitVector.hpp" 00015 00016 template <class X> class DLIList; 00017 00018 class CubitOctree; 00019 class CubitOctreeNode; 00020 00021 00022 // Base class for source point 00023 class CubitOctreeGenerator{ 00024 00025 public: 00026 00027 00028 CubitOctreeGenerator( ); 00029 //- Constructor for octree 00030 00031 virtual ~CubitOctreeGenerator(); 00032 //- Distructor 00033 00034 CubitOctree* get_octree_lattice( void ){ return cubitOctree;} 00035 00036 double size_at_point_in_octree( const CubitVector &point, int type ); 00037 double size_at_a_point( const CubitVector &point ); 00038 00039 void color_lattice_cell( void ); 00040 00041 virtual void get_bounding_box( CubitVector &min, CubitVector &max ) = 0; 00042 00043 00044 virtual CubitBoolean generate_lattice( void ) = 0; 00045 00046 CubitPointContainment point_containment( CubitVector tmp_vec, double tolerance ); 00047 00048 00049 protected: 00050 00051 00052 CubitOctree *cubitOctree; 00053 //- Octree model of the solid; 00054 00055 00056 private: 00057 00058 }; 00059 00060 00061 00062 #endif 00063 00064 //EOF