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