X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Pattern.hxx;h=9acf598473caeded1d4bc878f4568e7614685fde;hp=3bc3684ba153356951cf0f632b7f8a70350c1fd7;hb=8d297d6698f361d4f2dde723050bcfbaea050920;hpb=a17b36970bc61da1d664453c615754997c925b18 diff --git a/src/SMESH/SMESH_Pattern.hxx b/src/SMESH/SMESH_Pattern.hxx index 3bc3684ba..9acf59847 100644 --- a/src/SMESH/SMESH_Pattern.hxx +++ b/src/SMESH/SMESH_Pattern.hxx @@ -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); @@ -176,11 +178,11 @@ class SMESH_EXPORT SMESH_Pattern { ERR_LOADF_CANT_PROJECT, // impossible to project nodes // Load(volume) ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces - ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters + ERR_LOADV_COMPUTE_PARAMS, // can't compute point parameters // Apply(shape) ERR_APPL_NOT_COMPUTED, // mapping failed ERR_APPL_NOT_LOADED, // pattern was not loaded - ERR_APPL_BAD_DIMENTION, // wrong shape dimention + ERR_APPL_BAD_DIMENTION, // wrong shape dimension ERR_APPL_BAD_NB_VERTICES, // keypoints - vertices mismatch // Apply(face) ERR_APPLF_BAD_TOPOLOGY, // bad pattern topology @@ -193,7 +195,7 @@ class SMESH_EXPORT SMESH_Pattern { // MakeMesh ERR_MAKEM_NOT_COMPUTED, // mapping failed //Unexpected error - ERR_UNEXPECTED // Unexpected of the pattern mapping alorithm + ERR_UNEXPECTED // Unexpected of the pattern mapping algorithm }; ErrorCode GetErrorCode() const { return myErrorCode; } @@ -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 @@ -234,7 +241,7 @@ private: // private methods struct TPoint { - gp_XYZ myInitXYZ; // loaded postion + gp_XYZ myInitXYZ; // loaded position gp_XY myInitUV; double myInitU; // [0,1] gp_Pnt myXYZ; // position to compute @@ -253,8 +260,8 @@ private: std::list< TPoint* > & getShapePoints(const TopoDS_Shape& theShape); // Return list of points located on theShape. // A list of edge-points include vertex-points (for 2D pattern only). - // A list of face-points doesnt include edge-points. - // A list of volume-points doesnt include face-points. + // A list of face-points doesn't include edge-points. + // A list of volume-points doesn't include face-points. std::list< TPoint* > & getShapePoints(const int theShapeID); // Return list of points located on the shape @@ -368,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 @@ -377,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;