cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : CubitOctreeGeneratorVolumes.hpp 00003 // 00004 // Purpose : Upper level code for octree generation of 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_VOLUMES_H 00012 #define CUBIT_OCTREE_GENERATOR_VOLUMES_H 00013 00014 #include "CubitOctreeGenerator.hpp" 00015 #include "CubitOctreeConstants.hpp" 00016 00017 00018 template <class X> class DLIList; 00019 00020 class CubitOctree; 00021 class CubitOctreeNode; 00022 class RefVolume; 00023 class RefEntity; 00024 00025 00026 00027 class CubitOctreeGeneratorVolumes : public CubitOctreeGenerator 00028 { 00029 00030 public: 00031 00032 // Constructor for octree 00033 CubitOctreeGeneratorVolumes( DLIList<RefEntity*> &entity_list ); 00034 00035 //- Constructor for octree 00036 ~CubitOctreeGeneratorVolumes(){} 00037 //- Distructor 00038 00039 CubitBoolean generate_lattice(void ); 00040 CubitBoolean find_intersection_between_octree_and_facets( DLIList<CubitOctreeNode *> &queue_for_mat_generation ); 00041 CubitBoolean build_octree_till_skl_max_depth_based_on_facets(void); 00042 00043 void get_bounding_box( CubitVector &min, CubitVector &max ); 00044 00045 00046 // finds the optimal min and max depths of octree 00047 static void find_optimal_min_and_max_octree_depths( DLIList< RefEntity *> &entity_list, int &min_depth, int &max_depth ); 00048 static void find_optimal_min_and_max_depth( RefEntity *volume, int &local_min_depth, int &local_max_depth ); 00049 00050 00051 void reset_td_octree_ref_face_visit( const CubitBoolean type ); 00052 void reset_td_octree_ref_edge_visit( const CubitBoolean type ); 00053 00054 CubitBoolean build_td_mref_faces( void ); 00055 CubitBoolean build_td_mref_edges( void ); 00056 00057 void color_octreenode_via_grassfire( DLIList<CubitOctreeNode *> &queue_for_mat_generation ); 00058 CubitStatus generate_full_octree(void); 00059 00060 00061 void testing(); 00062 00063 private: 00064 00065 DLIList<RefEntity*> &entityList; 00066 }; 00067 00068 #endif 00069 00070 //EOF