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
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.
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.
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.
21 -- Pavel DURANDIN <pdn@nnov.matra-dtv.fr>
24 class FreeBounds from ShapeFix
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
29 -- For building free bounds it uses ShapeAnalysis_FreeBounds class.
30 -- This class complements it with the feature to reduce the number
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
36 -- 2. making closed wire out of several open wires
38 -- The connecting open wires is performed with a user-given
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
47 -- Since interface of this class is the same as one of
48 -- ShapeAnalysis_FreeBounds refer to its CDL for details.
57 Create returns FreeBounds from ShapeFix;
58 ---Purpose: Empty constructor
60 Create (shape : Shape from TopoDS;
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.
73 Create (shape : Shape from TopoDS;
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.
82 GetClosedWires (me) returns Compound from TopoDS;
83 ---Purpose: Returns compound of closed wires out of free edges.
85 ---C++: return const &
87 GetOpenWires (me) returns Compound from TopoDS;
88 ---Purpose: Returns compound of open wires out of free edges.
90 ---C++: return const &
92 GetShape (me) returns Shape from TopoDS;
93 ---Purpose: Returns modified source shape.
95 ---C++: return const &
99 Perform (me: in out) returns Boolean is private;
103 myWires: Compound from TopoDS;
104 myEdges: Compound from TopoDS;
105 myShape: Shape from TopoDS;
110 mySplitClosed: Boolean;
111 mySplitOpen : Boolean;