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