X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_I%2FGEOM_IMeasureOperations_i.hh;h=e1cd715ad8320990c82b468005a3b8acf9733133;hb=e3ce834889860adba76bbcf27743ab15a96c4765;hp=71e6194bac7780562f53a23b4024fe35d34366cd;hpb=7c036f24ffc367e0d6d83240860a5c39591d25aa;p=modules%2Fgeom.git diff --git a/src/GEOM_I/GEOM_IMeasureOperations_i.hh b/src/GEOM_I/GEOM_IMeasureOperations_i.hh index 71e6194ba..e1cd715ad 100644 --- a/src/GEOM_I/GEOM_IMeasureOperations_i.hh +++ b/src/GEOM_I/GEOM_IMeasureOperations_i.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -52,6 +52,7 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : CORBA::Double& Xx, CORBA::Double& Xy, CORBA::Double& Xz); void GetBasicProperties (GEOM::GEOM_Object_ptr theShape, + CORBA::Double theTolerance, CORBA::Double& theLength, CORBA::Double& theSurfArea, CORBA::Double& theVolume); @@ -62,7 +63,8 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : GEOM::GEOM_Object_ptr theOptionalPoint); GEOM::GEOM_Object_ptr GetVertexByIndex (GEOM::GEOM_Object_ptr theObject, - CORBA::Long theIndex); + CORBA::Long theIndex, + CORBA::Boolean theUseOri); void GetInertia (GEOM::GEOM_Object_ptr theShape, CORBA::Double& I11, CORBA::Double& I12, CORBA::Double& I13, @@ -105,6 +107,8 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : CORBA::Double theTolerance, GEOM::ListOfLong_out theIntersections); + CORBA::Boolean CheckBOPArguments (GEOM::GEOM_Object_ptr theShape); + CORBA::Boolean FastIntersect (GEOM::GEOM_Object_ptr theShape1, GEOM::GEOM_Object_ptr theShape2, CORBA::Double theTolerance, @@ -138,7 +142,9 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : CORBA::Double GetAngleBtwVectors (GEOM::GEOM_Object_ptr theShape1, GEOM::GEOM_Object_ptr theShape2); - // Methods for recieving radiuses of curvature of curves and surfaces + GEOM::ListOfGO* PatchFace(GEOM::GEOM_Object_ptr theShape); + + // Methods for receiving radiuses of curvature of curves and surfaces // in the given point CORBA::Double CurveCurvatureByParam (GEOM::GEOM_Object_ptr theCurve, CORBA::Double theParam); @@ -160,8 +166,55 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : CORBA::Double MinSurfaceCurvatureByPoint (GEOM::GEOM_Object_ptr theSurf, GEOM::GEOM_Object_ptr thePoint); + GEOM::GEOM_Object_ptr SurfaceCurvatureByPointAndDirection (GEOM::GEOM_Object_ptr theSurf, + GEOM::GEOM_Object_ptr thePoint, + GEOM::GEOM_Object_ptr theDirection); + + // Methods to convert X,Y,Z coordinates of point to U,V parameters on surface and back + GEOM::ListOfDouble* XYZtoUV(GEOM::GEOM_Object_ptr theSurf, + const GEOM::ListOfDouble& theXYZlist, + CORBA::Boolean theIsNormalized); + + GEOM::ListOfDouble* UVtoXYZ(GEOM::GEOM_Object_ptr theSurf, + const GEOM::ListOfDouble& theUVlist, + CORBA::Boolean theIsNormalized); + + // Methods for class CheckConformity + GEOM::GEOM_IMeasureOperations::SequenceOfPairOfShape* SelfIntersected2D( + const GEOM::GEOM_IMeasureOperations::CheckResults& theResuts); + + GEOM::GEOM_IMeasureOperations::SequenceOfPairOfShape* InterferingSubshapes( + const GEOM::GEOM_IMeasureOperations::CheckResults& theResuts, + const CORBA::Long theShapeType1, + const CORBA::Long theShapeType2); + + GEOM::ListOfGO* SmallEdges(const GEOM::GEOM_IMeasureOperations::CheckResults& theResuts); + + GEOM::GEOM_IMeasureOperations::SequenceOfPairOfShape* DistantShapes( + const GEOM::GEOM_IMeasureOperations::CheckResults& theResuts, + const CORBA::Long theShapeType, + const CORBA::Long theSubShapeType, + const CORBA::Double theTolerance); + + GEOM::GEOM_IMeasureOperations::CheckResults* CheckConformityShape(GEOM::GEOM_Object_ptr theShape); + + CORBA::Double UpdateTolerance(GEOM::GEOM_Object_ptr theShape); + + // Methods to compute proximity between two shapes + GEOM::GEOM_Object_ptr ShapeProximityCalculator (GEOM::GEOM_Object_ptr theShape1, + GEOM::GEOM_Object_ptr theShape2); + void SetShapeSampling(GEOM::GEOM_Object_ptr theCalculator, + GEOM::GEOM_Object_ptr theShape, + CORBA::Long theNbSamples); + CORBA::Double GetCoarseProximity(GEOM::GEOM_Object_ptr theCalculator); + CORBA::Double GetPreciseProximity(GEOM::GEOM_Object_ptr theCalculator); + ::GEOMImpl_IMeasureOperations* GetOperations() { return (::GEOMImpl_IMeasureOperations*)GetImpl(); } + +private: + void ConvertToList(const GEOM::GEOM_IMeasureOperations::CheckResults& theResuts, + std::list & theListOfResults); }; #endif