Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : FacetLoop.hpp
3 : : //
4 : : // Purpose :
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Steven J. Owen
9 : : //
10 : : // Creation Date : 12/06/00
11 : : //
12 : : // Owner : Steven J. Owen
13 : : //-------------------------------------------------------------------------
14 : :
15 : : #ifndef LOOP_Facet_HPP
16 : : #define LOOP_Facet_HPP
17 : :
18 : : #include "CubitDefines.h"
19 : : #include "CubitEntity.hpp"
20 : : #include "LoopSM.hpp"
21 : : #include "DLIList.hpp"
22 : :
23 : : class GeometryEntity;
24 : :
25 : : class FacetBody;
26 : : class FacetLump;
27 : : class FacetShell;
28 : : class FacetSurface;
29 : : class FacetCoEdge;
30 : : class FacetCurve;
31 : : class FacetPoint;
32 : :
33 : : class FacetLoop : public LoopSM
34 : : {
35 : : public :
36 : :
37 : : FacetLoop( Surface *surf_ptr,
38 : : DLIList<CoEdgeSM*> &coedge_list );
39 : : //I- surf_ptr
40 : : //I- A pointer to the set of CoEdges that bound this loop
41 : :
42 : : FacetLoop( DLIList<CoEdgeSM*> &coedge_list );
43 : : //I- A pointer to the set of CoEdges that bound this loop
44 : :
45 : : virtual ~FacetLoop() ;
46 : : //- The destructor
47 : :
48 : : virtual CubitBoolean is_external() ;
49 : : //R CubitBoolean
50 : : //R- CUBIT_TRUE/CUBIT_FALSE
51 : : //- Returns CUBIT_TRUE if the Loop is an external Loop and CUBIT_FALSE
52 : : //- otherwise.
53 : :
54 : : virtual LoopType loop_type() ;
55 : :
56 : : virtual void append_simple_attribute_virt(const CubitSimpleAttrib&);
57 : : //R void
58 : : //I
59 : : //I-
60 : : //I- that is to be appended to this OSME object.
61 : : //- The purpose of this function is to append a
62 : : //- attribute to the OSME. The is attached to each of the
63 : : //- underlying solid model entities this one points to.
64 : :
65 : : virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&);
66 : : //R void
67 : : //I CubitSimpleAttrib*
68 : : //I- A reference to a CubitSimpleAttrib object which is the object
69 : : //I- that is to be removed to this OSME object.
70 : : //- The purpose of this function is to remove a simple
71 : : //- attribute from the OSME. The attribute is attached to each of the
72 : : //- underlying solid model entities this one points to.
73 : :
74 : : virtual void remove_all_simple_attribute_virt();
75 : : //R void
76 : : //I-
77 : : //- The purpose of this function is to remove all simple
78 : : //- attributes from the OSME.
79 : :
80 : : virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&);
81 : : virtual CubitStatus get_simple_attribute(const CubitString& name,
82 : : DLIList<CubitSimpleAttrib>&);
83 : : //R CubitSimpleAttrib*
84 : : //R- the returned cubit simple attribute.
85 : : //- The purpose of this function is to get the attributes
86 : : //- of the geometry entity. The name is attached to the underlying solid
87 : : //- model entity(ies) this one points to.
88 : : //- MJP Note:
89 : : //- This is the code that implements the requirement that names
90 : : //- of VGI Entities propagate across solid model boolean
91 : : //- operations. The success of this relies, of course, on the underlying
92 : : //- solid modeler being able to propagate attributes across
93 : : //- such operations on its entities. If it cannot, then "names"
94 : : //- of VGI entities will not propagate.
95 : :
96 : : virtual CubitBox bounding_box() const ;
97 : : // see comments in GeometryEntity.hpp
98 : :
99 : : virtual GeometryQueryEngine*
100 : : get_geometry_query_engine() const;
101 : : //R GeometryQueryEngine*
102 : : //R- A pointer to the geometric modeling engine associated with
103 : : //R- the object.
104 : : //- This function returns a pointer to the geometric modeling engine
105 : : //- associated with the object.
106 : :
107 : : void get_lumps ( DLIList<FacetLump *>& lumps );
108 : : void get_shells ( DLIList<FacetShell *>& shells );
109 : : void get_coedges ( DLIList<FacetCoEdge *>& coedges );
110 : : void get_curves ( DLIList<FacetCurve *>& curves );
111 : :
112 : : void get_parents_virt( DLIList<TopologyBridge*>& parents );
113 : : void get_children_virt( DLIList<TopologyBridge*>& children );
114 : :
115 : 462 : void add_surface( Surface *new_surface_ptr )
116 : 462 : { mySurface = new_surface_ptr; }
117 : :
118 : 0 : void reverse()
119 : 0 : { myCoEdges.reverse(); }
120 : :
121 : 0 : inline Surface* get_surface() const { return mySurface; }
122 : :
123 : 0 : inline void remove_surface() { mySurface = 0; }
124 : :
125 : : void disconnect_all_coedges();
126 : :
127 : : protected:
128 : :
129 : : private:
130 : : Surface *mySurface;
131 : : DLIList<CoEdgeSM*> myCoEdges;
132 : :
133 : : };
134 : :
135 : :
136 : : // ********** BEGIN INLINE FUNCTIONS **********
137 : : // ********** END INLINE FUNCTIONS **********
138 : :
139 : : // ********** BEGIN FRIEND FUNCTIONS **********
140 : : // ********** END FRIEND FUNCTIONS **********
141 : :
142 : : // ********** BEGIN EXTERN FUNCTIONS **********
143 : : // ********** END EXTERN FUNCTIONS **********
144 : :
145 : : #endif
146 : :
|