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 | |
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; |
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 | |
168 | end ShapeAnalysis; |