+ SMESH::SMESH_MeshEditor::Sew_Error error =
+ convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
+ aFirstNode1ToMerge,
+ aFirstNode2ToMerge,
+ aSecondNode1ToMerge,
+ aSecondNode2ToMerge));
+
+ UpdateLastResult(anEditor);
+
+ return error;
+}
+
+//================================================================================
+/*!
+ * \brief Set new nodes for given element
+ * \param ide - element id
+ * \param newIDs - new node ids
+ * \retval CORBA::Boolean - true if result is OK
+ */
+//================================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
+ const SMESH::long_array& newIDs)
+{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ const SMDS_MeshElement* elem = GetMeshDS()->FindElement(ide);
+ if(!elem) return false;
+
+ int nbn = newIDs.length();
+ int i=0;
+ vector<const SMDS_MeshNode*> aNodes (nbn);
+ int nbn1=-1;
+ for(; i<nbn; i++) {
+ const SMDS_MeshNode* aNode = GetMeshDS()->FindNode(newIDs[i]);
+ if(aNode) {
+ nbn1++;
+ aNodes[nbn1] = aNode;
+ }
+ }
+ // Update Python script
+ TPythonDump() << "isDone = " << this << ".ChangeElemNodes( "
+ << ide << ", " << newIDs << " )";
+#ifdef _DEBUG_
+ TPythonDump() << "print 'ChangeElemNodes: ', isDone";
+#endif
+
+ return GetMeshDS()->ChangeElementNodes( elem, &aNodes[0], nbn1+1 );
+}
+
+//================================================================================
+/*!
+ * \brief Update myLastCreatedNodes and myLastCreatedElems
+ * \param anEditor - it contains last modification results
+ */
+//================================================================================
+
+void SMESH_MeshEditor_i::UpdateLastResult(::SMESH_MeshEditor& anEditor)
+{
+ // add new elements into myLastCreatedNodes
+ SMESH_SequenceOfElemPtr aSeq = anEditor.GetLastCreatedNodes();
+ SMESH::long_array_var aResult = new SMESH::long_array;
+ aResult->length(aSeq.Length());
+ int i=0;
+ for(; i<aSeq.Length(); i++) {
+ aResult[i] = aSeq.Value(i+1)->GetID();
+ }
+ myLastCreatedNodes = aResult._retn();
+ // add new elements into myLastCreatedElems
+ aSeq = anEditor.GetLastCreatedElems();
+ aResult = new SMESH::long_array;
+ aResult->length(aSeq.Length());
+ i=0;
+ for(; i<aSeq.Length(); i++) {
+ aResult[i] = aSeq.Value(i+1)->GetID();
+ }
+ myLastCreatedElems = aResult._retn();
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created nodes
+ * \retval SMESH::long_array* - list of node ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedNodes()
+{
+ return myLastCreatedNodes;
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created elements
+ * \retval SMESH::long_array* - list of elements' ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedElems()
+{
+ return myLastCreatedElems;
+}
+
+
+//=======================================================================
+//function : ConvertToQuadratic
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::ConvertToQuadratic(CORBA::Boolean theForce3d)
+{
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ anEditor.ConvertToQuadratic(theForce3d);
+ // Update Python script
+ TPythonDump() << this << ".ConvertToQuadratic( "
+ << theForce3d << " )";
+}
+
+//=======================================================================
+//function : ConvertFromQuadratic
+//purpose :
+//=======================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic()
+{
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ CORBA::Boolean isDone = anEditor.ConvertFromQuadratic();
+ // Update Python script
+ TPythonDump() << this << ".ConvertFromQuadratic()";
+ return isDone;