X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_MeshEditor_i.cxx;h=d96c5c99e22847b2bf173ea69fe6865630028480;hp=7ef847bf0bfed8c35733d740c45d814dcc1b14d5;hb=a11ec0f515b86d30e1617e522a2294d3320cb3c7;hpb=401b2a2e54af16513f98bf23584a7f69ab8a2956;ds=sidebyside diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index 7ef847bf0..d96c5c99e 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -135,9 +135,9 @@ namespace MeshEditor_I { { // copy element nodes int anElemNbNodes = anElem->NbNodes(); - vector< int > anElemNodesID( anElemNbNodes ) ; + vector< smIdType > anElemNodesID( anElemNbNodes ) ; SMDS_ElemIteratorPtr itElemNodes = anElem->nodesIterator(); - for ( int i = 0; itElemNodes->more(); i++) + for ( smIdType i = 0; itElemNodes->more(); i++) { const SMDS_MeshNode* anElemNode = cast2Node( itElemNodes->next() ); Copy( anElemNode ); @@ -193,8 +193,8 @@ namespace MeshEditor_I { //!< Delete theNodeSearcher static void Delete() { - if ( theNodeSearcher ) delete theNodeSearcher; theNodeSearcher = 0; - if ( theElementSearcher ) delete theElementSearcher; theElementSearcher = 0; + if ( theNodeSearcher ) { delete theNodeSearcher; } theNodeSearcher = 0; + if ( theElementSearcher ) { delete theElementSearcher; } theElementSearcher = 0; } typedef map < int, SMESH_subMesh * > TDependsOnMap; //!< The meshod called by submesh: do my main job @@ -264,11 +264,11 @@ namespace MeshEditor_I { */ //================================================================================ - void arrayToSet(const SMESH::long_array & IDs, - const SMESHDS_Mesh* aMesh, - TIDSortedElemSet& aMap, - const SMDSAbs_ElementType aType = SMDSAbs_All, - SMDS_MeshElement::Filter* aFilter = NULL) + void arrayToSet(const SMESH::smIdType_array & IDs, + const SMESHDS_Mesh* aMesh, + TIDSortedElemSet& aMap, + const SMDSAbs_ElementType aType = SMDSAbs_All, + SMDS_MeshElement::Filter* aFilter = NULL) { SMDS_MeshElement::NonNullFilter filter1; SMDS_MeshElement::TypeFilter filter2( aType ); @@ -279,13 +279,13 @@ namespace MeshEditor_I { SMDS_MeshElement::Filter & filter = *aFilter; if ( aType == SMDSAbs_Node ) - for ( CORBA::ULong i = 0; i < IDs.length(); i++ ) { + for ( SMESH::smIdType i = 0; i < IDs.length(); i++ ) { const SMDS_MeshElement * elem = aMesh->FindNode( IDs[i] ); if ( filter( elem )) aMap.insert( aMap.end(), elem ); } else - for ( CORBA::ULong i = 0; iFindElement( IDs[i] ); if ( filter( elem )) aMap.insert( aMap.end(), elem ); @@ -314,7 +314,7 @@ namespace MeshEditor_I { else { SMESH::array_of_ElementType_var types = theObject->GetTypes(); - SMESH::long_array_var aElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var aElementsId = theObject->GetIDs(); if ( types->length() == 1 && types[0] == SMESH::NODE) { for ( CORBA::ULong i = 0; i < aElementsId->length(); i++ ) @@ -523,7 +523,6 @@ TPreviewMesh * SMESH_MeshEditor_i::getPreviewMesh(SMDSAbs_ElementType previewEle //================================================================================ SMESH::MeshPreviewStruct* SMESH_MeshEditor_i::GetPreviewData() - throw (SALOME::SALOME_Exception) { SMESH_TRY; const bool hasBadElems = ( getEditor().GetError() && getEditor().GetError()->HasBadElems() ); @@ -574,7 +573,7 @@ SMESH::MeshPreviewStruct* SMESH_MeshEditor_i::GetPreviewData() aMeshElem->nodeIterator() ); while ( itElemNodes->more() ) { const SMDS_MeshNode* aMeshNode = itElemNodes->next(); - int aNodeID = aMeshNode->GetID(); + smIdType aNodeID = aMeshNode->GetID(); TNodesMap::iterator anIter = nodesMap.find(aNodeID); if ( anIter == nodesMap.end() ) { // filling the nodes coordinates @@ -616,11 +615,10 @@ SMESH::MeshPreviewStruct* SMESH_MeshEditor_i::GetPreviewData() */ //================================================================================ -SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedNodes() - throw (SALOME::SALOME_Exception) +SMESH::smIdType_array* SMESH_MeshEditor_i::GetLastCreatedNodes() { SMESH_TRY; - SMESH::long_array_var myLastCreatedNodes = new SMESH::long_array(); + SMESH::smIdType_array_var myLastCreatedNodes = new SMESH::smIdType_array(); const SMESH_SequenceOfElemPtr& aSeq = getEditor().GetLastCreatedNodes(); myLastCreatedNodes->length( aSeq.size() ); @@ -639,11 +637,10 @@ SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedNodes() */ //================================================================================ -SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedElems() - throw (SALOME::SALOME_Exception) +SMESH::smIdType_array* SMESH_MeshEditor_i::GetLastCreatedElems() { SMESH_TRY; - SMESH::long_array_var myLastCreatedElems = new SMESH::long_array(); + SMESH::smIdType_array_var myLastCreatedElems = new SMESH::smIdType_array(); const SMESH_SequenceOfElemPtr& aSeq = getEditor().GetLastCreatedElems(); myLastCreatedElems->length( aSeq.size() ); @@ -660,7 +657,7 @@ SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedElems() //purpose : Clears sequences of last created elements and nodes //======================================================================= -void SMESH_MeshEditor_i::ClearLastCreated() throw (SALOME::SALOME_Exception) +void SMESH_MeshEditor_i::ClearLastCreated() { SMESH_TRY; getEditor().ClearLastCreated(); @@ -675,7 +672,6 @@ void SMESH_MeshEditor_i::ClearLastCreated() throw (SALOME::SALOME_Exception) //======================================================================= SMESH::ComputeError* SMESH_MeshEditor_i::GetLastError() - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::ComputeError_var errOut = new SMESH::ComputeError; @@ -708,16 +704,16 @@ SMESH::ComputeError* SMESH_MeshEditor_i::GetLastError() struct SMESH_MeshEditor_i::_IDSource : public virtual POA_SMESH::SMESH_IDSource, public virtual SALOME::GenericObj_i { - SMESH::long_array _ids; - SMESH::ElementType _type; - SMESH::SMESH_Mesh_ptr _mesh; - SMESH::long_array* GetIDs() { return new SMESH::long_array( _ids ); } - SMESH::long_array* GetMeshInfo() { return 0; } - SMESH::long_array* GetNbElementsByType() + SMESH::smIdType_array _ids; + SMESH::ElementType _type; + SMESH::SMESH_Mesh_ptr _mesh; + SMESH::smIdType_array* GetIDs() { return new SMESH::smIdType_array( _ids ); } + SMESH::smIdType_array* GetMeshInfo() { return 0; } + SMESH::smIdType_array* GetNbElementsByType() { - SMESH::long_array_var aRes = new SMESH::long_array(); + SMESH::smIdType_array_var aRes = new SMESH::smIdType_array(); aRes->length(SMESH::NB_ELEMENT_TYPES); - for (int i = 0; i < SMESH::NB_ELEMENT_TYPES; i++) + for (smIdType i = 0; i < SMESH::NB_ELEMENT_TYPES; i++) aRes[ i ] = ( i == _type ) ? _ids.length() : 0; return aRes._retn(); } @@ -739,8 +735,8 @@ struct SMESH_MeshEditor_i::_IDSource : public virtual POA_SMESH::SMESH_IDSource, } }; -SMESH::SMESH_IDSource_ptr SMESH_MeshEditor_i::MakeIDSource(const SMESH::long_array& ids, - SMESH::ElementType type) +SMESH::SMESH_IDSource_ptr SMESH_MeshEditor_i::MakeIDSource(const SMESH::smIdType_array& ids, + SMESH::ElementType type) { _IDSource* idSrc = new _IDSource; idSrc->_mesh = myMesh_i->_this(); @@ -759,12 +755,12 @@ bool SMESH_MeshEditor_i::IsTemporaryIDSource( SMESH::SMESH_IDSource_ptr& idSourc return SMESH::DownCast( idSource ); } -CORBA::Long* SMESH_MeshEditor_i::GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idSource, - int& nbIds) +SMESH::smIdType* SMESH_MeshEditor_i::GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idSource, + SMESH::smIdType& nbIds) { if ( _IDSource* tmpIdSource = SMESH::DownCast( idSource )) { - nbIds = (int) tmpIdSource->_ids.length(); + nbIds = (SMESH::smIdType) tmpIdSource->_ids.length(); return & tmpIdSource->_ids[0]; } nbIds = 0; @@ -786,15 +782,14 @@ CORBA::Long* SMESH_MeshEditor_i::GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idS //============================================================================= CORBA::Boolean -SMESH_MeshEditor_i::RemoveElements(const SMESH::long_array & IDsOfElements) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::RemoveElements(const SMESH::smIdType_array & IDsOfElements) { SMESH_TRY; initData(); - list< int > IdList; + list< smIdType > IdList; - for ( CORBA::ULong i = 0; i < IDsOfElements.length(); i++ ) + for ( SMESH::smIdType i = 0; i < IDsOfElements.length(); i++ ) IdList.push_back( IDsOfElements[i] ); // Update Python script @@ -816,14 +811,13 @@ SMESH_MeshEditor_i::RemoveElements(const SMESH::long_array & IDsOfElements) */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); - list< int > IdList; - for ( CORBA::ULong i = 0; i < IDsOfNodes.length(); i++) + list< smIdType > IdList; + for ( SMESH::smIdType i = 0; i < IDsOfNodes.length(); i++) IdList.push_back( IDsOfNodes[i] ); // Update Python script @@ -844,8 +838,7 @@ CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNo */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::RemoveOrphanNodes() - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::RemoveOrphanNodes() { SMESH_TRY; initData(); @@ -859,11 +852,11 @@ CORBA::Long SMESH_MeshEditor_i::RemoveOrphanNodes() SMESH::Controls::Filter::GetElementsId( getMeshDS(), predicate, seq ); // remove orphan nodes (if there are any) - list< int > IdList( seq.begin(), seq.end() ); + list< smIdType > IdList( seq.begin(), seq.end() ); - int nbNodesBefore = myMesh->NbNodes(); + SMESH::smIdType nbNodesBefore = myMesh->NbNodes(); getEditor().Remove( IdList, true ); - int nbNodesAfter = myMesh->NbNodes(); + SMESH::smIdType nbNodesAfter = myMesh->NbNodes(); declareMeshModified( /*isReComputeSafe=*/ IdList.size() == 0 ); // issue 0020693 return nbNodesBefore - nbNodesAfter; @@ -878,8 +871,7 @@ CORBA::Long SMESH_MeshEditor_i::RemoveOrphanNodes() */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddNode(CORBA::Double x,CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddNode(CORBA::Double x,CORBA::Double y, CORBA::Double z) { SMESH_TRY; initData(); @@ -903,9 +895,8 @@ CORBA::Long SMESH_MeshEditor_i::AddNode(CORBA::Double x,CORBA::Double y, CORBA:: */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::Add0DElement(CORBA::Long IDOfNode, - CORBA::Boolean DuplicateElements) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::Add0DElement(SMESH::smIdType IDOfNode, + CORBA::Boolean DuplicateElements) { SMESH_TRY; initData(); @@ -934,8 +925,7 @@ CORBA::Long SMESH_MeshEditor_i::Add0DElement(CORBA::Long IDOfNode, */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddBall(CORBA::Long IDOfNode, CORBA::Double diameter) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddBall(SMESH::smIdType IDOfNode, CORBA::Double diameter) { SMESH_TRY; initData(); @@ -964,18 +954,17 @@ CORBA::Long SMESH_MeshEditor_i::AddBall(CORBA::Long IDOfNode, CORBA::Double diam */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddEdge(const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); - int NbNodes = IDsOfNodes.length(); + SMESH::smIdType NbNodes = IDsOfNodes.length(); SMDS_MeshElement* elem = 0; if (NbNodes == 2) { - CORBA::Long index1 = IDsOfNodes[0]; - CORBA::Long index2 = IDsOfNodes[1]; + SMESH::smIdType index1 = IDsOfNodes[0]; + SMESH::smIdType index2 = IDsOfNodes[1]; elem = getMeshDS()->AddEdge( getMeshDS()->FindNode(index1), getMeshDS()->FindNode(index2)); @@ -984,9 +973,9 @@ CORBA::Long SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes) << index1 << ", " << index2 <<" ])"; } if (NbNodes == 3) { - CORBA::Long n1 = IDsOfNodes[0]; - CORBA::Long n2 = IDsOfNodes[1]; - CORBA::Long n12 = IDsOfNodes[2]; + SMESH::smIdType n1 = IDsOfNodes[0]; + SMESH::smIdType n2 = IDsOfNodes[1]; + SMESH::smIdType n12 = IDsOfNodes[2]; elem = getMeshDS()->AddEdge( getMeshDS()->FindNode(n1), getMeshDS()->FindNode(n2), getMeshDS()->FindNode(n12)); @@ -1008,8 +997,7 @@ CORBA::Long SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes) */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddFace(const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); @@ -1057,8 +1045,7 @@ CORBA::Long SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes) */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace (const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddPolygonalFace (const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); @@ -1069,6 +1056,12 @@ CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace (const SMESH::long_array & IDsO if ( ! ( nodes[i] = getMeshDS()->FindNode( IDsOfNodes[i] ))) return 0; + if ( NbNodes == 0 ) + { + INFOS("Polygon without nodes is forbidden"); + return 0; + } + const SMDS_MeshElement* elem = getMeshDS()->AddPolygonalFace(nodes); // Update Python script @@ -1087,8 +1080,7 @@ CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace (const SMESH::long_array & IDsO */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddQuadPolygonalFace (const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddQuadPolygonalFace (const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); @@ -1098,6 +1090,12 @@ CORBA::Long SMESH_MeshEditor_i::AddQuadPolygonalFace (const SMESH::long_array & for (int i = 0; i < NbNodes; i++) nodes[i] = getMeshDS()->FindNode(IDsOfNodes[i]); + if ( NbNodes == 0 ) + { + INFOS("Polygon without nodes is forbidden"); + return 0; + } + const SMDS_MeshElement* elem = getMeshDS()->AddQuadPolygonalFace(nodes); // Update Python script @@ -1117,8 +1115,7 @@ CORBA::Long SMESH_MeshEditor_i::AddQuadPolygonalFace (const SMESH::long_array & */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddVolume(const SMESH::smIdType_array & IDsOfNodes) { SMESH_TRY; initData(); @@ -1177,9 +1174,8 @@ CORBA::Long SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes) * AddPolyhedralVolume */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolume (const SMESH::long_array & IDsOfNodes, +SMESH::smIdType SMESH_MeshEditor_i::AddPolyhedralVolume (const SMESH::smIdType_array & IDsOfNodes, const SMESH::long_array & Quantities) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1217,8 +1213,7 @@ CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolume (const SMESH::long_array & I */ //============================================================================= -CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces (const SMESH::long_array & IdsOfFaces) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces (const SMESH::smIdType_array & IdsOfFaces) { SMESH_TRY; initData(); @@ -1266,7 +1261,6 @@ SMESH::SMESH_IDSource_ptr SMESH_MeshEditor_i::Create0DElementsOnAllNodes(SMESH::SMESH_IDSource_ptr theObject, const char* theGroupName, CORBA::Boolean theDuplicateElements) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1278,7 +1272,7 @@ SMESH_MeshEditor_i::Create0DElementsOnAllNodes(SMESH::SMESH_IDSource_ptr theObje if ( idSourceToSet( theObject, getMeshDS(), elements, SMDSAbs_All, /*emptyIfIsMesh=*/1)) getEditor().Create0DElementsOnAllNodes( elements, elems0D, theDuplicateElements ); - SMESH::long_array_var newElems = new SMESH::long_array; + SMESH::smIdType_array_var newElems = new SMESH::smIdType_array; newElems->length( elems0D.size() ); TIDSortedElemSet::iterator eIt = elems0D.begin(); for ( size_t i = 0; i < elems0D.size(); ++i, ++eIt ) @@ -1335,8 +1329,7 @@ SMESH_MeshEditor_i::Create0DElementsOnAllNodes(SMESH::SMESH_IDSource_ptr theObje */ //============================================================================= -void SMESH_MeshEditor_i::SetNodeOnVertex(CORBA::Long NodeID, CORBA::Long VertexID) - throw (SALOME::SALOME_Exception) +void SMESH_MeshEditor_i::SetNodeOnVertex(SMESH::smIdType NodeID, CORBA::Long VertexID) { SMESH_TRY; @@ -1369,9 +1362,8 @@ void SMESH_MeshEditor_i::SetNodeOnVertex(CORBA::Long NodeID, CORBA::Long VertexI */ //============================================================================= -void SMESH_MeshEditor_i::SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID, +void SMESH_MeshEditor_i::SetNodeOnEdge(SMESH::smIdType NodeID, CORBA::Long EdgeID, CORBA::Double paramOnEdge) - throw (SALOME::SALOME_Exception) { SMESH_TRY; @@ -1390,8 +1382,11 @@ void SMESH_MeshEditor_i::SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID, Standard_Real f,l; BRep_Tool::Range( TopoDS::Edge( shape ), f,l); if ( paramOnEdge < f || paramOnEdge > l ) - THROW_SALOME_CORBA_EXCEPTION("Invalid paramOnEdge", SALOME::BAD_PARAM); - + { + SMESH_Comment txt("Invalid paramOnEdge. It must vary in range [ "); + txt << f << ", " << l << " ]"; + THROW_SALOME_CORBA_EXCEPTION(txt.c_str(), SALOME::BAD_PARAM); + } mesh->SetNodeOnEdge( node, EdgeID, paramOnEdge ); myMesh->SetIsModified( true ); @@ -1410,9 +1405,8 @@ void SMESH_MeshEditor_i::SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID, */ //============================================================================= -void SMESH_MeshEditor_i::SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID, +void SMESH_MeshEditor_i::SetNodeOnFace(SMESH::smIdType NodeID, CORBA::Long FaceID, CORBA::Double u, CORBA::Double v) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESHDS_Mesh * mesh = getMeshDS(); @@ -1434,14 +1428,11 @@ void SMESH_MeshEditor_i::SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID, v > surf.LastVParameter() ); if ( isOut ) { -#ifdef _DEBUG_ - MESSAGE ( "FACE " << FaceID << " (" << u << "," << v << ") out of " - << " u( " << surf.FirstUParameter() - << "," << surf.LastUParameter() - << ") v( " << surf.FirstVParameter() - << "," << surf.LastVParameter() << ")" ); -#endif - THROW_SALOME_CORBA_EXCEPTION("Invalid UV", SALOME::BAD_PARAM); + SMESH_Comment txt("Invalid UV. U must vary in range [ "); + txt << surf.FirstUParameter() << ", " << surf.LastUParameter() << " ], "; + txt << "V must vary in range [ "; + txt << surf.FirstVParameter() << ", " << surf.LastVParameter() << " ]"; + THROW_SALOME_CORBA_EXCEPTION(txt.c_str(), SALOME::BAD_PARAM); } mesh->SetNodeOnFace( node, FaceID, u, v ); @@ -1459,8 +1450,7 @@ void SMESH_MeshEditor_i::SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID, */ //============================================================================= -void SMESH_MeshEditor_i::SetNodeInVolume(CORBA::Long NodeID, CORBA::Long SolidID) - throw (SALOME::SALOME_Exception) +void SMESH_MeshEditor_i::SetNodeInVolume(SMESH::smIdType NodeID, CORBA::Long SolidID) { SMESH_TRY; SMESHDS_Mesh * mesh = getMeshDS(); @@ -1489,9 +1479,8 @@ void SMESH_MeshEditor_i::SetNodeInVolume(CORBA::Long NodeID, CORBA::Long SolidID */ //============================================================================= -void SMESH_MeshEditor_i::SetMeshElementOnShape(CORBA::Long ElementID, +void SMESH_MeshEditor_i::SetMeshElementOnShape(SMESH::smIdType ElementID, CORBA::Long ShapeID) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESHDS_Mesh * mesh = getMeshDS(); @@ -1522,9 +1511,8 @@ void SMESH_MeshEditor_i::SetMeshElementOnShape(CORBA::Long ElementID, */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1, - CORBA::Long NodeID2) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(SMESH::smIdType NodeID1, + SMESH::smIdType NodeID2) { SMESH_TRY; initData(); @@ -1553,9 +1541,8 @@ CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1, */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1, - CORBA::Long NodeID2) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(SMESH::smIdType NodeID1, + SMESH::smIdType NodeID2) { SMESH_TRY; initData(); @@ -1586,15 +1573,14 @@ CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1, */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfElements) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::smIdType_array & IDsOfElements) { SMESH_TRY; initData(); - for ( CORBA::ULong i = 0; i < IDsOfElements.length(); i++ ) + for ( SMESH::smIdType i = 0; i < IDsOfElements.length(); i++ ) { - CORBA::Long index = IDsOfElements[i]; + SMESH::smIdType index = IDsOfElements[i]; const SMDS_MeshElement * elem = getMeshDS()->FindElement(index); if ( elem ) getEditor().Reorient( elem ); @@ -1616,7 +1602,6 @@ CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfEleme //============================================================================= CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1625,7 +1610,7 @@ CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theO prepareIdSource( theObject ); - SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var anElementsId = theObject->GetIDs(); CORBA::Boolean isDone = Reorient(anElementsId); // Update Python script @@ -1653,7 +1638,6 @@ CORBA::Long SMESH_MeshEditor_i::Reorient2D(SMESH::SMESH_IDSource_ptr the2Dgroup, const SMESH::DirStruct& theDirection, CORBA::Long theFace, const SMESH::PointStruct& thePoint) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(/*deleteSearchers=*/false); @@ -1737,7 +1721,6 @@ CORBA::Long SMESH_MeshEditor_i::Reorient2D(SMESH::SMESH_IDSource_ptr the2Dgroup, CORBA::Long SMESH_MeshEditor_i::Reorient2DBy3D(const SMESH::ListOfIDSources& faceGroups, SMESH::SMESH_IDSource_ptr volumeGroup, CORBA::Boolean outsideNormal) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1785,10 +1768,9 @@ CORBA::Long SMESH_MeshEditor_i::Reorient2DBy3D(const SMESH::ListOfIDSources& fac */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array & IDsOfElements, +CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::smIdType_array & IDsOfElements, SMESH::NumericalFunctor_ptr Criterion, CORBA::Double MaxAngle) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1837,7 +1819,6 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array & IDsOfE CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr theObject, SMESH::NumericalFunctor_ptr Criterion, CORBA::Double MaxAngle) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1845,7 +1826,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr TPythonDump aTPythonDump; // suppress dump in TriToQuad() prepareIdSource( theObject ); - SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var anElementsId = theObject->GetIDs(); CORBA::Boolean isDone = TriToQuad(anElementsId, Criterion, MaxAngle); if ( !myIsPreviewMode ) { @@ -1869,9 +1850,8 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array & IDsOfElements, +CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::smIdType_array & IDsOfElements, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1909,7 +1889,6 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array & IDsOfE CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr theObject, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1917,7 +1896,7 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr TPythonDump aTPythonDump; // suppress dump in QuadToTri() prepareIdSource( theObject ); - SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var anElementsId = theObject->GetIDs(); CORBA::Boolean isDone = QuadToTri(anElementsId, Criterion); SMESH::NumericalFunctor_i* aNumericalFunctor = @@ -1941,7 +1920,6 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr //================================================================================ void SMESH_MeshEditor_i::QuadTo4Tri (SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1954,6 +1932,8 @@ void SMESH_MeshEditor_i::QuadTo4Tri (SMESH::SMESH_IDSource_ptr theObject) getEditor().QuadTo4Tri( faces ); TPythonDump() << this << ".QuadTo4Tri( " << theObject << " )"; + declareMeshModified( /*isReComputeSafe=*/false ); + SMESH_CATCH( SMESH::throwCorbaException ); } @@ -1963,9 +1943,8 @@ void SMESH_MeshEditor_i::QuadTo4Tri (SMESH::SMESH_IDSource_ptr theObject) */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfElements, +CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::smIdType_array & IDsOfElements, CORBA::Boolean Diag13) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -1995,7 +1974,6 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfEle CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr theObject, CORBA::Boolean Diag13) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2003,7 +1981,7 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr th TPythonDump aTPythonDump; // suppress dump in SplitQuad() prepareIdSource( theObject ); - SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var anElementsId = theObject->GetIDs(); CORBA::Boolean isDone = SplitQuad(anElementsId, Diag13); // Update Python script @@ -2030,7 +2008,6 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr th CORBA::Long SMESH_MeshEditor_i::BestSplit (CORBA::Long IDOfQuad, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2063,7 +2040,6 @@ CORBA::Long SMESH_MeshEditor_i::BestSplit (CORBA::Long IDOfQuad, void SMESH_MeshEditor_i::SplitVolumesIntoTetra (SMESH::SMESH_IDSource_ptr elems, CORBA::Short methodFlags) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2101,7 +2077,6 @@ void SMESH_MeshEditor_i::SplitHexahedraIntoPrisms( SMESH::SMESH_IDSource_ptr el const SMESH::DirStruct& facetToSplitNormal, CORBA::Short methodFlags, CORBA::Boolean allDomains) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2115,7 +2090,7 @@ void SMESH_MeshEditor_i::SplitHexahedraIntoPrisms( SMESH::SMESH_IDSource_ptr el facetToSplitNormal.PS.z )); TIDSortedElemSet elemSet; prepareIdSource( elems ); - SMESH::long_array_var anElementsId = elems->GetIDs(); + SMESH::smIdType_array_var anElementsId = elems->GetIDs(); SMDS_MeshElement::GeomFilter filter( SMDSGeom_HEXA ); arrayToSet( anElementsId, getMeshDS(), elemSet, SMDSAbs_Volume, &filter ); @@ -2162,7 +2137,6 @@ void SMESH_MeshEditor_i::SplitHexahedraIntoPrisms( SMESH::SMESH_IDSource_ptr el //================================================================================ void SMESH_MeshEditor_i::SplitBiQuadraticIntoLinear(const SMESH::ListOfIDSources& theElems) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2193,12 +2167,11 @@ void SMESH_MeshEditor_i::SplitBiQuadraticIntoLinear(const SMESH::ListOfIDSources //======================================================================= CORBA::Boolean -SMESH_MeshEditor_i::Smooth(const SMESH::long_array & IDsOfElements, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, +SMESH_MeshEditor_i::Smooth(const SMESH::smIdType_array & IDsOfElements, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception) { return smooth( IDsOfElements, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method, false ); @@ -2211,12 +2184,11 @@ SMESH_MeshEditor_i::Smooth(const SMESH::long_array & IDsOfElements, //======================================================================= CORBA::Boolean -SMESH_MeshEditor_i::SmoothParametric(const SMESH::long_array & IDsOfElements, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, +SMESH_MeshEditor_i::SmoothParametric(const SMESH::smIdType_array & IDsOfElements, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception) { return smooth( IDsOfElements, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method, true ); @@ -2230,11 +2202,10 @@ SMESH_MeshEditor_i::SmoothParametric(const SMESH::long_array & IDsO CORBA::Boolean SMESH_MeshEditor_i::SmoothObject(SMESH::SMESH_IDSource_ptr theObject, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception) { return smoothObject (theObject, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method, false); @@ -2248,11 +2219,10 @@ SMESH_MeshEditor_i::SmoothObject(SMESH::SMESH_IDSource_ptr theObjec CORBA::Boolean SMESH_MeshEditor_i::SmoothParametricObject(SMESH::SMESH_IDSource_ptr theObject, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception) { return smoothObject (theObject, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method, true); @@ -2266,13 +2236,12 @@ SMESH_MeshEditor_i::SmoothParametricObject(SMESH::SMESH_IDSource_ptr //============================================================================= CORBA::Boolean -SMESH_MeshEditor_i::smooth(const SMESH::long_array & IDsOfElements, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, +SMESH_MeshEditor_i::smooth(const SMESH::smIdType_array & IDsOfElements, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method, bool IsParametric) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2283,8 +2252,8 @@ SMESH_MeshEditor_i::smooth(const SMESH::long_array & IDsOfElements, arrayToSet(IDsOfElements, aMesh, elements, SMDSAbs_Face); set fixedNodes; - for ( CORBA::ULong i = 0; i < IDsOfFixedNodes.length(); i++) { - CORBA::Long index = IDsOfFixedNodes[i]; + for ( SMESH::smIdType i = 0; i < IDsOfFixedNodes.length(); i++) { + SMESH::smIdType index = IDsOfFixedNodes[i]; const SMDS_MeshNode * node = aMesh->FindNode(index); if ( node ) fixedNodes.insert( node ); @@ -2321,12 +2290,11 @@ SMESH_MeshEditor_i::smooth(const SMESH::long_array & IDsOfElements, CORBA::Boolean SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr theObject, - const SMESH::long_array & IDsOfFixedNodes, - CORBA::Long MaxNbOfIterations, + const SMESH::smIdType_array & IDsOfFixedNodes, + CORBA::Short MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method, bool IsParametric) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2334,7 +2302,7 @@ SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr theObjec TPythonDump aTPythonDump; // suppress dump in smooth() prepareIdSource( theObject ); - SMESH::long_array_var anElementsId = theObject->GetIDs(); + SMESH::smIdType_array_var anElementsId = theObject->GetIDs(); CORBA::Boolean isDone = smooth (anElementsId, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method, IsParametric); @@ -2360,7 +2328,6 @@ SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr theObjec //============================================================================= void SMESH_MeshEditor_i::RenumberNodes() - throw (SALOME::SALOME_Exception) { SMESH_TRY; // Update Python script @@ -2378,7 +2345,6 @@ void SMESH_MeshEditor_i::RenumberNodes() //============================================================================= void SMESH_MeshEditor_i::RenumberElements() - throw (SALOME::SALOME_Exception) { SMESH_TRY; // Update Python script @@ -2396,7 +2362,6 @@ void SMESH_MeshEditor_i::RenumberElements() //======================================================================= SMESH::ListOfGroups* SMESH_MeshEditor_i::getGroups(const std::list* groupIDs) - throw (SALOME::SALOME_Exception) { SMESH_TRY; if ( !groupIDs ) @@ -2422,7 +2387,6 @@ SMESH_MeshEditor_i::RotationSweepObjects(const SMESH::ListOfIDSources & theNodes CORBA::Long theNbOfSteps, CORBA::Double theTolerance, const bool theMakeGroups) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2625,7 +2589,6 @@ SMESH_MeshEditor_i::ExtrusionSweepObjects(const SMESH::ListOfIDSources & theNode const SMESH::double_array & theBasePoint, const SMESH::double_array & theAngles, CORBA::Boolean theAnglesVariation) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2708,7 +2671,6 @@ SMESH_MeshEditor_i::ExtrusionByNormal(const SMESH::ListOfIDSources& objects, CORBA::Boolean useInputElemsOnly, CORBA::Boolean makeGroups, CORBA::Short dim) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -2779,13 +2741,12 @@ SMESH_MeshEditor_i::ExtrusionByNormal(const SMESH::ListOfIDSources& objects, //======================================================================= SMESH::ListOfGroups* -SMESH_MeshEditor_i::AdvancedExtrusion(const SMESH::long_array & theIDsOfElements, - const SMESH::DirStruct & theStepVector, - CORBA::Long theNbOfSteps, - CORBA::Long theExtrFlags, - CORBA::Double theSewTolerance, - CORBA::Boolean theMakeGroups) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::AdvancedExtrusion(const SMESH::smIdType_array & theIDsOfElements, + const SMESH::DirStruct & theStepVector, + CORBA::Long theNbOfSteps, + CORBA::Long theExtrFlags, + CORBA::Double theSewTolerance, + CORBA::Boolean theMakeGroups) { SMESH_TRY; initData(); @@ -2862,7 +2823,7 @@ SMESH_MeshEditor_i::ExtrusionAlongPathObjects(const SMESH::ListOfIDSources & the const SMESH::ListOfIDSources & theFaces, SMESH::SMESH_IDSource_ptr thePathObject, GEOM::GEOM_Object_ptr thePathShape, - CORBA::Long theNodeStart, + SMESH::smIdType theNodeStart, CORBA::Boolean theHasAngles, const SMESH::double_array & theAngles, CORBA::Boolean theAnglesVariation, @@ -2872,7 +2833,6 @@ SMESH_MeshEditor_i::ExtrusionAlongPathObjects(const SMESH::ListOfIDSources & the const SMESH::double_array & theScaleFactors, CORBA::Boolean theScalesVariation, SMESH::SMESH_MeshEditor::Extrusion_Error& theError) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -3039,7 +2999,7 @@ SMESH_MeshEditor_i::LinearAnglesVariation(SMESH::SMESH_Mesh_ptr thePathMes SMESH_subMesh* aSubMesh = aMeshImp->GetImpl().GetSubMesh( aShape ); if ( !aSubMesh || !aSubMesh->GetSubMeshDS()) return aResult._retn(); - int nbSteps = aSubMesh->GetSubMeshDS()->NbElements(); + smIdType nbSteps = aSubMesh->GetSubMeshDS()->NbElements(); if ( nbSteps == nbAngles ) { aResult.inout() = theAngles; @@ -3097,7 +3057,6 @@ SMESH_MeshEditor_i::mirror(TIDSortedElemSet & theElements, CORBA::Boolean theCopy, bool theMakeGroups, ::SMESH_Mesh* theTargetMesh) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -3159,11 +3118,10 @@ SMESH_MeshEditor_i::mirror(TIDSortedElemSet & theElements, //purpose : //======================================================================= -void SMESH_MeshEditor_i::Mirror(const SMESH::long_array & theIDsOfElements, +void SMESH_MeshEditor_i::Mirror(const SMESH::smIdType_array & theIDsOfElements, const SMESH::AxisStruct & theAxis, SMESH::SMESH_MeshEditor::MirrorType theMirrorType, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) { if ( !myIsPreviewMode ) { TPythonDump() << this << ".Mirror( " @@ -3190,7 +3148,6 @@ void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr theObj const SMESH::AxisStruct & theAxis, SMESH::SMESH_MeshEditor::MirrorType theMirrorType, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) { if ( !myIsPreviewMode ) { TPythonDump() << this << ".MirrorObject( " @@ -3213,10 +3170,9 @@ void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr theObj //======================================================================= SMESH::ListOfGroups* -SMESH_MeshEditor_i::MirrorMakeGroups(const SMESH::long_array& theIDsOfElements, +SMESH_MeshEditor_i::MirrorMakeGroups(const SMESH::smIdType_array& theIDsOfElements, const SMESH::AxisStruct& theMirror, SMESH::SMESH_MeshEditor::MirrorType theMirrorType) - throw (SALOME::SALOME_Exception) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3246,7 +3202,6 @@ SMESH::ListOfGroups* SMESH_MeshEditor_i::MirrorObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject, const SMESH::AxisStruct& theMirror, SMESH::SMESH_MeshEditor::MirrorType theMirrorType) - throw (SALOME::SALOME_Exception) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3272,12 +3227,11 @@ SMESH_MeshEditor_i::MirrorObjectMakeGroups(SMESH::SMESH_IDSource_ptr t //======================================================================= SMESH::SMESH_Mesh_ptr -SMESH_MeshEditor_i::MirrorMakeMesh(const SMESH::long_array& theIDsOfElements, +SMESH_MeshEditor_i::MirrorMakeMesh(const SMESH::smIdType_array& theIDsOfElements, const SMESH::AxisStruct& theMirror, SMESH::SMESH_MeshEditor::MirrorType theMirrorType, CORBA::Boolean theCopyGroups, const char* theMeshName) - throw (SALOME::SALOME_Exception) { SMESH_Mesh_i* mesh_i; SMESH::SMESH_Mesh_var mesh; @@ -3325,7 +3279,6 @@ SMESH_MeshEditor_i::MirrorObjectMakeMesh(SMESH::SMESH_IDSource_ptr the SMESH::SMESH_MeshEditor::MirrorType theMirrorType, CORBA::Boolean theCopyGroups, const char* theMeshName) - throw (SALOME::SALOME_Exception) { SMESH_Mesh_i* mesh_i; SMESH::SMESH_Mesh_var mesh; @@ -3372,7 +3325,6 @@ SMESH_MeshEditor_i::translate(TIDSortedElemSet & theElements, CORBA::Boolean theCopy, bool theMakeGroups, ::SMESH_Mesh* theTargetMesh) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -3423,10 +3375,9 @@ SMESH_MeshEditor_i::translate(TIDSortedElemSet & theElements, //purpose : //======================================================================= -void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements, - const SMESH::DirStruct & theVector, - CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) +void SMESH_MeshEditor_i::Translate(const SMESH::smIdType_array & theIDsOfElements, + const SMESH::DirStruct & theVector, + CORBA::Boolean theCopy) { if (!myIsPreviewMode) { TPythonDump() << this << ".Translate( " @@ -3449,7 +3400,6 @@ void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements, void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::DirStruct & theVector, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) { if (!myIsPreviewMode) { TPythonDump() << this << ".TranslateObject( " @@ -3471,9 +3421,8 @@ void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject, //======================================================================= SMESH::ListOfGroups* -SMESH_MeshEditor_i::TranslateMakeGroups(const SMESH::long_array& theIDsOfElements, - const SMESH::DirStruct& theVector) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::TranslateMakeGroups(const SMESH::smIdType_array& theIDsOfElements, + const SMESH::DirStruct& theVector) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3500,7 +3449,6 @@ SMESH_MeshEditor_i::TranslateMakeGroups(const SMESH::long_array& theIDsOfElement SMESH::ListOfGroups* SMESH_MeshEditor_i::TranslateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject, const SMESH::DirStruct& theVector) - throw (SALOME::SALOME_Exception) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3524,11 +3472,10 @@ SMESH_MeshEditor_i::TranslateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObjec //======================================================================= SMESH::SMESH_Mesh_ptr -SMESH_MeshEditor_i::TranslateMakeMesh(const SMESH::long_array& theIDsOfElements, - const SMESH::DirStruct& theVector, - CORBA::Boolean theCopyGroups, - const char* theMeshName) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::TranslateMakeMesh(const SMESH::smIdType_array& theIDsOfElements, + const SMESH::DirStruct& theVector, + CORBA::Boolean theCopyGroups, + const char* theMeshName) { SMESH_Mesh_i* mesh_i; SMESH::SMESH_Mesh_var mesh; @@ -3575,7 +3522,6 @@ SMESH_MeshEditor_i::TranslateObjectMakeMesh(SMESH::SMESH_IDSource_ptr theObject, const SMESH::DirStruct& theVector, CORBA::Boolean theCopyGroups, const char* theMeshName) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH_Mesh_i* mesh_i; @@ -3625,7 +3571,6 @@ SMESH_MeshEditor_i::rotate(TIDSortedElemSet & theElements, CORBA::Boolean theCopy, bool theMakeGroups, ::SMESH_Mesh* theTargetMesh) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -3674,11 +3619,10 @@ SMESH_MeshEditor_i::rotate(TIDSortedElemSet & theElements, //purpose : //======================================================================= -void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements, - const SMESH::AxisStruct & theAxis, - CORBA::Double theAngle, - CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) +void SMESH_MeshEditor_i::Rotate(const SMESH::smIdType_array & theIDsOfElements, + const SMESH::AxisStruct & theAxis, + CORBA::Double theAngle, + CORBA::Boolean theCopy) { if (!myIsPreviewMode) { TPythonDump() << this << ".Rotate( " @@ -3704,7 +3648,6 @@ void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::AxisStruct & theAxis, CORBA::Double theAngle, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) { if ( !myIsPreviewMode ) { TPythonDump() << this << ".RotateObject( " @@ -3725,10 +3668,9 @@ void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject, //======================================================================= SMESH::ListOfGroups* -SMESH_MeshEditor_i::RotateMakeGroups(const SMESH::long_array& theIDsOfElements, - const SMESH::AxisStruct& theAxis, - CORBA::Double theAngle) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::RotateMakeGroups(const SMESH::smIdType_array& theIDsOfElements, + const SMESH::AxisStruct& theAxis, + CORBA::Double theAngle) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3758,7 +3700,6 @@ SMESH::ListOfGroups* SMESH_MeshEditor_i::RotateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject, const SMESH::AxisStruct& theAxis, CORBA::Double theAngle) - throw (SALOME::SALOME_Exception) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -3783,12 +3724,11 @@ SMESH_MeshEditor_i::RotateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject, //======================================================================= SMESH::SMESH_Mesh_ptr -SMESH_MeshEditor_i::RotateMakeMesh(const SMESH::long_array& theIDsOfElements, - const SMESH::AxisStruct& theAxis, - CORBA::Double theAngleInRadians, - CORBA::Boolean theCopyGroups, - const char* theMeshName) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::RotateMakeMesh(const SMESH::smIdType_array& theIDsOfElements, + const SMESH::AxisStruct& theAxis, + CORBA::Double theAngleInRadians, + CORBA::Boolean theCopyGroups, + const char* theMeshName) { SMESH_TRY; SMESH::SMESH_Mesh_var mesh; @@ -3841,7 +3781,6 @@ SMESH_MeshEditor_i::RotateObjectMakeMesh(SMESH::SMESH_IDSource_ptr theObject, CORBA::Double theAngleInRadians, CORBA::Boolean theCopyGroups, const char* theMeshName) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::SMESH_Mesh_var mesh; @@ -3894,7 +3833,6 @@ SMESH_MeshEditor_i::scale(SMESH::SMESH_IDSource_ptr theObject, CORBA::Boolean theCopy, bool theMakeGroups, ::SMESH_Mesh* theTargetMesh) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -3969,7 +3907,6 @@ void SMESH_MeshEditor_i::Scale(SMESH::SMESH_IDSource_ptr theObject, const SMESH::PointStruct& thePoint, const SMESH::double_array& theScaleFact, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception) { if ( !myIsPreviewMode ) { TPythonDump() << this << ".Scale( " @@ -3991,7 +3928,6 @@ SMESH::ListOfGroups* SMESH_MeshEditor_i::ScaleMakeGroups(SMESH::SMESH_IDSource_ptr theObject, const SMESH::PointStruct& thePoint, const SMESH::double_array& theScaleFact) - throw (SALOME::SALOME_Exception) { TPythonDump aPythonDump; // it is here to prevent dump of GetGroups() @@ -4018,7 +3954,6 @@ SMESH_MeshEditor_i::ScaleMakeMesh(SMESH::SMESH_IDSource_ptr theObject, const SMESH::double_array& theScaleFact, CORBA::Boolean theCopyGroups, const char* theMeshName) - throw (SALOME::SALOME_Exception) { SMESH_Mesh_i* mesh_i; SMESH::SMESH_Mesh_var mesh; @@ -4069,7 +4004,6 @@ SMESH::SMESH_Mesh_ptr SMESH_MeshEditor_i::Offset( SMESH::SMESH_IDSource_ptr theO CORBA::Boolean theCopyElements, const char* theMeshName, SMESH::ListOfGroups_out theGroups) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4115,17 +4049,19 @@ SMESH::SMESH_Mesh_ptr SMESH_MeshEditor_i::Offset( SMESH::SMESH_IDSource_ptr theO } else { - theGroups = theCopyGroups ? getGroups( groupIds.get() ) : new SMESH::ListOfGroups; - if ( *theMeshName && mesh_var->NbFaces() == 0 ) { // new mesh empty, remove it - SALOMEDS::Study_var study = SMESH_Gen_i::getStudyServant(); + SALOMEDS::Study_var study = SMESH_Gen_i::GetSMESHGen()->getStudyServant(); SALOMEDS::StudyBuilder_var builder = study->NewBuilder(); - SALOMEDS::SObject_wrap meshSO = SMESH_Gen_i::ObjectToSObject( mesh_var ); + SALOMEDS::SObject_wrap meshSO = SMESH_Gen_i::GetSMESHGen()->ObjectToSObject( mesh_var ); builder->RemoveObjectWithChildren( meshSO ); THROW_SALOME_CORBA_EXCEPTION("Offset failed", SALOME::INTERNAL_ERROR); } + if ( !groupIds ) // nothing changed in the current mesh + THROW_SALOME_CORBA_EXCEPTION("Offset failed", SALOME::INTERNAL_ERROR); + + theGroups = theCopyGroups ? getGroups( groupIds.get() ) : new SMESH::ListOfGroups; // result of Offset() is a tuple (mesh, groups) if ( mesh_var->_is_nil() ) pyDump << myMesh_i->_this() << ", "; @@ -4181,7 +4117,6 @@ void SMESH_MeshEditor_i:: FindCoincidentNodes (CORBA::Double Tolerance, SMESH::array_of_long_array_out GroupsOfNodes, CORBA::Boolean SeparateCornersAndMedium) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4206,7 +4141,6 @@ FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr theObject, CORBA::Double Tolerance, SMESH::array_of_long_array_out GroupsOfNodes, CORBA::Boolean SeparateCornersAndMedium) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4238,7 +4172,6 @@ FindCoincidentNodesOnPartBut(const SMESH::ListOfIDSources& theObjects, SMESH::array_of_long_array_out theGroupsOfNodes, const SMESH::ListOfIDSources& theExceptSubMeshOrGroups, CORBA::Boolean theSeparateCornersAndMedium) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4275,7 +4208,6 @@ FindCoincidentNodesOnPartBut(const SMESH::ListOfIDSources& theObjects, void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes, const SMESH::ListOfIDSources& NodesToKeep, CORBA::Boolean AvoidMakingHoles) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4335,7 +4267,6 @@ void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfN void SMESH_MeshEditor_i::FindEqualElements(const SMESH::ListOfIDSources& theObjects, const SMESH::ListOfIDSources& theExceptObjects, SMESH::array_of_long_array_out theGroupsOfElementsID) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4373,10 +4304,10 @@ void SMESH_MeshEditor_i::FindEqualElements(const SMESH::ListOfIDSources& theObj for (CORBA::Long j = 0; arraysIt != aListOfListOfElementsID.end(); ++arraysIt, ++j) { SMESH::long_array& aGroup = (*theGroupsOfElementsID)[ j ]; - list& listOfIDs = *arraysIt; + list& listOfIDs = *arraysIt; aGroup.length( listOfIDs.size() ); - list::iterator idIt = listOfIDs.begin(); - for (int k = 0; idIt != listOfIDs.end(); ++idIt, ++k ) + list::iterator idIt = listOfIDs.begin(); + for (smIdType k = 0; idIt != listOfIDs.end(); ++idIt, ++k ) aGroup[ k ] = *idIt; } @@ -4395,7 +4326,6 @@ void SMESH_MeshEditor_i::FindEqualElements(const SMESH::ListOfIDSources& theObj void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& theGroupsOfElementsID, const SMESH::ListOfIDSources& theElementsToKeep) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4411,8 +4341,8 @@ void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& theGrou SMESH::array_of_ElementType_var elemTypes = theElementsToKeep[i]->GetTypes(); if ( elemTypes->length() == 1 && elemTypes[0] == SMESH::NODE ) continue; - SMESH::long_array_var elementsId = theElementsToKeep[i]->GetIDs(); - for ( CORBA::ULong j = 0; j < elementsId->length(); ++j ) + SMESH::smIdType_array_var elementsId = theElementsToKeep[i]->GetIDs(); + for ( SMESH::smIdType j = 0; j < elementsId->length(); ++j ) idsToKeep.Add( elementsId[ j ]); } @@ -4421,11 +4351,11 @@ void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& theGrou for ( CORBA::ULong i = 0; i < theGroupsOfElementsID.length(); i++ ) { const SMESH::long_array& anElemsIDGroup = theGroupsOfElementsID[ i ]; - aListOfListOfElementsID.push_back( list< int >() ); - list< int >& aListOfElemsID = aListOfListOfElementsID.back(); - for ( CORBA::ULong j = 0; j < anElemsIDGroup.length(); j++ ) + aListOfListOfElementsID.push_back( list< smIdType >() ); + list< smIdType >& aListOfElemsID = aListOfListOfElementsID.back(); + for ( SMESH::smIdType j = 0; j < anElemsIDGroup.length(); j++ ) { - CORBA::Long id = anElemsIDGroup[ j ]; + SMESH::smIdType id = anElemsIDGroup[ j ]; if ( idsToKeep.Contains( id )) aListOfElemsID.push_front( id ); else aListOfElemsID.push_back( id ); } @@ -4450,7 +4380,6 @@ void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& theGrou //======================================================================= void SMESH_MeshEditor_i::MergeEqualElements() - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -4470,11 +4399,10 @@ void SMESH_MeshEditor_i::MergeEqualElements() */ //============================================================================= -CORBA::Boolean SMESH_MeshEditor_i::MoveNode(CORBA::Long NodeID, - CORBA::Double x, - CORBA::Double y, - CORBA::Double z) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::MoveNode(SMESH::smIdType NodeID, + CORBA::Double x, + CORBA::Double y, + CORBA::Double z) { SMESH_TRY; initData(/*deleteSearchers=*/false); @@ -4528,10 +4456,9 @@ CORBA::Boolean SMESH_MeshEditor_i::MoveNode(CORBA::Long NodeID, */ //================================================================================ -CORBA::Long SMESH_MeshEditor_i::FindNodeClosestTo(CORBA::Double x, +SMESH::smIdType SMESH_MeshEditor_i::FindNodeClosestTo(CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception) { SMESH_TRY; theSearchersDeleter.Set( myMesh ); // remove theNodeSearcher if mesh is other @@ -4554,11 +4481,10 @@ CORBA::Long SMESH_MeshEditor_i::FindNodeClosestTo(CORBA::Double x, */ //================================================================================ -CORBA::Long SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x, - CORBA::Double y, - CORBA::Double z, - CORBA::Long theNodeID) - throw (SALOME::SALOME_Exception) +SMESH::smIdType SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x, + CORBA::Double y, + CORBA::Double z, + SMESH::smIdType theNodeID) { SMESH_TRY; // We keep theNodeSearcher until any mesh modification: @@ -4569,7 +4495,7 @@ CORBA::Long SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x, theSearchersDeleter.Set( myMesh ); // remove theNodeSearcher if mesh is other - int nodeID = theNodeID; + smIdType nodeID = theNodeID; const SMDS_MeshNode* node = getMeshDS()->FindNode( nodeID ); if ( !node ) // preview moving node { @@ -4632,14 +4558,13 @@ CORBA::Long SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x, */ //======================================================================= -SMESH::long_array* SMESH_MeshEditor_i::FindElementsByPoint(CORBA::Double x, +SMESH::smIdType_array* SMESH_MeshEditor_i::FindElementsByPoint(CORBA::Double x, CORBA::Double y, CORBA::Double z, SMESH::ElementType type) - throw (SALOME::SALOME_Exception) { SMESH_TRY; - SMESH::long_array_var res = new SMESH::long_array; + SMESH::smIdType_array_var res = new SMESH::smIdType_array; vector< const SMDS_MeshElement* > foundElems; theSearchersDeleter.Set( myMesh ); @@ -4666,16 +4591,15 @@ SMESH::long_array* SMESH_MeshEditor_i::FindElementsByPoint(CORBA::Double x, // 'ALL' type means elements of any type excluding nodes //======================================================================= -SMESH::long_array* +SMESH::smIdType_array* SMESH_MeshEditor_i::FindAmongElementsByPoint(SMESH::SMESH_IDSource_ptr elementIDs, CORBA::Double x, CORBA::Double y, CORBA::Double z, SMESH::ElementType type) - throw (SALOME::SALOME_Exception) { SMESH_TRY; - SMESH::long_array_var res = new SMESH::long_array; + SMESH::smIdType_array_var res = new SMESH::smIdType_array; prepareIdSource( elementIDs ); if ( type != SMESH::NODE ) @@ -4739,13 +4663,12 @@ SMESH_MeshEditor_i::FindAmongElementsByPoint(SMESH::SMESH_IDSource_ptr elementID // In the case if nothing found, return -1 and [] //======================================================================= -CORBA::Long SMESH_MeshEditor_i::ProjectPoint(CORBA::Double x, +SMESH::smIdType SMESH_MeshEditor_i::ProjectPoint(CORBA::Double x, CORBA::Double y, CORBA::Double z, SMESH::ElementType type, SMESH::SMESH_IDSource_ptr meshObject, SMESH::double_array_out projecton) - throw (SALOME::SALOME_Exception) { if ( CORBA::is_nil( meshObject )) THROW_SALOME_CORBA_EXCEPTION("NULL meshObject", SALOME::BAD_PARAM); @@ -4806,7 +4729,6 @@ CORBA::Long SMESH_MeshEditor_i::ProjectPoint(CORBA::Double x, CORBA::Short SMESH_MeshEditor_i::GetPointState(CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception) { SMESH_TRY; theSearchersDeleter.Set( myMesh ); @@ -4825,7 +4747,6 @@ CORBA::Short SMESH_MeshEditor_i::GetPointState(CORBA::Double x, //======================================================================= CORBA::Boolean SMESH_MeshEditor_i::IsManifold() - throw (SALOME::SALOME_Exception) { bool isManifold = true; @@ -4846,7 +4767,6 @@ CORBA::Boolean SMESH_MeshEditor_i::IsManifold() //======================================================================= CORBA::Boolean SMESH_MeshEditor_i::IsCoherentOrientation2D() - throw (SALOME::SALOME_Exception) { bool isGoodOri = true; @@ -4873,9 +4793,8 @@ CORBA::Boolean SMESH_MeshEditor_i::IsCoherentOrientation2D() SMESH::array_of_long_array* SMESH_MeshEditor_i::Get1DBranches( SMESH::SMESH_IDSource_ptr theEdges, - CORBA::Long theStartNode, + SMESH::smIdType theStartNode, SMESH::array_of_long_array_out theNodeGroups ) - throw (SALOME::SALOME_Exception) { if ( CORBA::is_nil( theEdges )) THROW_SALOME_CORBA_EXCEPTION("Get1DBranches(): NULL group given", SALOME::BAD_PARAM); @@ -4922,7 +4841,6 @@ SMESH_MeshEditor_i::Get1DBranches( SMESH::SMESH_IDSource_ptr theEdges, SMESH::ListOfEdges* SMESH_MeshEditor_i::FindSharpEdges(CORBA::Double theAngle, CORBA::Boolean theAddExisting) - throw (SALOME::SALOME_Exception) { SMESH::ListOfEdges_var resultEdges = new SMESH::ListOfEdges; SMESH_TRY; @@ -4973,7 +4891,6 @@ SMESH::ListOfEdges* SMESH_MeshEditor_i::FindSharpEdges(CORBA::Double theAngle, //======================================================================= SMESH::ListOfFreeBorders* SMESH_MeshEditor_i::FindFreeBorders(CORBA::Boolean closedOnly) - throw (SALOME::SALOME_Exception) { SMESH::ListOfFreeBorders_var resBorders = new SMESH::ListOfFreeBorders; SMESH_TRY; @@ -5004,7 +4921,6 @@ SMESH::ListOfFreeBorders* SMESH_MeshEditor_i::FindFreeBorders(CORBA::Boolean clo SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::FillHole(const SMESH::FreeBorder& theHole, const char* theGroupName) - throw (SALOME::SALOME_Exception) { initData(); @@ -5200,7 +5116,6 @@ CORBA::Short SMESH_MeshEditor_i:: SewCoincidentFreeBorders(const SMESH::CoincidentFreeBorders& freeBorders, CORBA::Boolean createPolygons, CORBA::Boolean createPolyhedra) - throw (SALOME::SALOME_Exception) { CORBA::Short nbSewed = 0; @@ -5361,15 +5276,14 @@ SewCoincidentFreeBorders(const SMESH::CoincidentFreeBorders& freeBorders, //======================================================================= SMESH::SMESH_MeshEditor::Sew_Error -SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1, - CORBA::Long SecondNodeID1, - CORBA::Long LastNodeID1, - CORBA::Long FirstNodeID2, - CORBA::Long SecondNodeID2, - CORBA::Long LastNodeID2, - CORBA::Boolean CreatePolygons, - CORBA::Boolean CreatePolyedrs) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::SewFreeBorders(SMESH::smIdType FirstNodeID1, + SMESH::smIdType SecondNodeID1, + SMESH::smIdType LastNodeID1, + SMESH::smIdType FirstNodeID2, + SMESH::smIdType SecondNodeID2, + SMESH::smIdType LastNodeID2, + CORBA::Boolean CreatePolygons, + CORBA::Boolean CreatePolyedrs) { SMESH_TRY; initData(); @@ -5428,12 +5342,11 @@ SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1, //======================================================================= SMESH::SMESH_MeshEditor::Sew_Error -SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1, - CORBA::Long SecondNodeID1, - CORBA::Long LastNodeID1, - CORBA::Long FirstNodeID2, - CORBA::Long SecondNodeID2) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::SewConformFreeBorders(SMESH::smIdType FirstNodeID1, + SMESH::smIdType SecondNodeID1, + SMESH::smIdType LastNodeID1, + SMESH::smIdType FirstNodeID2, + SMESH::smIdType SecondNodeID2) { SMESH_TRY; initData(); @@ -5486,14 +5399,13 @@ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1, //======================================================================= SMESH::SMESH_MeshEditor::Sew_Error -SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder, - CORBA::Long SecondNodeIDOnFreeBorder, - CORBA::Long LastNodeIDOnFreeBorder, - CORBA::Long FirstNodeIDOnSide, - CORBA::Long LastNodeIDOnSide, - CORBA::Boolean CreatePolygons, - CORBA::Boolean CreatePolyedrs) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::SewBorderToSide(SMESH::smIdType FirstNodeIDOnFreeBorder, + SMESH::smIdType SecondNodeIDOnFreeBorder, + SMESH::smIdType LastNodeIDOnFreeBorder, + SMESH::smIdType FirstNodeIDOnSide, + SMESH::smIdType LastNodeIDOnSide, + CORBA::Boolean CreatePolygons, + CORBA::Boolean CreatePolyedrs) { SMESH_TRY; initData(); @@ -5549,13 +5461,12 @@ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder, //======================================================================= SMESH::SMESH_MeshEditor::Sew_Error -SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements, - const SMESH::long_array& IDsOfSide2Elements, - CORBA::Long NodeID1OfSide1ToMerge, - CORBA::Long NodeID1OfSide2ToMerge, - CORBA::Long NodeID2OfSide1ToMerge, - CORBA::Long NodeID2OfSide2ToMerge) - throw (SALOME::SALOME_Exception) +SMESH_MeshEditor_i::SewSideElements(const SMESH::smIdType_array& IDsOfSide1Elements, + const SMESH::smIdType_array& IDsOfSide2Elements, + SMESH::smIdType NodeID1OfSide1ToMerge, + SMESH::smIdType NodeID1OfSide2ToMerge, + SMESH::smIdType NodeID2OfSide1ToMerge, + SMESH::smIdType NodeID2OfSide2ToMerge) { SMESH_TRY; initData(); @@ -5609,31 +5520,27 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements, */ //================================================================================ -CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide, - const SMESH::long_array& newIDs) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(SMESH::smIdType ide, + const SMESH::smIdType_array& newIDs) { SMESH_TRY; initData(); const SMDS_MeshElement* elem = getMeshDS()->FindElement(ide); - if(!elem) return false; + if ( !elem ) return false; int nbn = newIDs.length(); - int i=0; vector aNodes(nbn); - int nbn1=-1; - for(; iFindNode(newIDs[i]); - if(aNode) { - nbn1++; - aNodes[nbn1] = aNode; - } + for ( int i = 0; i < nbn; i++ ) { + const SMDS_MeshNode* aNode = getMeshDS()->FindNode( newIDs[ i ]); + if ( !aNode ) + return false; + aNodes[ i ] = aNode; } TPythonDump() << "isDone = " << this << ".ChangeElemNodes( " << ide << ", " << newIDs << " )"; - bool res = getMeshDS()->ChangeElementNodes( elem, & aNodes[0], nbn1+1 ); + bool res = getMeshDS()->ChangeElementNodes( elem, & aNodes[0], aNodes.size() ); declareMeshModified( /*isReComputeSafe=*/ !res ); @@ -5652,7 +5559,6 @@ CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide, void SMESH_MeshEditor_i::convertToQuadratic(CORBA::Boolean theForce3d, CORBA::Boolean theToBiQuad, SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -5684,7 +5590,6 @@ void SMESH_MeshEditor_i::convertToQuadratic(CORBA::Boolean theForce3d //======================================================================= CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic() - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -5704,7 +5609,6 @@ CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic() //======================================================================= void SMESH_MeshEditor_i::ConvertToQuadratic(CORBA::Boolean theForce3d) - throw (SALOME::SALOME_Exception) { convertToQuadratic( theForce3d, false ); TPythonDump() << this << ".ConvertToQuadratic("<GetIDs(); + SMESH::smIdType_array_var anIDs = theIDSource->GetIDs(); if ( anIDs->length() == 0 ) { if ( error ) *error = IDSource_EMPTY; @@ -5939,7 +5840,6 @@ bool SMESH_MeshEditor_i::idSourceToSet(SMESH::SMESH_IDSource_ptr theIDSource, SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleElements(SMESH::SMESH_IDSource_ptr theElements, const char* theGroupName) - throw (SALOME::SALOME_Exception) { SMESH::SMESH_Group_var newGroup; @@ -6005,9 +5905,8 @@ SMESH_MeshEditor_i::DoubleElements(SMESH::SMESH_IDSource_ptr theElements, */ //================================================================================ -CORBA::Boolean SMESH_MeshEditor_i::DoubleNodes( const SMESH::long_array& theNodes, - const SMESH::long_array& theModifiedElems ) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::DoubleNodes( const SMESH::smIdType_array& theNodes, + const SMESH::smIdType_array& theModifiedElems ) { SMESH_TRY; initData(); @@ -6045,12 +5944,11 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodes( const SMESH::long_array& theNode */ //================================================================================ -CORBA::Boolean SMESH_MeshEditor_i::DoubleNode( CORBA::Long theNodeId, - const SMESH::long_array& theModifiedElems ) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::DoubleNode( SMESH::smIdType theNodeId, + const SMESH::smIdType_array& theModifiedElems ) { SMESH_TRY; - SMESH::long_array_var aNodes = new SMESH::long_array; + SMESH::smIdType_array_var aNodes = new SMESH::smIdType_array; aNodes->length( 1 ); aNodes[ 0 ] = theNodeId; @@ -6079,18 +5977,17 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNode( CORBA::Long theNodeI CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroup(SMESH::SMESH_GroupBase_ptr theNodes, SMESH::SMESH_GroupBase_ptr theModifiedElems ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; if ( CORBA::is_nil( theNodes ) && theNodes->GetType() != SMESH::NODE ) return false; - SMESH::long_array_var aNodes = theNodes->GetListOfID(); - SMESH::long_array_var aModifiedElems; + SMESH::smIdType_array_var aNodes = theNodes->GetListOfID(); + SMESH::smIdType_array_var aModifiedElems; if ( !CORBA::is_nil( theModifiedElems ) ) aModifiedElems = theModifiedElems->GetListOfID(); else - aModifiedElems = new SMESH::long_array; + aModifiedElems = new SMESH::smIdType_array; TPythonDump pyDump; // suppress dump by the next line @@ -6118,7 +6015,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroup(SMESH::SMESH_GroupBase_ptr th SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, SMESH::SMESH_GroupBase_ptr theModifiedElems ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::SMESH_Group_var aNewGroup; @@ -6127,12 +6023,12 @@ SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, return aNewGroup._retn(); // Duplicate nodes - SMESH::long_array_var aNodes = theNodes->GetListOfID(); - SMESH::long_array_var aModifiedElems; + SMESH::smIdType_array_var aNodes = theNodes->GetListOfID(); + SMESH::smIdType_array_var aModifiedElems; if ( !CORBA::is_nil( theModifiedElems ) ) aModifiedElems = theModifiedElems->GetListOfID(); else { - aModifiedElems = new SMESH::long_array; + aModifiedElems = new SMESH::smIdType_array; aModifiedElems->length( 0 ); } @@ -6142,7 +6038,7 @@ SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, if ( aResult ) { // Create group with newly created nodes - SMESH::long_array_var anIds = GetLastCreatedNodes(); + SMESH::smIdType_array_var anIds = GetLastCreatedNodes(); if (anIds->length() > 0) { std::string anUnindexedName (theNodes->GetName()); std::string aNewName = GenerateGroupName(anUnindexedName + "_double"); @@ -6174,19 +6070,18 @@ SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroups(const SMESH::ListOfGroups& theNodes, const SMESH::ListOfGroups& theModifiedElems ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); std::list< int > aNodes; - int i, n, j, m; + smIdType i, n, j, m; for ( i = 0, n = theNodes.length(); i < n; i++ ) { SMESH::SMESH_GroupBase_var aGrp = theNodes[ i ]; if ( !CORBA::is_nil( aGrp ) && aGrp->GetType() == SMESH::NODE ) { - SMESH::long_array_var aCurr = aGrp->GetListOfID(); + SMESH::smIdType_array_var aCurr = aGrp->GetListOfID(); for ( j = 0, m = aCurr->length(); j < m; j++ ) aNodes.push_back( aCurr[ j ] ); } @@ -6198,7 +6093,7 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroups(const SMESH::ListOfGroups& t SMESH::SMESH_GroupBase_var aGrp = theModifiedElems[ i ]; if ( !CORBA::is_nil( aGrp ) && aGrp->GetType() != SMESH::NODE ) { - SMESH::long_array_var aCurr = aGrp->GetListOfID(); + SMESH::smIdType_array_var aCurr = aGrp->GetListOfID(); for ( j = 0, m = aCurr->length(); j < m; j++ ) anElems.push_back( aCurr[ j ] ); } @@ -6230,7 +6125,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroups(const SMESH::ListOfGroups& t SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, const SMESH::ListOfGroups& theModifiedElems ) - throw (SALOME::SALOME_Exception) { SMESH::SMESH_Group_var aNewGroup; @@ -6241,7 +6135,7 @@ SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, if ( aResult ) { // Create group with newly created nodes - SMESH::long_array_var anIds = GetLastCreatedNodes(); + SMESH::smIdType_array_var anIds = GetLastCreatedNodes(); if (anIds->length() > 0) { std::string anUnindexedName (theNodes[0]->GetName()); std::string aNewName = GenerateGroupName(anUnindexedName + "_double"); @@ -6271,10 +6165,9 @@ SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, */ //================================================================================ -CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElem( const SMESH::long_array& theElems, - const SMESH::long_array& theNodesNot, - const SMESH::long_array& theAffectedElems ) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElem( const SMESH::smIdType_array& theElems, + const SMESH::smIdType_array& theNodesNot, + const SMESH::smIdType_array& theAffectedElems ) { SMESH_TRY; initData(); @@ -6312,10 +6205,9 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElem( const SMESH::long_array& theE */ //================================================================================ -CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemInRegion ( const SMESH::long_array& theElems, - const SMESH::long_array& theNodesNot, - GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception) +CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemInRegion ( const SMESH::smIdType_array& theElems, + const SMESH::smIdType_array& theNodesNot, + GEOM::GEOM_Object_ptr theShape ) { SMESH_TRY; initData(); @@ -6356,7 +6248,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroup(SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems) - throw (SALOME::SALOME_Exception) { SMESH_TRY; if ( CORBA::is_nil( theElems ) && theElems->GetType() == SMESH::NODE ) @@ -6401,7 +6292,6 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupNew(SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems) - throw (SALOME::SALOME_Exception) { TPythonDump pyDump; SMESH::ListOfGroups_var twoGroups = DoubleNodeElemGroup2New( theElems, @@ -6438,7 +6328,6 @@ SMESH_MeshEditor_i::DoubleNodeElemGroup2New(SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theAffectedElems, CORBA::Boolean theElemGroupNeeded, CORBA::Boolean theNodeGroupNeeded) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::SMESH_Group_var aNewElemGroup, aNewNodeGroup; @@ -6471,14 +6360,14 @@ SMESH_MeshEditor_i::DoubleNodeElemGroup2New(SMESH::SMESH_GroupBase_ptr theElems, std::string aNewName = GenerateGroupName( std::string(elemGroupName.in()) + "_double"); if ( !getEditor().GetLastCreatedElems().empty() && theElemGroupNeeded ) { - SMESH::long_array_var anIds = GetLastCreatedElems(); + SMESH::smIdType_array_var anIds = GetLastCreatedElems(); SMESH::ElementType aGroupType = myMesh_i->GetElementType(anIds[0], true); aNewElemGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); aNewElemGroup->Add(anIds); } if ( !getEditor().GetLastCreatedNodes().empty() && theNodeGroupNeeded ) { - SMESH::long_array_var anIds = GetLastCreatedNodes(); + SMESH::smIdType_array_var anIds = GetLastCreatedNodes(); aNewNodeGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); aNewNodeGroup->Add(anIds); } @@ -6523,7 +6412,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroupInRegion(SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; if ( CORBA::is_nil( theElems ) && theElems->GetType() == SMESH::NODE ) @@ -6573,7 +6461,7 @@ static void listOfGroupToSet(const SMESH::ListOfGroups& theGrpList, if ( !CORBA::is_nil( aGrp ) && (theIsNodeGrp ? aGrp->GetType() == SMESH::NODE : aGrp->GetType() != SMESH::NODE ) ) { - SMESH::long_array_var anIDs = aGrp->GetIDs(); + SMESH::smIdType_array_var anIDs = aGrp->GetIDs(); arrayToSet( anIDs, theMeshDS, theElemSet, theIsNodeGrp ? SMDSAbs_Node : SMDSAbs_All ); } } @@ -6596,7 +6484,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroups(const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -6638,7 +6525,6 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupsNew(const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems) - throw (SALOME::SALOME_Exception) { TPythonDump pyDump; SMESH::ListOfGroups_var twoGroups = DoubleNodeElemGroups2New( theElems, @@ -6675,7 +6561,6 @@ SMESH_MeshEditor_i::DoubleNodeElemGroups2New(const SMESH::ListOfGroups& theElems const SMESH::ListOfGroups& theAffectedElems, CORBA::Boolean theElemGroupNeeded, CORBA::Boolean theNodeGroupNeeded) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::SMESH_Group_var aNewElemGroup, aNewNodeGroup; @@ -6703,14 +6588,14 @@ SMESH_MeshEditor_i::DoubleNodeElemGroups2New(const SMESH::ListOfGroups& theElems std::string aNewName = GenerateGroupName( std::string(elemGroupName.in()) + "_double"); if ( !getEditor().GetLastCreatedElems().empty() && theElemGroupNeeded ) { - SMESH::long_array_var anIds = GetLastCreatedElems(); + SMESH::smIdType_array_var anIds = GetLastCreatedElems(); SMESH::ElementType aGroupType = myMesh_i->GetElementType(anIds[0], true); aNewElemGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); aNewElemGroup->Add(anIds); } if ( !getEditor().GetLastCreatedNodes().empty() && theNodeGroupNeeded ) { - SMESH::long_array_var anIds = GetLastCreatedNodes(); + SMESH::smIdType_array_var anIds = GetLastCreatedNodes(); aNewNodeGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); aNewNodeGroup->Add(anIds); } @@ -6756,7 +6641,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroupsInRegion(const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -6787,7 +6671,7 @@ SMESH_MeshEditor_i::DoubleNodeElemGroupsInRegion(const SMESH::ListOfGroups& theE duplication is not performed. This method is the first step of DoubleNodeElemGroupsInRegion. \param theElems - list of groups of elements (edges or faces) to be replicated - \param theNodesNot - list of groups of nodes not to replicated + \param theNodesNot - list of groups of nodes not to replicate \param theShape - shape to detect affected elements (element which geometric center located on or inside shape). The replicated nodes should be associated to affected elements. @@ -6799,7 +6683,6 @@ SMESH::ListOfGroups* SMESH_MeshEditor_i::AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; SMESH::ListOfGroups_var aListOfGroups = new SMESH::ListOfGroups(); @@ -6826,9 +6709,9 @@ SMESH_MeshEditor_i::AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theEl TPythonDump pyDump; if ( aResult && anAffected.size() > 0 ) { - SMESH::long_array_var volumeIds = new SMESH::long_array; - SMESH::long_array_var faceIds = new SMESH::long_array; - SMESH::long_array_var edgeIds = new SMESH::long_array; + SMESH::smIdType_array_var volumeIds = new SMESH::smIdType_array; + SMESH::smIdType_array_var faceIds = new SMESH::smIdType_array; + SMESH::smIdType_array_var edgeIds = new SMESH::smIdType_array; volumeIds->length( anAffected.size() ); faceIds ->length( anAffected.size() ); edgeIds ->length( anAffected.size() ); @@ -6840,7 +6723,7 @@ SMESH_MeshEditor_i::AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theEl for (; eIt != anAffected.end(); ++eIt) { const SMDS_MeshElement* anElem = *eIt; - int elemId = anElem->GetID(); + smIdType elemId = anElem->GetID(); switch ( anElem->GetType() ) { case SMDSAbs_Volume: volumeIds[ivol++] = elemId; break; case SMDSAbs_Face: faceIds[iface++] = elemId; break; @@ -6899,7 +6782,6 @@ SMESH_MeshEditor_i::AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theEl //================================================================================ CORBA::Boolean SMESH_MeshEditor_i::Make2DMeshFrom3D() - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -6941,7 +6823,6 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodesOnGroupBoundaries( const SMESH::ListOfGroups& theDomains, CORBA::Boolean createJointElems, CORBA::Boolean onAllBoundaries ) - throw (SALOME::SALOME_Exception) { bool isOK = false; @@ -6964,7 +6845,7 @@ SMESH_MeshEditor_i::DoubleNodesOnGroupBoundaries( const SMESH::ListOfGroups& the { // if ( aGrp->GetType() != SMESH::VOLUME ) // THROW_SALOME_CORBA_EXCEPTION("Not a volume group", SALOME::BAD_PARAM); - SMESH::long_array_var anIDs = aGrp->GetIDs(); + SMESH::smIdType_array_var anIDs = aGrp->GetIDs(); arrayToSet( anIDs, aMeshDS, domains[ i ], SMDSAbs_All ); } } @@ -6999,7 +6880,6 @@ SMESH_MeshEditor_i::DoubleNodesOnGroupBoundaries( const SMESH::ListOfGroups& the CORBA::Boolean SMESH_MeshEditor_i::CreateFlatElementsOnFacesGroups( const SMESH::ListOfGroups& theGroupsOfFaces ) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -7017,7 +6897,7 @@ SMESH_MeshEditor_i::CreateFlatElementsOnFacesGroups( const SMESH::ListOfGroups& TIDSortedElemSet faceGroup; faceGroup.clear(); faceGroups.push_back(faceGroup); - SMESH::long_array_var anIDs = aGrp->GetIDs(); + SMESH::smIdType_array_var anIDs = aGrp->GetIDs(); arrayToSet( anIDs, aMeshDS, faceGroups[ i ], SMDSAbs_All ); } } @@ -7052,7 +6932,6 @@ void SMESH_MeshEditor_i::CreateHoleSkin(CORBA::Double radius, const char* groupName, const SMESH::double_array& theNodesCoords, SMESH::array_of_long_array_out GroupsOfNodes) - throw (SALOME::SALOME_Exception) { SMESH_TRY; @@ -7120,7 +6999,6 @@ SMESH_MeshEditor_i::MakeBoundaryMesh(SMESH::SMESH_IDSource_ptr idSource, CORBA::Boolean toCopyElements, CORBA::Boolean toCopyExistingBondary, SMESH::SMESH_Group_out group) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -7217,7 +7095,6 @@ CORBA::Long SMESH_MeshEditor_i::MakeBoundaryElements(SMESH::Bnd_Dimension dim, const SMESH::ListOfIDSources& groups, SMESH::SMESH_Mesh_out mesh, SMESH::SMESH_Group_out group) - throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); @@ -7372,7 +7249,6 @@ CORBA::Long SMESH_MeshEditor_i::MakeBoundaryElements(SMESH::Bnd_Dimension dim, void SMESH_MeshEditor_i::MakePolyLine(SMESH::ListOfPolySegments& theSegments, const char* theGroupName) - throw (SALOME::SALOME_Exception) { if ( theSegments.length() == 0 ) THROW_SALOME_CORBA_EXCEPTION("No segments given", SALOME::BAD_PARAM ); @@ -7394,16 +7270,16 @@ void SMESH_MeshEditor_i::MakePolyLine(SMESH::ListOfPolySegments& theSegments, } else if ( theGroupName[0] ) // find/create a group of segments { - SMESH_Mesh::GroupIteratorPtr grpIt = myMesh->GetGroups(); - while ( !groupDS && grpIt->more() ) - { - SMESH_Group* group = grpIt->next(); - if ( group->GetGroupDS()->GetType() == SMDSAbs_Edge && - strcmp( group->GetName(), theGroupName ) == 0 ) - { - groupDS = dynamic_cast< SMESHDS_Group* >( group->GetGroupDS() ); - } - } + // SMESH_Mesh::GroupIteratorPtr grpIt = myMesh->GetGroups(); + // while ( !groupDS && grpIt->more() ) + // { + // SMESH_Group* group = grpIt->next(); + // if ( group->GetGroupDS()->GetType() == SMDSAbs_Edge && + // strcmp( group->GetName(), theGroupName ) == 0 ) + // { + // groupDS = dynamic_cast< SMESHDS_Group* >( group->GetGroupDS() ); + // } + // } if ( !groupDS ) { SMESH::SMESH_Group_var groupVar = myMesh_i->CreateGroup( SMESH::EDGE, theGroupName ); @@ -7490,7 +7366,7 @@ void SMESH_MeshEditor_i::MakePolyLine(SMESH::ListOfPolySegments& theSegments, //================================================================================ /*! * \brief Create a slot of given width around given 1D elements lying on a triangle mesh. - * The slot is consrtucted by cutting faces by cylindrical surfaces made + * The slot is constructed by cutting faces by cylindrical surfaces made * around each segment. Segments are expected to be created by MakePolyLine(). * \return Edges located at the slot boundary */ @@ -7498,7 +7374,6 @@ void SMESH_MeshEditor_i::MakePolyLine(SMESH::ListOfPolySegments& theSegments, SMESH::ListOfEdges* SMESH_MeshEditor_i::MakeSlot(SMESH::SMESH_GroupBase_ptr theSegments, CORBA::Double theWidth) - throw (SALOME::SALOME_Exception) { if ( CORBA::is_nil( theSegments ) || theSegments->GetType() != SMESH::EDGE ) @@ -7513,9 +7388,18 @@ SMESH::ListOfEdges* SMESH_MeshEditor_i::MakeSlot(SMESH::SMESH_GroupBase_ptr theS SMESHDS_Mesh* meshDS = getMeshDS(); + // get standalone face groups to be updated + std::vector< SMDS_MeshGroup* > faceGroups; + const std::set& allGroups = meshDS->GetGroups(); + std::set::const_iterator grIt = allGroups.begin(); + for ( ; grIt != allGroups.end(); ++grIt ) + if ( const SMESHDS_Group* gr = dynamic_cast< const SMESHDS_Group* >( *grIt )) + if ( gr->GetType() == SMDSAbs_Face ) + faceGroups.push_back( & const_cast< SMESHDS_Group* >( gr )->SMDSGroup() ); + std::vector< SMESH_MeshAlgos::Edge > edges = SMESH_MeshAlgos::MakeSlot( SMESH_Mesh_i::GetElements( theSegments, SMESH::EDGE ), - theWidth, meshDS ); + theWidth, meshDS, faceGroups ); resultEdges->length( edges.size() ); for ( size_t i = 0; i < edges.size(); ++i )