0023987: 2D fillets
[occt.git] / src / ChFi2d / ChFi2d.cdl
1 -- Created on: 1995-06-12
2 -- Created by: Joelle CHAUVET
3 -- Copyright (c) 1995-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 -- Modified:    Tue Oct 15 10:12:02 1996
22 --              Add ChFi2d_TangencyError (PRO3529)
23 -- Modified:    Tue Oct 22 09:23:11 1996
24 --              Add ChFi2d_FirstEdgeDegenerated, ChFi2d_LastEdgeDegenerated,
25 --              ChFi2d_BothEdgesDegenerated (PRO4896)
26 -- Modified:    Fri Sep 25 09:38:04 1998
27 --              ChFi2d_NotAuthorized is used if the edges are not
28 --              lines or circles (BUC60288)
29
30 package ChFi2d 
31
32         ---Purpose: This package contains the algorithms used to build
33         --          fillets or chamfers on planar wire.
34         --
35         -- This package provides two algorithms for 2D fillets:
36         --     ChFi2d_Builder - it constructs a fillet or chamfer 
37         --                      for linear and circular edges of a face.
38         --     ChFi2d_FilletAPI - it encapsulates two algorithms:
39         --         ChFi2d_AnaFilletAlgo - analytical constructor of the fillet.
40         --                                It works only for linear and circular edges,
41         --                                having a common point.
42         --         ChFi2d_FilletAlgo - iteration recursive method constructing 
43         --                             the fillet edge for any type of edges including
44         --                             ellipses and b-splines. 
45         --                             The edges may even have no common point.
46         --     ChFi2d_ChamferAPI - an algoroithm for construction of chamfers 
47         --                         between two linear edges of a plane.
48         --
49         -- The algorithms ChFi2d_AnaFilletAlgo and ChFi2d_FilletAlgo may be used directly 
50         -- or via the interface class ChFi2d_FilletAPI.
51
52 uses
53     TopoDS,
54     TopTools,
55     gp
56
57 is
58     
59     enumeration ConstructionError is
60         ---Purpose: error     that    can   occur       during   the
61         --          fillet  construction on planar wire
62         NotPlanar,
63             ---Purpose: the face is not planar
64         NoFace,
65             ---Purpose: the face is null
66         InitialisationError,
67             ---Purpose: the two  faces used for the initialisation are
68             --          uncompatible.
69         ParametersError,
70             ---Purpose: the  parameters  as  distances   or  angle for
71             --          chamfer are less or equal to zero.
72         Ready,
73             ---Purpose: the initialization has been succesfull.
74         IsDone,
75         ComputationError,
76             ---Purpose: the algorithm could not find a solution.
77         ConnexionError,
78             ---Purpose: the vertex given  to locate the fillet  or the
79             --          chamfer  is not connected to 2 edges.
80         TangencyError,
81             ---Purpose: the two edges connected to the vertex are tangent.
82
83  
84         FirstEdgeDegenerated,
85             ---Purpose: the first edge is degenerated.
86         LastEdgeDegenerated,
87             ---Purpose: the last edge is degenerated.
88         BothEdgesDegenerated,
89             ---Purpose: the two edges are degenerated.
90         NotAuthorized
91             ---Purpose: One or the two  edges connected to the  vertex
92             --          is a fillet or a chamfer
93             --          One or the two  edges connected to the  vertex
94             --          is not a line or a circle
95         
96     end ConstructionError;
97
98
99     class Builder;
100
101
102     CommonVertex( E1, E2 :     Edge   from TopoDS; 
103                   V      : out Vertex from TopoDS)
104     returns Boolean
105     is private;
106         ---Warning: <V> has sense only if the value <True> is returned    
107
108
109     FindConnectedEdges( F      :     Face   from TopoDS;
110                         V      :     Vertex from TopoDS;
111                         E1, E2 : out Edge   from TopoDS)
112     returns ConstructionError from ChFi2d
113     is private;
114
115         ---Warning: <E1> and <E2> has sense only if the returned value
116         --          is <IsDone>
117
118
119 end ChFi2d;
120
121
122
123
124
125