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