cgma
PartitionCoEdge.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Filename      : PartitionCoEdge.hpp
00003 //
00004 // Purpose       : 
00005 //
00006 // Special Notes : 
00007 //
00008 // Creator       : Jason Kraftcheck
00009 //
00010 // Creation Date : 04/10/02
00011 //-------------------------------------------------------------------------
00012 
00013 #ifndef PARTITION_CO_EDGE_HPP
00014 #define PARTITION_CO_EDGE_HPP
00015 
00016 #include "CoEdgeSM.hpp"
00017 #include "PartitionEntity.hpp"
00018 
00019 class PartitionLoop;
00020 class PartitionCurve;
00021 class PartitionSurface;
00022 class PartitionPoint;
00023 
00024 class PartitionCoEdge : public CoEdgeSM, public PartitionEntity
00025 {
00026 
00027   friend class PartitionLoop;
00028   friend class PartitionCurve;
00029 
00030   public:
00031   
00032     PartitionCoEdge(PartitionSurface* surf, CubitSense sense);
00033     PartitionCoEdge(PartitionCoEdge* split_from);
00034     PartitionCoEdge(CoEdgeSM* coedge);
00035   
00036     ~PartitionCoEdge();
00037     
00038     PartitionCurve* get_curve() const
00039       { return myCurve; }
00040     PartitionLoop* get_loop() const
00041       { return myLoop; }
00042       
00043     PartitionCoEdge* next() const
00044       { return loopNext; }
00045 
00046     TopologyBridge* find_parent_loop() const;
00047     CoEdgeSM* real_coedge() const;
00048     
00049     CubitSense sense() 
00050       { return mySense; }
00051     
00052     PartitionPoint* start_point() const;
00053     PartitionPoint*   end_point() const;
00054       
00055     void reverse_sense();
00056     
00057     virtual CubitBox bounding_box() const;
00058     virtual CubitStatus save( CubitSimpleAttrib& ) 
00059       { assert(0); return CUBIT_FAILURE; }
00060     virtual void transform( const CubitTransformMatrix& ) {;}
00061     
00062     void append_simple_attribute_virt( const CubitSimpleAttrib& );
00063     void remove_simple_attribute_virt( const CubitSimpleAttrib& );
00064     void remove_all_simple_attribute_virt();
00065     CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& );
00066     CubitStatus get_simple_attribute( const CubitString& name,
00067                                       DLIList<CubitSimpleAttrib>& );
00068     
00069     
00070     void get_parents_virt( DLIList<TopologyBridge*>& );
00071     void get_children_virt( DLIList<TopologyBridge*>& );
00072     int layer() const { return sub_entity_set().get_owner_layer(); }
00073     GeometryQueryEngine* get_geometry_query_engine() const;
00074     
00075     void notify_split( FacetEntity*, FacetEntity* );
00076     
00077   private:
00078   
00079     PartitionCoEdge( const PartitionCoEdge& );
00080   
00081     CubitSense mySense;
00082     
00083     PartitionLoop* myLoop;
00084     PartitionCoEdge* loopPrev;
00085     PartitionCoEdge* loopNext;
00086     
00087     PartitionCurve* myCurve;
00088     PartitionCoEdge* curveNext;
00089     
00090 };
00091 
00092 
00093 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines