#include "SMESH_MeshEditor.hxx"
#include <list>
-class SMESH_MeshEditor;
class SMESH_Mesh_i;
+namespace MeshEditor_I {
+ struct TPreviewMesh;
+}
+
class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
{
public:
SMESH_MeshEditor_i(SMESH_Mesh_i * theMesh, bool isPreview);
virtual ~ SMESH_MeshEditor_i();
+ /*!
+ * \brief Return edited mesh ID
+ * \retval int - mesh ID
+ */
+ int GetMeshId() const { return myMesh->GetId(); }
// --- CORBA
+ /*!
+ * Return data of mesh edition preview
+ */
+ SMESH::MeshPreviewStruct* GetPreviewData();
+ /*!
+ * If during last operation of MeshEditor some nodes were
+ * created this method returns list of their IDs, if new nodes
+ * not created - returns an empty list
+ */
+ SMESH::long_array* GetLastCreatedNodes();
+ /*!
+ * If during last operation of MeshEditor some elements were
+ * created this method returns list of their IDs, if new elements
+ * not created - returns an empty list
+ */
+ SMESH::long_array* GetLastCreatedElems();
+ /*!
+ * \brief Returns description of an error/warning occured during the last operation
+ */
+ SMESH::ComputeError* GetLastError();
+
/*!
* \brief Wrap a sequence of ids in a SMESH_IDSource
*/
const SMESH::long_array & Quantities);
CORBA::Long AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
+ /*!
+ * \brief Create 0D elements on all nodes of the given object except those
+ * nodes on which a 0D element already exists.
+ * \param theObject object on whose nodes 0D elements will be created.
+ * \param theGroupName optional name of a group to add 0D elements created
+ * and/or found on nodes of \a theObject.
+ * \return an object (a new group or a temporary SMESH_IDSource) holding
+ * ids of new and/or found 0D elements.
+ */
+ SMESH::SMESH_IDSource_ptr Create0DElementsOnAllNodes(SMESH::SMESH_IDSource_ptr theObject,
+ const char* theGroupName)
+ throw (SALOME::SALOME_Exception);
+
/*!
* \brief Bind a node to a vertex
* \param NodeID - node ID
*/
CORBA::Boolean ChangeElemNodes(CORBA::Long ide, const SMESH::long_array& newIDs);
- /*!
- * Return data of mesh edition preview
- */
- SMESH::MeshPreviewStruct* GetPreviewData();
-
- /*!
- * If during last operation of MeshEditor some nodes were
- * created this method returns list of it's IDs, if new nodes
- * not creared - returns empty list
- */
- SMESH::long_array* GetLastCreatedNodes();
-
- /*!
- * If during last operation of MeshEditor some elements were
- * created this method returns list of it's IDs, if new elements
- * not creared - returns empty list
- */
- SMESH::long_array* GetLastCreatedElems();
-
- /*!
- * \brief Return edited mesh ID
- * \retval int - mesh ID
- */
- int GetMeshId() const { return myMesh->GetId(); }
-
CORBA::Boolean DoubleNodes( const SMESH::long_array& theNodes,
const SMESH::long_array& theModifiedElems );
private: //!< private methods
- SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
+ ::SMESH_MeshEditor& getEditor();
+
+ SMESHDS_Mesh * getMeshDS() { return myMesh->GetMeshDS(); }
+
+ MeshEditor_I::TPreviewMesh * getPreviewMesh( SMDSAbs_ElementType previewType = SMDSAbs_All );
/*!
* \brief Update myLastCreated* or myPreviewData
* \param anEditor - it contains edition results
*/
- void storeResult(::SMESH_MeshEditor& anEditor);
+ //void storeResult(::SMESH_MeshEditor& anEditor);
/*!
* \brief Clear myLastCreated* or myPreviewData
*/
private: //!< fields
- SMESH_Mesh_i* myMesh_i;
- SMESH_Mesh * myMesh;
- ::SMESH_MeshEditor myEditor;
+ SMESH_Mesh_i* myMesh_i;
+ SMESH_Mesh * myMesh;
+ ::SMESH_MeshEditor myEditor;
+ bool myIsPreviewMode;
+ MeshEditor_I::TPreviewMesh * myPreviewMesh;
+ ::SMESH_MeshEditor * myPreviewEditor;
SMESH::MeshPreviewStruct_var myPreviewData;
- bool myPreviewMode;
+
+ // temporary IDSources
+ struct _IDSource;
+ std::list< _IDSource* > myAuxIDSources;
+ void deleteAuxIDSources();
};
#endif