0024171: Eliminate CLang compiler warning -Wreorder
[occt.git] / src / ShapeFix / ShapeFix_FreeBounds.cdl
1 -- Created on: 1998-09-16
2 -- Created by: Roman LYGIN <rln@nnov.matra-dtv.fr>
3 -- Copyright (c) 1998-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
21 --              Pavel DURANDIN <pdn@nnov.matra-dtv.fr>
22
23
24 class FreeBounds from ShapeFix
25
26     ---Purpose: This class is intended to output free bounds of the shape
27     --          (free bounds are the wires consisting of edges referenced by the
28     --          only face).
29     --          For building free bounds it uses ShapeAnalysis_FreeBounds class.
30     --          This class complements it with the feature to reduce the number
31     --          of open wires.
32     --          This reduction is performed with help of connecting several
33     --          adjacent open wires one to another what can lead to:
34     --          1. making an open wire with greater length out of several
35     --             open wires
36     --          2. making closed wire out of several open wires
37     --
38     --          The connecting open wires is performed with a user-given
39     --          tolerance.
40     --
41     --          When connecting several open wires into one wire their previous
42     --          end vertices are replaced with new connecting vertices. After
43     --          that all the edges in the shape sharing previous vertices inside
44     --          the shape are updated with new vertices. Thus source shape can
45     --          be modified.
46     --
47     --          Since interface of this class is the same as one of
48     --          ShapeAnalysis_FreeBounds refer to its CDL for details.
49
50
51 uses
52     Shape    from TopoDS,
53     Compound from TopoDS
54
55 is
56
57     Create returns  FreeBounds from  ShapeFix;
58         ---Purpose: Empty constructor
59
60     Create (shape      : Shape   from TopoDS; 
61             sewtoler   : Real;
62             closetoler : Real;
63             splitclosed: Boolean;
64             splitopen  : Boolean)
65     returns FreeBounds from ShapeFix;
66         ---Purpose: Builds forecasting free bounds of the <shape> and connects
67         --          open wires with tolerance <closetoler>.
68         --          <shape> should be a compound of faces.
69         --          Tolerance <closetoler> should be greater than tolerance
70         --          <sewtoler> used for initializing sewing analyzer, otherwise
71         --          connection of open wires is not performed.
72     
73     Create (shape      : Shape   from TopoDS;
74             closetoler : Real;
75             splitclosed: Boolean;
76             splitopen  : Boolean)
77     returns FreeBounds from ShapeFix;
78         ---Purpose: Builds actual free bounds of the <shape> and connects
79         --          open wires with tolerance <closetoler>.
80         --          <shape> should be a compound of shells.
81
82     GetClosedWires (me) returns Compound from TopoDS; 
83         ---Purpose: Returns compound of closed wires out of free edges.
84         ---C++: inline
85         ---C++: return const &
86      
87     GetOpenWires (me) returns Compound from TopoDS; 
88         ---Purpose: Returns compound of open wires out of free edges.
89         ---C++: inline
90         ---C++: return const &
91         
92     GetShape (me) returns Shape from TopoDS;
93         ---Purpose: Returns modified source shape.
94         ---C++: inline
95         ---C++: return const &
96         
97         
98     ---Level: Internal
99     Perform (me: in out) returns Boolean is private;
100         
101 fields
102
103     myWires: Compound from TopoDS; 
104     myEdges: Compound from TopoDS; 
105     myShape: Shape    from TopoDS;
106     
107     myShared     : Boolean;
108     mySewToler   : Real;
109     myCloseToler : Real;
110     mySplitClosed: Boolean;
111     mySplitOpen  : Boolean;
112
113 end FreeBounds;