Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : FacetCoEdge.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 FACETCOEDGE_HPP
16 : : #define FACETCOEDGE_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 : : // ********** END CUBIT INCLUDES **********
26 : :
27 : : // ********** BEGIN FORWARD DECLARATIONS **********
28 : : class TopologyEntity;
29 : : class LoopSM;
30 : :
31 : : class FacetBody;
32 : : class FacetLump;
33 : : class FacetShell;
34 : : class FacetSurface;
35 : : class FacetLoop;
36 : : class FacetCurve;
37 : : class FacetPoint;
38 : :
39 : : // ********** END FORWARD DECLARATIONS **********
40 : :
41 : : class FacetCoEdge : public CoEdgeSM
42 : : {
43 : : public:
44 : :
45 : : FacetCoEdge(Curve *curv_ptr, LoopSM *loop_ptr, CubitSense sense);
46 : : //- A constructor
47 : : //
48 : : FacetCoEdge(Curve *curv_ptr, CubitSense sense);
49 : : //- A constructor (for save/restore)
50 : :
51 : : virtual ~FacetCoEdge() ;
52 : : //- The destructor
53 : :
54 : : virtual GeometryQueryEngine*
55 : : get_geometry_query_engine() const;
56 : : //R GeometryQueryEngine*
57 : : //R- A pointer to the geometric modeling engine associated with
58 : : //R- the object.
59 : : //- This function returns a pointer to the geometric modeling engine
60 : : //- associated with the object.
61 : :
62 : : virtual void append_simple_attribute_virt(const CubitSimpleAttrib&);
63 : : //R void
64 : : //I
65 : : //I-
66 : : //I- that is to be appended to this OSME object.
67 : : //- The purpose of this function is to append a
68 : : //- attribute to the OSME. The is attached to each of the
69 : : //- underlying solid model entities this one points to.
70 : :
71 : : virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&);
72 : : //R void
73 : : //I CubitSimpleAttrib*
74 : : //I- A reference to a CubitSimpleAttrib object which is the object
75 : : //I- that is to be removed to this OSME object.
76 : : //- The purpose of this function is to remove a simple
77 : : //- attribute from the OSME. The attribute is attached to each of the
78 : : //- underlying solid model entities this one points to.
79 : :
80 : : virtual void remove_all_simple_attribute_virt();
81 : : //R void
82 : : //I-
83 : : //- The purpose of this function is to remove all simple
84 : : //- attributes from the OSME.
85 : :
86 : : virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&);
87 : : virtual CubitStatus get_simple_attribute(const CubitString& name,
88 : : DLIList<CubitSimpleAttrib>&);
89 : : //R CubitSimpleAttrib*
90 : : //R- the returned cubit simple attribute.
91 : : //- The purpose of this function is to get the attributes
92 : : //- of the geometry entity. The name is attached to the underlying solid
93 : : //- model entity(ies) this one points to.
94 : : //- MJP Note:
95 : : //- This is the code that implements the requirement that names
96 : : //- of VGI Entities propagate across solid model boolean
97 : : //- operations. The success of this relies, of course, on the underlying
98 : : //- solid modeler being able to propagate attributes across
99 : : //- such operations on its entities. If it cannot, then "names"
100 : : //- of VGI entities will not propagate.
101 : :
102 : : CubitSense sense();
103 : : //- returns the sense of the underlying coedge wrt the underlying edge
104 : :
105 : : void get_lumps ( DLIList<FacetLump *>& lumps );
106 : : void get_shells ( DLIList<FacetShell *>& shells );
107 : : void get_curves ( DLIList<FacetCurve *>& curves );
108 : :
109 : : void get_parents_virt( DLIList<TopologyBridge*>& parents );
110 : : void get_children_virt( DLIList<TopologyBridge*>& children );
111 : :
112 : 1650 : void add_loop( LoopSM *loop_ptr )
113 : 1650 : { myLoop = loop_ptr; }
114 : : //- set the loop pointer that this coedge is asociated
115 : :
116 : 1716 : CubitSense get_sense()
117 : 1716 : {return edgeSense;}
118 : : //- get the sense of the coedge wrt the surface loop
119 : : void reverse_sense();
120 : :
121 : 1122 : Curve *curve()
122 : 1122 : {return myCurve;}
123 : : //- get the curve associated with this coedge
124 : :
125 : 0 : inline LoopSM* get_loop() const { return myLoop; }
126 : :
127 : 0 : inline void remove_loop() { myLoop = 0; }
128 : 0 : inline void remove_curve() { myCurve = 0; }
129 : :
130 : : protected:
131 : :
132 : : private:
133 : : LoopSM *myLoop;
134 : : Curve *myCurve;
135 : : CubitSense edgeSense;
136 : : };
137 : :
138 : :
139 : : // ********** BEGIN INLINE FUNCTIONS **********
140 : : // ********** END INLINE FUNCTIONS **********
141 : :
142 : : // ********** BEGIN FRIEND FUNCTIONS **********
143 : : // ********** END FRIEND FUNCTIONS **********
144 : :
145 : : // ********** BEGIN EXTERN FUNCTIONS **********
146 : : // ********** END EXTERN FUNCTIONS **********
147 : :
148 : : #endif
149 : :
|