X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_Block.hxx;h=1d340b48650f28233c29b3da68284ccf76bfea79;hp=14a032adb8d6d35c93ee9be4ca31c180af36e69b;hb=7eda9ca931ed2a11cb5e4637e4ffe19f5c061115;hpb=24a2dcb5a8ab0e867f13be76c227736404f556e3 diff --git a/src/SMESHUtils/SMESH_Block.hxx b/src/SMESHUtils/SMESH_Block.hxx index 14a032adb..1d340b486 100644 --- a/src/SMESHUtils/SMESH_Block.hxx +++ b/src/SMESHUtils/SMESH_Block.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -68,20 +68,19 @@ class SMESHUtils_EXPORT SMESH_Block: public math_FunctionSetWithDerivatives // ---------------------------- ID_NONE = 0, - ID_V000 = 1, ID_V100, ID_V010, ID_V110, ID_V001, ID_V101, ID_V011, ID_V111, + ID_V000 = 1, ID_V100, ID_V010, ID_V110, ID_V001, ID_V101, ID_V011, ID_V111, // 1-8 - ID_Ex00, ID_Ex10, ID_Ex01, ID_Ex11, - ID_E0y0, ID_E1y0, ID_E0y1, ID_E1y1, - ID_E00z, ID_E10z, ID_E01z, ID_E11z, + ID_Ex00, ID_Ex10, ID_Ex01, ID_Ex11, // 9-12 + ID_E0y0, ID_E1y0, ID_E0y1, ID_E1y1, // 13-16 + ID_E00z, ID_E10z, ID_E01z, ID_E11z, // 17-20 - ID_Fxy0, ID_Fxy1, ID_Fx0z, ID_Fx1z, ID_F0yz, ID_F1yz, + ID_Fxy0, ID_Fxy1, ID_Fx0z, ID_Fx1z, ID_F0yz, ID_F1yz, // 21-26 - ID_Shell - }; - enum { // to use TShapeID for indexing certain type subshapes + ID_Shell, // 27 - ID_FirstV = ID_V000, ID_FirstE = ID_Ex00, ID_FirstF = ID_Fxy0 + // to use TShapeID for indexing certain type subshapes + ID_FirstV = ID_V000, ID_FirstE = ID_Ex00, ID_FirstF = ID_Fxy0 }; @@ -285,7 +284,7 @@ public: std::list< int > & theNbEdgesInWires, TopoDS_Vertex theFirstVertex=TopoDS_Vertex(), const bool theShapeAnalysisAlgo=false); - // Return nb wires and a list of oredered edges. + // Return nb wires and a list of ordered edges. // It is used to assign indices to subshapes. // theFirstVertex may be NULL. // Always try to set a seam edge first @@ -362,6 +361,7 @@ public: bool IsUVInQuad( const gp_XY& uv, const gp_XYZ& param0, const gp_XYZ& param1, const gp_XYZ& param2, const gp_XYZ& param3 ) const; + gp_XY GetUVRange() const; TFace(): myS(0) { myC2d[0]=myC2d[1]=myC2d[2]=myC2d[3]=0; } ~TFace(); }; @@ -381,6 +381,10 @@ public: double funcValue(double sqDist) const { return mySquareFunc ? sqDist : sqrt(sqDist); } bool computeParameters(const gp_Pnt& thePoint, gp_XYZ& theParams, const gp_XYZ& theParamsHint, int); void refineParametersOnFace( const gp_Pnt& thePoint, gp_XYZ& theParams, int theFaceID ); + bool findUVByHalfDivision( const gp_Pnt& thePoint, const gp_XY& theUV, + const TFace& tface, gp_XYZ& theParams); + bool findUVAround( const gp_Pnt& thePoint, const gp_XY& theUV, + const TFace& tface, gp_XYZ& theParams, int nbGetWorstLimit ); bool saveBetterSolution( const gp_XYZ& theNewParams, gp_XYZ& theParams, double sqDistance ); int myFaceIndex;