23#ifndef _GEOMImpl_IMeasureOperations_HXX_
24#define _GEOMImpl_IMeasureOperations_HXX_
28#include <GeomAnaTool_Tools.hxx>
30#include <BRepCheck_Analyzer.hxx>
31#include <BRepCheck_Status.hxx>
32#include <TopoDS_Shape.hxx>
33#include <TCollection_AsciiString.hxx>
34#include <TColStd_HSequenceOfInteger.hxx>
35#include <TColStd_HSequenceOfReal.hxx>
36#include <TopTools_DataMapOfIntegerListOfShape.hxx>
37#include <TopTools_MapOfShape.hxx>
38#include <Geom_Surface.hxx>
39#include <Precision.hxx>
111 Handle(TColStd_HSequenceOfInteger)& theIntegers,
112 Handle(TColStd_HSequenceOfReal)& theDoubles);
115 Standard_Real& Ox, Standard_Real& Oy, Standard_Real& Oz,
116 Standard_Real& Zx, Standard_Real& Zy, Standard_Real& Zz,
117 Standard_Real& Xx, Standard_Real& Xy, Standard_Real& Xz);
119 Standard_EXPORT
Handle(GEOM_Object) GetCentreOfMass (
Handle(GEOM_Object) theShape);
121 Standard_EXPORT
Handle(GEOM_Object) GetVertexByIndex (
Handle(GEOM_Object) theShape,
125 Standard_EXPORT
Handle(GEOM_Object) GetNormal (
Handle(GEOM_Object) theFace,
129 const Standard_Real theTolerance,
130 Standard_Real& theLength,
131 Standard_Real& theSurfArea,
132 Standard_Real& theVolume);
135 Standard_Real& I11, Standard_Real& I12, Standard_Real& I13,
136 Standard_Real& I21, Standard_Real& I22, Standard_Real& I23,
137 Standard_Real& I31, Standard_Real& I32, Standard_Real& I33,
138 Standard_Real& Ix , Standard_Real& Iy , Standard_Real& Iz);
141 const Standard_Boolean
precise,
142 Standard_Real& Xmin, Standard_Real& Xmax,
143 Standard_Real& Ymin, Standard_Real& Ymax,
144 Standard_Real& Zmin, Standard_Real& Zmax);
150 Standard_Real& FaceMin, Standard_Real& FaceMax,
151 Standard_Real& EdgeMin, Standard_Real& EdgeMax,
152 Standard_Real& VertMin, Standard_Real& VertMax);
155 const Standard_Boolean theIsCheckGeom,
156 const Standard_Boolean theIsExact,
157 std::list<GeomAnaTool::ShapeError> &theErrors);
160 (
Handle(GEOM_Object) theShape,
161 const std::list<GeomAnaTool::ShapeError> &theErrors);
164 (
const Handle(TColStd_HSequenceOfTransient)& theShapes,
165 const bool theUseTimer,
166 const bool theTopoOnly,
167 const bool theRunParallel,
168 const bool theDoExact,
169 Handle(GEOM_Object)& theResultShape,
170 std::list<GeomAnaTool::ShapeError>& theErrors);
174 Handle(TColStd_HSequenceOfInteger)& theIntersections);
179 Handle(TColStd_HSequenceOfInteger)& theIntersections);
184 double tolerance,
float deflection,
185 Handle(TColStd_HSequenceOfInteger)& theIntersections1,
186 Handle(TColStd_HSequenceOfInteger)& theIntersections2);
190 Standard_EXPORT TCollection_AsciiString
WhatIs (
Handle(GEOM_Object) theShape);
193 const std::vector<double>& coords,
194 double tolerance = Precision::Confusion());
197 Handle(GEOM_Object) theShape2,
198 Standard_Real& X1, Standard_Real& Y1, Standard_Real& Z1,
199 Standard_Real& X2, Standard_Real& Y2, Standard_Real& Z2);
202 Handle(GEOM_Object) theShape2,
203 Handle(TColStd_HSequenceOfReal)& theDoubles);
206 Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ);
208 Standard_EXPORT Standard_Real
GetAngle (
Handle(GEOM_Object) theLine1,
Handle(GEOM_Object) theLine2);
212 Standard_EXPORT
Handle(TColStd_HSequenceOfTransient) PatchFace(
Handle(GEOM_Object) theShape);
217 Standard_Real& theParam);
219 Handle(GEOM_Object) thePoint);
221 Standard_Real& theUParam,
222 Standard_Real& theVParam);
224 Handle(GEOM_Object) thePoint);
226 Standard_Real& theUParam,
227 Standard_Real& theVParam);
229 Handle(GEOM_Object) thePoint);
239 Standard_EXPORT std::list<CoupleOfObjects>
SelfIntersected2D(
const std::list<FailedChecks>& theChecks);
240 Standard_EXPORT std::list<CoupleOfObjects>
InterferingSubshapes(
const std::list<FailedChecks>& theChecks,
241 const int theShapeType1,
242 const int theShapeType2);
243 Standard_EXPORT
Handle(TColStd_HSequenceOfTransient) SmallEdges(
const std::list<FailedChecks>& theChecks);
244 Standard_EXPORT std::list<CoupleOfObjects>
DistantShapes(
const std::list<FailedChecks>& theChecks,
245 const int theShapeType,
246 const int theSubShapeType,
247 double theTolerance);
253 Standard_EXPORT
Handle(GEOM_Object) SurfaceCurvatureByPointAndDirection
254 (
Handle(GEOM_Object) theSurf,
259 Standard_EXPORT
Handle(TColStd_HArray1OfReal) XYZtoUV
260 (
Handle(GEOM_Object) theSurf,
261 const Handle(TColStd_HArray1OfReal)& theXYZlist,
264 Standard_EXPORT
Handle(TColStd_HArray1OfReal) UVtoXYZ
265 (
Handle(GEOM_Object) theSurf,
266 const Handle(TColStd_HArray1OfReal)& theUVlist,
270 Standard_EXPORT
Handle(GEOM_Object) ShapeProximityCalculator(
Handle(GEOM_Object) theShape1,
273 bool doPythonDump =
true);
276 Handle(GEOM_Object) theShape,
277 const Standard_Integer theNbSamples);
282 Standard_Real theUParam,
283 Standard_Real theVParam,
284 Standard_Boolean theNeedMaxCurv);
Definition: GEOMImpl_IMeasureOperations.hxx:44
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:2416
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:3601
Standard_EXPORT const Handle(TColStd_HArray1OfReal) &theXYZlist
ShapeKind
Definition: GEOMImpl_IMeasureOperations.hxx:49
@ SK_ARC_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:78
@ SK_VERTEX
Definition: GEOMImpl_IMeasureOperations.hxx:89
@ SK_SPHERE2D
Definition: GEOMImpl_IMeasureOperations.hxx:66
@ SK_ROTATED_BOX
Definition: GEOMImpl_IMeasureOperations.hxx:60
@ SK_ADVANCED
Definition: GEOMImpl_IMeasureOperations.hxx:93
@ SK_PLANAR
Definition: GEOMImpl_IMeasureOperations.hxx:74
@ SK_TORUS2D
Definition: GEOMImpl_IMeasureOperations.hxx:68
@ SK_CONE2D
Definition: GEOMImpl_IMeasureOperations.hxx:69
@ SK_DISK_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:71
@ SK_TORUS
Definition: GEOMImpl_IMeasureOperations.hxx:61
@ SK_LCS
Definition: GEOMImpl_IMeasureOperations.hxx:91
@ SK_CRV_BSPLINE
Definition: GEOMImpl_IMeasureOperations.hxx:83
@ SK_NO_SHAPE
Definition: GEOMImpl_IMeasureOperations.hxx:50
@ SK_EDGE
Definition: GEOMImpl_IMeasureOperations.hxx:87
@ SK_LINE
Definition: GEOMImpl_IMeasureOperations.hxx:81
@ SK_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:77
@ SK_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:79
@ SK_SHELL
Definition: GEOMImpl_IMeasureOperations.hxx:54
@ SK_COMPOUND
Definition: GEOMImpl_IMeasureOperations.hxx:52
@ SK_PARABOLA
Definition: GEOMImpl_IMeasureOperations.hxx:86
@ SK_PLANE
Definition: GEOMImpl_IMeasureOperations.hxx:73
@ SK_CONE
Definition: GEOMImpl_IMeasureOperations.hxx:62
@ SK_COMPSOLID
Definition: GEOMImpl_IMeasureOperations.hxx:53
@ SK_CYLINDER2D
Definition: GEOMImpl_IMeasureOperations.hxx:67
@ SK_SPHERE
Definition: GEOMImpl_IMeasureOperations.hxx:57
@ SK_POLYHEDRON
Definition: GEOMImpl_IMeasureOperations.hxx:63
@ SK_HYPERBOLA
Definition: GEOMImpl_IMeasureOperations.hxx:85
@ SK_CYLINDER
Definition: GEOMImpl_IMeasureOperations.hxx:58
@ SK_SOLID
Definition: GEOMImpl_IMeasureOperations.hxx:64
@ SK_CRV_BEZIER
Definition: GEOMImpl_IMeasureOperations.hxx:84
@ SK_FACE
Definition: GEOMImpl_IMeasureOperations.hxx:75
@ SK_DISK_CIRCLE
Definition: GEOMImpl_IMeasureOperations.hxx:70
@ SK_POLYGON
Definition: GEOMImpl_IMeasureOperations.hxx:72
@ SK_WIRE
Definition: GEOMImpl_IMeasureOperations.hxx:55
@ SK_ARC_ELLIPSE
Definition: GEOMImpl_IMeasureOperations.hxx:80
@ SK_SEGMENT
Definition: GEOMImpl_IMeasureOperations.hxx:82
@ SK_BOX
Definition: GEOMImpl_IMeasureOperations.hxx:59
Standard_EXPORT Standard_Real MinSurfaceCurvatureByPoint(Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2985
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:1167
Standard_EXPORT bool CheckBOPArguments(const Handle(GEOM_Object) &theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:1983
std::pair< Handle(GEOM_Object), Handle(GEOM_Object)> CoupleOfObjects
Definition: GEOMImpl_IMeasureOperations.hxx:232
Standard_EXPORT Standard_Real GetPreciseProximity(Handle(GEOM_Object) theCalculator)
Definition: GEOMImpl_IMeasureOperations.cxx:3748
Standard_EXPORT Standard_Real MinSurfaceCurvatureByParam(Handle(GEOM_Object) theSurf, Standard_Real &theUParam, Standard_Real &theVParam)
Definition: GEOMImpl_IMeasureOperations.cxx:2948
Standard_EXPORT bool CheckShape(Handle(GEOM_Object) theShape, const Standard_Boolean theIsCheckGeom, const Standard_Boolean theIsExact, std::list< GeomAnaTool::ShapeError > &theErrors)
Definition: GEOMImpl_IMeasureOperations.cxx:1468
Standard_EXPORT Handle(GEOM_Object) SurfaceCurvatureByPointAndDirection(Handle(GEOM_Object) theSurf
Standard_EXPORT TCollection_AsciiString IsGoodForSolid(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:2100
Standard_EXPORT GEOMImpl_IMeasureOperations(GEOM_Engine *theEngine)
Definition: GEOMImpl_IMeasureOperations.cxx:108
Standard_EXPORT Standard_Real GetCoarseProximity(Handle(GEOM_Object) theCalculator, bool doPythonDump=true)
Definition: GEOMImpl_IMeasureOperations.cxx:3707
Standard_EXPORT Handle(TColStd_HArray1OfReal) XYZtoUV(Handle(GEOM_Object) theSurf
Standard_EXPORT TCollection_AsciiString PrintShapeErrors(Handle(GEOM_Object) theShape, const std::list< GeomAnaTool::ShapeError > &theErrors)
Definition: GEOMImpl_IMeasureOperations.cxx:1516
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:2362
Standard_EXPORT Standard_Real GetAngle(Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2)
Definition: GEOMImpl_IMeasureOperations.cxx:2512
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:2875
Standard_EXPORT std::vector< bool > AreCoordsInside(Handle(GEOM_Object) theShape, const std::vector< double > &coords, double tolerance=Precision::Confusion())
Definition: GEOMImpl_IMeasureOperations.cxx:2245
Standard_EXPORT Handle(GEOM_Object) thePoint
Standard_EXPORT std::list< CoupleOfObjects > SelfIntersected2D(const std::list< FailedChecks > &theChecks)
Definition: GEOMImpl_IMeasureOperations.cxx:3298
Standard_EXPORT Standard_Real GetAngleBtwVectors(Handle(GEOM_Object) theVec1, Handle(GEOM_Object) theVec2)
Definition: GEOMImpl_IMeasureOperations.cxx:2586
Standard_EXPORT void CheckConformityShape(Handle(GEOM_Object) theShape, std::list< FailedChecks > &theChecks)
Definition: GEOMImpl_IMeasureOperations.cxx:3485
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:1405
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:1285
Standard_EXPORT Handle(GEOM_Object) theShape2)
Standard_EXPORT const Standard_Boolean precise
Definition: GEOMImpl_IMeasureOperations.hxx:147
SICheckLevel
This enumeration represents the level of checking shape on self-interference.
Definition: GEOMImpl_IMeasureOperations.hxx:101
@ SI_E_E
Definition: GEOMImpl_IMeasureOperations.hxx:104
@ SI_ALL
Definition: GEOMImpl_IMeasureOperations.hxx:107
@ SI_V_E
Definition: GEOMImpl_IMeasureOperations.hxx:103
@ SI_V_V
Definition: GEOMImpl_IMeasureOperations.hxx:102
@ SI_E_F
Definition: GEOMImpl_IMeasureOperations.hxx:106
@ SI_V_F
Definition: GEOMImpl_IMeasureOperations.hxx:105
Standard_EXPORT Handle(TColStd_HArray1OfReal) UVtoXYZ(Handle(GEOM_Object) theSurf
Standard_EXPORT double UpdateTolerance(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:3555
Standard_Real getSurfaceCurvatures(const Handle(Geom_Surface)&aSurf, Standard_Real theUParam, Standard_Real theVParam, Standard_Boolean theNeedMaxCurv)
Definition: GEOMImpl_IMeasureOperations.cxx:2824
Standard_EXPORT std::list< CoupleOfObjects > InterferingSubshapes(const std::list< FailedChecks > &theChecks, const int theShapeType1, const int theShapeType2)
Definition: GEOMImpl_IMeasureOperations.cxx:3360
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:951
Standard_EXPORT Standard_Real MaxSurfaceCurvatureByPoint(Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2912
Standard_EXPORT ShapeKind KindOfShape(Handle(GEOM_Object) theShape, Handle(TColStd_HSequenceOfInteger)&theIntegers, Handle(TColStd_HSequenceOfReal)&theDoubles)
Definition: GEOMImpl_IMeasureOperations.cxx:129
Standard_EXPORT Standard_Integer Standard_Boolean theUseOri
Definition: GEOMImpl_IMeasureOperations.hxx:123
Standard_EXPORT void PointCoordinates(Handle(GEOM_Object) theShape, Standard_Real &theX, Standard_Real &theY, Standard_Real &theZ)
Definition: GEOMImpl_IMeasureOperations.cxx:2473
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:1916
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) PatchFace(Handle(GEOM_Object) theShape)
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) SmallEdges(const std Standard_EXPORT std::list< CoupleOfObjects > DistantShapes(const std::list< FailedChecks > &theChecks, const int theShapeType, const int theSubShapeType, double theTolerance)
Definition: GEOMImpl_IMeasureOperations.cxx:3435
Standard_EXPORT Standard_Real CurveCurvatureByParam(Handle(GEOM_Object) theCurve, Standard_Real &theParam)
Definition: GEOMImpl_IMeasureOperations.cxx:2720
Standard_EXPORT TCollection_AsciiString WhatIs(Handle(GEOM_Object) theShape)
Definition: GEOMImpl_IMeasureOperations.cxx:2148
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:1220
Standard_EXPORT const bool isNormalized
Definition: GEOMImpl_IMeasureOperations.hxx:262
Standard_EXPORT void SetShapeSampling(Handle(GEOM_Object) theCalculator, Handle(GEOM_Object) theShape, const Standard_Integer theNbSamples)
Definition: GEOMImpl_IMeasureOperations.cxx:3668
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:1838
Standard_EXPORT bool ExtractBOPFailure(const Handle(TColStd_HSequenceOfTransient)&theShapes, const bool theUseTimer, const bool theTopoOnly, const bool theRunParallel, const bool theDoExact, Handle(GEOM_Object)&theResultShape, std::list< GeomAnaTool::ShapeError > &theErrors)
Definition: GEOMImpl_IMeasureOperations.cxx:1734
Standard_EXPORT Standard_Real CurveCurvatureByPoint(Handle(GEOM_Object) theCurve, Handle(GEOM_Object) thePoint)
Definition: GEOMImpl_IMeasureOperations.cxx:2770
Standard_EXPORT ~GEOMImpl_IMeasureOperations()
Definition: GEOMImpl_IMeasureOperations.cxx:119
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:2016
Standard_EXPORT Standard_Integer theIndex
Definition: GEOMImpl_IMeasureOperations.hxx:122
Standard_EXPORT Handle(GEOM_Object) theOptionalPoint)
Definition: GEOM_Engine.hxx:91
Definition: GEOM_IOperations.hxx:40
Definition: GEOMImpl_IMeasureOperations.hxx:234
Standard_Integer TypeOfCheck
Definition: GEOMImpl_IMeasureOperations.hxx:235
CoupleOfObjects FailedShapes
Definition: GEOMImpl_IMeasureOperations.hxx:236