0024428: Implementation of LGPL license
[occt.git] / src / ShapeAlgo / ShapeAlgo_AlgoContainer.cdl
1 -- Created on: 2000-02-07
2 -- Created by: data exchange team
3 -- Copyright (c) 2000-2014 OPEN CASCADE SAS
4 --
5 -- This file is part of Open CASCADE Technology software library.
6 --
7 -- This library is free software; you can redistribute it and / or modify it
8 -- under the terms of the GNU Lesser General Public version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
12 --
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
15
16 class AlgoContainer from ShapeAlgo inherits TShared from MMgt
17
18     ---Purpose: 
19
20 uses
21
22     Curve                   from Geom2d,
23     BSplineCurve            from Geom2d,
24     BSplineCurve            from Geom,
25     BSplineSurface          from Geom,
26     Surface                 from Geom,
27     SequenceOfCurve         from TColGeom,
28     HSequenceOfBoundedCurve from TColGeom,
29     SequenceOfCurve         from TColGeom2d,
30     HSequenceOfBoundedCurve from TColGeom2d,
31     Shape                   from TopoDS,
32     Edge                    from TopoDS,
33     Wire                    from TopoDS,
34     Face                    from TopoDS,
35     ToolContainer           from ShapeAlgo,
36     WireData                from ShapeExtend,
37     Wire                    from ShapeAnalysis,
38     Curve                   from Geom,
39     Shape                   from GeomAbs
40
41 is
42
43     Create returns mutable AlgoContainer from ShapeAlgo;
44         ---Purpose: Empty constructor
45
46     SetToolContainer (me: mutable; TC: ToolContainer from ShapeAlgo);
47         ---C++    : inline
48         ---Purpose: Sets ToolContainer
49
50     ToolContainer (me) returns ToolContainer from ShapeAlgo;
51         ---C++    : inline
52         ---Purpose: Returns ToolContainer
53
54     
55         --- Algorithms
56
57     ConnectNextWire (me; saw        : Wire from ShapeAnalysis;
58                          nextsewd   : WireData from ShapeExtend;
59                          maxtol     : Real;
60                          distmin    : out Real;
61                          revsewd    : out Boolean;
62                          revnextsewd: out Boolean)
63     returns Boolean is virtual;
64         ---Purpose: Finds the best way to connect and connects <nextsewd> to already
65         --          built <sewd> (in <saw>).
66         --          Returns False if <nextsewd> cannot be connected, otherwise - True.
67         --          <maxtol> specifies the maximum tolerance with which <nextsewd> can
68         --          be added.
69         --          <distmin> is used to receive the minimum distance between <nextsewd>
70         --          and <sewd>.
71         --          <revsewd>   is True if <sewd>     has been reversed before connecting.
72         --          <revnextwd> is True if <nextsewd> has been reversed before connecting.
73         --          Uses functionality of ShapeAnalysis_Wire.
74
75     ApproxBSplineCurve (me; bspline: BSplineCurve from Geom; seq: out SequenceOfCurve from TColGeom)
76     is virtual;
77         ---Purpose:
78
79     ApproxBSplineCurve (me; bspline: BSplineCurve from Geom2d; seq: out SequenceOfCurve from TColGeom2d)
80     is virtual;
81         ---Purpose:
82
83     C0BSplineToSequenceOfC1BSplineCurve (me; BS   : BSplineCurve from Geom;
84                                              seqBS: out HSequenceOfBoundedCurve from TColGeom)
85     returns Boolean is virtual;
86
87     C0BSplineToSequenceOfC1BSplineCurve (me; BS   : BSplineCurve from Geom2d;
88                                              seqBS: out HSequenceOfBoundedCurve from TColGeom2d)
89     returns Boolean is virtual;
90         ---Purpose: Converts C0 B-Spline curve into sequence of C1 B-Spline curves.
91         --          Calls ShapeUpgrade::C0BSplineToSequenceOfC1BSplineCurve.
92
93     C0ShapeToC1Shape (me; shape: Shape from TopoDS; tol: Real)
94     returns Shape from TopoDS is virtual;
95         ---Purpose: Converts a shape on C0 geometry into the shape on C1 geometry.
96         ---Remark : Uses ShapeUpgrade_ShapeDivide.
97
98     ConvertSurfaceToBSpline(me; surf       : Surface from Geom;
99                                 UF,UL,VF,VL: Real)
100     returns BSplineSurface from Geom is virtual;
101         ---Purpose: Converts a surface to B-Spline.
102         --          Uses ShapeConstruct.
103
104     HomoWires (me; wireIn1 : Wire from TopoDS;
105                    wireIn2 : Wire from TopoDS;
106                    wireOut1: out Wire from TopoDS;
107                    wireOut2: out Wire from TopoDS;
108                    byParam : Boolean from Standard)
109     returns Boolean is virtual;
110         ---Purpose: Return 2 wires with the same number of edges. The both Edges
111         --          number i of these wires have got the same ratio between
112         --          theirs parameter lengths and their wire parameter lengths.
113
114     OuterWire (me; face: Face from TopoDS) returns Wire from TopoDS is virtual;
115         ---Purpose: Returns the outer wire on the face <Face>.
116
117     ConvertToPeriodic (me; surf: Surface from Geom)
118     returns Surface from Geom is virtual;
119         ---Purpose: Converts surface to periodic form.
120         --          Calls ShapeCustom_Surface.
121
122     GetFaceUVBounds (me; F: Face from TopoDS; Umin, Umax, Vmin, Vmax: out Real)
123     is virtual;
124         ---Purpose: Computes exact UV bounds of all wires on the face
125         ---Remark : Calls ShapeAnalysis::GetFaceUVBounds.
126
127     ConvertCurveToBSpline(me;C3D        : Curve from Geom;
128                           First      : Real;
129                           Last       : Real;
130                           Tol3d      : Real; 
131                           Continuity : Shape from GeomAbs; 
132                           MaxSegments: Integer;
133                           MaxDegree  : Integer)
134     returns BSplineCurve from Geom is virtual;  
135         ---Purpose: Convert Geom_Curve to Geom_BSplineCurve
136         ---Remark : Calls ShapeConstruct::CurveCurveToBSplineCurve.
137
138 fields
139
140     myTC : ToolContainer from ShapeAlgo;
141
142 end AlgoContainer;