0025021: New option of BRepOffsetAPI_MakeOffset algorithm: open result for open wire
[occt.git] / src / BRepFill / BRepFill_OffsetWire.cdl
1 -- Created on: 1995-04-19
2 -- Created by: Yves FRICAUD
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class OffsetWire from BRepFill
18
19         ---Purpose: Constructs a Offset Wire to a spine (wire or face) 
20         --          on the left of spine.
21         --          The Wire or the Face must be planar.
22 uses
23
24     Face        from TopoDS,
25     Shape       from TopoDS,
26     JoinType    from GeomAbs,
27     ListOfShape from TopTools,
28     DataMapOfShapeShape               from TopTools,
29     IndexedDataMapOfOrientedShapeListOfShape from BRepFill,  
30     BisectingLocus                    from BRepMAT2d, 
31     LinkTopoBilo                      from BRepMAT2d
32     
33 raises
34     ConstructionError from Standard,
35     NoSuchObject      from Standard
36
37 is
38
39     Create returns OffsetWire from BRepFill;
40
41     Create ( Spine : Face     from TopoDS; 
42              Join  : JoinType from GeomAbs  =  GeomAbs_Arc;
43              IsOpenResult : Boolean from Standard = Standard_False)
44     returns OffsetWire from BRepFill;
45
46     Init ( me    : in out;
47            Spine : Face     from TopoDS; 
48            Join  : JoinType from GeomAbs  =  GeomAbs_Arc;
49            IsOpenResult : Boolean from Standard = Standard_False)
50         ---Purpose: Initialize the evaluation of Offseting.
51     raises
52         ConstructionError from Standard
53     is static;
54     
55     Perform (me : in out; 
56              Offset : Real from Standard;
57              Alt    : Real from Standard = 0.0)
58         ---Purpose: Performs  an OffsetWire at  an altitude <Alt> from
59         --          the  face ( According  to  the orientation of  the
60         --          face)
61     raises
62         ConstructionError from Standard
63     is static;
64     
65     PerformWithBiLo (me      : in out; 
66                      WSP     :        Face            from TopoDS;
67                      Offset  :        Real            from Standard;
68                      Locus   :        BisectingLocus  from BRepMAT2d; 
69                      Link    : in out LinkTopoBilo    from BRepMAT2d; 
70                      Join    :        JoinType  from GeomAbs  =  GeomAbs_Arc; 
71                      Alt     :        Real      from Standard = 0.0)
72         ---Purpose: Performs an  OffsetWire 
73     raises
74         ConstructionError from Standard
75     is static;
76     
77     IsDone ( me) 
78     returns Boolean from Standard
79     is static;
80
81     Spine(me) 
82     returns Face from TopoDS
83         ---C++: return const &
84     is static;
85
86
87     Shape(me) returns Shape from TopoDS
88         ---Purpose: returns the generated shape.
89         ---C++ : return const &
90     is static;
91     
92     GeneratedShapes (me : in out ; SpineShape : Shape from TopoDS)
93         ---Purpose: Returns   the  shapes  created  from   a  subshape
94         --          <SpineShape> of the spine.
95         --          Returns the last computed Offset.   
96         --          
97         ---C++ : return const &          
98     returns ListOfShape from TopTools
99     is static;                   
100
101     JoinType (me) returns JoinType from GeomAbs
102     is static;
103     
104     Generated (me : in out )
105         ---C++: return &
106     returns IndexedDataMapOfOrientedShapeListOfShape from BRepFill
107     is static private;
108     
109     PrepareSpine (me : in out)
110         ---Purpose: Prepare the spine as follow
111         --          - Cut the spine-Edges at the extrema of curvature and
112         --            at the inflexion points.
113     is static private;
114
115     Add(me : in out; Other : OffsetWire from BRepFill)
116         ---Purpose: Add the OffsetWire <Other> to <me> and update <myMap>
117     is static private;
118     
119     MakeWires (me : in  out)
120         ---Purpose: Constructs the wires with the trimmed offset edges.
121     is static private;
122     
123     FixHoles (me : in  out)
124         ---Purpose: Fix holes between open wires where it is possible
125     is static private; 
126     
127 fields
128
129     mySpine     : Face      from TopoDS;
130     myWorkSpine : Face      from TopoDS;
131     myOffset    : Real      from Standard; -- >0 ;
132     myIsOpenResult : Boolean from Standard;
133     myShape     : Shape     from TopoDS;
134     myIsDone    : Boolean   from Standard;
135     myJoinType  : JoinType  from GeomAbs;           
136     myMap       : IndexedDataMapOfOrientedShapeListOfShape from BRepFill; 
137     myBilo      : BisectingLocus                    from BRepMAT2d;
138     myLink      : LinkTopoBilo                      from BRepMAT2d;
139     myMapSpine  : DataMapOfShapeShape               from TopTools;
140     myCallGen   : Boolean                           from Standard;          
141
142 end OffsetWire;