+
+ // create top face and find UV for it's corners
+ const TopoDS_Face& TopFace = TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy1));
+ SMESHDS_Mesh* meshDS = pMesh->GetMeshDS();
+ int topfaceID = meshDS->ShapeToIndex(TopFace);
+ const TopoDS_Vertex& v001 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V001));
+ SMDS_NodeIteratorPtr itn = pMesh->GetSubMeshContaining(v001)->GetSubMeshDS()->GetNodes();
+ const SMDS_MeshNode* N = itn->next();
+ gp_XY UV001 = myTool->GetNodeUV(TopFace,N);
+ const TopoDS_Vertex& v101 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V101));
+ itn = pMesh->GetSubMeshContaining(v101)->GetSubMeshDS()->GetNodes();
+ N = itn->next();
+ gp_XY UV101 = myTool->GetNodeUV(TopFace,N);
+ const TopoDS_Vertex& v011 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V011));
+ itn = pMesh->GetSubMeshContaining(v011)->GetSubMeshDS()->GetNodes();
+ N = itn->next();
+ gp_XY UV011 = myTool->GetNodeUV(TopFace,N);
+ const TopoDS_Vertex& v111 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V111));
+ itn = pMesh->GetSubMeshContaining(v111)->GetSubMeshDS()->GetNodes();
+ N = itn->next();
+ gp_XY UV111 = myTool->GetNodeUV(TopFace,N);
+
+ for (j=0; j<myJSize; ++j) {