0024784: Move documentation in CDL files to proper location
[occt.git] / src / ShapeAnalysis / ShapeAnalysis.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 ShapeAnalysis 
18
19     ---Purpose: This package is intended to analyze geometrical objects
20 -- and topological shapes. Analysis domain includes both
21 -- exploring geometrical and topological properties of
22 -- shapes and checking their conformance to Open CASCADE requirements.
23 -- The directions of analysis provided by tools of this package are:
24 -- computing quantities of subshapes,  
25 -- computing parameters of points on curve and surface,  
26 -- computing surface singularities,  
27 -- checking edge and wire consistency,  
28 -- checking edges order in the wire,  
29 -- checking face bounds orientation,  
30 -- checking small faces,  
31 -- analyzing shape tolerances,  
32 -- analyzing of free bounds of the shape.  
33
34 uses
35     gp,
36     TColStd,
37     TCollection,
38     TColgp,
39     Bnd,
40     Geom, 
41     Geom2d,
42     GeomAdaptor,
43     Extrema,
44     IntRes2d,
45     TopAbs,
46     TopLoc,
47     TopoDS,
48     TopTools,
49     ShapeExtend,
50     Adaptor3d
51     
52 is
53  
54     class Geom;
55
56     class Curve;
57
58     class Surface;
59
60     class Edge;
61
62     class Wire;
63
64     class WireOrder;
65
66     class WireVertex;
67
68     class CheckSmallFace;                                                                                 
69
70     class Shell;                    
71
72     class ShapeTolerance;
73
74     --class OverlapEdges;  now it is in package OverlapShape of Products
75     --- Container for keeping information about
76         --          overlapping edges
77
78     --class CheckCoincidenceTool;  now it is in package OverlapShape of Products
79     ---Tool for checking coincidence of faces and edges
80
81      -- Class intended for analyzing shape contents
82     
83     class ShapeContents;
84
85     -- Classes intended for free bounds analysis
86
87     class FreeBounds;
88
89     class FreeBoundData;
90
91     class FreeBoundsProperties;
92
93     class TransferParameters;
94
95         class TransferParametersProj;
96
97     class SequenceOfFreeBounds instantiates
98         Sequence  from TCollection (FreeBoundData from ShapeAnalysis);
99
100     class HSequenceOfFreeBounds instantiates
101         HSequence from TCollection (FreeBoundData        from ShapeAnalysis,
102                                     SequenceOfFreeBounds from ShapeAnalysis);
103
104     class DataMapOfShapeListOfReal instantiates
105         DataMap from TCollection(Shape          from TopoDS,
106                                  ListOfReal     from TColStd,
107                                  ShapeMapHasher from TopTools);
108
109     --class SequenceOfOverlapEdges instantiates 
110         --Sequence from TCollection (OverlapEdges from ShapeAnalysis); 
111             -- now it is in package OverlapShape of Products
112         
113     --class IndexedDataMapOfShapeSequenceOfOverlapEdges instantiates
114         --IndexedDataMap from TCollection(Shape          from TopoDS,
115                                         --SequenceOfOverlapEdges from ShapeAnalysis,
116                                         --ShapeMapHasher from TopTools);
117             -- now it is in package OverlapShape of Products
118                                         
119
120     OuterWire (face: Face from TopoDS) returns Wire from TopoDS;
121         ---Purpose: Returns the outer wire on the face <Face>.
122         --          This is replacement of the method BRepTools::OuterWire
123         --          until it works badly.
124         --          Returns the first wire oriented as outer according to
125         --          FClass2d_Classifier. If none, last wire is returned.
126
127     TotCross2D(sewd: WireData from ShapeExtend; aFace: Face from TopoDS)
128     returns Real;
129         ---Purpose: Returns a total area of 2d wire
130         
131     ContourArea(theWire : Wire from TopoDS) returns Real;
132        --sewd: WireData from ShapeExtend) returns Real;
133         ---Purpose: Returns a total area of 3d wire
134         
135     IsOuterBound (face: Face from TopoDS) returns Boolean;
136         ---Purpose: Returns True if <F> has outer bound.
137         ---Remarks: This method checks only presence of outer bound, it does not
138         --          check mutual orientation of the bounds on a face
139
140     AdjustByPeriod(Val: Real; ToVal: Real; Period: Real)
141     returns Real;
142         ---Purpose: Returns a shift required to move point
143         --          <Val> to the range [ToVal-Period/2,ToVal+Period/2].
144         --          This shift will be the divisible by Period.
145         --          Intended for adjusting parameters on periodic surfaces.
146         
147     AdjustToPeriod(Val: Real; ValMin: Real; ValMax: Real)
148     returns Real;
149         ---Purpose: Returns a shift required to move point
150         --          <Val> to the range [ValMin,ValMax].
151         --          This shift will be the divisible by Period
152         --          with Period = ValMax - ValMin.
153         --          Intended for adjusting parameters on periodic surfaces.
154
155     FindBounds (shape: Shape  from TopoDS;
156                 V1   : in out Vertex from TopoDS;
157                 V2   : in out Vertex from TopoDS);
158         ---Purpose: Finds the start and end vertices of the shape
159         --          Shape can be of the following type:
160         --          vertex: V1 and V2 are the same and equal to <shape>,
161         --          edge  : V1 is start and V2 is end vertex (see ShapeAnalysis_Edge
162         --                  methods FirstVertex and LastVertex),
163         --          wire  : V1 is start vertex of the first edge, V2 is end vertex
164         --                  of the last edge (also see ShapeAnalysis_Edge).
165         --                  If wire contains no edges V1 and V2 are nullified
166         --          If none of the above V1 and V2 are nullified
167         ---Remark:  V1 and V2 can be of any orientation
168         
169     GetFaceUVBounds(F: Face from TopoDS; Umin, Umax, Vmin, Vmax: out Real);
170         ---Purpose: Computes exact UV bounds of all wires on the face        
171         
172 end ShapeAnalysis;