0025021: New option of BRepOffsetAPI_MakeOffset algorithm: open result for open wire
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_MakeOffset.cdl
1 -- Created on: 1995-09-18
2 -- Created by: Bruno DUMORTIER
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 MakeOffset from BRepOffsetAPI inherits MakeShape from BRepBuilderAPI
18
19         ---Purpose: Describes algorithms for offsetting wires from a set of
20         -- wires contained in a planar face.
21         -- A MakeOffset object provides a framework for:
22         -- - defining the construction of an offset,
23         -- - implementing the construction algorithm, and
24         -- - consulting the result. 
25
26 uses
27     Shape             from TopoDS,
28     Wire              from TopoDS,
29     Face              from TopoDS,
30     ListOfShape       from TopTools,
31     OffsetWire        from BRepFill, 
32     ListOfOffsetWire  from BRepFill,
33     JoinType          from GeomAbs
34     
35     
36 raises
37     NotDone from StdFail
38     
39 is
40     Create returns MakeOffset from BRepOffsetAPI;
41         ---Purpose: Constructs an algorithm for creating an empty offset
42     Create( Spine : Face from TopoDS;
43             Join  : JoinType from GeomAbs = GeomAbs_Arc;
44             IsOpenResult : Boolean from Standard = Standard_False)
45     returns MakeOffset from BRepOffsetAPI;
46         ---Purpose: Constructs an algorithm for creating an algorithm
47         -- to build parallels to the spine Spine   
48     Init( me    : in out;
49           Spine : Face     from TopoDS; 
50           Join  : JoinType from GeomAbs  =  GeomAbs_Arc;
51           IsOpenResult : Boolean from Standard = Standard_False)
52         ---Purpose: Initializes the algorithm to construct parallels to the spine Spine.
53         -- Join defines the type of parallel generated by the
54         -- salient vertices of the spine. The default type is
55         -- GeomAbs_Arc where the vertices generate sections
56         -- of a circle. At present, this is the only construction type implemented.
57     is static;
58     
59     Create( Spine : Wire from TopoDS;
60             Join  : JoinType from GeomAbs = GeomAbs_Arc;
61             IsOpenResult : Boolean from Standard = Standard_False)
62     returns MakeOffset from BRepOffsetAPI;
63     
64     Init( me    : in out;
65           Join  : JoinType from GeomAbs  =  GeomAbs_Arc;
66           IsOpenResult : Boolean from Standard = Standard_False)
67         ---Purpose: Initialize the evaluation of Offseting.
68     is static;
69
70     AddWire (me : in out;
71              Spine : Wire from TopoDS)
72         ---Purpose: Initializes the algorithm to construct parallels to the wire Spine.
73     is static;
74
75     Perform (me : in out; 
76              Offset : Real from Standard;
77              Alt    : Real from Standard = 0.0)
78         ---Purpose:  Computes a parallel to the spine at distance Offset and
79         -- at an altitude Alt from the plane of the spine in relation
80         -- to the normal to the spine.
81         -- Exceptions: StdFail_NotDone if the offset is not built.
82     raises
83         NotDone from StdFail
84     is static;
85
86         
87     Build(me : in out)
88     is redefined;
89         ---Purpose: Builds the resulting shape (redefined from MakeShape).
90         ---Level: Public    
91
92     Generated  (me: in out; S : Shape from TopoDS)
93         ---Purpose: returns a list of the created shapes
94         --          from the shape <S>.
95         ---C++:     return const &
96         ---Level: Public
97     returns ListOfShape from TopTools
98     is redefined;
99
100
101 fields
102
103     myIsInitialized : Boolean          from Standard;
104     myLastIsLeft    : Boolean          from Standard;
105     myJoin          : JoinType         from GeomAbs;    
106     myIsOpenResult  : Boolean          from Standard;   
107     myFace          : Face             from TopoDS;
108     myWires         : ListOfShape      from TopTools;   
109     myLeft          : ListOfOffsetWire from BRepFill;
110     myRight         : ListOfOffsetWire from BRepFill;
111     
112 end MakeOffset;