0024750: Replace instantiations of TCollection generic classes by NCollection templat...
[occt.git] / src / ShapeAnalysis / ShapeAnalysis.cdl
CommitLineData
b311480e 1-- Created on: 1998-06-03
2-- Created by: data exchange team
3-- Copyright (c) 1998-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17package 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
34uses
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
52is
53
54 class Geom;
ff8178ef 55
7fd59977 56 class Curve;
ff8178ef 57
7fd59977 58 class Surface;
ff8178ef 59
7fd59977 60 class Edge;
7fd59977 61
62 class Wire;
ff8178ef 63
7fd59977 64 class WireOrder;
ff8178ef 65
7fd59977 66 class WireVertex;
ff8178ef 67
7fd59977 68 class CheckSmallFace;
ff8178ef 69
7fd59977 70 class Shell;
ff8178ef 71
7fd59977 72 class ShapeTolerance;
7fd59977 73
74 --class OverlapEdges; now it is in package OverlapShape of Products
ff8178ef 75 --- Container for keeping information about
7fd59977 76 -- overlapping edges
77
78 --class CheckCoincidenceTool; now it is in package OverlapShape of Products
ff8178ef 79 ---Tool for checking coincidence of faces and edges
7fd59977 80
81 -- Class intended for analyzing shape contents
82
83 class ShapeContents;
ff8178ef 84
7fd59977 85 -- Classes intended for free bounds analysis
86
ff8178ef 87 class FreeBounds;
88
89 class FreeBoundData;
90
91 class FreeBoundsProperties;
92
7fd59977 93 class TransferParameters;
ff8178ef 94
7fd59977 95 class TransferParametersProj;
ff8178ef 96
df8d3970 97 imported SequenceOfFreeBounds;
ff8178ef 98
df8d3970 99 imported transient class HSequenceOfFreeBounds;
7fd59977 100
df8d3970 101 imported DataMapOfShapeListOfReal;
102
103 imported DataMapIteratorOfDataMapOfShapeListOfReal;
7fd59977 104
105 --class SequenceOfOverlapEdges instantiates
106 --Sequence from TCollection (OverlapEdges from ShapeAnalysis);
107 -- now it is in package OverlapShape of Products
108
109 --class IndexedDataMapOfShapeSequenceOfOverlapEdges instantiates
110 --IndexedDataMap from TCollection(Shape from TopoDS,
111 --SequenceOfOverlapEdges from ShapeAnalysis,
112 --ShapeMapHasher from TopTools);
113 -- now it is in package OverlapShape of Products
114
115
116 OuterWire (face: Face from TopoDS) returns Wire from TopoDS;
117 ---Purpose: Returns the outer wire on the face <Face>.
118 -- This is replacement of the method BRepTools::OuterWire
119 -- until it works badly.
120 -- Returns the first wire oriented as outer according to
121 -- FClass2d_Classifier. If none, last wire is returned.
122
123 TotCross2D(sewd: WireData from ShapeExtend; aFace: Face from TopoDS)
124 returns Real;
125 ---Purpose: Returns a total area of 2d wire
126
127 ContourArea(theWire : Wire from TopoDS) returns Real;
128 --sewd: WireData from ShapeExtend) returns Real;
129 ---Purpose: Returns a total area of 3d wire
130
131 IsOuterBound (face: Face from TopoDS) returns Boolean;
132 ---Purpose: Returns True if <F> has outer bound.
133 ---Remarks: This method checks only presence of outer bound, it does not
134 -- check mutual orientation of the bounds on a face
135
136 AdjustByPeriod(Val: Real; ToVal: Real; Period: Real)
137 returns Real;
138 ---Purpose: Returns a shift required to move point
139 -- <Val> to the range [ToVal-Period/2,ToVal+Period/2].
140 -- This shift will be the divisible by Period.
141 -- Intended for adjusting parameters on periodic surfaces.
142
143 AdjustToPeriod(Val: Real; ValMin: Real; ValMax: Real)
144 returns Real;
145 ---Purpose: Returns a shift required to move point
146 -- <Val> to the range [ValMin,ValMax].
147 -- This shift will be the divisible by Period
148 -- with Period = ValMax - ValMin.
149 -- Intended for adjusting parameters on periodic surfaces.
150
151 FindBounds (shape: Shape from TopoDS;
152 V1 : in out Vertex from TopoDS;
153 V2 : in out Vertex from TopoDS);
154 ---Purpose: Finds the start and end vertices of the shape
155 -- Shape can be of the following type:
156 -- vertex: V1 and V2 are the same and equal to <shape>,
157 -- edge : V1 is start and V2 is end vertex (see ShapeAnalysis_Edge
158 -- methods FirstVertex and LastVertex),
159 -- wire : V1 is start vertex of the first edge, V2 is end vertex
160 -- of the last edge (also see ShapeAnalysis_Edge).
161 -- If wire contains no edges V1 and V2 are nullified
162 -- If none of the above V1 and V2 are nullified
163 ---Remark: V1 and V2 can be of any orientation
164
165 GetFaceUVBounds(F: Face from TopoDS; Umin, Umax, Vmin, Vmax: out Real);
166 ---Purpose: Computes exact UV bounds of all wires on the face
167
168end ShapeAnalysis;