0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_FindContigousEdges.cdl
1 -- Created on: 1995-05-02
2 -- Created by: Jing Cheng MEI
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 FindContigousEdges from BRepOffsetAPI
18
19         ---Purpose: Provides methods to identify contigous boundaries
20         --          for continuity control (C0, C1, ...)
21         --          
22         --          Use this function as following:
23         --            - create an object 
24         --                - default tolerance 1.E-06
25         --                - with analysis of degenerated faces on
26         --                - define if necessary a new tolerance
27         --                - set if necessary analysis of degenerated shapes off
28         --            - add shapes to be controlled -> Add
29         --            - compute -> Perfom
30         --            - output couples of connected edges for control
31         --            - output the problems if any
32
33 uses
34     Edge from TopoDS,
35     Shape from TopoDS,
36     ListOfShape from TopTools,
37     Sewing from BRepBuilderAPI
38
39 raises
40     OutOfRange from Standard,
41     NoSuchObject from Standard
42
43
44 is
45     Create(tolerance: Real = 1.0e-06; -- tolerance of connexity
46            option:    Boolean = Standard_True) -- option for analysis of degenerated shapes 
47         ---Purpose: Initializes an algorithm for identifying contiguous edges
48         -- on shapes with tolerance as the tolerance of contiguity
49         -- (defaulted to 1.0e-6). This tolerance value is used to
50         -- determine whether two edges or sections of edges are coincident.
51         -- Use the function Add to define the shapes to be checked.
52         -- Set option to false. This argument (defaulted to true) will
53         -- serve in subsequent software releases for performing an
54         -- analysis of degenerated shapes.
55     returns FindContigousEdges from BRepOffsetAPI;
56   
57     Init(me: in out; tolerance: Real; option: Boolean);
58         ---Purpose: Initializes this algorithm for identifying contiguous edges
59         -- on shapes using the tolerance of contiguity tolerance.
60         -- This tolerance value is used to determine whether two
61         -- edges or sections of edges are coincident.
62         -- Use the function Add to define the shapes to be checked.
63         -- Sets <option> to false.
64
65     Add(me: in out; shape: Shape from TopoDS);
66         ---Purpose: Adds the shape shape to the list of shapes to be
67         -- checked by this algorithm.
68         -- Once all the shapes to be checked have been added,
69         -- use the function Perform to find the contiguous edges
70         -- and the function ContigousEdge to return these edges.
71
72     Perform(me: in out);
73         ---Purpose: Finds coincident parts of edges of two or more shapes
74         -- added to this algorithm and breaks down these edges
75         -- into contiguous and non-contiguous sections on copies
76         -- of the initial shapes.
77         --        The function ContigousEdge returns contiguous
78         -- edges. The function Modified can be used to return
79         -- modified copies of the initial shapes where one or more
80         -- edges were broken down into contiguous and non-contiguous sections.
81         -- Warning
82         -- This function must be used once all the shapes to be
83         -- checked have been added. It is not possible to add
84         -- further shapes subsequently and then to repeat the call to Perform.
85     NbEdges(me) returns Integer;
86         ---Purpose: Gives  the number  of edges (free  edges + contigous
87         --          edges  +  multiple edge)
88
89     NbContigousEdges(me) returns Integer;
90         ---Purpose: Returns the number of contiguous edges found by the
91         -- function Perform on the shapes added to this algorithm.
92
93     ContigousEdge(me; index: Integer) returns Edge from TopoDS
94         ---Purpose: Returns the contiguous edge of index index found by
95         -- the function Perform on the shapes added to this algorithm.
96         -- Exceptions
97         -- Standard_OutOfRange if:
98         -- - index is less than 1, or
99         -- - index is greater than the number of contiguous
100         --   edges found by the function Perform on the shapes added to this algorithm.
101         ---C++: return const &
102    raises
103       OutOfRange from Standard;
104  
105     ContigousEdgeCouple(me; index: Integer) returns ListOfShape from TopTools
106         ---Purpose: Returns a list of edges coincident with the contiguous
107         -- edge of index index found by the function Perform.
108         -- There are as many edges in the list as there are faces
109         -- adjacent to this contiguous edge.
110         -- Exceptions
111         -- Standard_OutOfRange if:
112         -- - index is less than 1, or
113         -- - index is greater than the number of contiguous edges
114         --   found by the function Perform on the shapes added to this algorithm.
115         ---C++: return const &
116   raises
117       OutOfRange from Standard;
118
119     SectionToBoundary(me; section: Edge from TopoDS) returns Edge from TopoDS
120         ---Purpose: Returns the edge on the initial shape, of which the
121         -- modified copy contains the edge section.
122         -- section is coincident with a contiguous edge found by
123         -- the function Perform. Use the function
124         -- ContigousEdgeCouple to obtain a valid section.
125         -- This information is useful for verification purposes, since
126         -- it provides a means of determining the surface to which
127         -- the contiguous edge belongs.
128         -- Exceptions
129         -- Standard_NoSuchObject if section is not coincident
130         -- with a contiguous edge. Use the function
131         -- ContigousEdgeCouple to obtain a valid section.
132         ---C++: return const &
133       raises
134       NoSuchObject from Standard;
135
136     NbDegeneratedShapes(me) returns Integer;
137       ---Purpose: Gives the number of degenerated shapes
138
139     DegeneratedShape(me; index: Integer) returns Shape from TopoDS
140       ---Purpose: Gives a degenerated shape
141       ---C++: return const &
142     raises
143       OutOfRange from Standard;
144         -- raised if index < 1 or > NbDegeneratedShapes
145
146     IsDegenerated(me; shape: Shape from TopoDS) returns Boolean;
147       ---Purpose: Indicates if a input shape is degenerated
148
149     IsModified(me; shape: Shape from TopoDS) returns Boolean;
150         ---Purpose: Returns true if the copy of the initial shape shape was
151         -- modified by the function Perform (i.e. if one or more of
152         -- its edges was broken down into contiguous and non-contiguous sections).
153         -- Warning
154         -- Returns false if shape is not one of the initial shapes
155         -- added to this algorithm.
156
157     Modified(me; shape: Shape from TopoDS) returns Shape from TopoDS
158       ---Purpose: Gives a modifieded shape
159       -- Raises   NoSuchObject if shape has not been modified
160       ---C++: return const &
161     raises
162       NoSuchObject from Standard;
163
164     Dump(me);
165       ---Purpose: Dump properties of resulting shape.
166
167 fields
168     mySewing : Sewing from BRepBuilderAPI;
169
170 end FindContigousEdges;