cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : CompositeShell.hpp 00003 // 00004 // Purpose : ShellSM used in composite TopologyBridge graph 00005 // 00006 // Special Notes : 00007 // 00008 // Creator : Jason Kraftcheck 00009 // 00010 // Creation Date : 01/11/02 00011 //------------------------------------------------------------------------- 00012 00013 #ifndef COMPOSITE_SHELL_HPP 00014 #define COMPOSITE_SHELL_HPP 00015 00016 #include "VGDefines.h" 00017 #include "ShellSM.hpp" 00018 00019 class CompositeSurface; 00020 class CompositeCoSurf; 00021 class CompositeLump; 00022 00023 class CompositeShell : public ShellSM 00024 { 00025 friend class CompositeLump; 00026 public: 00027 00028 CompositeShell(); 00029 virtual ~CompositeShell(); 00030 00031 CompositeLump* get_lump() const; 00032 00033 CompositeShell* next_shell() const; 00034 00035 CompositeCoSurf* first_co_surf( ) const; 00036 CompositeCoSurf* next_co_surf( CompositeCoSurf* prev ) const; 00037 00038 CubitStatus add( CompositeCoSurf* cosurf ); 00039 CubitStatus remove( CompositeCoSurf* cosurf ); 00040 00041 CompositeCoSurf* add( CompositeSurface* surface, CubitSense sense ); 00042 // create a CoSurf 00043 CompositeCoSurf* find_first( const CompositeSurface* surface ) const; 00044 // find first CoSurf with the passed surface 00045 CompositeCoSurf* find_next( const CompositeCoSurf* prev ) const; 00046 // find next CoSurf with the same surface 00047 CubitSense find_sense( const CompositeSurface* surface ) const; 00048 // returns CUBIT_UNKNOWN if multiple CoSurfs 00049 00050 void append_simple_attribute_virt( const CubitSimpleAttrib& simple_attrib_ptr ); 00051 void remove_simple_attribute_virt( const CubitSimpleAttrib& simple_attrib_ptr ); 00052 void remove_all_simple_attribute_virt(); 00053 CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& attrib_list ); 00054 CubitStatus get_simple_attribute( const CubitString& name, 00055 DLIList<CubitSimpleAttrib>& attrib_list ); 00056 00057 void get_parents_virt( DLIList<TopologyBridge*>& parents ); 00058 void get_children_virt( DLIList<TopologyBridge*>& children ); 00059 GeometryQueryEngine* get_geometry_query_engine() const; 00060 int layer() const { return COMPOSITE_LAYER; } 00061 00062 void print_debug_info( const char* line_prefix = 0 ); 00063 00064 private: 00065 00066 CompositeLump* myLump; 00067 CompositeShell* lumpNext; 00068 00069 CompositeCoSurf* firstCoSurf; 00070 }; 00071 00072 inline CompositeLump* CompositeShell::get_lump() const 00073 { return myLump; } 00074 00075 inline CompositeCoSurf* CompositeShell::first_co_surf() const 00076 { return firstCoSurf; } 00077 00078 00079 #endif