X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FStdMeshers%2FStdMeshers_ProjectionUtils.hxx;fp=src%2FStdMeshers%2FStdMeshers_ProjectionUtils.hxx;h=d44e477f0ddd5a4bdc83018bd90ba04ccd86ba08;hb=c150e1e4c40479c83b47cfb732f240c5df3b5d62;hp=ced8febbd93fa0d5909844e70b5a39c901296daa;hpb=d1bb1f5d44a2566316419a238a615bc4a69e7028;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_ProjectionUtils.hxx b/src/StdMeshers/StdMeshers_ProjectionUtils.hxx index ced8febbd..d44e477f0 100644 --- a/src/StdMeshers/StdMeshers_ProjectionUtils.hxx +++ b/src/StdMeshers/StdMeshers_ProjectionUtils.hxx @@ -30,11 +30,14 @@ #include "SMESH_StdMeshers.hxx" +#include "StdMeshers_FaceSide.hxx" #include "SMDS_MeshElement.hxx" +#include +#include #include -#include #include +#include #include #include #include @@ -136,6 +139,33 @@ namespace StdMeshers_ProjectionUtils bool Invert(); }; + /*! + * \brief Morph mesh on the target FACE to lie within FACE boundary w/o distortion + */ + class Morph + { + std::vector< const SMDS_MeshNode* > _bndSrcNodes; + Handle(BRepMesh_DataStructureOfDelaun) _triaDS; + SMESH_subMesh* _srcSubMesh; + bool _moveAll; + gp_XY _scale; + public: + + Morph(const TSideVector& srcWires); + + bool Perform(SMESH_MesherHelper& tgtHelper, + const TSideVector& tgtWires, + Handle(ShapeAnalysis_Surface) tgtSurface, + const TNodeNodeMap& src2tgtNodes, + const bool moveAll); + + // return source boundary nodes. 0-th node is zero + const std::vector< const SMDS_MeshNode* >& GetBndNodes() const { return _bndSrcNodes; } + + // return UV of the i-th source boundary node + gp_XY GetBndUV(const int iNode) const; + }; + /*! * \brief Looks for association of all sub-shapes of two shapes * \param theShape1 - shape 1