X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_ProjectionUtils.cxx;h=64c0329719f46b38419d1d53c19de7ec465a5beb;hp=2070ef108b407d2d8760e8dd820ace1654ca6318;hb=a274ade365bd0f0e19d56c577acc4a13aa1972a7;hpb=88141f757b048eaa5aae0be49faaf274448bbcaf diff --git a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx index 2070ef108..64c032971 100644 --- a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH : idl implementation based on 'SMESH' unit's calsses +// SMESH SMESH : idl implementation based on 'SMESH' unit's classes // File : StdMeshers_ProjectionUtils.cxx // Created : Fri Oct 27 10:24:28 2006 // Author : Edward AGAPOV (eap) @@ -37,6 +37,7 @@ #include "SMESH_Hypothesis.hxx" #include "SMESH_Mesh.hxx" #include "SMESH_MeshAlgos.hxx" +#include "SMESH_MeshEditor.hxx" #include "SMESH_MesherHelper.hxx" #include "SMESH_subMesh.hxx" #include "SMESH_subMeshEventListener.hxx" @@ -96,7 +97,7 @@ namespace { return max(theMeshDS[0]->ShapeToIndex(S), theMeshDS[1]->ShapeToIndex(S) ); return long(S.TShape().operator->()); } - void show_shape( TopoDS_Shape v, const char* msg ) // debug + void show_shape( TopoDS_Shape v, const char* msg ) // debug // todo: unused in release mode { if ( v.IsNull() ) cout << msg << " NULL SHAPE" << endl; else if (v.ShapeType() == TopAbs_VERTEX) { @@ -105,7 +106,7 @@ namespace { else { cout << msg << " "; TopAbs::Print((v).ShapeType(),cout) <<" "<& l ) // debug + void show_list( const char* msg, const list< TopoDS_Edge >& l ) // debug // todo: unused in release mode { cout << msg << " "; list< TopoDS_Edge >::const_iterator e = l.begin(); @@ -122,15 +123,19 @@ namespace { bool storeShapeForDebug(const TopoDS_Shape& shape) { + bool toShow; #ifdef _DEBUG_ const char* type[] ={"COMPOUND","COMPSOLID","SOLID","SHELL","FACE","WIRE","EDGE","VERTEX"}; BRepTools::Write( shape, SMESH_Comment("/tmp/") << type[shape.ShapeType()] << "_" << shape.TShape().operator->() << ".brep"); - if ( !theMeshDS[0] ) { - show_shape( TopoDS_Shape(), "avoid warning: show_shape() defined but not used"); + toShow = !theMeshDS[0]; // no show +#else + toShow = theMeshDS[0]; // no show +#endif + if ( toShow ) { + show_shape( shape, "avoid warning: show_shape() defined but not used"); show_list( "avoid warning: show_list() defined but not used", list< TopoDS_Edge >() ); } -#endif return false; } @@ -537,8 +542,10 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the // b) find association of a couple of vertices and recall self. // +#ifdef _DEBUG_ theMeshDS[0] = theMesh1->GetMeshDS(); // debug theMeshDS[1] = theMesh2->GetMeshDS(); +#endif // ================================================================================= // 1) Is it the case of associating a group member -> another group? (PAL16202, 16203) @@ -2209,8 +2216,7 @@ FindMatchingNodesOnFaces( const TopoDS_Face& face1, SMDS_NodeIteratorPtr nIt = edgeSM->GetNodes(); while ( nIt->more() ) { const SMDS_MeshNode* node = nIt->next(); - const SMDS_EdgePosition* pos = - static_cast(node->GetPosition()); + SMDS_EdgePositionPtr pos = node->GetPosition(); pos2nodes.insert( make_pair( pos->GetUParameter(), node )); } if ((int) pos2nodes.size() != edgeSM->NbNodes() ) @@ -2886,7 +2892,6 @@ namespace StdMeshers_ProjectionUtils double bc[3]; // barycentric coordinates int nodeIDs[3]; // nodes of a delaunay triangle - const SMDS_FacePosition* pos; _delaunay.InitTraversal( nbSrcNodes ); @@ -2904,8 +2909,8 @@ namespace StdMeshers_ProjectionUtils tgtNode = n2n->second; tgtMesh->MoveNode( tgtNode, xyz.X(), xyz.Y(), xyz.Z() ); - if (( pos = dynamic_cast< const SMDS_FacePosition* >( tgtNode->GetPosition() ))) - const_cast( pos )->SetParameters( uvNew.X(), uvNew.Y() ); + if ( SMDS_FacePositionPtr pos = tgtNode->GetPosition() ) + pos->SetParameters( uvNew.X(), uvNew.Y() ); --nbSrcNodes; }