diff --git a/idl/SMESH_Mesh.idl b/idl/SMESH_Mesh.idl index 97ec326e3..9ca7a67d2 100644 --- a/idl/SMESH_Mesh.idl +++ b/idl/SMESH_Mesh.idl @@ -38,9 +38,9 @@ module SMESH interface SMESH_GroupBase; typedef sequence ListOfGroups; - typedef sequence double_array ; - typedef sequence long_array ; - typedef sequence string_array ; + typedef sequence double_array ; + typedef sequence long_array ; + typedef sequence string_array ; typedef sequence array_of_long_array ; enum log_command @@ -81,6 +81,9 @@ module SMESH struct PointStruct { double x; double y; double z; } ; + + typedef sequence nodes_array; + struct DirStruct { PointStruct PS ; } ; // analog to Occ Direction struct AxisStruct { double x; @@ -103,6 +106,22 @@ module SMESH VOLUME }; + /*! + * Structure used in mesh edit preview data + */ + struct ElementSubType { ElementType SMDS_ElementType; + boolean isPoly; + long nbNodesInElement; }; + + typedef sequence types_array; + + /*! + * Structure containing mesh edit preview data + */ + struct MeshPreviewStruct { nodes_array nodesXYZ; + long_array elementConnectivities; + types_array elementTypes; }; + /*! * ElementOrder points out entities of what order are requested */ @@ -348,6 +367,13 @@ module SMESH SMESH_MeshEditor GetMeshEditor() raises (SALOME::SALOME_Exception); + /*! + * Return SMESH_MeshEditor that would not modify the mesh but + * fill MeshPreviewStruct + */ + SMESH_MeshEditor GetMeshEditPreviewer() + raises (SALOME::SALOME_Exception); + /*! Check group names for duplications. * Consider maximum group name length stored in MED file. */ @@ -692,7 +718,7 @@ module SMESH * gives quantity of nodes in face number i. */ long AddPolyhedralVolume (in long_array IdsOfNodes, - in long_array Quantities); + in long_array Quantities); /*! * Create volume of many faces, giving IDs of existing faces. @@ -980,6 +1006,12 @@ module SMESH */ boolean ChangeElemNodes(in long ide, in long_array newIDs); + /*! + * Return data of mesh edition preview which is computed provided + * that the editor was obtained trough SMESH_Mesh::GetMeshEditPreviewer() + */ + MeshPreviewStruct GetPreviewData(); + /*! * If during last operation of MeshEditor some nodes were * created this method returns list of it's IDs, if new nodes