0023024: Update headers of OCCT files
[occt.git] / src / BRepFill / BRepFill_Sweep.cdl
CommitLineData
b311480e 1-- Created on: 1997-11-21
2-- Created by: Philippe MANGIN
3-- Copyright (c) 1997-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
5--
6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23class Sweep from BRepFill
24
25 ---Purpose: Topological Sweep Algorithm
26 ---Level: Advanced
27
28uses
29 SectionLaw from BRepFill,
30 LocationLaw from BRepFill,
31 ApproxStyle from GeomFill,
32 TransitionStyle from BRepFill,
33 HCurve from Adaptor3d,
34 Shape from GeomAbs,
35 HArray2OfShape from TopTools,
36 ListOfShape from TopTools,
37 DataMapOfShapeShape from TopTools,
38 Wire from TopoDS,
39 Shape from TopoDS,
40 Trsf from gp
41
42raises
43 NotDone,
44 OutOfRange,
45 ConstructionError
46is
47 Create(Section : SectionLaw from BRepFill;
48 Location : LocationLaw from BRepFill;
49 WithKPart: Boolean)
50 returns Sweep from BRepFill;
51
52 SetBounds(me : in out;
53 FirstShape, LastShape : Wire from TopoDS);
54
55 SetTolerance(me : in out;
56 Tol3d : Real;
57 BoundTol : Real = 1.0;
58 Tol2d : Real = 1.0e-5;
59 TolAngular : Real = 1.0e-2);
60 ---Purpose: Set Approximation Tolerance
61 -- Tol3d : Tolerance to surface approximation
62 -- Tol2d : Tolerance used to perform curve approximation
63 -- Normaly the 2d curve are approximated with a
64 -- tolerance given by the resolution on support surfaces,
65 -- but if this tolerance is too large Tol2d is used.
66 -- TolAngular : Tolerance (in radian) to control the angle
67 -- beetween tangents on the section law and
68 -- tangent of iso-v on approximed surface
69
70 SetAngularControl(me: in out;
71 AngleMin : Real = 0.01;
72 AngleMax : Real = 6.0)
73 ---Purpose: Tolerance To controle Corner management.
74 --
75 -- If the discontinuity is lesser than <AngleMin> in radian The
76 -- Transition Performed will be alway "Modified"
77 --
78
79 -- If the discontinuity is greater than <AngleMax> in radian The
80 -- Transition "Round" replace the Transition "Right"
81 is static;
82
83 Build(me : in out;
84 Transition : TransitionStyle = BRepFill_Modified;
85 Approx : ApproxStyle = GeomFill_Location;
86 Continuity : Shape from GeomAbs = GeomAbs_C2;
87 Degmax : Integer = 11;
88 Segmax : Integer = 30);
89
90 ---Purpose: Build the Sweeep Surface
91 -- Transition define Transition strategy
92 -- Approx define Approximation Strategy
93 -- - GeomFill_Section : The composed Function Location X Section
94 -- is directly approximed.
95 -- - GeomFill_Location : The location law is approximed, and the
96 -- SweepSurface is bulid algebric composition
97 -- of approximed location law and section law
98 -- This option is Ok, if Section.Surface() methode
99 -- is effective.
100 -- Continuity : The continuity in v waiting on the surface
101 -- Degmax : The maximum degree in v requiered on the surface
102 -- Segmax : The maximum number of span in v requiered on
103 -- the surface.
104
105 CorrectApproxParameters(me: in out)
106 returns Boolean is private;
107
108 BuildWire(me : in out;
109 Transition : TransitionStyle)
110 returns Boolean is private;
111
112 BuildShell(me : in out;
113 Transition : TransitionStyle;
114 Vf, Vl : Integer;
115 ExtendFirst : Real = 0.0;
116 ExtendLast : Real = 0.0)
117 returns Boolean is private;
118
119 IsDone(me)
120 ---Purpose: Say if the Shape is Build.
121 returns Boolean;
122
123 Shape(me)
124 ---Purpose: returns the Sweeping Shape
125 returns Shape from TopoDS;
126
127 ErrorOnSurface(me)
128 ---Purpose: Get the Approximation error.
129 returns Real;
130
131 SubShape(me)
132 returns HArray2OfShape from TopTools;
133
134 InterFaces(me)
135 returns HArray2OfShape from TopTools;
136
137 Sections(me)
138 returns HArray2OfShape from TopTools;
139
140 PerformCorner(me : in out; Index : Integer;
141 Transition : TransitionStyle;
142 Bounds : HArray2OfShape from TopTools)
143 is private;
144
145 EvalExtrapol(me; Index : Integer;
146 Transition : TransitionStyle)
147 returns Real
148 is private;
149
150 MergeVertex(me;
151 V1 : Shape from TopoDS;
152 V2 : in out Shape from TopoDS)
153 returns Boolean is private;
154
155 UpdateVertex(me; Ipath, Isec : Integer;
156 Error, Param : Real;
157 V : in out Shape from TopoDS)
158 is private;
159
160fields
161 isDone : Boolean;
162 KPart : Boolean;
163 myTol3d : Real;
164 myBoundTol : Real;
165 myTol2d : Real;
166 myTolAngular : Real;
167 myAngMin : Real;
168 myAngMax : Real;
169 myApproxStyle : ApproxStyle from GeomFill;
170 myContinuity : Shape from GeomAbs;
171 myDegmax : Integer;
172 mySegmax : Integer;
173 myShape : Shape from TopoDS;
174 myLoc : LocationLaw from BRepFill;
175 mySec : SectionLaw from BRepFill;
176 myUEdges : HArray2OfShape from TopTools;
177 myVEdges : HArray2OfShape from TopTools;
178 myVEdgesModified : DataMapOfShapeShape from TopTools;
179 myFaces : HArray2OfShape from TopTools;
180 myAuxShape : ListOfShape from TopTools;
181
182 Error : Real;
183 FirstShape,
184 LastShape : Wire from TopoDS;
185end Sweep;