1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
|
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to
// this header file considered to be the "object code" form of the original source.
#ifndef _Draft_Modification_HeaderFile
#define _Draft_Modification_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Draft_Modification_HeaderFile
#include <Handle_Draft_Modification.hxx>
#endif
#ifndef _Draft_DataMapOfFaceFaceInfo_HeaderFile
#include <Draft_DataMapOfFaceFaceInfo.hxx>
#endif
#ifndef _Draft_DataMapOfEdgeEdgeInfo_HeaderFile
#include <Draft_DataMapOfEdgeEdgeInfo.hxx>
#endif
#ifndef _Draft_DataMapOfVertexVertexInfo_HeaderFile
#include <Draft_DataMapOfVertexVertexInfo.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _Draft_ErrorStatus_HeaderFile
#include <Draft_ErrorStatus.hxx>
#endif
#ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx>
#endif
#ifndef _TopTools_ListOfShape_HeaderFile
#include <TopTools_ListOfShape.hxx>
#endif
#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#endif
#ifndef _BRepTools_Modification_HeaderFile
#include <BRepTools_Modification.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
#ifndef _Handle_Geom2d_Curve_HeaderFile
#include <Handle_Geom2d_Curve.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.hxx>
#endif
class StdFail_NotDone;
class Standard_NoSuchObject;
class Standard_ConstructionError;
class TopoDS_Shape;
class TopoDS_Face;
class gp_Dir;
class gp_Pln;
class TopTools_ListOfShape;
class Geom_Surface;
class TopLoc_Location;
class TopoDS_Edge;
class Geom_Curve;
class TopoDS_Vertex;
class gp_Pnt;
class Geom2d_Curve;
class Draft_Modification : public BRepTools_Modification {
public:
Standard_EXPORT Draft_Modification(const TopoDS_Shape& S);
//! Resets on the same shape. <br>
Standard_EXPORT void Clear() ;
//! Changes the basis shape and resets. <br>
Standard_EXPORT void Init(const TopoDS_Shape& S) ;
//! Adds the face F and propagates the draft <br>
//! modification to its neighbour faces if they are <br>
//! tangent. If an error occurs, will return False and <br>
//! ProblematicShape will return the "bad" face. <br>
Standard_EXPORT Standard_Boolean Add(const TopoDS_Face& F,const gp_Dir& Direction,const Standard_Real Angle,const gp_Pln& NeutralPlane,const Standard_Boolean Flag = Standard_True) ;
//! Removes the face F and the neighbour faces if they <br>
//! are tangent. It will be necessary to call this <br>
//! method if the method Add returns Standard_False, <br>
//! to unset ProblematicFace. <br>
Standard_EXPORT void Remove(const TopoDS_Face& F) ;
//! Performs the draft angle modification and sets the <br>
//! value returned by the method IsDone. If an error <br>
//! occurs, IsDone will return Standard_False, and an <br>
//! error status will be given by the method Error, <br>
//! and the shape on which the problem appeared will <br>
//! be given by ProblematicShape <br>
Standard_EXPORT void Perform() ;
//! Returns True if Perform has been succesfully <br>
//! called. Otherwise more information can be obtained <br>
//! using the methods Error() and ProblematicShape(). <br>
Standard_EXPORT Standard_Boolean IsDone() const;
Standard_EXPORT Draft_ErrorStatus Error() const;
//! Returns the shape (Face, Edge or Vertex) on which <br>
//! an error occured. <br>
Standard_EXPORT const TopoDS_Shape& ProblematicShape() const;
//! Returns all the faces which have been added <br>
//! together with the face <F>. <br>
//! <br>
Standard_EXPORT const TopTools_ListOfShape& ConnectedFaces(const TopoDS_Face& F) ;
//! Returns all the faces on which a modification has <br>
//! been given. <br>
//! <br>
Standard_EXPORT const TopTools_ListOfShape& ModifiedFaces() ;
//! Returns Standard_True if the face <F> has been <br>
//! modified. In this case, <S> is the new geometric <br>
//! support of the face, <L> the new location,<Tol> <br>
//! the new tolerance.<RevWires> has to be set to <br>
//! Standard_True when the modification reverses the <br>
//! normal of the surface.(the wires have to be <br>
//! reversed). <RevFace> has to be set to <br>
//! Standard_True if the orientation of the modified <br>
//! face changes in the shells which contain it. Here <br>
//! it will be set to Standard_False. <br>
//! <br>
//! Otherwise, returns Standard_False, and <S>, <L>, <br>
//! <Tol> , <RevWires> ,<RevFace> are not significant. <br>
Standard_EXPORT Standard_Boolean NewSurface(const TopoDS_Face& F,Handle(Geom_Surface)& S,TopLoc_Location& L,Standard_Real& Tol,Standard_Boolean& RevWires,Standard_Boolean& RevFace) ;
//! Returns Standard_True if the edge <E> has been <br>
//! modified. In this case, <C> is the new geometric <br>
//! support of the edge, <L> the new location, <Tol> <br>
//! the new tolerance. Otherwise, returns <br>
//! Standard_False, and <C>, <L>, <Tol> are not <br>
//! significant. <br>
Standard_EXPORT Standard_Boolean NewCurve(const TopoDS_Edge& E,Handle(Geom_Curve)& C,TopLoc_Location& L,Standard_Real& Tol) ;
//! Returns Standard_True if the vertex <V> has been <br>
//! modified. In this case, <P> is the new geometric <br>
//! support of the vertex, <Tol> the new tolerance. <br>
//! Otherwise, returns Standard_False, and <P>, <Tol> <br>
//! are not significant. <br>
Standard_EXPORT Standard_Boolean NewPoint(const TopoDS_Vertex& V,gp_Pnt& P,Standard_Real& Tol) ;
//! Returns Standard_True if the edge <E> has a new <br>
//! curve on surface on the face <F>.In this case, <C> <br>
//! is the new geometric support of the edge, <L> the <br>
//! new location, <Tol> the new tolerance. <br>
//! <br>
//! Otherwise, returns Standard_False, and <C>, <L>, <br>
//! <Tol> are not significant. <br>
//! <br>
//! <NewE> is the new edge created from <E>. <NewF> <br>
//! is the new face created from <F>. They may be usefull. <br>
Standard_EXPORT Standard_Boolean NewCurve2d(const TopoDS_Edge& E,const TopoDS_Face& F,const TopoDS_Edge& NewE,const TopoDS_Face& NewF,Handle(Geom2d_Curve)& C,Standard_Real& Tol) ;
//! Returns Standard_True if the Vertex <V> has a new <br>
//! parameter on the edge <E>. In this case, <P> is <br>
//! the parameter, <Tol> the new tolerance. <br>
//! Otherwise, returns Standard_False, and <P>, <Tol> <br>
//! are not significant. <br>
Standard_EXPORT Standard_Boolean NewParameter(const TopoDS_Vertex& V,const TopoDS_Edge& E,Standard_Real& P,Standard_Real& Tol) ;
//! Returns the continuity of <NewE> between <NewF1> <br>
//! and <NewF2>. <br>
//! <br>
//! <NewE> is the new edge created from <E>. <NewF1> <br>
//! (resp. <NewF2>) is the new face created from <F1> <br>
//! (resp. <F2>). <br>
Standard_EXPORT GeomAbs_Shape Continuity(const TopoDS_Edge& E,const TopoDS_Face& F1,const TopoDS_Face& F2,const TopoDS_Edge& NewE,const TopoDS_Face& NewF1,const TopoDS_Face& NewF2) ;
DEFINE_STANDARD_RTTI(Draft_Modification)
protected:
private:
Standard_EXPORT Standard_Boolean InternalAdd(const TopoDS_Face& F,const gp_Dir& Direction,const Standard_Real Angle,const gp_Pln& NeutralPlane,const Standard_Boolean Flag = Standard_True) ;
Standard_EXPORT Standard_Boolean Propagate() ;
Standard_EXPORT Handle_Geom_Curve NewCurve(const Handle(Geom_Curve)& C,const Handle(Geom_Surface)& S,const TopAbs_Orientation OriS,const gp_Dir& Direction,const Standard_Real Angle,const gp_Pln& NeutralPlane,const Standard_Boolean Flag = Standard_True) ;
Standard_EXPORT Handle_Geom_Surface NewSurface(const Handle(Geom_Surface)& S,const TopAbs_Orientation OriS,const gp_Dir& Direction,const Standard_Real Angle,const gp_Pln& NeutralPlane) ;
Draft_DataMapOfFaceFaceInfo myFMap;
Draft_DataMapOfEdgeEdgeInfo myEMap;
Draft_DataMapOfVertexVertexInfo myVMap;
Standard_Boolean myComp;
TopoDS_Shape myShape;
TopoDS_Shape badShape;
Draft_ErrorStatus errStat;
TopoDS_Face curFace;
TopTools_ListOfShape conneF;
TopTools_IndexedDataMapOfShapeListOfShape myEFMap;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|