79da8264b2df7e5abf8216f339c8803694029a9e
[occt.git] / src / ShapeFix / ShapeFix.cdl
1 -- File:        ShapeFix.cdl
2 -- Created:     Wed Jun  3 12:07:35 1998
3 -- Author:      data exchange team
4 --              <det@nnov.matra-dtv.fr>
5 ---Copyright:    Matra Datavision 1998
6
7 package ShapeFix 
8
9   ---Purpose:  This package provides algorithms for fixing
10   -- problematic (violating Open CASCADE requirements) shapes.
11   -- Tools from package ShapeAnalysis are used for detecting the problems. The
12   -- detecting and fixing is done taking in account various
13   -- criteria implemented in BRepCheck package. 
14   -- Each class of package ShapeFix deals with one
15         -- certain type of shapes or with some family of problems.
16
17 uses
18
19     gp,
20     Geom,
21     Geom2d,
22     Geom2dAPI,
23     GeomAbs,
24     Adaptor3d,
25     TCollection,
26     TColStd,
27     TopAbs,
28     TopLoc,
29     TopoDS, 
30     TopTools,
31     Message,
32     ShapeExtend,
33     ShapeAnalysis,
34     ShapeConstruct,
35     ShapeBuild,
36     Bnd
37
38 is
39
40     -- classes
41     class Root;    
42
43     class EdgeProjAux;
44
45     class Edge;
46         ---Purpose: Fixing different problems on edge
47         
48     class Wire;
49       ---Purpose: Fixing different problems with wires
50
51     class Face;
52         ---Purpose: Fixing problems with face (orientation of wires and wrong wires)
53           
54     class FixSmallFace;
55       ---Purpose: Fixing face with small size
56
57     class WireVertex;
58         ---Purpose: Fixing disconnected edges in the wire
59
60     class Wireframe;
61       ---Purpose: Provides methods to fix wireframe of shape
62     
63     class FreeBounds;
64       ---Purpose: Fixing free bounds of the shape (connecting open wires)
65
66     class FaceConnect;
67       ---Purpose: Rebuilds connectivity between faces in shell
68         
69     class Shell;
70         ---Purpose: Fixing orientation of faces in shell
71
72     class Solid;
73       ---Purpose: Creating solid from shell and orienting it to have finite volume
74         
75     class ShapeTolerance;
76         ---Purpose: Modifying shape tolerances
77
78     class Shape;
79         ---Purpose: Fixing problem of shape. 
80
81     class EdgeConnect;
82         ---Purpose: Rebuilds edges to connect with new vertices, was moved from ShapeBuild
83
84     class ComposeShell;
85         ---Purpose: Splits a (pseudo)face onto grid of faces (shell)
86
87     class SplitCommonVertex;
88         ---Purpose: Splits vertex which is common for two wires
89       --          (for writing into STEP)
90
91     class WireSegment;
92         ---Purpose: Auxiliary class (data storage) for ComposeShell
93         
94     class IntersectionTool;
95         ---Purpose: Tool for fixing selfintersecting wire
96       --          and intersecting wires
97         
98     class SplitTool;
99         ---Purpose: Tool for splitting and cutting edges; incudes methods
100       --          used in OverlappingTool and IntersectionTool
101         
102     class SequenceOfWireSegment instantiates Sequence from TCollection
103         (WireSegment from ShapeFix);
104     
105     class DataMapOfShapeBox2d instantiates DataMap from TCollection                           
106         (Shape from TopoDS, Box2d from Bnd, ShapeMapHasher from TopTools);
107
108
109     SameParameter (shape       : Shape from TopoDS;
110                    enforce     : Boolean;
111                    preci       : Real = 0.0;
112                    theProgress : ProgressIndicator from Message = 0)
113     returns Boolean;
114         ---Purpose : Runs SameParameter from BRepLib with these adaptations :
115         --           <enforce> forces computations, else they are made only on
116         --             Edges with flag SameParameter false
117         --           <preci>, if not precised, is taken for each EDge as its own
118         --           Tolerance
119         --           Returns True when done, False if an exception has been raised
120         --           In case of exception anyway, as many edges as possible have
121         --           been processed. The passed progress indicator allows user
122         --           to consult the current progress stage and abort algorithm
123         --           if needed.
124
125     EncodeRegularity (shape: Shape from TopoDS; tolang: Real = 1.0e-10);
126         ---Purpose : Runs EncodeRegularity from BRepLib taking into account
127       --           shared components of assemblies, so that each component
128       --           is processed only once
129
130     RemoveSmallEdges (shape: in out Shape from TopoDS; Tolerance: Real; context: in out ReShape from ShapeBuild) 
131         returns Shape from TopoDS;
132       ---Purpose: Removes edges which are less than given tolerance from shape
133       --          with help of ShapeFix_Wire::FixSmall()
134
135     FixVertexPosition(theshape: in out Shape from TopoDS;
136                       theTolerance: Real; 
137                       thecontext: ReShape from ShapeBuild) returns Boolean;
138       ---Purpose: Fix position of the vertices having tolerance more tnan specified one.;       
139          
140     LeastEdgeSize(theshape: in out Shape from TopoDS) returns Real;
141       ---Purpose: Calculate size of least edge;       
142          
143
144 end ShapeFix;