cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : OCCCoEdge.hpp 00003 // 00004 // Purpose : 00005 // 00006 // Special Notes : 00007 // 00008 // Creator : Steven J. Owen 00009 // 00010 // Creation Date : 07/23/00 00011 // 00012 // Owner : Steven J. Owen 00013 //------------------------------------------------------------------------- 00014 00015 #ifndef OCCCOEDGE_HPP 00016 #define OCCCOEDGE_HPP 00017 00018 // ********** BEGIN STANDARD INCLUDES ********** 00019 // ********** END STANDARD INCLUDES ********** 00020 00021 // ********** BEGIN CUBIT INCLUDES ********** 00022 #include "CubitDefines.h" 00023 #include "CubitEntity.hpp" 00024 #include "CoEdgeSM.hpp" 00025 #include <TopoDS_Edge.hxx> 00026 // ********** END CUBIT INCLUDES ********** 00027 00028 // ********** BEGIN FORWARD DECLARATIONS ********** 00029 class TopologyEntity; 00030 class LoopSM; 00031 00032 class OCCBody; 00033 class OCCLump; 00034 class OCCShell; 00035 class OCCSurface; 00036 class OCCLoop; 00037 class OCCCurve; 00038 class OCCPoint; 00039 00040 // ********** END FORWARD DECLARATIONS ********** 00041 00042 class OCCCoEdge : public CoEdgeSM 00043 { 00044 public: 00045 00046 OCCCoEdge(Curve *curv_ptr, LoopSM *loop_ptr, CubitSense sense); 00047 //- A constructor 00048 00049 virtual ~OCCCoEdge() ; 00050 //- The destructor 00051 00052 inline CubitSense sense(){return edgeSense;} 00053 //- returns the sense of the underlying coedge wrt the underlying edge 00054 00055 inline void set_sense(CubitSense sense) {edgeSense = sense;} 00056 00057 inline Curve *curve() 00058 {return myCurve;} 00059 //- get the curve associated with this coedge 00060 00061 inline void set_curve(Curve* curve) {myCurve = curve;} 00062 00063 inline LoopSM* loop() const { if(myLoop)return myLoop; 00064 else return NULL; } 00065 00066 inline void set_loop(LoopSM * loop) {myLoop = loop;} 00067 00068 inline int get_mark(){return myMark;} 00069 inline void set_mark(int k){myMark = k;} 00070 00071 virtual GeometryQueryEngine* 00072 get_geometry_query_engine() const; 00073 //R GeometryQueryEngine* 00074 //R- A pointer to the geometric modeling engine associated with 00075 //R- the object. 00076 //- This function returns a pointer to the geometric modeling engine 00077 //- associated with the object. 00078 00079 virtual void append_simple_attribute_virt(const CubitSimpleAttrib&); 00080 //R void 00081 //I 00082 //I- 00083 //I- that is to be appended to this OSME object. 00084 //- The purpose of this function is to append a 00085 //- attribute to the OSME. The is attached to each of the 00086 //- underlying solid model entities this one points to. 00087 00088 virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&); 00089 //R void 00090 //I CubitSimpleAttrib* 00091 //I- A reference to a CubitSimpleAttrib object which is the object 00092 //I- that is to be removed to this OSME object. 00093 //- The purpose of this function is to remove a simple 00094 //- attribute from the OSME. The attribute is attached to each of the 00095 //- underlying solid model entities this one points to. 00096 00097 virtual void remove_all_simple_attribute_virt(); 00098 //R void 00099 //I- 00100 //- The purpose of this function is to remove all simple 00101 //- attributes from the OSME. 00102 00103 virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&); 00104 virtual CubitStatus get_simple_attribute(const CubitString& name, 00105 DLIList<CubitSimpleAttrib>&); 00106 //R CubitSimpleAttrib* 00107 //R- the returned cubit simple attribute. 00108 //- The purpose of this function is to get the attributes 00109 //- of the geometry entity. The name is attached to the underlying solid 00110 //- model entity(ies) this one points to. 00111 //- MJP Note: 00112 //- This is the code that implements the requirement that names 00113 //- of VGI Entities propagate across solid model boolean 00114 //- operations. The success of this relies, of course, on the underlying 00115 //- solid modeler being able to propagate attributes across 00116 //- such operations on its entities. If it cannot, then "names" 00117 //- of VGI entities will not propagate. 00118 00119 virtual void get_parents_virt( DLIList<TopologyBridge*>& parents ); 00120 virtual void get_children_virt( DLIList<TopologyBridge*>& children ); 00121 protected: 00122 00123 private: 00124 int myMark; 00125 Curve *myCurve ; 00126 LoopSM *myLoop ; 00127 CubitSense edgeSense; 00128 }; 00129 00130 00131 // ********** BEGIN INLINE FUNCTIONS ********** 00132 // ********** END INLINE FUNCTIONS ********** 00133 00134 // ********** BEGIN FRIEND FUNCTIONS ********** 00135 // ********** END FRIEND FUNCTIONS ********** 00136 00137 // ********** BEGIN EXTERN FUNCTIONS ********** 00138 // ********** END EXTERN FUNCTIONS ********** 00139 00140 #endif 00141