From 0af7b3cb3da78759e382cf61a35e8de56a2f8170 Mon Sep 17 00:00:00 2001 From: skl Date: Wed, 3 Mar 2010 07:23:24 +0000 Subject: [PATCH] Changes for bug 0020671. --- doc/salome/gui/SMESH/images/scale01.png | Bin 0 -> 19816 bytes doc/salome/gui/SMESH/images/scale02.png | Bin 0 -> 22326 bytes doc/salome/gui/SMESH/images/scale03.png | Bin 0 -> 22827 bytes doc/salome/gui/SMESH/images/scale04.png | Bin 0 -> 20061 bytes doc/salome/gui/SMESH/images/scale06.png | Bin 0 -> 22679 bytes doc/salome/gui/SMESH/images/scale07.png | Bin 0 -> 20034 bytes doc/salome/gui/SMESH/images/scale09.png | Bin 0 -> 30799 bytes doc/salome/gui/SMESH/images/scaleinit01.png | Bin 0 -> 17713 bytes doc/salome/gui/SMESH/images/scaleinit02.png | Bin 0 -> 17482 bytes doc/salome/gui/SMESH/images/scaleres03.png | Bin 0 -> 6098 bytes doc/salome/gui/SMESH/images/scaleres04.png | Bin 0 -> 6096 bytes doc/salome/gui/SMESH/images/scaleres06.png | Bin 0 -> 10446 bytes doc/salome/gui/SMESH/images/scaleres07.png | Bin 0 -> 7782 bytes doc/salome/gui/SMESH/images/scaleres09.png | Bin 0 -> 9768 bytes .../gui/SMESH/input/modifying_meshes.doc | 1 + doc/salome/gui/SMESH/input/scale.doc | 132 ++ .../SMESH/input/tui_transforming_meshes.doc | 33 +- idl/SMESH_MeshEditor.idl | 13 + resources/Makefile.am | 4 +- resources/scale.png | Bin 0 -> 885 bytes resources/scale_along_axes.png | Bin 0 -> 874 bytes src/SMESH/SMESH_MeshEditor.cxx | 325 +++++ src/SMESH/SMESH_MeshEditor.hxx | 17 + src/SMESHGUI/Makefile.am | 3 + src/SMESHGUI/SMESHGUI.cxx | 18 + src/SMESHGUI/SMESHGUI_ScaleDlg.cxx | 1058 +++++++++++++++++ src/SMESHGUI/SMESHGUI_ScaleDlg.h | 149 +++ src/SMESHGUI/SMESH_images.ts | 8 + src/SMESHGUI/SMESH_msg_en.ts | 40 + src/SMESH_I/SMESH_MeshEditor_i.cxx | 136 ++- src/SMESH_I/SMESH_MeshEditor_i.hxx | 22 + src/SMESH_SWIG/smeshDC.py | 45 + 32 files changed, 2001 insertions(+), 3 deletions(-) create mode 100644 doc/salome/gui/SMESH/images/scale01.png create mode 100644 doc/salome/gui/SMESH/images/scale02.png create mode 100644 doc/salome/gui/SMESH/images/scale03.png create mode 100644 doc/salome/gui/SMESH/images/scale04.png create mode 100644 doc/salome/gui/SMESH/images/scale06.png create mode 100644 doc/salome/gui/SMESH/images/scale07.png create mode 100644 doc/salome/gui/SMESH/images/scale09.png create mode 100644 doc/salome/gui/SMESH/images/scaleinit01.png create mode 100644 doc/salome/gui/SMESH/images/scaleinit02.png create mode 100644 doc/salome/gui/SMESH/images/scaleres03.png create mode 100644 doc/salome/gui/SMESH/images/scaleres04.png create mode 100644 doc/salome/gui/SMESH/images/scaleres06.png create mode 100644 doc/salome/gui/SMESH/images/scaleres07.png create mode 100644 doc/salome/gui/SMESH/images/scaleres09.png create mode 100644 doc/salome/gui/SMESH/input/scale.doc create mode 100644 resources/scale.png create mode 100644 resources/scale_along_axes.png create mode 100644 src/SMESHGUI/SMESHGUI_ScaleDlg.cxx create mode 100644 src/SMESHGUI/SMESHGUI_ScaleDlg.h diff --git a/doc/salome/gui/SMESH/images/scale01.png b/doc/salome/gui/SMESH/images/scale01.png new file mode 100644 index 0000000000000000000000000000000000000000..72ae775ff212eb6f8a33403fee1acb7efc6b0e35 GIT binary patch literal 19816 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 XB!!Z4l!1p5xO@P_MH2&po&)ZmZvOWk literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scale07.png b/doc/salome/gui/SMESH/images/scale07.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee0923bd9e6ef60b684167bad0cbfb57b63b7d6 GIT binary patch literal 20034 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 Ky20)IwSNQCLb*x+ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scale09.png b/doc/salome/gui/SMESH/images/scale09.png new file mode 100644 index 0000000000000000000000000000000000000000..2816bac4b6469593fd10a3e278959e0b9c8f3be3 GIT binary patch literal 30799 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
  • \subpage rotation_page "Rotate" by the indicated axis and angle the mesh or some of its elements.
  • +
  • \subpage scale_page "Scale Transform" the mesh or some of its elements.
  • Create a \subpage symmetry_page "symmetrical copy" of the mesh through a point or a vector of symmetry.
  • Unite meshes by \subpage sewing_meshes_page "sewing" free borders, diff --git a/doc/salome/gui/SMESH/input/scale.doc b/doc/salome/gui/SMESH/input/scale.doc new file mode 100644 index 000000000..4f77ce8ad --- /dev/null +++ b/doc/salome/gui/SMESH/input/scale.doc @@ -0,0 +1,132 @@ +/*! + +\page scale_page Scale + +\n This geometrical operation allows to scale in space your mesh +or some of its elements. + +To scale a mesh: + +
      +
    1. From the \b Modification menu choose \b Transformation -> \b Scale +\b Transform item. + +One of the following dialogs will appear: + +With one scale factor: +\image html scale01.png + +Or with different scale factors for axises: +\image html scale02.png + +
    2. + +
    3. +In the dialog: +
        +
      • specify the IDs of the translated elements: + +
          +
        • Select the whole mesh, submesh or group activating this +checkbox; or
        • +
        • choose mesh elements with the mouse in the 3D Viewer. It is +possible to select a whole area with a mouse frame; or
        • +
        • input the element IDs directly in ID Elements field. The selected elements will be highlighted in the +viewer; or
        • +
        • apply Filters. Set filter button allows to apply a filter to the selection of elements. See more +about filters in the \ref selection_filter_library_page "Selection filter library" page.
        • +
        +
      • + +
      • specify the base point for scale
      • + +
      • specify the scale factor
      • + +
      • specify the conditions of scale: +
          +
        • activate Move elements radio button to create the source +mesh (or elements) at the new location and erase it from the previous location;
        • +
        • activate Copy elements radio button to create the source +mesh (or elements) at the new location, but leave it at the previous +location, the source mesh will be considered one and single mesh with the result of the rotation;
        • +
        • activate Create as new mesh radio button to leave the +source mesh (or elements) at its previous location and create a new +mesh at the new location, the new mesh appears in the Object Browser +with the default name MeshName_rotated (it is possible to change this +name in the adjacent box);
        • +
        • activate Copy groups checkbox to copy the groups of elements of the source mesh to the newly created mesh.
        • +
        +
      • + + + +
      • Click \b Apply or Apply and Close button to confirm the operation.
      • +
    + + + +Examle of using: + +1. Create quandrangle mesh 3x3 on simple planar face (200x200) + +\image html scaleinit01.png + +and union 3 face (along axis Z) to group "gr_faces" + +\image html scaleinit02.png + + + +2. Perform scale opration for whole mesh with creation of new mesh: + +\image html scale03.png + +result after operation: + +\image html scaleres03.png + + + +3. Perform scale operation for whole mesh with copy of elements: + +\image html scale04.png + +result after operation: + +\image html scaleres04.png + + + +4. Perform scale opration for group of faces with copy of elements: + +\image html scale06.png + +result after operation: + +\image html scaleres06.png + + + +5. Perform scale opration for two edges with moving of elements: + +\image html scale07.png + +result after operation: + +\image html scaleres07.png + + + +6. Perform scale opration for one face with moving of elements: + +\image html scale09.png + +result after operation: + +\image html scaleres09.png + + +
    See Also a sample TUI Script of a \ref tui_scale "Scale" operation. + + +*/ diff --git a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc index 163afe0e4..1658e58c5 100644 --- a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc +++ b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc @@ -44,6 +44,37 @@ angle270 = 1.5 * math.pi mesh.Rotate([], axisXYZ, angle270, 1) \endcode +
    +\anchor tui_scale +

    Scale

    + +\code +import geompy +Box = geompy.MakeBoxDXDYDZ(200, 200, 200) +f = geompy.SubShapeAllSorted(Box, geompy.ShapeType["FACE"]) + +import smesh,SMESH +import StdMeshers +Mesh1 = smesh.Mesh(f[0]) +Regular_1D = Mesh1.Segment() +Nb_Segments_1 = Regular_1D.NumberOfSegments(3) +Nb_Segments_1.SetDistrType( 0 ) +Quadrangle_2D = Mesh1.Quadrangle() +isDone = Mesh1.Compute() + +#Perform scale opration for whole mesh with creation of new mesh +newMesh = Mesh1.ScaleMakeMesh(Mesh1,SMESH.PointStruct(100,100,200),[0.5,0.3,0.7],True,"ScaledMesh") + +#Perform scale operation for whole mesh with copy of elements +Mesh1.Scale(Mesh1,SMESH.PointStruct(200,100,100),[0.5,0.5,0.5],True,True) + +#Perform scale opration for two edges with moving of elements +Mesh1.Scale([1,2],SMESH.PointStruct(-100,100,100),[0.8,1.0,0.7],False) + +#Perform scale opration for one face with moving of elements +Mesh1.Scale([21],SMESH.PointStruct(0,200,200),[0.7,0.7,0.7],False) +\endcode +
    \anchor tui_symmetry

    Symmetry

    @@ -319,4 +350,4 @@ mesh.Compute() mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) \endcode -*/ \ No newline at end of file +*/ diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index eb2715b4e..49a786619 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -570,6 +570,19 @@ module SMESH in boolean CopyGroups, in string MeshName); + void Scale (in SMESH_IDSource theObject, + in PointStruct thePoint, + in double_array theScaleFact, + in boolean Copy); + ListOfGroups ScaleMakeGroups (in SMESH_IDSource theObject, + in PointStruct thePoint, + in double_array theScaleFact); + SMESH_Mesh ScaleMakeMesh (in SMESH_IDSource theObject, + in PointStruct thePoint, + in double_array theScaleFact, + in boolean CopyGroups, + in string MeshName); + void Rotate (in long_array IDsOfElements, in AxisStruct Axis, in double AngleInRadians, diff --git a/resources/Makefile.am b/resources/Makefile.am index 0b8807d71..1444dc111 100644 --- a/resources/Makefile.am +++ b/resources/Makefile.am @@ -167,7 +167,9 @@ dist_salomeres_DATA = \ mesh_extractGroup.png \ mesh_precompute.png \ mesh_2d_from_3d.png \ - mesh_free_faces.png + mesh_free_faces.png \ + scale.png \ + scale_along_axes.png # VSR: little trick to avoid putting if SMESHCatalog.xml to the distribution archive nodist_salomeres_SCRIPTS = SMESHCatalog.xml diff --git a/resources/scale.png b/resources/scale.png new file mode 100644 index 0000000000000000000000000000000000000000..d838d9f89d3d35370a21123d25dc802b44d48c67 GIT binary patch literal 885 zcmV-*1B(2KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>q$gGRCwBA{Qv(y12q9a0I`4wMn*=WHTd}W{QvXk z55xEG-x)rC{>*Uh+&L7@00G28itT=We*d)sYZ!k2`N#0%*I$OOKmRbieH-`x;lqbK zKwf$J|vO|NmoPK+0_Z0R%VD(a{l@G}^%40!6^P zcX3~k6D-I@e}00z_!I0>kbw}F{Rd?=xPbrx1Wt$6z;tI6(*sYipd9e|+b@P4EuJ7X zJj~3@Ux-QkfB*iS01!Z67lQKSm+!y9hJlg>C>DQxhnrylRA>XFLqKdoh5`f-*uYPp zJ~4dy{tKAKfZqN23+%PuKR(0MfDF3;#CM2r) z?gu4NVoN1}0D>hOP+%t@2Rbk!$SSb`0*D34OSl644pg2f01#jRP=~#C{5KIa00000 LNkvXXu0mjf)k=&% literal 0 HcmV?d00001 diff --git a/resources/scale_along_axes.png b/resources/scale_along_axes.png new file mode 100644 index 0000000000000000000000000000000000000000..04a4ae0a855a2fcdcac12bb69ab71a49e15e0e11 GIT binary patch literal 874 zcmV-w1C{)VP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;;7LS5RCwBA{Qv(y12q9a0I}ebc<$=@Uvl?uMs#r> zAD{n!|Ndq8{{1_{=g*%R&YnGsq6Q#PM8C2kRfE^BUo*V> z@{{53pWh7sfto>v{P_hm?C&oyp8=6lYybiXY%)3q0`5nenjl6w5W54t^B;tnnVIoo zpxSHXxBw79OgO`kf#D9+uscu#?;MqrbAXD$@djyW zWU)H{0fgd0b93|mKY#vYxNzYDBQzQCfDAt;FaPBSP~A@;{td)`Kr~PSrW2I1*%%oa zJfA#K0SF*?q}bWn{Wp&5118wN403XE|G`P;|NocJAOIOGv0Fywj@y$b39#4)$pKw> z!T;$~m>2^<0D)a-Wo7l>AiA63*YAJOwDy}}OQSmj)X=ZcFg1W;31kDIe3;k;fB*u! z@XMDkz(o3o;Rn!lp!D|r$1j+}LAm4tQkXIjFz^mQ0D%qs@Zkf)XJA(P_7jxye=_{} z`3;e-fC_=GybGl70u6rw3s+d)1&ZB476S+%uz~O2zX#?`pg}*r0Tb*uhQGhy21-B` zg8|f#ugJ*(T?`jpT3{Camln=!E*m4st3=lxD zWCM!51Xxb^3n>`L0ssNTf|fJT!5yd^(EuR804oczkR*_ZMgRZ+07*qoM6N<$f(XKm Aga7~l literal 0 HcmV?d00001 diff --git a/src/SMESH/SMESH_MeshEditor.cxx b/src/SMESH/SMESH_MeshEditor.cxx index 9822c70ea..1032898a3 100644 --- a/src/SMESH/SMESH_MeshEditor.cxx +++ b/src/SMESH/SMESH_MeshEditor.cxx @@ -4936,6 +4936,331 @@ SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems, return newGroupIDs; } + +//======================================================================= +//function : Scale +//purpose : +//======================================================================= + +SMESH_MeshEditor::PGroupIDs +SMESH_MeshEditor::Scale (TIDSortedElemSet & theElems, + const gp_Pnt& thePoint, + const std::list& theScaleFact, + const bool theCopy, + const bool theMakeGroups, + SMESH_Mesh* theTargetMesh) +{ + myLastCreatedElems.Clear(); + myLastCreatedNodes.Clear(); + + SMESH_MeshEditor targetMeshEditor( theTargetMesh ); + SMESHDS_Mesh* aTgtMesh = theTargetMesh ? theTargetMesh->GetMeshDS() : 0; + SMESHDS_Mesh* aMesh = GetMeshDS(); + + double scaleX=1.0, scaleY=1.0, scaleZ=1.0; + std::list::const_iterator itS = theScaleFact.begin(); + scaleX = (*itS); + if(theScaleFact.size()==1) { + scaleY = (*itS); + scaleZ= (*itS); + } + if(theScaleFact.size()==2) { + itS++; + scaleY = (*itS); + scaleZ= (*itS); + } + if(theScaleFact.size()>2) { + itS++; + scaleY = (*itS); + itS++; + scaleZ= (*itS); + } + + // map old node to new one + TNodeNodeMap nodeMap; + + // elements sharing moved nodes; those of them which have all + // nodes mirrored but are not in theElems are to be reversed + TIDSortedElemSet inverseElemSet; + + // source elements for each generated one + SMESH_SequenceOfElemPtr srcElems, srcNodes; + + // loop on theElems + TIDSortedElemSet::iterator itElem; + for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) { + const SMDS_MeshElement* elem = *itElem; + if ( !elem ) + continue; + + // loop on elem nodes + SMDS_ElemIteratorPtr itN = elem->nodesIterator(); + while ( itN->more() ) { + + // check if a node has been already transformed + const SMDS_MeshNode* node = cast2Node( itN->next() ); + pair n2n_isnew = + nodeMap.insert( make_pair ( node, node )); + if ( !n2n_isnew.second ) + continue; + + //double coord[3]; + //coord[0] = node->X(); + //coord[1] = node->Y(); + //coord[2] = node->Z(); + //theTrsf.Transforms( coord[0], coord[1], coord[2] ); + double dx = (node->X() - thePoint.X()) * scaleX; + double dy = (node->Y() - thePoint.Y()) * scaleY; + double dz = (node->Z() - thePoint.Z()) * scaleZ; + if ( theTargetMesh ) { + //const SMDS_MeshNode * newNode = aTgtMesh->AddNode( coord[0], coord[1], coord[2] ); + const SMDS_MeshNode * newNode = + aTgtMesh->AddNode( thePoint.X()+dx, thePoint.Y()+dy, thePoint.Z()+dz ); + n2n_isnew.first->second = newNode; + myLastCreatedNodes.Append(newNode); + srcNodes.Append( node ); + } + else if ( theCopy ) { + //const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] ); + const SMDS_MeshNode * newNode = + aMesh->AddNode( thePoint.X()+dx, thePoint.Y()+dy, thePoint.Z()+dz ); + n2n_isnew.first->second = newNode; + myLastCreatedNodes.Append(newNode); + srcNodes.Append( node ); + } + else { + //aMesh->MoveNode( node, coord[0], coord[1], coord[2] ); + aMesh->MoveNode( node, thePoint.X()+dx, thePoint.Y()+dy, thePoint.Z()+dz ); + // node position on shape becomes invalid + const_cast< SMDS_MeshNode* > ( node )->SetPosition + ( SMDS_SpacePosition::originSpacePosition() ); + } + + // keep inverse elements + //if ( !theCopy && !theTargetMesh && needReverse ) { + // SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator(); + // while ( invElemIt->more() ) { + // const SMDS_MeshElement* iel = invElemIt->next(); + // inverseElemSet.insert( iel ); + // } + //} + } + } + + // either create new elements or reverse mirrored ones + //if ( !theCopy && !needReverse && !theTargetMesh ) + if ( !theCopy && !theTargetMesh ) + return PGroupIDs(); + + TIDSortedElemSet::iterator invElemIt = inverseElemSet.begin(); + for ( ; invElemIt != inverseElemSet.end(); invElemIt++ ) + theElems.insert( *invElemIt ); + + // replicate or reverse elements + + enum { + REV_TETRA = 0, // = nbNodes - 4 + REV_PYRAMID = 1, // = nbNodes - 4 + REV_PENTA = 2, // = nbNodes - 4 + REV_FACE = 3, + REV_HEXA = 4, // = nbNodes - 4 + FORWARD = 5 + }; + int index[][8] = { + { 2, 1, 0, 3, 4, 0, 0, 0 }, // REV_TETRA + { 2, 1, 0, 3, 4, 0, 0, 0 }, // REV_PYRAMID + { 2, 1, 0, 5, 4, 3, 0, 0 }, // REV_PENTA + { 2, 1, 0, 3, 0, 0, 0, 0 }, // REV_FACE + { 2, 1, 0, 3, 6, 5, 4, 7 }, // REV_HEXA + { 0, 1, 2, 3, 4, 5, 6, 7 } // FORWARD + }; + + for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) + { + const SMDS_MeshElement* elem = *itElem; + if ( !elem || elem->GetType() == SMDSAbs_Node ) + continue; + + int nbNodes = elem->NbNodes(); + int elemType = elem->GetType(); + + if (elem->IsPoly()) { + // Polygon or Polyhedral Volume + switch ( elemType ) { + case SMDSAbs_Face: + { + vector poly_nodes (nbNodes); + int iNode = 0; + SMDS_ElemIteratorPtr itN = elem->nodesIterator(); + while (itN->more()) { + const SMDS_MeshNode* node = + static_cast(itN->next()); + TNodeNodeMap::iterator nodeMapIt = nodeMap.find(node); + if (nodeMapIt == nodeMap.end()) + break; // not all nodes transformed + //if (needReverse) { + // // reverse mirrored faces and volumes + // poly_nodes[nbNodes - iNode - 1] = (*nodeMapIt).second; + //} else { + poly_nodes[iNode] = (*nodeMapIt).second; + //} + iNode++; + } + if ( iNode != nbNodes ) + continue; // not all nodes transformed + + if ( theTargetMesh ) { + myLastCreatedElems.Append(aTgtMesh->AddPolygonalFace(poly_nodes)); + srcElems.Append( elem ); + } + else if ( theCopy ) { + myLastCreatedElems.Append(aMesh->AddPolygonalFace(poly_nodes)); + srcElems.Append( elem ); + } + else { + aMesh->ChangePolygonNodes(elem, poly_nodes); + } + } + break; + case SMDSAbs_Volume: + { + // ATTENTION: Reversing is not yet done!!! + const SMDS_PolyhedralVolumeOfNodes* aPolyedre = + dynamic_cast( elem ); + if (!aPolyedre) { + MESSAGE("Warning: bad volumic element"); + continue; + } + + vector poly_nodes; + vector quantities; + + bool allTransformed = true; + int nbFaces = aPolyedre->NbFaces(); + for (int iface = 1; iface <= nbFaces && allTransformed; iface++) { + int nbFaceNodes = aPolyedre->NbFaceNodes(iface); + for (int inode = 1; inode <= nbFaceNodes && allTransformed; inode++) { + const SMDS_MeshNode* node = aPolyedre->GetFaceNode(iface, inode); + TNodeNodeMap::iterator nodeMapIt = nodeMap.find(node); + if (nodeMapIt == nodeMap.end()) { + allTransformed = false; // not all nodes transformed + } else { + poly_nodes.push_back((*nodeMapIt).second); + } + } + quantities.push_back(nbFaceNodes); + } + if ( !allTransformed ) + continue; // not all nodes transformed + + if ( theTargetMesh ) { + myLastCreatedElems.Append(aTgtMesh->AddPolyhedralVolume(poly_nodes, quantities)); + srcElems.Append( elem ); + } + else if ( theCopy ) { + myLastCreatedElems.Append(aMesh->AddPolyhedralVolume(poly_nodes, quantities)); + srcElems.Append( elem ); + } + else { + aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities); + } + } + break; + default:; + } + continue; + } + + // Regular elements + int* i = index[ FORWARD ]; + //if ( needReverse && nbNodes > 2) // reverse mirrored faces and volumes + // if ( elemType == SMDSAbs_Face ) + // i = index[ REV_FACE ]; + // else + // i = index[ nbNodes - 4 ]; + + if(elem->IsQuadratic()) { + static int anIds[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; + i = anIds; + //if(needReverse) { + // if(nbNodes==3) { // quadratic edge + // static int anIds[] = {1,0,2}; + // i = anIds; + // } + // else if(nbNodes==6) { // quadratic triangle + // static int anIds[] = {0,2,1,5,4,3}; + // i = anIds; + // } + // else if(nbNodes==8) { // quadratic quadrangle + // static int anIds[] = {0,3,2,1,7,6,5,4}; + // i = anIds; + // } + // else if(nbNodes==10) { // quadratic tetrahedron of 10 nodes + // static int anIds[] = {0,2,1,3,6,5,4,7,9,8}; + // i = anIds; + // } + // else if(nbNodes==13) { // quadratic pyramid of 13 nodes + // static int anIds[] = {0,3,2,1,4,8,7,6,5,9,12,11,10}; + // i = anIds; + // } + // else if(nbNodes==15) { // quadratic pentahedron with 15 nodes + // static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13}; + // i = anIds; + // } + // else { // nbNodes==20 - quadratic hexahedron with 20 nodes + // static int anIds[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17}; + // i = anIds; + // } + //} + } + + // find transformed nodes + vector nodes(nbNodes); + int iNode = 0; + SMDS_ElemIteratorPtr itN = elem->nodesIterator(); + while ( itN->more() ) { + const SMDS_MeshNode* node = + static_cast( itN->next() ); + TNodeNodeMap::iterator nodeMapIt = nodeMap.find( node ); + if ( nodeMapIt == nodeMap.end() ) + break; // not all nodes transformed + nodes[ i [ iNode++ ]] = (*nodeMapIt).second; + } + if ( iNode != nbNodes ) + continue; // not all nodes transformed + + if ( theTargetMesh ) { + if ( SMDS_MeshElement* copy = + targetMeshEditor.AddElement( nodes, elem->GetType(), elem->IsPoly() )) { + myLastCreatedElems.Append( copy ); + srcElems.Append( elem ); + } + } + else if ( theCopy ) { + if ( SMDS_MeshElement* copy = AddElement( nodes, elem->GetType(), elem->IsPoly() )) { + myLastCreatedElems.Append( copy ); + srcElems.Append( elem ); + } + } + else { + // reverse element as it was reversed by transformation + if ( nbNodes > 2 ) + aMesh->ChangeElementNodes( elem, &nodes[0], nbNodes ); + } + } + + PGroupIDs newGroupIDs; + + if ( theMakeGroups && theCopy || + theMakeGroups && theTargetMesh ) { + string groupPostfix = "scaled"; + newGroupIDs = generateGroups( srcNodes, srcElems, groupPostfix, theTargetMesh ); + } + + return newGroupIDs; +} + + //======================================================================= /*! * \brief Create groups of elements made during transformation diff --git a/src/SMESH/SMESH_MeshEditor.hxx b/src/SMESH/SMESH_MeshEditor.hxx index 3c197b2ac..db3c262e1 100644 --- a/src/SMESH/SMESH_MeshEditor.hxx +++ b/src/SMESH/SMESH_MeshEditor.hxx @@ -359,6 +359,23 @@ public: // Move or copy theElements applying theTrsf to their nodes + /*! + * Generate new elements by extrusion of theElements + * param theElems - list of elements for scale + * param thePoint - base point for scale + * param theScaleFact - scale factors for axises + * param theCopy - allows copying the translated elements + * param theMakeGroups - forces the generation of new groups from existing ones + * param theTargetMesh - the name of the newly created mesh + * return instance of Mesh class + */ + PGroupIDs Scale (TIDSortedElemSet& theElements, + const gp_Pnt& thePoint, + const std::list& theScaleFact, + const bool theCopy, + const bool theMakeGroups, + SMESH_Mesh* theTargetMesh=0); + typedef std::list< std::list< const SMDS_MeshNode* > > TListOfListOfNodes; void FindCoincidentNodes (std::set & theNodes, diff --git a/src/SMESHGUI/Makefile.am b/src/SMESHGUI/Makefile.am index 9f5eedcb2..e217ed97f 100644 --- a/src/SMESHGUI/Makefile.am +++ b/src/SMESHGUI/Makefile.am @@ -71,6 +71,7 @@ salomeinclude_HEADERS = \ SMESHGUI_RevolutionDlg.h \ SMESHGUI_RotationDlg.h \ SMESHGUI_TranslationDlg.h \ + SMESHGUI_ScaleDlg.h \ SMESHGUI_SymmetryDlg.h \ SMESHGUI_SewingDlg.h \ SMESHGUI_EditMeshDlg.h \ @@ -134,6 +135,7 @@ dist_libSMESH_la_SOURCES = \ SMESHGUI_RevolutionDlg.cxx \ SMESHGUI_RotationDlg.cxx \ SMESHGUI_TranslationDlg.cxx \ + SMESHGUI_ScaleDlg.cxx \ SMESHGUI_SymmetryDlg.cxx \ SMESHGUI_SewingDlg.cxx \ SMESHGUI_EditMeshDlg.cxx \ @@ -203,6 +205,7 @@ MOC_FILES = \ SMESHGUI_RevolutionDlg_moc.cxx \ SMESHGUI_RotationDlg_moc.cxx \ SMESHGUI_TranslationDlg_moc.cxx \ + SMESHGUI_ScaleDlg_moc.cxx \ SMESHGUI_SymmetryDlg_moc.cxx \ SMESHGUI_SewingDlg_moc.cxx \ SMESHGUI_EditMeshDlg_moc.cxx \ diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index a57406e8c..602de94d9 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -69,6 +69,7 @@ #include "SMESHGUI_StandardMeshInfosDlg.h" #include "SMESHGUI_SymmetryDlg.h" #include "SMESHGUI_TranslationDlg.h" +#include "SMESHGUI_ScaleDlg.h" #include "SMESHGUI_TransparencyDlg.h" #include "SMESHGUI_WhatIsDlg.h" @@ -2632,6 +2633,20 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) startOperation( 4067 ); break; + case 4068: // SCALE + { + if(checkLock(aStudy)) break; + if ( vtkwnd ) { + EmitSignalDeactivateDialog(); + ( new SMESHGUI_ScaleDlg( this ) )->show(); + } + else { + SUIT_MessageBox::warning(SMESHGUI::desktop(), + tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK")); + } + break; + } + case 5105: // Library of selection filters { static QList aTypes; @@ -2926,6 +2941,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createSMESHAction( 4065, "MERGE", "ICON_SMESH_MERGE_NODES" ); createSMESHAction( 4066, "MERGE_ELEMENTS", "ICON_DLG_MERGE_ELEMENTS" ); createSMESHAction( 4067, "MESH_THROU_POINT","ICON_DLG_MESH_THROU_POINT" ); + createSMESHAction( 4068, "SCALE", "ICON_DLG_MESH_SCALE" ); createSMESHAction( 406, "MOVE", "ICON_DLG_MOVE_NODE" ); createSMESHAction( 407, "INV", "ICON_DLG_MESH_DIAGONAL" ); createSMESHAction( 408, "UNION2", "ICON_UNION2TRI" ); @@ -3096,6 +3112,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createMenu( 4064, transfId, -1 ); createMenu( 4065, transfId, -1 ); createMenu( 4066, transfId, -1 ); + createMenu( 4068, transfId, -1 ); createMenu( 406, modifyId, -1 ); createMenu( 4067,modifyId, -1 ); @@ -3194,6 +3211,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createTool( 4064, addRemTb ); createTool( 4065, addRemTb ); createTool( 4066, addRemTb ); + createTool( 4068, addRemTb ); createTool( separator(), addRemTb ); createTool( 406, modifyTb ); diff --git a/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx new file mode 100644 index 000000000..cec62dc86 --- /dev/null +++ b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx @@ -0,0 +1,1058 @@ +// Copyright (C) 2007-2008 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 +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_ScaleDlg.cxx +// Author : Michael ZORIN, Open CASCADE S.A.S. +// SMESH includes +// +#include "SMESHGUI_ScaleDlg.h" + +#include "SMESHGUI.h" +#include "SMESHGUI_SpinBox.h" +#include "SMESHGUI_Utils.h" +#include "SMESHGUI_VTKUtils.h" +#include "SMESHGUI_MeshUtils.h" +#include "SMESHGUI_IdValidator.h" +#include "SMESHGUI_FilterDlg.h" + +#include +#include +#include +#include + +// SALOME GUI includes +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +// SALOME KERNEL includes +#include + +// OCCT includes +#include + +// Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// IDL includes +#include +#include CORBA_SERVER_HEADER(SMESH_Group) +#include CORBA_SERVER_HEADER(SMESH_MeshEditor) + +enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type + +/*! + \class BusyLocker + \brief Simple 'busy state' flag locker. + \internal +*/ + +class BusyLocker +{ +public: + //! Constructor. Sets passed boolean flag to \c true. + BusyLocker( bool& busy ) : myBusy( busy ) { myBusy = true; } + //! Destructor. Clear external boolean flag passed as parameter to the constructor to \c false. + ~BusyLocker() { myBusy = false; } +private: + bool& myBusy; //! External 'busy state' boolean flag +}; + +#define SPACING 6 +#define MARGIN 11 + +//================================================================================= +// class : SMESHGUI_ScaleDlg() +// purpose : +//================================================================================= +SMESHGUI_ScaleDlg::SMESHGUI_ScaleDlg( SMESHGUI* theModule ) + : QDialog( SMESH::GetDesktop( theModule ) ), + mySMESHGUI( theModule ), + mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ), + myFilterDlg(0), + mySelectedObject(SMESH::SMESH_IDSource::_nil()) +{ + QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_MESH_SCALE"))); + QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_SCALE_ALONG_AXES"))); + QPixmap image2 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT"))); + + setModal(false); + setAttribute(Qt::WA_DeleteOnClose, true); + setWindowTitle(tr("SMESH_SCALE_TITLE")); + setSizeGripEnabled(true); + + QVBoxLayout* SMESHGUI_ScaleDlgLayout = new QVBoxLayout(this); + SMESHGUI_ScaleDlgLayout->setSpacing(SPACING); + SMESHGUI_ScaleDlgLayout->setMargin(MARGIN); + + /***************************************************************/ + ConstructorsBox = new QGroupBox(tr("SMESH_SCALE"), this); + GroupConstructors = new QButtonGroup(this); + QHBoxLayout* ConstructorsBoxLayout = new QHBoxLayout(ConstructorsBox); + ConstructorsBoxLayout->setSpacing(SPACING); + ConstructorsBoxLayout->setMargin(MARGIN); + + RadioButton1= new QRadioButton(ConstructorsBox); + RadioButton1->setIcon(image0); + RadioButton2= new QRadioButton(ConstructorsBox); + RadioButton2->setIcon(image1); + + ConstructorsBoxLayout->addWidget(RadioButton1); + ConstructorsBoxLayout->addWidget(RadioButton2); + GroupConstructors->addButton(RadioButton1, 0); + GroupConstructors->addButton(RadioButton2, 1); + + /***************************************************************/ + GroupArguments = new QGroupBox(tr("SMESH_ARGUMENTS"), this); + QGridLayout* GroupArgumentsLayout = new QGridLayout(GroupArguments); + GroupArgumentsLayout->setSpacing(SPACING); + GroupArgumentsLayout->setMargin(MARGIN); + + myIdValidator = new SMESHGUI_IdValidator(this); + + // Controls for elements selection + TextLabelElements = new QLabel(tr("SMESH_ID_ELEMENTS"), GroupArguments); + SelectElementsButton = new QPushButton(GroupArguments); + SelectElementsButton->setIcon(image2); + LineEditElements = new QLineEdit(GroupArguments); + LineEditElements->setValidator(myIdValidator); + myFilterBtn = new QPushButton( tr( "SMESH_BUT_FILTER" ), GroupArguments ); + connect(myFilterBtn, SIGNAL(clicked()), this, SLOT(setFilters())); + + // Control for the whole mesh selection + CheckBoxMesh = new QCheckBox(tr("SMESH_SELECT_WHOLE_MESH"), GroupArguments); + + // Controls for vector and points selection + TextLabel1 = new QLabel(tr("SMESH_BASE_POINT"), GroupArguments); + SelectButton1 = new QPushButton(GroupArguments); + SelectButton1->setIcon(image2); + + TextLabel1_1 = new QLabel(tr("SMESH_X"), GroupArguments); + SpinBox1_1 = new SMESHGUI_SpinBox(GroupArguments); + TextLabel1_2 = new QLabel(tr("SMESH_Y"), GroupArguments); + SpinBox1_2 = new SMESHGUI_SpinBox(GroupArguments); + TextLabel1_3 = new QLabel(tr("SMESH_Z"), GroupArguments); + SpinBox1_3 = new SMESHGUI_SpinBox(GroupArguments); + + TextLabel2 = new QLabel(tr("SMESH_SCALE_FACTOR"), GroupArguments); + SpinBox_FX = new SMESHGUI_SpinBox(GroupArguments); + + TextLabel3 = new QLabel(tr("SMESH_SCALE_FACTOR_Y"), GroupArguments); + SpinBox_FY = new SMESHGUI_SpinBox(GroupArguments); + + TextLabel4 = new QLabel(tr("SMESH_SCALE_FACTOR_Z"), GroupArguments); + SpinBox_FZ = new SMESHGUI_SpinBox(GroupArguments); + + + // switch of action type + ActionBox = new QGroupBox(GroupArguments); + ActionGroup = new QButtonGroup(GroupArguments); + QVBoxLayout* ActionBoxLayout = new QVBoxLayout(ActionBox); + ActionBoxLayout->addSpacing(SPACING); + ActionBoxLayout->setMargin(MARGIN); + + QRadioButton* aMoveElements = new QRadioButton(tr("SMESH_MOVE_ELEMENTS"), ActionBox); + QRadioButton* aCopyElements = new QRadioButton(tr("SMESH_COPY_ELEMENTS"), ActionBox); + QRadioButton* aCreateMesh = new QRadioButton(tr("SMESH_CREATE_MESH"), ActionBox); + + ActionBoxLayout->addWidget(aMoveElements); + ActionBoxLayout->addWidget(aCopyElements); + ActionBoxLayout->addWidget(aCreateMesh); + ActionGroup->addButton(aMoveElements, MOVE_ELEMS_BUTTON); + ActionGroup->addButton(aCopyElements, COPY_ELEMS_BUTTON); + ActionGroup->addButton(aCreateMesh, MAKE_MESH_BUTTON); + + // CheckBox for groups generation + MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments); + MakeGroupsCheck->setChecked(false); + + // Name of a mesh to create + LineEditNewMesh = new QLineEdit(GroupArguments); + + // layout + GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0); + GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1); + GroupArgumentsLayout->addWidget(LineEditElements, 0, 2, 1, 5); + GroupArgumentsLayout->addWidget(myFilterBtn, 0, 7); + GroupArgumentsLayout->addWidget(CheckBoxMesh, 1, 0, 1, 8); + GroupArgumentsLayout->addWidget(TextLabel1, 2, 0); + GroupArgumentsLayout->addWidget(SelectButton1, 2, 1); + GroupArgumentsLayout->addWidget(TextLabel1_1, 2, 2); + GroupArgumentsLayout->addWidget(SpinBox1_1, 2, 3); + GroupArgumentsLayout->addWidget(TextLabel1_2, 2, 4); + GroupArgumentsLayout->addWidget(SpinBox1_2, 2, 5); + GroupArgumentsLayout->addWidget(TextLabel1_3, 2, 6); + GroupArgumentsLayout->addWidget(SpinBox1_3, 2, 7); + GroupArgumentsLayout->addWidget(TextLabel2, 3, 0); + GroupArgumentsLayout->addWidget(SpinBox_FX, 3, 3); + GroupArgumentsLayout->addWidget(TextLabel3, 4, 0); + GroupArgumentsLayout->addWidget(SpinBox_FY, 4, 3); + GroupArgumentsLayout->addWidget(TextLabel4, 5, 0); + GroupArgumentsLayout->addWidget(SpinBox_FZ, 5, 3); + GroupArgumentsLayout->addWidget(ActionBox, 7, 0, 3, 4); + GroupArgumentsLayout->addWidget(MakeGroupsCheck, 7, 5, 1, 4); + GroupArgumentsLayout->addWidget(LineEditNewMesh, 8, 5, 1, 4); + + /***************************************************************/ + GroupButtons = new QGroupBox(this); + QHBoxLayout* GroupButtonsLayout = new QHBoxLayout(GroupButtons); + GroupButtonsLayout->setSpacing(SPACING); + GroupButtonsLayout->setMargin(MARGIN); + + buttonOk = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), GroupButtons); + buttonOk->setAutoDefault(true); + buttonOk->setDefault(true); + buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons); + buttonApply->setAutoDefault(true); + buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons); + buttonCancel->setAutoDefault(true); + buttonHelp = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons); + buttonHelp->setAutoDefault(true); + + GroupButtonsLayout->addWidget(buttonOk); + GroupButtonsLayout->addSpacing(10); + GroupButtonsLayout->addWidget(buttonApply); + GroupButtonsLayout->addSpacing(10); + GroupButtonsLayout->addStretch(); + GroupButtonsLayout->addWidget(buttonCancel); + GroupButtonsLayout->addWidget(buttonHelp); + + /***************************************************************/ + SMESHGUI_ScaleDlgLayout->addWidget(ConstructorsBox); + SMESHGUI_ScaleDlgLayout->addWidget(GroupArguments); + SMESHGUI_ScaleDlgLayout->addWidget(GroupButtons); + + /* Initialisations */ + SpinBox1_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox1_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox1_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY); + SpinBox_FX->RangeStepAndValidator(0.0, COORD_MAX, 1.0, DBL_DIGITS_DISPLAY); + SpinBox_FY->RangeStepAndValidator(0.0, COORD_MAX, 1.0, DBL_DIGITS_DISPLAY); + SpinBox_FZ->RangeStepAndValidator(0.0, COORD_MAX, 1.0, DBL_DIGITS_DISPLAY); + + RadioButton1->setChecked(true); + + mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector(); + + mySMESHGUI->SetActiveDialogBox((QDialog*)this); + + // Costruction of the logical filter + SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH); + SMESH_TypeFilter* aSmeshGroupFilter = new SMESH_TypeFilter (GROUP); + + QList aListOfFilters; + if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter); + if (aSmeshGroupFilter) aListOfFilters.append(aSmeshGroupFilter); + + myMeshOrSubMeshOrGroupFilter = + new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR); + + myHelpFileName = "scale_page.html"; + + Init(); + + /* signals and slots connections */ + connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); + connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); + connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int))); + + connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument())); + connect(SelectButton1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); + connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + /* to close dialog if study change */ + connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); + connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); + connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int))); + + ConstructorsClicked(0); + SelectionIntoArgument(); + onActionClicked(MOVE_ELEMS_BUTTON); +} + +//================================================================================= +// function : ~SMESHGUI_ScaleDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +SMESHGUI_ScaleDlg::~SMESHGUI_ScaleDlg() +{ + if ( myFilterDlg ) { + myFilterDlg->setParent( 0 ); + delete myFilterDlg; + myFilterDlg = 0; + } +} + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::Init (bool ResetControls) +{ + myBusy = false; + + myEditCurrentArgument = 0; + LineEditElements->clear(); + myElementsId = ""; + myNbOkElements = 0; + + buttonOk->setEnabled(false); + buttonApply->setEnabled(false); + + myActor = 0; + myMesh = SMESH::SMESH_Mesh::_nil(); + + if (ResetControls) { + SpinBox1_1->SetValue(0.0); + SpinBox1_2->SetValue(0.0); + SpinBox1_3->SetValue(0.0); + SpinBox_FX->SetValue(1.0); + SpinBox_FY->SetValue(1.0); + SpinBox_FZ->SetValue(1.0); + + ActionGroup->button( MOVE_ELEMS_BUTTON )->setChecked(true); + CheckBoxMesh->setChecked(false); + onSelectMesh(false); + } +} + +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void SMESHGUI_ScaleDlg::ConstructorsClicked (int constructorId) +{ + disconnect(mySelectionMgr, 0, this, 0); + + switch (constructorId) { + case 0: + { + TextLabel2->setText(tr("SMESH_SCALE_FACTOR")); + TextLabel3->hide(); + TextLabel4->hide(); + SpinBox_FY->hide(); + SpinBox_FZ->hide(); + break; + } + case 1: + { + TextLabel2->setText(tr("SMESH_SCALE_FACTOR_X")); + TextLabel3->show(); + TextLabel4->show(); + SpinBox_FY->show(); + SpinBox_FZ->show(); + break; + } + } + + if (myEditCurrentArgument != (QWidget*)LineEditElements) { + SMESH::SetPointRepresentation(false); + if (!CheckBoxMesh->isChecked()) + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( CellSelection ); + } + + myEditCurrentArgument = (QWidget*)LineEditElements; + LineEditElements->setFocus(); + + if (CheckBoxMesh->isChecked()) + onSelectMesh(true); + + connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + + QApplication::instance()->processEvents(); + updateGeometry(); + resize(100,100); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool SMESHGUI_ScaleDlg::ClickOnApply() +{ + if (mySMESHGUI->isActiveStudyLocked()) + return false; + + if( !isValid() ) + return false; + + if (myNbOkElements) { + QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts); + + SMESH::long_array_var anElementsId = new SMESH::long_array; + + anElementsId->length(aListElementsId.count()); + for (int i = 0; i < aListElementsId.count(); i++) + anElementsId[i] = aListElementsId[i].toInt(); + + SMESH::PointStruct aPoint; + aPoint.x = SpinBox1_1->GetValue(); + aPoint.y = SpinBox1_2->GetValue(); + aPoint.z = SpinBox1_3->GetValue(); + SMESH::double_array_var aScaleFact = new SMESH::double_array; + aScaleFact->length(3); + aScaleFact[0] = SpinBox_FX->GetValue(); + if (GetConstructorId() == 0) { + aScaleFact[1] = SpinBox_FX->GetValue(); + aScaleFact[2] = SpinBox_FX->GetValue(); + } + else { + aScaleFact[1] = SpinBox_FY->GetValue(); + aScaleFact[2] = SpinBox_FZ->GetValue(); + } + + QStringList aParameters; + aParameters << SpinBox1_1->text(); + aParameters << SpinBox1_2->text(); + aParameters << SpinBox1_3->text(); + aParameters << SpinBox_FX->text(); + if (GetConstructorId() == 1) { + aParameters << SpinBox_FX->text(); + aParameters << SpinBox_FX->text(); + } + else { + aParameters << SpinBox_FY->text(); + aParameters << SpinBox_FZ->text(); + } + + int actionButton = ActionGroup->checkedId(); + bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ); + try { + SUIT_OverrideCursor aWaitCursor; + SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); + switch ( actionButton ) { + case MOVE_ELEMS_BUTTON: + if(CheckBoxMesh->isChecked()) { + aMeshEditor->Scale(mySelectedObject, aPoint, aScaleFact, false); + } + else { + SMESH::SMESH_IDSource_ptr anObj = aMeshEditor->MakeIDSource(anElementsId); + aMeshEditor->Scale(anObj, aPoint, aScaleFact, false); + } + if( !myMesh->_is_nil()) + myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); + break; + case COPY_ELEMS_BUTTON: + if ( makeGroups ) { + SMESH::ListOfGroups_var groups; + if(CheckBoxMesh->isChecked()) { + groups = aMeshEditor->ScaleMakeGroups(mySelectedObject, aPoint, aScaleFact); + } + else { + groups = aMeshEditor->ScaleMakeGroups(aMeshEditor->MakeIDSource(anElementsId), + aPoint, aScaleFact); + } + } + else { + if(CheckBoxMesh->isChecked()) { + aMeshEditor->Scale(mySelectedObject, aPoint, aScaleFact, true); + } + else { + aMeshEditor->Scale(aMeshEditor->MakeIDSource(anElementsId), + aPoint, aScaleFact, true); + } + } + if( !myMesh->_is_nil()) + myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); + break; + case MAKE_MESH_BUTTON: + SMESH::SMESH_Mesh_var mesh; + if(CheckBoxMesh->isChecked()) { + mesh = aMeshEditor->ScaleMakeMesh(mySelectedObject, aPoint, aScaleFact, makeGroups, + LineEditNewMesh->text().toLatin1().data()); + } + else { + mesh = aMeshEditor->ScaleMakeMesh(aMeshEditor->MakeIDSource(anElementsId), + aPoint, aScaleFact, makeGroups, + LineEditNewMesh->text().toLatin1().data()); + } + if( !mesh->_is_nil()) + mesh->SetParameters( aParameters.join(":").toLatin1().constData() ); + } + } catch (...) { + } + + SMESH::UpdateView(); + if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() || + actionButton == MAKE_MESH_BUTTON ) + mySMESHGUI->updateObjBrowser(true); // new groups may appear + Init(false); + ConstructorsClicked(GetConstructorId()); + mySelectedObject = SMESH::SMESH_IDSource::_nil(); + SelectionIntoArgument(); + } + + return true; +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::ClickOnOk() +{ + if( ClickOnApply() ) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnCancel() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::ClickOnCancel() +{ + disconnect(mySelectionMgr, 0, this, 0); + mySelectionMgr->clearFilters(); + //mySelectionMgr->clearSelected(); + if (SMESH::GetCurrentVtkView()) { + SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters + SMESH::SetPointRepresentation(false); + } + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( ActorSelection ); + mySMESHGUI->ResetState(); + reject(); +} + +//================================================================================= +// function : ClickOnHelp() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::ClickOnHelp() +{ + LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); + if (app) + app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName); + else { + QString platform; +#ifdef WIN32 + platform = "winapplication"; +#else + platform = "application"; +#endif + SUIT_MessageBox::warning(this, tr("WRN_WARNING"), + tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", + platform)). + arg(myHelpFileName)); + } +} + +//======================================================================= +// function : onTextChange() +// purpose : +//======================================================================= +void SMESHGUI_ScaleDlg::onTextChange (const QString& theNewText) +{ + QLineEdit* send = (QLineEdit*)sender(); + + if (myBusy) return; + BusyLocker lock( myBusy ); + + if (send == LineEditElements) + myNbOkElements = 0; + + buttonOk->setEnabled(false); + buttonApply->setEnabled(false); + + // hilight entered elements + SMDS_Mesh* aMesh = 0; + if (myActor) + aMesh = myActor->GetObject()->GetMesh(); + + if (aMesh) { + Handle(SALOME_InteractiveObject) anIO = myActor->getIO(); + + TColStd_MapOfInteger newIndices; + + QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts); + + if (send == LineEditElements) { + for (int i = 0; i < aListId.count(); i++) { + const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt()); + if (e) + newIndices.Add(e->GetID()); + myNbOkElements++; + } + } + + mySelector->AddOrRemoveIndex( anIO, newIndices, false ); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->highlight( anIO, true, true ); + + myElementsId = theNewText; + } + + if (myNbOkElements) { + buttonOk->setEnabled(true); + buttonApply->setEnabled(true); + } +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection as changed or other case +//================================================================================= +void SMESHGUI_ScaleDlg::SelectionIntoArgument() +{ + if (myBusy) return; + BusyLocker lock( myBusy ); + // clear + myActor = 0; + QString aString = ""; + + if (myEditCurrentArgument == (QWidget*)LineEditElements) { + LineEditElements->setText(aString); + myNbOkElements = 0; + buttonOk->setEnabled(false); + buttonApply->setEnabled(false); + } + + if (!GroupButtons->isEnabled()) // inactive + return; + + // get selected mesh + SALOME_ListIO aList; + mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type()); + + int nbSel = aList.Extent(); + if (nbSel != 1) + return; + + Handle(SALOME_InteractiveObject) IO = aList.First(); + myMesh = SMESH::GetMeshByIO(IO); + if (myMesh->_is_nil()) + return; + + myActor = SMESH::FindActorByObject(myMesh); + if (!myActor) + myActor = SMESH::FindActorByEntry(IO->getEntry()); + if (!myActor) + return; + + int aNbUnits = 0; + + if (myEditCurrentArgument == (QWidget*)LineEditElements) { + myElementsId = ""; + + // MakeGroups is available if there are groups and "Copy" + if ( myMesh->NbGroups() == 0 ) { + MakeGroupsCheck->setChecked(false); + MakeGroupsCheck->setEnabled(false); + } + else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) { + MakeGroupsCheck->setEnabled(true); + } + + if (CheckBoxMesh->isChecked()) { + SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString ); + + if (!SMESH::IObjectToInterface(IO)->_is_nil()) { //MESH, SUBMESH, OR GROUP + mySelectedObject = SMESH::IObjectToInterface(IO); + } + else + return; + // get IDs from mesh + /* + SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh(); + if (!aSMDSMesh) + return; + + for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) { + const SMDS_MeshElement * e = aSMDSMesh->FindElement(i); + if (e) { + myElementsId += QString(" %1").arg(i); + aNbUnits++; + } + } + } else if (!SMESH::IObjectToInterface(IO)->_is_nil()) { //SUBMESH + // get submesh + SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface(IO); + + // get IDs from submesh + SMESH::long_array_var anElementsIds = new SMESH::long_array; + anElementsIds = aSubMesh->GetElementsId(); + for (int i = 0; i < anElementsIds->length(); i++) { + myElementsId += QString(" %1").arg(anElementsIds[i]); + } + aNbUnits = anElementsIds->length(); + } else { // GROUP + // get smesh group + SMESH::SMESH_GroupBase_var aGroup = + SMESH::IObjectToInterface(IO); + if (aGroup->_is_nil()) + return; + + // get IDs from smesh group + SMESH::long_array_var anElementsIds = new SMESH::long_array; + anElementsIds = aGroup->GetListOfID(); + for (int i = 0; i < anElementsIds->length(); i++) { + myElementsId += QString(" %1").arg(anElementsIds[i]); + } + aNbUnits = anElementsIds->length(); + } + */ + } else { + aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, IO, aString); + myElementsId = aString; + if (aNbUnits < 1) + return; + } + + myNbOkElements = true; + } else { + aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString); + if (aNbUnits != 1) + return; + + SMDS_Mesh* aMesh = myActor->GetObject()->GetMesh(); + if (!aMesh) + return; + + const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt()); + if (!n) + return; + + double x = n->X(); + double y = n->Y(); + double z = n->Z(); + + if (myEditCurrentArgument == (QWidget*)SpinBox1_1) { + SpinBox1_1->SetValue(x); + SpinBox1_2->SetValue(y); + SpinBox1_3->SetValue(z); + } + else if (myEditCurrentArgument == (QWidget*)SpinBox_FX) { + SpinBox_FX->SetValue(x); + SpinBox_FY->SetValue(y); + SpinBox_FZ->SetValue(z); + } + } + + if (myEditCurrentArgument == (QWidget*)LineEditElements) { + LineEditElements->setText(aString); + LineEditElements->repaint(); + LineEditElements->setEnabled(false); // to fully update lineedit IPAL 19809 + LineEditElements->setEnabled(true); + setNewMeshName(); + } + + // OK + if (myNbOkElements) { + buttonOk->setEnabled(true); + buttonApply->setEnabled(true); + } +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + disconnect(mySelectionMgr, 0, this, 0); + mySelectionMgr->clearSelected(); + mySelectionMgr->clearFilters(); + + if (send == SelectElementsButton) { + myEditCurrentArgument = (QWidget*)LineEditElements; + SMESH::SetPointRepresentation(false); + if (CheckBoxMesh->isChecked()) { + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( ActorSelection ); + mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); + } + else { + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( CellSelection ); + } + } + else if (send == SelectButton1) { + myEditCurrentArgument = (QWidget*)SpinBox1_1; + SMESH::SetPointRepresentation(true); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( NodeSelection ); + } + + myEditCurrentArgument->setFocus(); + connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + SelectionIntoArgument(); +} + +//================================================================================= +// function : DeactivateActiveDialog() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::DeactivateActiveDialog() +{ + if (ConstructorsBox->isEnabled()) { + ConstructorsBox->setEnabled(false); + GroupArguments->setEnabled(false); + GroupButtons->setEnabled(false); + mySMESHGUI->ResetState(); + mySMESHGUI->SetActiveDialogBox(0); + } +} + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::ActivateThisDialog() +{ + /* Emit a signal to deactivate the active dialog */ + mySMESHGUI->EmitSignalDeactivateDialog(); + ConstructorsBox->setEnabled(true); + GroupArguments->setEnabled(true); + GroupButtons->setEnabled(true); + + mySMESHGUI->SetActiveDialogBox((QDialog*)this); + + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( CellSelection ); + + SelectionIntoArgument(); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::enterEvent (QEvent*) +{ + if (!ConstructorsBox->isEnabled()) + ActivateThisDialog(); +} + +//================================================================================= +// function : closeEvent() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::closeEvent (QCloseEvent*) +{ + /* same than click on cancel button */ + ClickOnCancel(); +} + +//======================================================================= +//function : hideEvent +//purpose : caused by ESC key +//======================================================================= +void SMESHGUI_ScaleDlg::hideEvent (QHideEvent*) +{ + if (!isMinimized()) + ClickOnCancel(); +} + +//======================================================================= +//function : onSelectMesh +//purpose : +//======================================================================= +void SMESHGUI_ScaleDlg::onSelectMesh (bool toSelectMesh) +{ + if (toSelectMesh) + TextLabelElements->setText(tr("SMESH_NAME")); + else + TextLabelElements->setText(tr("SMESH_ID_ELEMENTS")); + myFilterBtn->setEnabled(!toSelectMesh); + + if (myEditCurrentArgument != LineEditElements) { + LineEditElements->clear(); + return; + } + + mySelectionMgr->clearFilters(); + SMESH::SetPointRepresentation(false); + + if (toSelectMesh) { + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( ActorSelection ); + mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); + LineEditElements->setReadOnly(true); + LineEditElements->setValidator(0); + } else { + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode( CellSelection ); + LineEditElements->setReadOnly(false); + LineEditElements->setValidator(myIdValidator); + onTextChange(LineEditElements->text()); + } + + SelectionIntoArgument(); +} + +//======================================================================= +//function : onActionClicked +//purpose : slot called when an action type changed +//======================================================================= + +void SMESHGUI_ScaleDlg::onActionClicked(int button) +{ + switch ( button ) { + case MOVE_ELEMS_BUTTON: + MakeGroupsCheck->setEnabled(false); + LineEditNewMesh->setEnabled(false); + break; + case COPY_ELEMS_BUTTON: + LineEditNewMesh->setEnabled(false); + MakeGroupsCheck->setText( tr("SMESH_MAKE_GROUPS")); + if ( myMesh->_is_nil() || myMesh->NbGroups() > 0) + MakeGroupsCheck->setEnabled(true); + else + MakeGroupsCheck->setEnabled(false); + break; + case MAKE_MESH_BUTTON: + LineEditNewMesh->setEnabled(true); + MakeGroupsCheck->setText( tr("SMESH_COPY_GROUPS")); + if ( myMesh->_is_nil() || myMesh->NbGroups() > 0) + MakeGroupsCheck->setEnabled(true); + else + MakeGroupsCheck->setEnabled(false); + break; + } + setNewMeshName(); +} + +//======================================================================= +//function : setNewMeshName +//purpose : update contents of LineEditNewMesh +//======================================================================= + +void SMESHGUI_ScaleDlg::setNewMeshName() +{ + LineEditNewMesh->setText(""); + if ( LineEditNewMesh->isEnabled() && !myMesh->_is_nil() ) { + QString name; + if ( CheckBoxMesh->isChecked() ) { + name = LineEditElements->text(); + } + else { + _PTR(SObject) meshSO = SMESH::FindSObject( myMesh ); + name = meshSO->GetName().c_str(); + } + if ( !name.isEmpty() ) + LineEditNewMesh->setText( SMESH::UniqueMeshName( name, "scaled")); + } +} + +//================================================================================= +// function : GetConstructorId() +// purpose : +//================================================================================= +int SMESHGUI_ScaleDlg::GetConstructorId() +{ + return GroupConstructors->checkedId(); +} + +//================================================================================= +// function : keyPressEvent() +// purpose : +//================================================================================= +void SMESHGUI_ScaleDlg::keyPressEvent( QKeyEvent* e ) +{ + QDialog::keyPressEvent( e ); + if ( e->isAccepted() ) + return; + + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } +} + +//================================================================================= +// function : setFilters() +// purpose : SLOT. Called when "Filter" button pressed. +//================================================================================= +void SMESHGUI_ScaleDlg::setFilters() +{ + if(myMesh->_is_nil()) { + SUIT_MessageBox::critical(this, + tr("SMESH_ERROR"), + tr("NO_MESH_SELECTED")); + return; + } + if ( !myFilterDlg ) + myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); + + myFilterDlg->SetSelection(); + myFilterDlg->SetMesh( myMesh ); + myFilterDlg->SetSourceWg( LineEditElements ); + + myFilterDlg->show(); +} + +//================================================================================= +// function : isValid +// purpose : +//================================================================================= +bool SMESHGUI_ScaleDlg::isValid() +{ + bool ok = true; + QString msg; + + ok = SpinBox1_1->isValid( msg, true ) && ok; + ok = SpinBox1_2->isValid( msg, true ) && ok; + ok = SpinBox1_3->isValid( msg, true ) && ok; + ok = SpinBox_FX->isValid( msg, true ) && ok; + if (GetConstructorId() == 1) { + ok = SpinBox_FY->isValid( msg, true ) && ok; + ok = SpinBox_FZ->isValid( msg, true ) && ok; + } + + if( !ok ) { + QString str( tr( "SMESH_INCORRECT_INPUT" ) ); + if ( !msg.isEmpty() ) + str += "\n" + msg; + SUIT_MessageBox::critical( this, tr( "SMESH_ERROR" ), str ); + return false; + } + return true; +} diff --git a/src/SMESHGUI/SMESHGUI_ScaleDlg.h b/src/SMESHGUI/SMESHGUI_ScaleDlg.h new file mode 100644 index 000000000..f9941a99f --- /dev/null +++ b/src/SMESHGUI/SMESHGUI_ScaleDlg.h @@ -0,0 +1,149 @@ +// Copyright (C) 2007-2008 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 +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_ScaleDlg.h +// Author : Sergey Kuul, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_SCALEDLG_H +#define SMESHGUI_SCALEDLG_H + +// SMESH includes +#include "SMESH_SMESHGUI.hxx" + +// Qt includes +#include + +// IDL includes +#include +#include CORBA_SERVER_HEADER(SMESH_Mesh) + +class QButtonGroup; +class QGroupBox; +class QLabel; +class QLineEdit; +class QPushButton; +class QRadioButton; +class QCheckBox; +class SMESHGUI; +class SMESHGUI_IdValidator; +class SMESHGUI_SpinBox; +class SMESHGUI_FilterDlg; +class SMESH_Actor; +class SVTK_Selector; +class LightApp_SelectionMgr; +class SMESH_LogicalFilter; + +//================================================================================= +// class : SMESHGUI_ScaleDlg +// purpose : +//================================================================================= +class SMESHGUI_EXPORT SMESHGUI_ScaleDlg : public QDialog +{ + Q_OBJECT + +public: + SMESHGUI_ScaleDlg( SMESHGUI* ); + ~SMESHGUI_ScaleDlg(); + +private: + void Init( bool = true ); + void closeEvent( QCloseEvent* ); + void enterEvent( QEvent* ); /* mouse enter the QWidget */ + void hideEvent( QHideEvent* ); /* ESC key */ + void keyPressEvent( QKeyEvent* ); + int GetConstructorId(); + void setNewMeshName(); + + bool isValid(); + + SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ + SMESHGUI_IdValidator* myIdValidator; + LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ + QString myElementsId; + int myNbOkElements; /* to check when elements are defined */ + + SVTK_Selector* mySelector; + + QWidget* myEditCurrentArgument; + + bool myBusy; + SMESH::SMESH_Mesh_var myMesh; + SMESH_Actor* myActor; + SMESH_LogicalFilter* myMeshOrSubMeshOrGroupFilter; + + SMESH::SMESH_IDSource_var mySelectedObject; + + QGroupBox* ConstructorsBox; + QButtonGroup* GroupConstructors; + QRadioButton* RadioButton1; + QRadioButton* RadioButton2; + QGroupBox* GroupButtons; + QPushButton* buttonOk; + QPushButton* buttonCancel; + QPushButton* buttonApply; + QPushButton* buttonHelp; + QGroupBox* GroupArguments; + QLabel* TextLabelElements; + QPushButton* SelectElementsButton; + QLineEdit* LineEditElements; + QCheckBox* CheckBoxMesh; + QLabel* TextLabel1; + QPushButton* SelectButton1; + QLabel* TextLabel1_1; + SMESHGUI_SpinBox* SpinBox1_1; + QLabel* TextLabel1_2; + SMESHGUI_SpinBox* SpinBox1_2; + QLabel* TextLabel1_3; + SMESHGUI_SpinBox* SpinBox1_3; + QLabel* TextLabel2; + SMESHGUI_SpinBox* SpinBox_FX; + QLabel* TextLabel3; + SMESHGUI_SpinBox* SpinBox_FY; + QLabel* TextLabel4; + SMESHGUI_SpinBox* SpinBox_FZ; + QGroupBox* ActionBox; + QButtonGroup* ActionGroup; + QCheckBox* MakeGroupsCheck; + QLineEdit* LineEditNewMesh; + + QString myHelpFileName; + + QPushButton* myFilterBtn; + SMESHGUI_FilterDlg* myFilterDlg; + +private slots: + void ConstructorsClicked( int ); + void ClickOnOk(); + void ClickOnCancel(); + bool ClickOnApply(); + void ClickOnHelp(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void onTextChange( const QString& ); + void onSelectMesh( bool ); + void onActionClicked( int ); + void setFilters(); +}; + +#endif // SMESHGUI_SCALEDLG_H diff --git a/src/SMESHGUI/SMESH_images.ts b/src/SMESHGUI/SMESH_images.ts index 66f4131a8..24ab4bea1 100644 --- a/src/SMESHGUI/SMESH_images.ts +++ b/src/SMESHGUI/SMESH_images.ts @@ -373,6 +373,14 @@ ICON_SMESH_TRANSLATION_VECTOR mesh_translation_vector.png + + ICON_DLG_MESH_SCALE + scale.png + + + ICON_DLG_SCALE_ALONG_AXES + scale_along_axes.png + ICON_SMESH_TREE_ALGO mesh_tree_algo.png diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index f04580041..5aa706b4b 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -642,6 +642,10 @@ MEN_TRANS Translation + + MEN_SCALE + Scale Transform + MEN_TRANSF Transformation @@ -1715,6 +1719,10 @@ add the exported data to its contents? SMESH_POINT_2 Point 2 + + SMESH_BASE_POINT + Base Point + SMESH_POLYEDRE_CREATE_ERROR Polyedron creation error @@ -1916,6 +1924,30 @@ add the exported data to its contents? SMESH_TRANSLATION Translation + + SMESH_SCALE_TITLE + Scale Transform + + + SMESH_SCALE + Scale + + + SMESH_SCALE_FACTOR + Scale Factor : + + + SMESH_SCALE_FACTOR_X + Scale Factor X : + + + SMESH_SCALE_FACTOR_Y + Scale Factor Y : + + + SMESH_SCALE_FACTOR_Z + Scale Factor Z : + SMESH_TRANSPARENCY_OPAQUE ---> Opaque @@ -2492,6 +2524,10 @@ Consider saving your work before application crash STB_TRANS Translation + + STB_SCALE + Scale Transform + STB_TRANSP Transparency @@ -3002,6 +3038,10 @@ Consider saving your work before application crash TOP_TRANS Translation + + TOP_SCALE + Scale Transform + TOP_TRANSP Transparency diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index 7ea5df70b..ac304fdf1 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -279,7 +279,7 @@ void SMESH_MeshEditor_i::initData(bool deleteSearchers) struct _IDSource : public POA_SMESH::SMESH_IDSource { SMESH::long_array _ids; - SMESH::long_array* GetIDs() { return & _ids; } + SMESH::long_array* GetIDs() { return new SMESH::long_array( _ids ); } SMESH::long_array* GetMeshInfo() { return 0; } }; @@ -3367,6 +3367,140 @@ SMESH_MeshEditor_i::RotateObjectMakeMesh(SMESH::SMESH_IDSource_ptr theObject, return mesh._retn(); } + +//======================================================================= +//function : scale +//purpose : +//======================================================================= + +SMESH::ListOfGroups* +SMESH_MeshEditor_i::scale(const SMESH::long_array & theIDsOfElements, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact, + CORBA::Boolean theCopy, + const bool theMakeGroups, + ::SMESH_Mesh* theTargetMesh) +{ + initData(); + + TIDSortedElemSet elements; + arrayToSet(theIDsOfElements, GetMeshDS(), elements); + + gp_Pnt aPnt( thePoint.x, thePoint.y, thePoint.z ); + list aScaleFact; + for (int i = 0; i < theScaleFact.length(); i++) { + aScaleFact.push_back( theScaleFact[i] ); + } + + ::SMESH_MeshEditor anEditor( myMesh ); + ::SMESH_MeshEditor::PGroupIDs groupIds = + anEditor.Scale (elements, aPnt, aScaleFact, theCopy, + theMakeGroups, theTargetMesh); + + if(theCopy) + storeResult(anEditor); + + return theMakeGroups ? getGroups(groupIds.get()) : 0; +} + + +//======================================================================= +//function : Scale +//purpose : +//======================================================================= + +void SMESH_MeshEditor_i::Scale(SMESH::SMESH_IDSource_ptr theObject, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact, + CORBA::Boolean theCopy) +{ + if ( !myPreviewMode ) { + TPythonDump() << this << ".Scale( " + << theObject << ", " + << "SMESH.PointStruct( " << thePoint.x << ", " + << thePoint.y << ", " << thePoint.z << " ) ," + << theScaleFact << ", " + << theCopy << " )"; + } + SMESH::long_array_var anElementsId = theObject->GetIDs(); + scale(anElementsId, thePoint, theScaleFact, theCopy, false); +} + + +//======================================================================= +//function : ScaleMakeGroups +//purpose : +//======================================================================= + +SMESH::ListOfGroups* +SMESH_MeshEditor_i::ScaleMakeGroups(SMESH::SMESH_IDSource_ptr theObject, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact) +{ + SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::ListOfGroups * aGroups = + scale(anElementsId, thePoint, theScaleFact, true, true); + + if ( !myPreviewMode ) { + + TPythonDump aPythonDump; + DumpGroupsList(aPythonDump,aGroups); + aPythonDump << this << ".Scale(" + << theObject << "," + << "SMESH.PointStruct(" <( mesh ); + + if ( mesh_i ) { + SMESH::long_array_var anElementsId = theObject->GetIDs(); + scale(anElementsId, thePoint, theScaleFact, + false, theCopyGroups, & mesh_i->GetImpl()); + mesh_i->CreateGroupServants(); + } + if ( !myPreviewMode ) { + pydump << mesh << " = " << this << ".ScaleMakeMesh( " + << theObject << ", " + << "SMESH.PointStruct( " << thePoint.x << ", " + << thePoint.y << ", " << thePoint.z << " ) ," + << theScaleFact << ", " + << theCopyGroups << ", '" + << theMeshName << "' )"; + } + } + + //dump "GetGroups" + if(!myPreviewMode && mesh_i) + mesh_i->GetGroups(); + + return mesh._retn(); +} + + //======================================================================= //function : FindCoincidentNodes //purpose : diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index bf0a3540b..c1a4f7b34 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.hxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.hxx @@ -426,6 +426,21 @@ public: CORBA::Boolean CopyGroups, const char* MeshName); + void Scale(SMESH::SMESH_IDSource_ptr theObject, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact, + CORBA::Boolean theCopy); + + SMESH::ListOfGroups* ScaleMakeGroups(SMESH::SMESH_IDSource_ptr theObject, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact); + + SMESH::SMESH_Mesh_ptr ScaleMakeMesh(SMESH::SMESH_IDSource_ptr Object, + const SMESH::PointStruct& Point, + const SMESH::double_array& theScaleFact, + CORBA::Boolean CopyGroups, + const char* MeshName); + void FindCoincidentNodes (CORBA::Double Tolerance, SMESH::array_of_long_array_out GroupsOfNodes); void FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr Object, @@ -702,6 +717,13 @@ public: const bool MakeGroups, ::SMESH_Mesh* TargetMesh=0); + SMESH::ListOfGroups* scale(const SMESH::long_array & theIDsOfElements, + const SMESH::PointStruct& thePoint, + const SMESH::double_array& theScaleFact, + CORBA::Boolean theCopy, + const bool theMakeGroups, + ::SMESH_Mesh* theTargetMesh=0); + SMESH::SMESH_Mesh_ptr makeMesh(const char* theMeshName); void DumpGroupsList(SMESH::TPythonDump & theDumpPython, diff --git a/src/SMESH_SWIG/smeshDC.py b/src/SMESH_SWIG/smeshDC.py index c4f773d6c..fd890c1ba 100644 --- a/src/SMESH_SWIG/smeshDC.py +++ b/src/SMESH_SWIG/smeshDC.py @@ -3271,6 +3271,51 @@ class Mesh: mesh.SetParameters(Parameters) return Mesh( self.smeshpyD, self.geompyD, mesh ) + + + ## Scales the object + # @param theObject - the object to translate (mesh, submesh, or group) + # @param thePoint - base point for scale + # @param theScaleFact - scale factors for axises + # @param Copy - allows copying the translated elements + # @param MakeGroups - forces the generation of new groups from existing + # ones (if Copy) + # @return list of created groups (SMESH_GroupBase) if MakeGroups=True, + # empty list otherwise + def Scale(self, theObject, thePoint, theScaleFact, Copy, MakeGroups=False): + if ( isinstance( theObject, Mesh )): + theObject = theObject.GetMesh() + if ( isinstance( theObject, list )): + theObject = self.editor.MakeIDSource(theObject) + + thePoint, Parameters = ParsePointStruct(thePoint) + self.mesh.SetParameters(Parameters) + + if Copy and MakeGroups: + return self.editor.ScaleMakeGroups(theObject, thePoint, theScaleFact) + self.editor.Scale(theObject, thePoint, theScaleFact, Copy) + return [] + + ## Creates a new mesh from the translated object + # @param theObject - the object to translate (mesh, submesh, or group) + # @param thePoint - base point for scale + # @param theScaleFact - scale factors for axises + # @param MakeGroups - forces the generation of new groups from existing ones + # @param NewMeshName - the name of the newly created mesh + # @return instance of Mesh class + def ScaleMakeMesh(self, theObject, thePoint, theScaleFact, MakeGroups=False, NewMeshName=""): + if (isinstance(theObject, Mesh)): + theObject = theObject.GetMesh() + if ( isinstance( theObject, list )): + theObject = self.editor.MakeIDSource(theObject) + + mesh = self.editor.ScaleMakeMesh(theObject, thePoint, theScaleFact, + MakeGroups, NewMeshName) + #mesh.SetParameters(Parameters) + return Mesh( self.smeshpyD, self.geompyD, mesh ) + + + ## Rotates the elements # @param IDsOfElements list of elements ids # @param Axis the axis of rotation (AxisStruct or geom line) -- 2.39.2
  • iijM6taHeEeS5oZRv$ zr%j<`2WVW1JVvfO(A|ThhrQ0xQX*2_X7>-vWsnPa1w$wq7|H>^?Zx)6@gYa!Nt)ZAc7wABCf~ZF=w+k}7%=Xdh9l>Xs1Fir z{TF_xgThbdkGCA70+ZLXAP?$$~`cwgeh~V7tFYgI5 z-A4r5ydQhFw%nUw{EOXbdxmzj zh~++sQIC&-&b+1ESpV0|G3pHo3cMz;WHbBaG2$+BHN7E@<-5domwu=1%T7X5Ubpt@ z>go4!~(Us9sA)% z!3p66Sy2}x_{UbA3%H;~k;4rNB{=Mk8-cUjhJu2SFa$)z;L+XJqVV2CzLMZm;(qJ+ za2mCsVBE!MEa!$D=DF4eh}}V4P2H`MAtT}+3*j)3Mao=zM~ zoYVL5R+=XMeqouR5ap{H8VSGazoE&9h=@$z{k=GQPRv-aQJgquVpz<1KTlQ^{}~a5 zow)=SLIU<-*ZFGb=x-VTcU2W7$Xp-Qt?*xcr6S^HSDqesFzAV5P$`&up#q7F2zIh9 ziTr?4*ui60qOT{C4+CX>^yfRfg=Jr}^`Nu5rRJj6Y@s-5aVe?zig9D+_^@clGx|{{ zlH}@!JBa>7Bn?2T^1T@|D!21`=v`^@0SaX(o#MW?oo6R)#W?|Zmjsx*-WlF*KT)%H2oeo$Pp0`+%tCu293!1 zLc@S>gM$rDLWjGNZ|w0Vu!<^MWs@+M`{W_(3wi_R;o{#6%r*iB>ag6>dEe7XQ zRwE9kVj&MzPOK!{_w?eXFw6-(3m?g1Z%7W9$cQ4OB-e9c z$Jf>XVqMGzpqvpAiq4jaiHUP7-u{QDvRW{Lq(#k`@?&R8YXH4(pw@hir>xwD{NY;i zJ(&V+4z(_#g{3ANK}o5CgNm#FP^wSUxxmUw>u8-1Hh!#Rs29Wo@C{a40aNkVnMky7 z_gQ_)2~2eQXL0B!iw!=`&QnsH<4Pv^yMrL9RPUxtre@v9aK?R%a~OX)q#J~FkIZJT zT-J>NIw-4tYqPcY{OQ=AKlzoFmDSapO{FlOffa*7lN1SrznciM2@##ATi$s5xN^^q z6-r|WRzd8Oii?7f%&c2!ycciH4M*{@S+_kGfX0>DU&PQh)Tak*HHX-u zAUS{4ffK;e}> zN)^fgTz%!T`G4$U4nEUuPJ#YO3k9foZ~$sG$Vc%KZ0?xJM61gXd8&rnIt2leeRzSd zya9TdNvw11-I;1Q%2(gZC6hbbsm-jU*vH4C;|QYy1T(LX`I9tr`6UmG!sh^E*XOEI z{h#dhfcL$*&={dxe~FzL!McazGaL~R-MmI-_92`WSsWHfP59|Ndm6{PSD%Al-GBPV zzd=LSJq5)4gb+Qx)Qt}*P=JvIppQQ!+S3F5n_Y95OS3jXuc9R2ONUc8Kh6bIhj$x* zvuXlpME@&TGKODAlB=hYh}-&|t-z61xd8Zod*u<7mc)V0f=wXmP~>ZTXB!niY><;% zWdtBOW-dUY()^Gp-Kiqjfq@E%qYKgzkF0RzfYHbc(3Cy^8qLRlnW8VuuiZlS8VrKi zlX}w8(zgALg=RagwF3S_6&%%)a+^+$K%pAz{v&@w9^&gv`zja1=;Xn4>6$;NqH!dM z0DO9H4M3DWL|)!-YO(8laH3R&S6S#nV7S-pQrZ!%h5-N%3u*_>7&4>758NH*g-gtjTSwD5)|U zI6bauAuroQTpD%VifN^@?SiRn0!Fdl}e(*N%eghIFhU}GBfJL1@)(}w+O$<=Le zc#T)Cfq0`L2VM&7Mr}VqXSXFLWbeg4#mfRLVXi-ipuyxu>jXD$LFA%pJ^|_pm zZldiZIq(%W0tk9ZqS!du=1iSB*~x-%`dq7q@b}_d%FI7`jKCRsIJW|DN&N7TI6xKj zeM2cj0m*-34HhhO5PjF(dmkL^{>qfGc#RHeNi#_CW}y9|s&^^reR^6{PMXKtZ09`+ zCli_B)na%Xx@4kCp*4PWAW*9LkNN6C52addhk)4)BnIw6FguASgZ*9#zz|~;fJ8@@ zl>Wx84TFbUcQt&QcUy8Q;*vXJRPp~5_7zZ7d|ls{lJ1u776hfs3lh>G-3`)+bjp zdp`CdF(hufGO$*}L{%v+JrvVC33mLx8H@@bh3^g{k?^$>^VWMm<3-)hW{_++B_dS*-<~@I}qWurdQ&MSHN9t2YNMT`f2 zc<}C-&-;Ib3nYp7LRgceFA<2iJ1BvFpzh8XG(_}Q%y5U~CNs*wRq+b`am08>)x9U4 zbbc*!x8kJ>sa2KgMY0IwmH4)%AG`F%6Ju*D{vD(;ia-sBAagA`^t-=w(kW;Iw!j8yMQ1jlaMxRd_oy4!zIinP?BQS@$!9denNQXskp1a z=-xcuZS-=(=QR{meKl1p?>aX(vqCRW*vl&3b&lWnwwDy=A$LDNjttHhoPO#xS0zZk zbHh0qI1hvMP-|={a>TXOhCu!Ji88Tn?Jr4?yuzT1o2BX42CO9{Gm@+?MPj>a`dNG zJXw{Z$qS%Xq@LCrC;8Ebj(~up)w9pH&RhCAE@L+<0i@RNB-Do=nk%w_>tDO2=%i(=@shoboGq z_|gb@UJS$Lw&Qf`CEf6*!+k0$6 z#+X0)`ubqq9Rt8j0luMOUVM7X!h2?8V_9eQb}niMLWYKhr3P{ak?LxGeoYfN@Q|_A z1^Zfn$YB5RRrvG~{=z zm9}-AY;SJ|l_ZzDA+$D&lrJkx{z%-PIO;mNxvmIrJc+4p^YXQJv$R}-9b(=D&yQd{ zE>p-$MFM6NL%gZY(2d9*a_XD3AARDnH2sPC2fiRACor8Ay{I6VY%gVqn6F*Z0 zted3C8W=#uN*Gw2*sNBe6#T{CzR>XGKQ{T?SeQoXQ}FdNrJ}mR#{HD}S5 z;`(~wcm-E#T|GU8cRW!jZy72Hv?JOWM*#QTuu3_M>F@3Ms=b;Q_$@4R@*!}gZ)cHg zCG^qeco3GyvWz>_)uLQpkf@6mn-%r|#f>{(M?6=+4{8wl0*NVH5M-({3B*3FZly>} zP8NFnE@)#GHz9fE`CNVe&iV<>-mXEVYlsJ?Q$M_%Q=%e}u8yi%(Hh(Yo zg6|c^l33vkmy^NA(yPGRr*sYbD>d^}S+(BPwzqcuRJYrhCP&4R<`-daa3QWDOH2fH zdlTg~A2+oYs0@f?@(|z-Aw5(ER!H z0oVPXS`LyPI+g(Yf}*I(Ih18m|4?+6s03mFQs`6mDKg_XCC7w7mzl29--XF@IAmyS zDjAQ;t*8eM>h}njNyF#&kJbi~oq&rZJpmUI${oo@Z73y%tFL^ANe2GV!L*Gu#kYQ@ zhCrsr$91&~wL}_*){e|)$o`(2Ug!AR8KvD^LFp5e5B~6i!zj!gtXr_*B%$|6cn^do z;oQ-(E)D)m5ssFFAH-xv2mFwCw5_$hnsqd@M;+UI|48vk%uT`y>lLe!b&_#+5q~!^bH~M9gu=#E$bOT zxfmEajHv*Cq{HmRyyjO>+V3VNx_F5F7q4i^En<#WiSd~8y(7rEYt$zFhQM}t4XQ2L z$@Kg$t^>J1BH#D`#`Ja2UYWU=Y(7``3xK4vlqM%ZzY&h4wqr@H>-+p5Hyij>m-cQx z9hbK4r>yxfivHP(=dzCk)oYq}&3GV(ncw15ih&$u-*JSI@ZV9$#$(B%q|~Ftk27$D zBV&?HnC1h8E~lDV^sn+5sPPz85B4SjqOvS0!Xn5uN$>^`mHDxq9emJ*XtTUp)>o>< zElk6=zkz1{$@OJPPgU?|h>X~gdzJSPr2XUf-*_mx4kp|`j+(<)V+?5JFvJOzF+?JF z#A*e)zi@N;@f}sCmRvsjNRa-3r``?;vMi809!jmKVf8+#lH(nLH+>4hx-5}_Em<;f z9Pss<89*DNEE%5OAJP-;Ac;jIE{R9&Ps>Vp&u^KlEnRDTrhUdyDvx8GKhU>GwGv}5 zr0i)l`2?5tX^>xEk8(rPF`}f^)4t|+ozW{^Yk}upgnbI8g;gshkNatrPDkxIA@$i5 zniC{y`N>I@j~N&aHTiN$71uM2MwemRGN$@+rNM{DOf7jSEKM0!LwuQOif+c^KCd_& zhJ6Y)qLJfUu-FXCU-G}=WUg_2QXBQ{w(x^33WT~)DpH2KAjsacYFs8;z#P^tu%&!= zRkx=@_;!=>ZD&4Zh;L=u?H%~Oqa{PmDLTJ4XjrVp1gw^iMF$Tb-6Z4gzBdsglmq3i zZX#INy7_#GNj+9P{m0%M0)Oc<)$cMqnbio7KWCCtNSH|S->A+vFG;jYar9!B! zg7nxKbif>O^DF(lVVt~Z#0K%Q_iwMe+P)U5c)t0{Df(sEB9(t9-ee{LzFUX~zsf~| z4ApBI^2c?U8Fcgp;!^Itddbd&S%#D%I=)veK&ohSh)ks4G}vU*6x zuo7Yh)#EW_dp}4QY=2e!;p6S|x*{P0&8^~UDw~qk5AuKJ`_Fbu{37F1k9dTdET@{R z+{}0(^{Ff^w0WO#V%6^k$f@aKk=DskLZ-LX<7XNnSsIqF86tY1s1N~MTnm0w^|E1^ zPau%jASMBub+Uhc0d_;`VJk?ej6}iP?x0bGb;)>Vra269*Mm`7&>rEda49?^APyz{ zXKCLxc>*EXdJzT&=v{-t1*{*Kx?A91W<=HfJJ^@EW$+&f0`!|r#!5c&YxXttTuq@LaP6RFa7!%`mDiNiUY zx7HliW$yk?J=765KXqyW6)_Tx+#!?HCRNr)WQJSh&Y>VYeb4+0DoA{=ZDP>*BB8Yq zDUy8;*!3w~<@FtfX~_?aFGhydCZCHymP0e5*c_KPRB>4VR7g-}{W=S-QiYA|rH6w; zJR&!_;X@n&IFn-h98gx#^%VwN^bPsuaLaqc<2p!ydkibW_+-v6eja2{RR+^otqtO-1V2} zUdc&GC#R>=BajSfrG-b0(WQ%+-OFke4EtTC$zr2pBeh=DMGtH_LT9O`Yn?80c*HGF z7F{zgpd$}uGc%p0y>2ZH0#qz5KdPLYz^QWY&|5%Y_Wa)IK!%8xe{EUWub5B+1y5%# zPR<9-`yCw#*SlVAT)ezep4%xjxN({7AZn!L|IGIUZr9R2m#~o1b2*9DVfc?fS=*p zS4=}g^A}0s;Nm7GCIVbXDOG+%)cfVw-PnnS&}lMHsJ9YS`j*WOj_Yh-lGJ@l`jFWU z(tJ=+p1@IwG@eujN8}f2`0CWuiuD!}E4&r3*$jvnUZ>SJdffqvYbD=RjlfgQpoyxC zPcA;x8^8KEiK6I0%=@JSO~zlx`|}aaBPUT5J`i@u0!7ST_{V(211Wxpx4VDZvxI6- z_ktuwYP|BVTZXx!sHmveKB(=ZUv6=gfnDZX{))P}DQ`GF3ufis9Fp{9=GCA9@Ph2P0^=o2yXt-)? z`_sP@CL?UXVafVUsuD< zqWPlo+0>f}$jHdB=GRcGhS_gQYGxnCWJ+u8$z;fpyVv)3wpOEdV8q+Lj{KmA_E0EC zW=5l^ax+A8cU{jVVk{*xCMM?JkQepl?CI2!yy@la@muNYM?Rlc+C^-IMukSkK~sYd zANIw0uNBbZ%N)G(X-vsTNgI3$_&LzYo+ygRb=!MTRp94JQ!p%n$K${rI#ysjQ$BiX zzAXJ9|MBDF_8SzqnRazO+-!OfePFhmcFKFBBXzh)?ey{*q-?RUupqQHxwts5CELFB z7L*tXM|_7`G}adv_bQxA_?=8lQZwcqEOk!@U|>%MAP)y#0`Zw3Z~&w6q8c~?;!B)Z z`I9CM8?SndBmFo!mYiLH1Bho+M|g)jSn!=1yF{7-^yXPA;{#n3Q;(R0_6y@(HG_*VD9jHRMJTcze zs}iG;@Hw<%BvQ?ZSUV^FIKgbI?a-9qC=pUP=cg$g?Yx?H1^crP!Nla5(=#2zV9I`M zA4D4|R%jfm{oY6uVfsqtvB1#SWWYOrw5JH{MtQr#&Xah8l-u zJ@=%|=P`f!a|@_`ba)6fCD5C7jE`@;zlSJ56K(m44P+?uXDLgP{q^CGSUq|?AKgUS z^gH53kAP&$^IMm_8;d1jJh7O8UE0|97V@u@CmC6U+#Qo)i&7Rww<2R!Ib?SBB#KUt zRB`k1pS~W$$1Gu7)QXydzFk(_l+hrudkf(i3>W`!?=5O%eE3A+J2AsBD=s&jKS7K? zk`(kctu;KEHLI!vDBK@S1=ZCFcs2Q5UVndha$;j^d-^+L{@3rh=BZX%PITDBH)^ z+Q%AfK6jsj(HAu09+g7bXdnghv9K_OWQZGG@=LnQjT6kDCjkN(U5i_DXRyTL>5PQ0f4@1!Yj$nC zAy>;ttaC}(e&|Xc;9AVCD(pz(jc5^6{3qj(PwpC^OKAS;`%=)!*Uqm+QYAq*F>v0QmutmZMb7o`u-8FN zGH$Y2(_{T*U7gY0v_abq*^=YF4WqU}-*y&J4KyZ)?XJ1XaKc$A;?^o5H>2)%LY7S|JTrablk&q#ypr#R3l37xL2pEXu9RF9j zanqqQ)Kfq}z%Oeu!G-GYyq96W48@=4*GoR;qc_I}*N#QSdY?FY($@CK`Axk4^Z;h{ z>){Do{^iL0bYW^zI)78)*A(XX;K2HyNI9C^L1=H7U<9q~ou})GSYR&&GMf71jkec} zD+9jq%%7Q*KPb}Sz>%fzp`Bx4edp-r1-4_{RjJwRS&du1EbyX#kkb#eu6}_*3<>6E zP$MBQM~0~L!^OWnj`1f1hUiM?nQX4B5c;;=V?!Sy2HWUJxj7X`$N?vFoL&>}3PzzriN=oneMJB`z*Ko4=dJVdL9N ziSd`l<3~ETvlKeZ=uj-kXXaJoY>HMy~fV8!psTzmQFkHHTV~stkdk{4Fl;FqZ zON}vG4OwfxjRs|3>n6=4viS&UQ|mVh(+lY`O@!*5UBNaBYP?Qosa%>5I`O4`7WhEa z^+>UZnL3%Uqp*GI^0Is5F$a#C({zts)EGET8i#pcBk4BkFasU2Q z!^^eCt?LDJsk^~{XNV*yVI$?FJR@e61Fa<7@%ckqn{fO-+qk+Jb?eil?StW{K4CJD zk&(Zsnc_)zF2)~2Sy9UtDN7QsLdIZTN_^6x5qJ2kH0eRMu@xQ2)cH!?dlmBQB&M)!a+AzMN-!r zz*EEKSf2H3hrc^vApe#S#*rf$AMvVRK3mN27p*t)R6;2rSC=`pbON6Kd zcZ8L$FDN`cU+@E_A}?s-lfc_D>Oc*R2nh-CZ851BU-8(g-y(N!@fED=r_TNyquhKt z=SP!>9{iR|B_)D7BVs!eW!B%jQ(7q7eS)cc%9YAWc2GuUW_Qukc&?PWRLH}-)XTNU z9FvrF6EU$xev!F|`J?e!GzbNWYQ|IykNGXe*a&==C>>*Sq-|*GDVy@Va%*y!7C#;$ zMe(VlfgCVL)$zGU;-bQ`!Y7t+4Efez)QcrsRD zN_Qse6u_P*+(`tD;L0}AxTTi#KjR9zNnBwM2Lt$@Rhp!vra(B$A2AWf3(58r$82&m zn9MQ~>WvBED~BnFAPH1W^$21(%~>0TEQjvI+7l}&DIt6VTwT@iaW8~rpL8+jw<~mh zlR@9R?YLHxIy&w<1Yrp91ALy9j*5D((_0cja=7GE6xQ{bvax0i<12@nr+PZJHS( zw;|||o-jV7&lcNAkSYeSn2nn}S7u?`Ha0dV;$PYJbRg0kgsf)rmU#~^w;kuo_%u&W zP^3-z4sd~h%Bcjh3B*@{V1iIE0JeZI!9euREFabDC5{X2?7`17K6G3$l$ zBi~6Ph(c^XwY0|ebQ3Rp(&j4%Y(nB|lkP91;A$XgNnTSYoK2Yq{?cD+bT)%u-rii- z|3c8e*Ik&X^Pa)l*JRXIGWXF1u~f59${gA!`VLfedQ8QR zS0CFfR9PbHO~l;?q0TJXL*c|jBzQ(K@jsUPQd3jg)1-Ns+%{Ng3-YCZ`t*TV)aWLk10#=X9lih^dPmimpOvD@5o3uxBfj?gN zRr^KXaz|CO5eB)I8q4zn><@p&x0;l+w7sXL&9!q&$bxy^DMQfS$1!V$VIp#k(9q6% zB{l2SRP=?i2h3XG+@gDK3d7P;3wuH(em(ehr_@(sVQr}}{UK_NPMjixi{cs^`4GG&6$hbb&DRME&sKgCd_ z5k`xu>11X`55~|-+^0!)V)2NJSKHuPN+Q;gbAE3=X0^QX9%M(9yEHi<%L)yKN;4`$ zo@#u9pYHQ~W+(S0PyjsL@FftD`#OZ%6cF^j%|Ru+Gs~&j>?`@Dx`BC^jfYLvPQ%!ptfpxRrcdE9XVkm0NWrtt%MDIQ8n?v~jLrswU)TUdF+kZ2*&iU{o#U=}PbEkQ97nSmAqZHOcW z(zCL%0z3uXxvo1@X6{EJTZ%MTVN_v5+Vj!~7B@#rLuvq_bd%fSUQ#%w*1&(57j|wP6SHfgs3q*fOkaMl#R{6EI7fiChQaop zUNtA~q8L3SG7y{iFs};$cF^qa&D~8-}FgT60YrrK8BYLaeN;jgR`+G~ZELm6vr>x%V=e z@{9LSz#FoD5)$bn{}>UHz`#MMrNk*aFGg(1qZ|>vPd)8Ub)d)kki`T8CWV_gnB&gy zLKqDojO19=l>^2?>Ay~W9FCp(*UHuwjE?L&KCULPaCTOuOCW$+(I&;|A~Eu!qT29> zVMnC|zgMTX#&w#W^pts}5EXXJ(aYV1VG zR;il*sE&4O?;zjf$E11*^gjHSMj`b@QzzY%p5(gp(_x+!{q0Gky-C2lEB{GQYUyYa z9fC=c@K+X0*Lj)FIaOBp4KoFo4;{hYk?^bV@q-)GPm4-9aPprTN0&3N1JT)^ZcFPk) z^aWkAmM4>wcUnu|2%DIn@>587EyojHBWixRcd@a44r#v%**)_qC~5WejCw$uA&8a7 zY>%wj0z(GdTM@k6>a?lHjk9f8eF4W zPoP33CMOzW^Z%|^@5fl#HYXI(!yse+A5#BmcqB|Q8I8^I``KB2UE!o77UNTw zXq?!6loE(KO-=nw&OiuzKTE96*T<5Q4`Awwc{-&#GY!K>%^MpV0KO8}(%i9Kttj;3 zIYgRNHdcAPA=l$0iSK)L?A~-#-vB6BDjTDsSXgi|;boZyJ`s`0M8QI)a2Cb{kR=NfJUbBGZes%^4s%F??B z38=VE)?wiqp~-bqWc;-tOWm@Cdt9?wERD}O-rw4=Q`^|%OO!^EOj;HFnVBuN-ZRD>mK7zX=q5ukdl(14q3~*KaPScEmUykhYugd`wPiG z>y^3KG{0~X7)fY7lm<|*n0Xs&IzWmGU{~Pf=pc?I5!^)ZTr1GsiFMlMK}N3sJ&6f4 zNY1+pTPrBWpA%;xAlUFK+2KfLreS`Uh>^{gnL3WsWmgSye#9b-roM%yVL^ds0>;(T{t*MiKNK!D* z0m+d%HcW~8tQ-p-jQ#O+1~9S*E&rO@{|`Ag6c!1+76t6aj`wd2tC=v)>p!nsddzkI z!WZ#*@3KU>9*p>jWc)Nhf?C17AR?8M;YfBl3^3t~*U2JQ>T&&UAMq}H4}kqWS=m9L+ z|3Vc1kIVcw*&lh6Tag7PZw8m#B;JYIwtxnard!|#Yv^C1->BPdB(&ZA%-qa+q1d?& zh-i{HE+{3G2R)E}%KW%>oNwUDsW=bL*-$8d!;07yjyWz^K;`Ok`r>=a% z7jhzeOR6zR-dKf>H=!BB=Z4rEZBAFW&$xa2X&c*k5(V9nLq28UrA+I;ANQWmE%A2b z==*s^L|^M*qJ(RE67XJ>>Qcad60fx}a$Z7pPuh_T`v_SZg)ka?j#fd+kZ1AXPrnV7 z(jl(j^saw?D`#_D2HB;qT;lPb^&$~_sXN2kL>8;DHc(TyF&ZkqzwSi5( zP>wXIcv0oLU3;c6X(A+Sv~jQ;l}U z#}gtdg+q}#JT0Fc_-ZGdH}Lcuisnr3?bjm6&zB+gADES8Rbr=3CY_)WmTe-Q(@u3X zm%kp?98S2z^cF3D?cLH|sgllF-QWGtlZH@1zQm$?J)>?~A@v;lB9Lhd{}F3dB?H&+ zu_GGtWo)kKB z&>%MA-r-wQW)fMVZ~8H5>BX2=u3&u7eMWo+_)>)bvkLk74VvsG85cEo^Ov=ff`~%| z^xo=PB{wKR{#C1KINhm{{=H=<8@^u*J^Z4-6I5tOWc2`w%!P1n?8ywttM4iOR95t_*v0{hp zdRG}}N>dXU7EynJ6hrt{~@M|7IQInrbvR)gL`MkHj zcTZiK1(R4~_+#LC7w_mHcq7%dza6>oNmmz4+0b>V<&%4dXwD*nUx3vNv zsr#?3aMR>lnm%i7Zs!&gv+e+~<06lcU!%LoJQ_|DZu5BhlIp_czk75x5bJ2mlo+3J zNRk{n#D2B!FKIjg^z%t2SoQ@K5f?!QJ$b*)3BQ+p6E zO6$QJW=c!mvmovx_rp6dUv<@RmP=cOA`rdZLxi2ahrWPlF1D{EfYYKz!{+ncy30>W z$s;ZYkl5?N`ioigF@o17itk_Ido)(OUEdUeBRFIFvVJa7d%GDRd*lO$<;sWEa9Ur5 z&xnVOphl{|iN$>y{C=}BY#z1-0tJ=J<8Q`GPnA_|W=groOx78{A|CKdVK!%LXs%!o zbJ#LGHvCopE4|FdoyFa-Q0ytcI1i->xk-glO2$CF?qucET;(XVGhy(=37(~m zsA2I+SN6Y!5Grx};gA0i8<>(p%TY(Bgoy#UTz(6|JTT1a?*BaC9>dXpo)RfBu-)5) znb`Gj#}UCI|I3KiF#d1p#qECN4Acy}(ElAJ{2wOW{{|`Y`I~)&_gHgsxNil!)v_*A z_k)sd#{IkHy0<}<%^>bSjvyGp{6*7jR)Uvw_6lDJAz5fn8 zIZ%wfF!La@1gT1nJi-A!b>`2LQRn7`L>el0E2tT2 z=gw2xQkTQKBa-nWoo}OZ^{TPyw9aT_kwJ%D0Pe^HnVan*Eg;YjO(vHdI?@H zt}JzskIzPNzl>snxl+R~TPf5*aob~}T7!OV;9qSI#2)ueu*A*g)(3@Y4l zzr+xWfV4>$xoz+IV9< z7Ym7NLxfhz$1RP|fVN&BmCmqLzP=;D5Mo>=#?Cuyxs?@0T-| z;_%=m37Zj|_$qX6YH>=weN;ZA4KCqAi8Wx8;(fSxyA(cuxph(NA_A2&>^A*{+e)xF zwGLx~?Pu0_ZDKJIL)0N#n_2rmHs_rX-P0P`cmd}^#u#v6iTv8A3^e`76Qut zM}NM!NHzw!yB~Im-RhJdylMRDIa?F$@X<0mVhOvOrxpaJen~qaZX~bq5u2ti=gIy% zM+@?MSJ+y-xnF&R!udr+>|0bJ(of=;2?i7Ipm#|qFX+YbAAtM+x0L?pgRi9A<|7`* UrYU^_s}-X7R8_VdYWDhn0okm2l>h($ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scaleinit01.png b/doc/salome/gui/SMESH/images/scaleinit01.png new file mode 100644 index 0000000000000000000000000000000000000000..97990a86809e90acff9a9ab4413d27dab6ec4bd1 GIT binary patch literal 17713 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 D#oX#w literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scaleinit02.png b/doc/salome/gui/SMESH/images/scaleinit02.png new file mode 100644 index 0000000000000000000000000000000000000000..008d2e3217c1116effd939ba6534e19976e551be GIT binary patch literal 17482 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 CUC9Xm literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scaleres03.png b/doc/salome/gui/SMESH/images/scaleres03.png new file mode 100644 index 0000000000000000000000000000000000000000..99b65d72a9af47b16bd351cd30cbb245b34a7b5d GIT binary patch literal 6098 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 Zx@hi{2dGZPc@ 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 Y>K&9u`xkv9Y0d)DVN*iBp+m%f0jFPmX#fBK literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scaleres06.png b/doc/salome/gui/SMESH/images/scaleres06.png new file mode 100644 index 0000000000000000000000000000000000000000..059fa97f41d69b25df1f3a936ed1798213fe49fa GIT binary patch literal 10446 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 I)b-~70PINKIRF3v literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/scaleres07.png b/doc/salome/gui/SMESH/images/scaleres07.png new file mode 100644 index 0000000000000000000000000000000000000000..b75f83c3ca52a4dae498f64a1c355a654bd9cbd4 GIT binary patch literal 7782 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 XMIaN?1ttR>O^d+nA5%`9xRpo3KWB2H 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 its elements.