23 #ifndef _GEOMImpl_IMeasureOperations_HXX_
24 #define _GEOMImpl_IMeasureOperations_HXX_
28 #include <BRepCheck_Analyzer.hxx>
29 #include <BRepCheck_Status.hxx>
30 #include <TopoDS_Shape.hxx>
31 #include <TCollection_AsciiString.hxx>
32 #include <TColStd_HSequenceOfInteger.hxx>
33 #include <TColStd_HSequenceOfReal.hxx>
34 #include <TopTools_DataMapOfIntegerListOfShape.hxx>
35 #include <TopTools_MapOfShape.hxx>
36 #include <Geom_Surface.hxx>
37 #include <Precision.hxx>
109 Handle(TColStd_HSequenceOfInteger)& theIntegers,
110 Handle(TColStd_HSequenceOfReal)& theDoubles);
113 Standard_Real& Ox, Standard_Real& Oy, Standard_Real& Oz,
114 Standard_Real& Zx, Standard_Real& Zy, Standard_Real& Zz,
115 Standard_Real& Xx, Standard_Real& Xy, Standard_Real& Xz);
117 Standard_EXPORT
Handle(GEOM_Object) GetCentreOfMass (
Handle(GEOM_Object) theShape);
119 Standard_EXPORT
Handle(GEOM_Object) GetVertexByIndex (
Handle(GEOM_Object) theShape,
123 Standard_EXPORT
Handle(GEOM_Object) GetNormal (
Handle(GEOM_Object) theFace,
127 const Standard_Real theTolerance,
128 Standard_Real& theLength,
129 Standard_Real& theSurfArea,
130 Standard_Real& theVolume);
133 Standard_Real& I11, Standard_Real& I12, Standard_Real& I13,
134 Standard_Real& I21, Standard_Real& I22, Standard_Real& I23,
135 Standard_Real& I31, Standard_Real& I32, Standard_Real& I33,
136 Standard_Real& Ix , Standard_Real& Iy , Standard_Real& Iz);
139 const Standard_Boolean
precise,
140 Standard_Real& Xmin, Standard_Real& Xmax,
141 Standard_Real& Ymin, Standard_Real& Ymax,
142 Standard_Real& Zmin, Standard_Real& Zmax);
148 Standard_Real& FaceMin, Standard_Real& FaceMax,
149 Standard_Real& EdgeMin, Standard_Real& EdgeMax,
150 Standard_Real& VertMin, Standard_Real& VertMax);
158 const Standard_Boolean theIsCheckGeom,
159 std::list<ShapeError> &theErrors);
162 (
Handle(GEOM_Object) theShape,
163 const std::list<ShapeError> &theErrors);
167 Handle(TColStd_HSequenceOfInteger)& theIntersections);
172 Handle(TColStd_HSequenceOfInteger)& theIntersections);
177 double tolerance,
float deflection,
178 Handle(TColStd_HSequenceOfInteger)& theIntersections1,
179 Handle(TColStd_HSequenceOfInteger)& theIntersections2);
183 Standard_EXPORT TCollection_AsciiString
WhatIs (
Handle(GEOM_Object) theShape);
186 const std::vector<double>& coords,
187 double tolerance = Precision::Confusion());
190 Handle(GEOM_Object) theShape2,
191 Standard_Real& X1, Standard_Real& Y1, Standard_Real& Z1,
192 Standard_Real& X2, Standard_Real& Y2, Standard_Real& Z2);
195 Handle(GEOM_Object) theShape2,
196 Handle(TColStd_HSequenceOfReal)& theDoubles);
199 Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ);
201 Standard_EXPORT Standard_Real
GetAngle (
Handle(GEOM_Object) theLine1,
Handle(GEOM_Object) theLine2);
205 Standard_EXPORT
Handle(TColStd_HSequenceOfTransient) PatchFace(
Handle(GEOM_Object) theShape);
210 Standard_Real& theParam);
212 Handle(GEOM_Object) thePoint);
214 Standard_Real& theUParam,
215 Standard_Real& theVParam);
217 Handle(GEOM_Object) thePoint);
219 Standard_Real& theUParam,
220 Standard_Real& theVParam);
222 Handle(GEOM_Object) thePoint);
232 Standard_EXPORT std::list<CoupleOfObjects>
SelfIntersected2D(
const std::list<FailedChecks>& theChecks);
233 Standard_EXPORT std::list<CoupleOfObjects>
InterferingSubshapes(
const std::list<FailedChecks>& theChecks,
234 const int theShapeType1,
235 const int theShapeType2);
236 Standard_EXPORT
Handle(TColStd_HSequenceOfTransient) SmallEdges(
const std::list<FailedChecks>& theChecks);
237 Standard_EXPORT std::list<CoupleOfObjects> DistantShapes(
const std::list<FailedChecks>& theChecks,
238 const int theShapeType,
239 const int theSubShapeType,
240 double theTolerance);
246 Standard_EXPORT
Handle(GEOM_Object) SurfaceCurvatureByPointAndDirection
247 (
Handle(GEOM_Object) theSurf,
252 Standard_EXPORT
Handle(TColStd_HArray1OfReal) XYZtoUV
253 (
Handle(GEOM_Object) theSurf,
254 const Handle(TColStd_HArray1OfReal)& theXYZlist,
257 Standard_EXPORT
Handle(TColStd_HArray1OfReal) UVtoXYZ
258 (
Handle(GEOM_Object) theSurf,
259 const Handle(TColStd_HArray1OfReal)& theUVlist,
263 Standard_EXPORT
Handle(GEOM_Object) ShapeProximityCalculator(
Handle(GEOM_Object) theShape1,
266 bool doPythonDump =
true);
269 Handle(GEOM_Object) theShape,
270 const Standard_Integer theNbSamples);
275 (
const BRepCheck_Analyzer &theAna,
276 const TopoDS_Shape &theShape,
277 const TopAbs_ShapeEnum theSubType,
278 TopTools_DataMapOfIntegerListOfShape &theMapErrors)
const;
280 (
const BRepCheck_Analyzer &theAna,
281 const TopoDS_Shape &theShape,
282 TopTools_DataMapOfIntegerListOfShape &theMapErrors,
283 TopTools_MapOfShape &theMapShapes)
const;
285 void FillErrors (
const BRepCheck_Analyzer &theAna,
286 const TopoDS_Shape &theShape,
287 std::list<ShapeError> &theErrors)
const;
290 Standard_Real theUParam,
291 Standard_Real theVParam,
292 Standard_Boolean theNeedMaxCurv);
Definition: GEOMImpl_IMeasureOperations.hxx:42
Standard_EXPORT Handle(GEOM_Object) theDirection)
Standard_EXPORT Standard_Integer ClosestPoints(Handle(GEOM_Object) theShape1, Handle(GEOM_Object) theShape2, Handle(TColStd_HSequenceOfReal)&theDoubles)
Definition: GEOMImpl_IMeasureOperations.cxx:2298
void FillErrorsSub(const BRepCheck_Analyzer &theAna, const TopoDS_Shape &theShape, const TopAbs_ShapeEnum theSubType, TopTools_DataMapOfIntegerListOfShape &theMapErrors) const
Definition: GEOMImpl_IMeasureOperations.cxx:3533
Standard_EXPORT Handle(GEOM_Object) GetNormal(Handle(GEOM_Object) theFace
Standard_EXPORT Handle(GEOM_Object) GetCentreOfMass(Handle(GEOM_Object) theShape)
Standard_EXPORT double ComputeTolerance(Handle(GEOM_Object) theEdge, Handle(GEOM_Object) theFace)
Definition: GEOMImpl_IMeasureOperations.cxx:3506
Standard_EXPORT const Handle(TColStd_HArray1OfReal) &theXYZlist
ShapeKind
Definition: GEOMImpl_IMeasureOperations.hxx:47
@ SK_ARC_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:76
@ SK_VERTEX
Definition: GEOMImpl_IMeasureOperations.hxx:87
@ SK_SPHERE2D
Definition: GEOMImpl_IMeasureOperations.hxx:64
@ SK_ROTATED_BOX
Definition: GEOMImpl_IMeasureOperations.hxx:58
@ SK_ADVANCED
Definition: GEOMImpl_IMeasureOperations.hxx:91
@ SK_PLANAR
Definition: GEOMImpl_IMeasureOperations.hxx:72
@ SK_TORUS2D
Definition: GEOMImpl_IMeasureOperations.hxx:66
@ SK_CONE2D
Definition: GEOMImpl_IMeasureOperations.hxx:67
@ SK_DISK_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:69
@ SK_TORUS
Definition: GEOMImpl_IMeasureOperations.hxx:59
@ SK_LCS
Definition: GEOMImpl_IMeasureOperations.hxx:89
@ SK_CRV_BSPLINE
Definition: GEOMImpl_IMeasureOperations.hxx:81
@ SK_NO_SHAPE
Definition: GEOMImpl_IMeasureOperations.hxx:48
@ SK_EDGE
Definition: GEOMImpl_IMeasureOperations.hxx:85
@ SK_LINE
Definition: GEOMImpl_IMeasureOperations.hxx:79
@ SK_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:75
@ SK_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:77
@ SK_SHELL
Definition: GEOMImpl_IMeasureOperations.hxx:52
@ SK_COMPOUND
Definition: GEOMImpl_IMeasureOperations.hxx:50
@ SK_PARABOLA
Definition: GEOMImpl_IMeasureOperations.hxx:84
@ SK_PLANE
Definition: GEOMImpl_IMeasureOperations.hxx:71
@ SK_CONE
Definition: GEOMImpl_IMeasureOperations.hxx:60
@ SK_COMPSOLID
Definition: GEOMImpl_IMeasureOperations.hxx:51
@ SK_CYLINDER2D
Definition: GEOMImpl_IMeasureOperations.hxx:65
@ SK_SPHERE
Definition: GEOMImpl_IMeasureOperations.hxx:55
@ SK_POLYHEDRON
Definition: GEOMImpl_IMeasureOperations.hxx:61
@ SK_HYPERBOLA
Definition: GEOMImpl_IMeasureOperations.hxx:83
@ SK_CYLINDER
Definition: GEOMImpl_IMeasureOperations.hxx:56
@ SK_SOLID
Definition: GEOMImpl_IMeasureOperations.hxx:62
@ SK_CRV_BEZIER
Definition: GEOMImpl_IMeasureOperations.hxx:82
@ SK_FACE
Definition: GEOMImpl_IMeasureOperations.hxx:73
@ SK_DISK_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:68
@ SK_POLYGON
Definition: GEOMImpl_IMeasureOperations.hxx:70
@ SK_WIRE
Definition: GEOMImpl_IMeasureOperations.hxx:53
@ SK_ARC_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:78
@ SK_SEGMENT
Definition: GEOMImpl_IMeasureOperations.hxx:80
@ SK_BOX
Definition: GEOMImpl_IMeasureOperations.hxx:57
Standard_EXPORT Standard_Real MinSurfaceCurvatureByPoint(Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2890
Standard_EXPORT void GetBasicProperties(Handle(GEOM_Object) theShape, const Standard_Real theTolerance, Standard_Real &theLength, Standard_Real &theSurfArea, Standard_Real &theVolume)
Definition: GEOMImpl_IMeasureOperations.cxx:1158
Standard_EXPORT bool CheckBOPArguments(const Handle(GEOM_Object) &theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:1865
std::pair< Handle(GEOM_Object), Handle(GEOM_Object)> CoupleOfObjects
Definition: GEOMImpl_IMeasureOperations.hxx:225
void FillErrors(const BRepCheck_Analyzer &theAna, const TopoDS_Shape &theShape, TopTools_DataMapOfIntegerListOfShape &theMapErrors, TopTools_MapOfShape &theMapShapes) const
Definition: GEOMImpl_IMeasureOperations.cxx:3583
Standard_EXPORT Standard_Real GetPreciseProximity(Handle(GEOM_Object) theCalculator)
Definition: GEOMImpl_IMeasureOperations.cxx:3808
Standard_EXPORT Standard_Real MinSurfaceCurvatureByParam(Handle(GEOM_Object) theSurf, Standard_Real &theUParam, Standard_Real &theVParam)
Definition: GEOMImpl_IMeasureOperations.cxx:2853
Standard_EXPORT TCollection_AsciiString PrintShapeErrors(Handle(GEOM_Object) theShape, const std::list< ShapeError > &theErrors)
Definition: GEOMImpl_IMeasureOperations.cxx:1503
Standard_EXPORT Handle(GEOM_Object) SurfaceCurvatureByPointAndDirection(Handle(GEOM_Object) theSurf
Standard_EXPORT TCollection_AsciiString IsGoodForSolid(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:1982
Standard_EXPORT bool CheckShape(Handle(GEOM_Object) theShape, const Standard_Boolean theIsCheckGeom, std::list< ShapeError > &theErrors)
Definition: GEOMImpl_IMeasureOperations.cxx:1459
Standard_EXPORT GEOMImpl_IMeasureOperations(GEOM_Engine *theEngine)
Definition: GEOMImpl_IMeasureOperations.cxx:99
Standard_EXPORT Standard_Real GetCoarseProximity(Handle(GEOM_Object) theCalculator, bool doPythonDump=true)
Definition: GEOMImpl_IMeasureOperations.cxx:3767
Standard_EXPORT Handle(TColStd_HArray1OfReal) XYZtoUV(Handle(GEOM_Object) theSurf
Standard_EXPORT Standard_Real GetMinDistance(Handle(GEOM_Object) theShape1, Handle(GEOM_Object) theShape2, Standard_Real &X1, Standard_Real &Y1, Standard_Real &Z1, Standard_Real &X2, Standard_Real &Y2, Standard_Real &Z2)
Definition: GEOMImpl_IMeasureOperations.cxx:2244
Standard_EXPORT Standard_Real GetAngle(Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2)
Definition: GEOMImpl_IMeasureOperations.cxx:2417
Standard_EXPORT Handle(GEOM_Object) GetVertexByIndex(Handle(GEOM_Object) theShape
Standard_EXPORT Standard_Real MaxSurfaceCurvatureByParam(Handle(GEOM_Object) theSurf, Standard_Real &theUParam, Standard_Real &theVParam)
Definition: GEOMImpl_IMeasureOperations.cxx:2780
Standard_EXPORT std::vector< bool > AreCoordsInside(Handle(GEOM_Object) theShape, const std::vector< double > &coords, double tolerance=Precision::Confusion())
Definition: GEOMImpl_IMeasureOperations.cxx:2127
Standard_EXPORT Handle(GEOM_Object) thePoint
Standard_EXPORT std::list< CoupleOfObjects > SelfIntersected2D(const std::list< FailedChecks > &theChecks)
Definition: GEOMImpl_IMeasureOperations.cxx:3203
Standard_EXPORT Standard_Real GetAngleBtwVectors(Handle(GEOM_Object) theVec1, Handle(GEOM_Object) theVec2)
Definition: GEOMImpl_IMeasureOperations.cxx:2491
Standard_EXPORT void CheckConformityShape(Handle(GEOM_Object) theShape, std::list< FailedChecks > &theChecks)
Definition: GEOMImpl_IMeasureOperations.cxx:3390
Standard_EXPORT void GetTolerance(Handle(GEOM_Object) theShape, Standard_Real &FaceMin, Standard_Real &FaceMax, Standard_Real &EdgeMin, Standard_Real &EdgeMax, Standard_Real &VertMin, Standard_Real &VertMax)
Definition: GEOMImpl_IMeasureOperations.cxx:1396
Standard_EXPORT void GetBoundingBox(Handle(GEOM_Object) theShape, const Standard_Boolean precise, Standard_Real &Xmin, Standard_Real &Xmax, Standard_Real &Ymin, Standard_Real &Ymax, Standard_Real &Zmin, Standard_Real &Zmax)
Definition: GEOMImpl_IMeasureOperations.cxx:1276
Standard_EXPORT Handle(GEOM_Object) theShape2)
Standard_EXPORT const Standard_Boolean precise
Definition: GEOMImpl_IMeasureOperations.hxx:145
SICheckLevel
This enumeration represents the level of checking shape on self-interference.
Definition: GEOMImpl_IMeasureOperations.hxx:99
@ SI_E_E
Definition: GEOMImpl_IMeasureOperations.hxx:102
@ SI_ALL
Definition: GEOMImpl_IMeasureOperations.hxx:105
@ SI_V_E
Definition: GEOMImpl_IMeasureOperations.hxx:101
@ SI_V_V
Definition: GEOMImpl_IMeasureOperations.hxx:100
@ SI_E_F
Definition: GEOMImpl_IMeasureOperations.hxx:104
@ SI_V_F
Definition: GEOMImpl_IMeasureOperations.hxx:103
Standard_EXPORT Handle(TColStd_HArray1OfReal) UVtoXYZ(Handle(GEOM_Object) theSurf
Standard_EXPORT double UpdateTolerance(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:3460
Standard_Real getSurfaceCurvatures(const Handle(Geom_Surface)&aSurf, Standard_Real theUParam, Standard_Real theVParam, Standard_Boolean theNeedMaxCurv)
Definition: GEOMImpl_IMeasureOperations.cxx:2729
Standard_EXPORT std::list< CoupleOfObjects > InterferingSubshapes(const std::list< FailedChecks > &theChecks, const int theShapeType1, const int theShapeType2)
Definition: GEOMImpl_IMeasureOperations.cxx:3265
Standard_EXPORT void GetPosition(Handle(GEOM_Object) theShape, Standard_Real &Ox, Standard_Real &Oy, Standard_Real &Oz, Standard_Real &Zx, Standard_Real &Zy, Standard_Real &Zz, Standard_Real &Xx, Standard_Real &Xy, Standard_Real &Xz)
Definition: GEOMImpl_IMeasureOperations.cxx:942
Standard_EXPORT Standard_Real MaxSurfaceCurvatureByPoint(Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2817
Standard_EXPORT ShapeKind KindOfShape(Handle(GEOM_Object) theShape, Handle(TColStd_HSequenceOfInteger)&theIntegers, Handle(TColStd_HSequenceOfReal)&theDoubles)
Definition: GEOMImpl_IMeasureOperations.cxx:120
Standard_EXPORT Standard_Integer Standard_Boolean theUseOri
Definition: GEOMImpl_IMeasureOperations.hxx:121
Standard_EXPORT void PointCoordinates(Handle(GEOM_Object) theShape, Standard_Real &theX, Standard_Real &theY, Standard_Real &theZ)
Definition: GEOMImpl_IMeasureOperations.cxx:2378
Standard_EXPORT Handle(GEOM_Object) ShapeProximityCalculator(Handle(GEOM_Object) theShape1
Standard_EXPORT bool CheckSelfIntersectionsFast(Handle(GEOM_Object) theShape, float deflection, double tolerance, Handle(TColStd_HSequenceOfInteger)&theIntersections)
Definition: GEOMImpl_IMeasureOperations.cxx:1798
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) PatchFace(Handle(GEOM_Object) theShape)
Standard_EXPORT Standard_Real CurveCurvatureByParam(Handle(GEOM_Object) theCurve, Standard_Real &theParam)
Definition: GEOMImpl_IMeasureOperations.cxx:2625
Standard_EXPORT TCollection_AsciiString WhatIs(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:2030
Standard_EXPORT void GetInertia(Handle(GEOM_Object) theShape, Standard_Real &I11, Standard_Real &I12, Standard_Real &I13, Standard_Real &I21, Standard_Real &I22, Standard_Real &I23, Standard_Real &I31, Standard_Real &I32, Standard_Real &I33, Standard_Real &Ix, Standard_Real &Iy, Standard_Real &Iz)
Definition: GEOMImpl_IMeasureOperations.cxx:1211
Standard_EXPORT const bool isNormalized
Definition: GEOMImpl_IMeasureOperations.hxx:255
Standard_EXPORT void SetShapeSampling(Handle(GEOM_Object) theCalculator, Handle(GEOM_Object) theShape, const Standard_Integer theNbSamples)
Definition: GEOMImpl_IMeasureOperations.cxx:3728
Standard_EXPORT Handle(GEOM_Object) GetBoundingBox(Handle(GEOM_Object) theShape
Standard_EXPORT bool CheckSelfIntersections(Handle(GEOM_Object) theShape, const SICheckLevel theCheckLevel, Handle(TColStd_HSequenceOfInteger)&theIntersections)
Definition: GEOMImpl_IMeasureOperations.cxx:1720
Standard_EXPORT Standard_Real CurveCurvatureByPoint(Handle(GEOM_Object) theCurve, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2675
Standard_EXPORT ~GEOMImpl_IMeasureOperations()
Definition: GEOMImpl_IMeasureOperations.cxx:110
Standard_EXPORT const Handle(TColStd_HArray1OfReal) &theUVlist
Standard_EXPORT bool FastIntersect(Handle(GEOM_Object) theShape1, Handle(GEOM_Object) theShape2, double tolerance, float deflection, Handle(TColStd_HSequenceOfInteger)&theIntersections1, Handle(TColStd_HSequenceOfInteger)&theIntersections2)
Definition: GEOMImpl_IMeasureOperations.cxx:1898
Standard_EXPORT Standard_Integer theIndex
Definition: GEOMImpl_IMeasureOperations.hxx:120
Standard_EXPORT Handle(GEOM_Object) theOptionalPoint)
Definition: GEOM_Engine.hxx:91
Definition: GEOM_IOperations.hxx:40
Definition: GEOMImpl_IMeasureOperations.hxx:227
Standard_Integer TypeOfCheck
Definition: GEOMImpl_IMeasureOperations.hxx:228
CoupleOfObjects FailedShapes
Definition: GEOMImpl_IMeasureOperations.hxx:229
Definition: GEOMImpl_IMeasureOperations.hxx:152
BRepCheck_Status error
Definition: GEOMImpl_IMeasureOperations.hxx:153
std::list< int > incriminated
Definition: GEOMImpl_IMeasureOperations.hxx:154