X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Pattern.hxx;h=8b405de2138930c0edcd834f8070afa18114ef50;hb=9b504e486741f715fe6169a33418954712c314c2;hp=cbe6774933a86e0689cfa559b5f77fc7ecb7c21a;hpb=b0a908c0d20341651771d0249fb10882f54b2aad;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_Pattern.hxx b/src/SMESH/SMESH_Pattern.hxx index cbe677493..8b405de21 100644 --- a/src/SMESH/SMESH_Pattern.hxx +++ b/src/SMESH/SMESH_Pattern.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 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 @@ -71,13 +71,15 @@ class SMESH_EXPORT SMESH_Pattern { bool Load (SMESH_Mesh* theMesh, const TopoDS_Face& theFace, bool theProject = false, - TopoDS_Vertex the1stVertex=TopoDS_Vertex()); + TopoDS_Vertex the1stVertex=TopoDS_Vertex(), + bool theKeepNodes = false ); // Create a pattern from the mesh built on . // ==true makes override nodes positions // on computed by mesher bool Load (SMESH_Mesh* theMesh, - const TopoDS_Shell& theBlock); + const TopoDS_Shell& theBlock, + bool theKeepNodes = false); // Create a pattern from the mesh built on bool Save (std::ostream& theFile); @@ -216,6 +218,11 @@ class SMESH_EXPORT SMESH_Pattern { { return myElemXYZIDs.empty() || !applied ? myElemPointIDs : myElemXYZIDs; } // Return nodal connectivity of the elements of the pattern + void GetInOutNodes( std::vector< const SMDS_MeshNode* > *& inNodes, + std::vector< const SMDS_MeshNode* > *& outNodes ) + { inNodes = & myInNodes; outNodes = & myOutNodes; } + // Return loaded and just created nodes + void DumpPoints() const; // Debug @@ -334,6 +341,12 @@ private: void clearMesh(SMESH_Mesh* theMesh) const; // clear mesh elements existing on myShape in theMesh + bool findExistingNodes( SMESH_Mesh* mesh, + const TopoDS_Shape& S, + const std::list< TPoint* > & points, + std::vector< const SMDS_MeshNode* > & nodes); + // fills nodes vector with nodes existing on a given shape + static SMESHDS_SubMesh * getSubmeshWithElements(SMESH_Mesh* theMesh, const TopoDS_Shape& theShape); // return submesh containing elements bound to theShape in theMesh @@ -362,7 +375,11 @@ private: // nb of key-points in each of pattern boundaries std::list< int > myNbKeyPntInBoundary; - + // nodes corresponding to myPoints + bool myToKeepNodes; // to keep these data + std::vector< const SMDS_MeshNode* > myInNodes; // loaded nodes + std::vector< const SMDS_MeshNode* > myOutNodes; // created nodes + // to compute while applying to mesh elements, not to shapes std::vector myXYZ; // XYZ of nodes to create @@ -371,7 +388,7 @@ private: std::vector myElements; // refined elements std::vector myOrderedNodes; - // elements to replace with polygon or polyhedron + // elements to replace with polygon or polyhedron std::vector myPolyElems; // definitions of new poly elements std::list< TElemDef > myPolyElemXYZIDs;