cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : PartitionLoop.hpp 00003 // 00004 // Purpose : LoopSM used by Partition geometry 00005 // 00006 // Special Notes : 00007 // 00008 // Creator : Jason Kraftcheck 00009 // 00010 // Creation Date : 01/11/02 00011 //------------------------------------------------------------------------- 00012 00013 #ifndef PARTITION_LOOP_HPP 00014 #define PARTITION_LOOP_HPP 00015 00016 #include "LoopSM.hpp" 00017 #include "PartitionCoEdge.hpp" 00018 00019 class PartitionLoop : public LoopSM 00020 { 00021 friend class PartitionSurface; 00022 public: 00023 00024 PartitionLoop( ); 00025 virtual ~PartitionLoop(); 00026 00027 PartitionSurface* get_surface() const; 00028 //void surface( PartitionSurface* ); 00029 00030 virtual CubitBoolean is_external() ; 00031 //R CubitBoolean 00032 //R- CUBIT_TRUE/CUBIT_FALSE 00033 //- Returns CUBIT_TRUE if the Loop is an external Loop and CUBIT_FALSE 00034 //- otherwise. 00035 00036 virtual LoopType loop_type() ; 00037 00038 PartitionCoEdge* first_coedge( ); 00039 PartitionCoEdge* next_coedge( PartitionCoEdge* after_this ); 00040 PartitionCoEdge* prev_coedge( PartitionCoEdge* before_this ); 00041 int num_coedges(); 00042 00043 CubitStatus insert_after( PartitionCoEdge* coedge, PartitionCoEdge* after ); 00044 CubitStatus insert_before( PartitionCoEdge* coedge, PartitionCoEdge* before ); 00045 CubitStatus remove( PartitionCoEdge* coedge ); 00046 CubitStatus remove_all_coedges( DLIList<PartitionCoEdge*>* removed = 0); 00047 00048 void get_parents_virt( DLIList<TopologyBridge*>& parents ); 00049 void get_children_virt( DLIList<TopologyBridge*>& children ); 00050 int layer() const ; 00051 GeometryQueryEngine* get_geometry_query_engine() const; 00052 00053 void append_simple_attribute_virt( const CubitSimpleAttrib& ); 00054 void remove_simple_attribute_virt( const CubitSimpleAttrib& ); 00055 void remove_all_simple_attribute_virt(); 00056 CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& ); 00057 CubitStatus get_simple_attribute( const CubitString&, 00058 DLIList<CubitSimpleAttrib>& ); 00059 00060 void reverse(); 00061 00062 void print_debug_info( const char* line_prefix = 0 ); 00063 00064 private: 00065 00066 PartitionLoop( const PartitionLoop& ); 00067 00068 PartitionSurface* mySurface; 00069 PartitionCoEdge* firstCoedge; 00070 PartitionLoop* nextInSurface; 00071 int numCoedges; 00072 }; 00073 00074 inline PartitionSurface* PartitionLoop::get_surface() const 00075 { return mySurface; } 00076 00077 inline PartitionCoEdge* PartitionLoop::first_coedge( ) 00078 { return firstCoedge; } 00079 00080 inline int PartitionLoop::num_coedges() 00081 { return numCoedges; } 00082 00083 inline PartitionCoEdge* PartitionLoop::next_coedge( PartitionCoEdge* prev ) 00084 { return prev->myLoop == this ? prev->loopNext : 0; } 00085 00086 inline PartitionCoEdge* PartitionLoop::prev_coedge( PartitionCoEdge* next ) 00087 { return next->myLoop == this ? next->loopPrev : 0; } 00088 00089 #endif