0024830: Remove redundant keyword 'mutable' in CDL declarations
[occt.git] / src / ShapeUpgrade / ShapeUpgrade.cdl
1 -- Created on: 1998-06-03
2 -- Created by: data exchange team
3 -- Copyright (c) 1998-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 package ShapeUpgrade 
18
19         ---Purpose:  This package provides tools
20         -- for splitting and converting shapes by some criteria. It
21         -- provides modifications of the kind when one topological
22         -- object can be converted or splitted to several ones. In
23         -- particular this package contains high level API classes which perform: 
24         --      converting geometry of shapes up to given continuity, 
25         --      splitting revolutions by U to segments less than given value, 
26         --      converting to beziers, 
27         --      splitting closed faces. 
28     
29 uses
30     gp,
31     Geom,
32     Geom2d,
33     GeomAbs,
34     Adaptor3d,
35     GeomAdaptor,
36     Geom2dAPI,
37     TopLoc,
38     TColStd,
39     TColGeom,
40     TColGeom2d,
41     TCollection,
42     TopoDS,
43     TopTools,
44     TopAbs,
45     ShapeExtend,
46     ShapeBuild,
47     ShapeAnalysis,
48     BRepBuilderAPI
49
50 is
51
52     --- Instanciation of generic classes (tools)
53     
54     private class Tool;
55     
56         class EdgeDivide;
57         
58             class ClosedEdgeDivide;
59             
60         class WireDivide;
61     
62         class FaceDivide;
63     
64             class ClosedFaceDivide;
65             class FaceDivideArea;
66     
67     class ShapeDivide;
68         class ShapeDivideArea;
69     
70     class ShapeDivideContinuity;    
71         ---Purpose: API Tool for converting shapes with C0 geometry into C1 ones
72     
73     class ShapeDivideAngle;
74         ---Purpose: API Class for splitting revolutions to segments less than 90
75
76     class ShapeConvertToBezier;
77         ---Purpose: API Class for convering curves to beziers.
78         
79     class ShapeDivideClosed;
80         ---Purpose:
81         
82     class ShapeDivideClosedEdges;
83         ---Purpose:
84         
85     class SplitCurve;
86         class SplitCurve2d;
87             class SplitCurve2dContinuity;
88             class ConvertCurve2dToBezier;
89         class SplitCurve3d;
90             class SplitCurve3dContinuity;
91             class ConvertCurve3dToBezier;
92         
93     class SplitSurface;
94         class SplitSurfaceContinuity;
95         class SplitSurfaceAngle;
96         class ConvertSurfaceToBezierBasis;
97         class SplitSurfaceArea;
98         
99     class ShellSewing;
100         ---Purpose: Provides access to a sewing algorithms from BRepOffsetAPI
101     class FixSmallCurves;
102     ---Purpose:
103     class FixSmallBezierCurves;
104     ---Purpose:
105     
106     class RemoveLocations;
107     ---Purpose: Removes all locations sub-shapes of specified shape
108     
109     class RemoveInternalWires;
110     ---Purpose: Removes all internal wires having area less than specified min area
111     
112     class UnifySameDomain;
113     ---Purpose: Unifies same domain faces and edges of specified shape
114     
115     C0BSplineToSequenceOfC1BSplineCurve (BS   : BSplineCurve from Geom;
116                                          seqBS: out HSequenceOfBoundedCurve from TColGeom)
117     returns Boolean;
118                                       
119     C0BSplineToSequenceOfC1BSplineCurve (BS   : BSplineCurve from Geom2d;
120                                          seqBS: out HSequenceOfBoundedCurve from TColGeom2d)
121     returns Boolean;
122     --- Purpose: Converts C0 B-Spline curve into sequence of C1 B-Spline curves.
123     --           This method splits B-Spline at the knots with multiplicities
124     --           equal to degree, i.e. unlike method
125     --           GeomConvert::C0BSplineToArrayOfC1BSplineCurve this one does not
126     --           use any tolerance and therefore does not change the geometry of
127     --           B-Spline.
128     --           Returns True if C0 B-Spline was successfully splitted, else
129     --           returns False (if BS is C1 B-Spline).
130
131 end ShapeUpgrade;