cgma
|
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