+ /*!
+ * \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;
+ };
+