Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : OCCCoEdge.hpp
3 : : //
4 : : // Purpose :
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Steven J. Owen
9 : : //
10 : : // Creation Date : 07/23/00
11 : : //
12 : : // Owner : Steven J. Owen
13 : : //-------------------------------------------------------------------------
14 : :
15 : : #ifndef OCCCOEDGE_HPP
16 : : #define OCCCOEDGE_HPP
17 : :
18 : : // ********** BEGIN STANDARD INCLUDES **********
19 : : // ********** END STANDARD INCLUDES **********
20 : :
21 : : // ********** BEGIN CUBIT INCLUDES **********
22 : : #include "CubitDefines.h"
23 : : #include "CubitEntity.hpp"
24 : : #include "CoEdgeSM.hpp"
25 : : #include <TopoDS_Edge.hxx>
26 : : // ********** END CUBIT INCLUDES **********
27 : :
28 : : // ********** BEGIN FORWARD DECLARATIONS **********
29 : : class TopologyEntity;
30 : : class LoopSM;
31 : :
32 : : class OCCBody;
33 : : class OCCLump;
34 : : class OCCShell;
35 : : class OCCSurface;
36 : : class OCCLoop;
37 : : class OCCCurve;
38 : : class OCCPoint;
39 : :
40 : : // ********** END FORWARD DECLARATIONS **********
41 : :
42 : : class OCCCoEdge : public CoEdgeSM
43 : : {
44 : : public:
45 : :
46 : : OCCCoEdge(Curve *curv_ptr, LoopSM *loop_ptr, CubitSense sense);
47 : : //- A constructor
48 : :
49 : : virtual ~OCCCoEdge() ;
50 : : //- The destructor
51 : :
52 : 228612 : inline CubitSense sense(){return edgeSense;}
53 : : //- returns the sense of the underlying coedge wrt the underlying edge
54 : :
55 : 5534 : inline void set_sense(CubitSense sense) {edgeSense = sense;}
56 : :
57 : 948534 : inline Curve *curve()
58 : 948534 : {return myCurve;}
59 : : //- get the curve associated with this coedge
60 : :
61 : : inline void set_curve(Curve* curve) {myCurve = curve;}
62 : :
63 [ + - ]: 82128 : inline LoopSM* loop() const { if(myLoop)return myLoop;
64 : 0 : else return NULL; }
65 : :
66 : : inline void set_loop(LoopSM * loop) {myLoop = loop;}
67 : :
68 : 11552 : inline int get_mark(){return myMark;}
69 : 11068 : inline void set_mark(int k){myMark = k;}
70 : :
71 : : virtual GeometryQueryEngine*
72 : : get_geometry_query_engine() const;
73 : : //R GeometryQueryEngine*
74 : : //R- A pointer to the geometric modeling engine associated with
75 : : //R- the object.
76 : : //- This function returns a pointer to the geometric modeling engine
77 : : //- associated with the object.
78 : :
79 : : virtual void append_simple_attribute_virt(const CubitSimpleAttrib&);
80 : : //R void
81 : : //I
82 : : //I-
83 : : //I- that is to be appended to this OSME object.
84 : : //- The purpose of this function is to append a
85 : : //- attribute to the OSME. The is attached to each of the
86 : : //- underlying solid model entities this one points to.
87 : :
88 : : virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&);
89 : : //R void
90 : : //I CubitSimpleAttrib*
91 : : //I- A reference to a CubitSimpleAttrib object which is the object
92 : : //I- that is to be removed to this OSME object.
93 : : //- The purpose of this function is to remove a simple
94 : : //- attribute from the OSME. The attribute is attached to each of the
95 : : //- underlying solid model entities this one points to.
96 : :
97 : : virtual void remove_all_simple_attribute_virt();
98 : : //R void
99 : : //I-
100 : : //- The purpose of this function is to remove all simple
101 : : //- attributes from the OSME.
102 : :
103 : : virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&);
104 : : virtual CubitStatus get_simple_attribute(const CubitString& name,
105 : : DLIList<CubitSimpleAttrib>&);
106 : : //R CubitSimpleAttrib*
107 : : //R- the returned cubit simple attribute.
108 : : //- The purpose of this function is to get the attributes
109 : : //- of the geometry entity. The name is attached to the underlying solid
110 : : //- model entity(ies) this one points to.
111 : : //- MJP Note:
112 : : //- This is the code that implements the requirement that names
113 : : //- of VGI Entities propagate across solid model boolean
114 : : //- operations. The success of this relies, of course, on the underlying
115 : : //- solid modeler being able to propagate attributes across
116 : : //- such operations on its entities. If it cannot, then "names"
117 : : //- of VGI entities will not propagate.
118 : :
119 : : virtual void get_parents_virt( DLIList<TopologyBridge*>& parents );
120 : : virtual void get_children_virt( DLIList<TopologyBridge*>& children );
121 : : protected:
122 : :
123 : : private:
124 : : int myMark;
125 : : Curve *myCurve ;
126 : : LoopSM *myLoop ;
127 : : CubitSense edgeSense;
128 : : };
129 : :
130 : :
131 : : // ********** BEGIN INLINE FUNCTIONS **********
132 : : // ********** END INLINE FUNCTIONS **********
133 : :
134 : : // ********** BEGIN FRIEND FUNCTIONS **********
135 : : // ********** END FRIEND FUNCTIONS **********
136 : :
137 : : // ********** BEGIN EXTERN FUNCTIONS **********
138 : : // ********** END EXTERN FUNCTIONS **********
139 : :
140 : : #endif
141 : :
|