Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : OCCLoop.hpp
3 : : //
4 : : // Purpose :
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Jane Hu
9 : : //
10 : : // Creation Date : 11/16/07
11 : : //
12 : : // Owner :
13 : : //-------------------------------------------------------------------------
14 : :
15 : : #ifndef LOOP_OCC_HPP
16 : : #define LOOP_OCC_HPP
17 : :
18 : : #include "CubitDefines.h"
19 : : #include "CubitEntity.hpp"
20 : : #include "LoopSM.hpp"
21 : : #include "DLIList.hpp"
22 : : #include "OCCCoEdge.hpp"
23 : : #include "TopoDS_Wire.hxx"
24 : :
25 : : class GeometryEntity;
26 : :
27 : : class OCCBody;
28 : : class OCCLump;
29 : : class OCCShell;
30 : : class OCCSurface;
31 : : class OCCCoEdge;
32 : : class OCCCurve;
33 : : class OCCPoint;
34 : : class BRepBuilderAPI_ModifyShape;
35 : : class BRepAlgoAPI_BooleanOperation;
36 : : class LocOpe_SplitShape;
37 : : class OCCLoop : public LoopSM
38 : : {
39 : : public :
40 : :
41 : : OCCLoop( TopoDS_Wire *theLoop );
42 : :
43 : 38044 : void coedges(DLIList<OCCCoEdge *> coedges) {myCoEdgeList = coedges;}
44 : :
45 : 276504 : DLIList<OCCCoEdge*> coedges() {return myCoEdgeList;}
46 : :
47 : : OCCCoEdge* remove_coedge(OCCCoEdge *coedge);
48 : :
49 : : void disconnect_all_curves();
50 : :
51 : 212810 : inline TopoDS_Wire* get_TopoDS_Wire() {return myTopoDSWire;}
52 : : void set_TopoDS_Wire(TopoDS_Wire loop);
53 : :
54 : 0 : virtual LoopType loop_type(){return LOOP_TYPE_UNKNOWN;};
55 : :
56 : : virtual ~OCCLoop() ;
57 : : //- The destructor
58 : :
59 : : virtual CubitBox bounding_box() const ;
60 : : // see comments in GeometryEntity.hpp
61 : :
62 : : virtual GeometryQueryEngine*
63 : : get_geometry_query_engine() const;
64 : : //R GeometryQueryEngine*
65 : : //R- A pointer to the geometric modeling engine associated with
66 : : //R- the object.
67 : : //- This function returns a pointer to the geometric modeling engine
68 : : //- associated with the object.
69 : :
70 : : virtual void append_simple_attribute_virt(const CubitSimpleAttrib&);
71 : : //R void
72 : : //I
73 : : //I-
74 : : //I- that is to be appended to this OSME object.
75 : : //- The purpose of this function is to append a
76 : : //- attribute to the OSME. The is attached to each of the
77 : : //- underlying solid model entities this one points to.
78 : :
79 : : virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&);
80 : : //R void
81 : : //I CubitSimpleAttrib*
82 : : //I- A reference to a CubitSimpleAttrib object which is the object
83 : : //I- that is to be removed to this OSME object.
84 : : //- The purpose of this function is to remove a simple
85 : : //- attribute from the OSME. The attribute is attached to each of the
86 : : //- underlying solid model entities this one points to.
87 : :
88 : : virtual void remove_all_simple_attribute_virt();
89 : : //R void
90 : : //I-
91 : : //- The purpose of this function is to remove all simple
92 : : //- attributes from the OSME.
93 : :
94 : : virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&);
95 : : virtual CubitStatus get_simple_attribute(const CubitString& name,
96 : : DLIList<CubitSimpleAttrib>&);
97 : : //R CubitSimpleAttrib*
98 : : //R- the returned cubit simple attribute.
99 : : //- The purpose of this function is to get the attributes
100 : : //- of the geometry entity. The name is attached to the underlying solid
101 : : //- model entity(ies) this one points to.
102 : : //- MJP Note:
103 : : //- This is the code that implements the requirement that names
104 : : //- of VGI Entities propagate across solid model boolean
105 : : //- operations. The success of this relies, of course, on the underlying
106 : : //- solid modeler being able to propagate attributes across
107 : : //- such operations on its entities. If it cannot, then "names"
108 : : //- of VGI entities will not propagate.
109 : :
110 : : virtual void get_parents_virt(DLIList<TopologyBridge*>&);
111 : : virtual void get_children_virt(DLIList<TopologyBridge*>&);
112 : :
113 : : //ModifyShape now refers only to Transform and GTransform (1/10/11)
114 : : CubitStatus update_OCC_entity( BRepBuilderAPI_ModifyShape *aBRepTrsf,
115 : : BRepAlgoAPI_BooleanOperation *op =NULL);
116 : : static CubitStatus update_OCC_entity(TopoDS_Wire & old_loop,
117 : : LocOpe_SplitShape* sp);
118 : : protected:
119 : :
120 : : private:
121 : : TopoDS_Wire *myTopoDSWire;
122 : : DLIList<OCCCoEdge *> myCoEdgeList;
123 : :
124 : : };
125 : :
126 : :
127 : : // ********** BEGIN INLINE FUNCTIONS **********
128 : : // ********** END INLINE FUNCTIONS **********
129 : :
130 : : // ********** BEGIN FRIEND FUNCTIONS **********
131 : : // ********** END FRIEND FUNCTIONS **********
132 : :
133 : : // ********** BEGIN EXTERN FUNCTIONS **********
134 : : // ********** END EXTERN FUNCTIONS **********
135 : :
136 : : #endif
137 : :
|