X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_Block.cxx;h=597a360f617da8954900566bb2a0679c21e059d0;hp=271ef8b0a682fb6a9b7ee13369a9facc6e6d2269;hb=24412178e1a7c741a73d5b23822c43e08c353b97;hpb=251f8c052dd12dd29922210dc901b295fe999a0e diff --git a/src/SMESHUtils/SMESH_Block.cxx b/src/SMESHUtils/SMESH_Block.cxx index 271ef8b0a..597a360f6 100644 --- a/src/SMESHUtils/SMESH_Block.cxx +++ b/src/SMESHUtils/SMESH_Block.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -166,7 +166,7 @@ void SMESH_Block::TFace::Set( const int faceID, // pcurves vector< int > edgeIdVec; GetFaceEdgesIDs( faceID, edgeIdVec ); - for ( int iE = 0; iE < edgeIdVec.size(); iE++ ) // loop on 4 edges + for ( size_t iE = 0; iE < edgeIdVec.size(); iE++ ) // loop on 4 edges { myCoordInd[ iE ] = GetCoordIndOnEdge( edgeIdVec[ iE ] ); if ( myC2d[ iE ]) delete myC2d[ iE ]; @@ -596,6 +596,7 @@ Standard_Boolean SMESH_Block::Values(const math_Vector& theXYZ, if ( mag > DBL_MIN ) dPi /= mag; drv[ iP - 1 ] = dPi; + // drv[ iP - 1 ] = dPi / 0.001; } for ( int iP = 0; iP < 3; iP++ ) { #if 1 @@ -719,13 +720,13 @@ bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint, const bool isOnFace = IsFaceID( theShapeID ); double * coef = GetShapeCoef( theShapeID ); - // Find the first guess paremeters + // Find the first guess parameters gp_XYZ start(0, 0, 0); bool hasHint = ( 0 <= theParamsHint.X() && theParamsHint.X() <= 1 && 0 <= theParamsHint.Y() && theParamsHint.Y() <= 1 && - 0 <= theParamsHint.Y() && theParamsHint.Y() <= 1 ); + 0 <= theParamsHint.Z() && theParamsHint.Z() <= 1 ); if ( !hasHint && !myGridComputed ) { // define the first guess by thePoint projection on lines @@ -929,6 +930,7 @@ void SMESH_Block::refineParametersOnFace( const gp_Pnt& thePoint, { // find UV of thePoint on the FACE Standard_Real U,V; + U=V=0; const TFace& tface = myFace[ theFaceID - ID_FirstF ]; if ( !tface.Surface() ) return; @@ -1027,7 +1029,7 @@ bool SMESH_Block::findUVByHalfDivision( const gp_Pnt& thePoint, dy *= 1.2; xSol = 0.5 * (xMax + xMin) ; ySol = 0.5 * (yMax + yMin) ; - if ( xMin == 0. && yMin == 0. && xMax == 1. && yMax == 1. ) // avoid infinit loop + if ( xMin == 0. && yMin == 0. && xMax == 1. && yMax == 1. ) // avoid infinite loop { #ifdef _DEBUG_REFINE_ cout << "SMESH_Block::refineParametersOnFace(): tface.IsUVInQuad() fails" << endl; @@ -1038,7 +1040,7 @@ bool SMESH_Block::findUVByHalfDivision( const gp_Pnt& thePoint, } } - // refine solution using half-division technic + // refine solution using half-division technique gp_XYZ sol = theParams; @@ -1112,7 +1114,7 @@ bool SMESH_Block::findUVByHalfDivision( const gp_Pnt& thePoint, if ( saveBetterSolution( sol, theParams, thePoint.SquareDistance( tface.Point( sol )))) { #ifdef _DEBUG_REFINE_ - cout << "SMESH_Block::refineParametersOnFace(): dividing suceeded" << endl; + cout << "SMESH_Block::refineParametersOnFace(): dividing succeeded" << endl; cout << " nbGetUV = " << nbGetUV << endl; #endif return true; @@ -1583,7 +1585,7 @@ int SMESH_Block::GetOrderedEdges (const TopoDS_Face& theFace, } //================================================================================ /*! - * \brief Call it after geometry initialisation + * \brief Call it after geometry initialization */ //================================================================================ @@ -1606,7 +1608,6 @@ bool SMESH_Block::LoadMeshBlock(const SMDS_MeshVolume* theVolume, const int theNode001Index, vector& theOrderedNodes) { - MESSAGE(" ::LoadMeshBlock()"); init(); SMDS_VolumeTool vTool; @@ -1726,7 +1727,7 @@ bool SMESH_Block::LoadMeshBlock(const SMDS_MeshVolume* theVolume, //function : LoadBlockShapes //purpose : Initialize block geometry with theShell, // add sub-shapes of theBlock to theShapeIDMap so that they get -// IDs acoording to enum TShapeID +// IDs according to enum TShapeID //======================================================================= bool SMESH_Block::LoadBlockShapes(const TopoDS_Shell& theShell, @@ -1734,7 +1735,6 @@ bool SMESH_Block::LoadBlockShapes(const TopoDS_Shell& theShell, const TopoDS_Vertex& theVertex001, TopTools_IndexedMapOfOrientedShape& theShapeIDMap ) { - MESSAGE(" ::LoadBlockShapes()"); return ( FindBlockShapes( theShell, theVertex000, theVertex001, theShapeIDMap ) && LoadBlockShapes( theShapeIDMap )); } @@ -1742,7 +1742,7 @@ bool SMESH_Block::LoadBlockShapes(const TopoDS_Shell& theShell, //======================================================================= //function : LoadBlockShapes //purpose : add sub-shapes of theBlock to theShapeIDMap so that they get -// IDs acoording to enum TShapeID +// IDs according to enum TShapeID //======================================================================= bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell, @@ -1750,8 +1750,6 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell, const TopoDS_Vertex& theVertex001, TopTools_IndexedMapOfOrientedShape& theShapeIDMap ) { - MESSAGE(" ::FindBlockShapes()"); - // 8 vertices TopoDS_Shape V000, V100, V010, V110, V001, V101, V011, V111; // 12 edges @@ -1777,7 +1775,7 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell, if ( V000.IsNull() ) { // find vertex 000 - the one with smallest coordinates - double minVal = DBL_MAX, minX, val; + double minVal = DBL_MAX, minX = DBL_MAX, val; for ( int i = 1; i <= 8; i++ ) { const TopoDS_Vertex& v = TopoDS::Vertex( vfMap.FindKey( i )); gp_Pnt P = BRep_Tool::Pnt( v ); @@ -1798,8 +1796,11 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell, for ( ; eIt.More(); eIt.Next() ) { const TopoDS_Edge& e = TopoDS::Edge( eIt.Value() ); TopoDS_Vertex v = TopExp::FirstVertex( e ); - if ( v.IsSame( V000 )) + if ( v.IsSame( V000 )) { v = TopExp::LastVertex( e ); + if ( v.IsSame( V000 )) + return false; + } val = dir001 * gp_Vec( p000, BRep_Tool::Pnt( v )).Normalized(); if ( val > maxVal ) { V001 = v; @@ -1818,7 +1819,7 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell, return false; } TopTools_ListIteratorOfListOfShape f001It, f000It ( f000List ); - int i, j, iFound1, iFound2; + int i, j, iFound1=0, iFound2=0; for ( j = 0; f000It.More(); f000It.Next(), j++ ) { if ( NB_FACES_BY_VERTEX == 6 && j % 2 ) continue; // each face encounters twice @@ -2079,7 +2080,7 @@ bool SMESH_Block::LoadFace(const TopoDS_Face& theFace, bool isForward[4]; vector< int > edgeIdVec; GetFaceEdgesIDs( theFaceID, edgeIdVec ); - for ( int iE = 0; iE < edgeIdVec.size(); iE++ ) // loop on 4 edges + for ( size_t iE = 0; iE < edgeIdVec.size(); iE++ ) // loop on 4 edges { if ( edgeIdVec[ iE ] > theShapeIDMap.Extent() ) return false;