X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_AddQuadraticElementDlg.cxx;h=937a1f241801e1bf90c6323d43758dd89402f8df;hp=5cfddb9ce8850d6010519951a9d9cb24e90ef2fb;hb=refs%2Ftags%2FV9_7_0a1;hpb=193c49c87753b6ccabb2b5e6dc935aa480d2d43e diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx index 5cfddb9ce..937a1f241 100644 --- a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -118,8 +118,8 @@ namespace static int FirstHexahedronIds[] = {0,1,2,3,4,5,6,7,0,1,2,3}; static int LastHexahedronIds[] = {1,2,3,0,5,6,7,4,4,5,6,7}; - static vector FirstPolygonIds; - static vector LastPolygonIds; + static std::vector FirstPolygonIds; + static std::vector LastPolygonIds; void ReverseConnectivity( std::vector & ids, SMDSAbs_EntityType type, bool toReverse, // inverse element @@ -338,8 +338,8 @@ SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theM : QDialog( SMESH::GetDesktop( theModule ) ), mySMESHGUI( theModule ), mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ), - myGeomType( theType ), - myBusy( false ) + myBusy( false ), + myGeomType( theType ) { setModal( false ); setAttribute( Qt::WA_DeleteOnClose, true ); @@ -380,6 +380,9 @@ SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theM case SMDSEntity_Quad_Penta: anElementName = QString("QUADRATIC_PENTAHEDRON"); break; + case SMDSEntity_BiQuad_Penta: + anElementName = QString("BIQUADRATIC_PENTAHEDRON"); + break; case SMDSEntity_Quad_Hexa: anElementName = QString("QUADRATIC_HEXAHEDRON"); break; @@ -537,68 +540,75 @@ void SMESHGUI_AddQuadraticElementDlg::Init() myNbMidFaceNodes = 0; myNbCenterNodes = 0; - int aNumRows; + int aNumRows = 0; switch (myGeomType) { case SMDSEntity_Quad_Edge: aNumRows = 1; myNbCorners = 2; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_edges + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_edges break; case SMDSEntity_Quad_Triangle: aNumRows = 3; myNbCorners = 3; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_triangles + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_triangles break; case SMDSEntity_BiQuad_Triangle: aNumRows = 3; myNbCorners = 3; myNbCenterNodes = 1; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_triangles + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_triangles break; case SMDSEntity_Quad_Quadrangle: aNumRows = 4; myNbCorners = 4; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_quadrangles + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_quadrangles break; case SMDSEntity_BiQuad_Quadrangle: aNumRows = 4; myNbCorners = 4; myNbCenterNodes = 1; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_quadrangles + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_quadrangles break; case SMDSEntity_Quad_Polygon: aNumRows = 5; myNbCorners = 0; // no limit - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_polygons + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_polygons break; case SMDSEntity_Quad_Tetra: aNumRows = 6; myNbCorners = 4; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_tetrahedrons + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_tetrahedrons break; case SMDSEntity_Quad_Pyramid: aNumRows = 8; myNbCorners = 5; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pyramids + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_pyramids break; case SMDSEntity_Quad_Penta: aNumRows = 9; myNbCorners = 6; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_pentahedrons + break; + case SMDSEntity_BiQuad_Penta: + aNumRows = 9; + myNbCorners = 6; + myNbMidFaceNodes = 3; + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_pentahedrons break; case SMDSEntity_Quad_Hexa: aNumRows = 12; myNbCorners = 8; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_hexahedrons + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_hexahedrons break; case SMDSEntity_TriQuad_Hexa: aNumRows = 12; myNbCorners = 8; myNbMidFaceNodes = 6; myNbCenterNodes = 1; - myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_hexahedrons + myHelpFileName = "adding_quadratic_elements.html#?"; //Adding_hexahedrons break; + default:; } myMidFaceLabel ->setVisible( myNbMidFaceNodes ); @@ -685,7 +695,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() if( !isValid() ) return false; - if ( mySMESHGUI->isActiveStudyLocked() || myBusy || !IsValid() ) + if ( SMESHGUI::isStudyLocked() || myBusy || !IsValid() ) return false; BusyLocker lock( myBusy ); @@ -706,6 +716,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() case SMDSEntity_Quad_Tetra: case SMDSEntity_Quad_Pyramid: case SMDSEntity_Quad_Penta: + case SMDSEntity_BiQuad_Penta: case SMDSEntity_Quad_Hexa: case SMDSEntity_TriQuad_Hexa: for ( int row = 0; row < myNbCorners; row++ ) @@ -724,12 +735,13 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() anIds.push_back( aListId[ 0 ].toInt() ); } break; + default:; } if ( myReverseCB->isChecked()) ReverseConnectivity( anIds, myGeomType, /*toReverse=*/true, /*toVtkOrder=*/false ); int aNumberOfIds = anIds.size(); - SMESH::long_array_var anArrayOfIdeces = new SMESH::long_array; + SMESH::smIdType_array_var anArrayOfIdeces = new SMESH::smIdType_array; anArrayOfIdeces->length( aNumberOfIds ); for (int i = 0; i < aNumberOfIds; i++) @@ -766,7 +778,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() } } - SMESH::ElementType anElementType; + SMESH::ElementType anElementType = SMESH::ALL; long anElemId = -1, nbElemsBefore = 0; SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); switch (myGeomType) { @@ -788,6 +800,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() case SMDSEntity_Quad_Tetra: case SMDSEntity_Quad_Pyramid: case SMDSEntity_Quad_Penta: + case SMDSEntity_BiQuad_Penta: case SMDSEntity_Quad_Hexa: case SMDSEntity_TriQuad_Hexa: anElementType = SMESH::VOLUME; @@ -828,7 +841,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() } if ( !aGroupUsed->_is_nil() ) { - SMESH::long_array_var anIdList = new SMESH::long_array; + SMESH::smIdType_array_var anIdList = new SMESH::smIdType_array; anIdList->length( 1 ); anIdList[0] = anElemId; aGroupUsed->Add( anIdList.inout() ); @@ -849,6 +862,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() case SMESH::VOLUME: myActor->SetRepresentation(SMESH_Actor::eSurface); myActor->SetEntityMode( aMode |= SMESH_Actor::eVolumes ); break; + default:; } } @@ -963,7 +977,7 @@ void SMESHGUI_AddQuadraticElementDlg::onTextChange (const QString& theNewText) mySimulation->SetVisibility(false); - // hilight entered nodes + // highlight entered nodes SMDS_Mesh* aMesh = 0; if (myActor) aMesh = myActor->GetObject()->GetMesh(); @@ -975,7 +989,7 @@ void SMESHGUI_AddQuadraticElementDlg::onTextChange (const QString& theNewText) myCurrentLineEdit = send; if (aMesh) { - TColStd_MapOfInteger newIndices; + SVTK_TVtkIDsMap newIndices; QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts); bool allOk = true; @@ -1052,7 +1066,7 @@ void SMESHGUI_AddQuadraticElementDlg::SelectionIntoArgument() // process groups if ( !myMesh->_is_nil() && myEntry != aCurrentEntry ) { - SMESH::ElementType anElementType; + SMESH::ElementType anElementType = SMESH::ALL; switch ( myGeomType ) { case SMDSEntity_Quad_Edge: anElementType = SMESH::EDGE; break; @@ -1065,9 +1079,11 @@ void SMESHGUI_AddQuadraticElementDlg::SelectionIntoArgument() case SMDSEntity_Quad_Tetra: case SMDSEntity_Quad_Pyramid: case SMDSEntity_Quad_Penta: + case SMDSEntity_BiQuad_Penta: case SMDSEntity_Quad_Hexa: case SMDSEntity_TriQuad_Hexa: anElementType = SMESH::VOLUME; break; + default:; } myGroups.clear(); ComboBox_GroupName->clear(); @@ -1258,7 +1274,7 @@ void SMESHGUI_AddQuadraticElementDlg::enterEvent (QEvent*) // purpose : //================================================================================= -void SMESHGUI_AddQuadraticElementDlg::onReverse (int state) +void SMESHGUI_AddQuadraticElementDlg::onReverse (int /*state*/) { mySimulation->SetVisibility(false); displaySimulation(); @@ -1309,7 +1325,7 @@ bool SMESHGUI_AddQuadraticElementDlg::IsValid() okIDs.insert( anID ); } - return okIDs.size() == myTable->rowCount() + myNbMidFaceNodes + myNbCenterNodes; + return (int) okIDs.size() == myTable->rowCount() + myNbMidFaceNodes + myNbCenterNodes; } //================================================================================= @@ -1367,8 +1383,8 @@ void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity ) for ( int row = 0; row < myTable->rowCount(); row++ ) myTable->item( row, 1 )->setText(""); - int* aFirstColIds; - int* aLastColIds; + int* aFirstColIds = 0; + int* aLastColIds = 0; switch (myGeomType) { case SMDSEntity_Quad_Edge: @@ -1398,6 +1414,7 @@ void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity ) aLastColIds = LastPyramidIds; break; case SMDSEntity_Quad_Penta: + case SMDSEntity_BiQuad_Penta: aFirstColIds = FirstPentahedronIds; aLastColIds = LastPentahedronIds; break; @@ -1406,6 +1423,7 @@ void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity ) aFirstColIds = FirstHexahedronIds; aLastColIds = LastHexahedronIds; break; + default:; } // fill the First and the Last columns @@ -1431,7 +1449,7 @@ void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity ) // purpose : //================================================================================= -void SMESHGUI_AddQuadraticElementDlg::onCellDoubleClicked( int theRow, int theCol ) +void SMESHGUI_AddQuadraticElementDlg::onCellDoubleClicked( int /*theRow*/, int /*theCol*/ ) { myCurrentLineEdit = 0; displaySimulation(); @@ -1443,7 +1461,7 @@ void SMESHGUI_AddQuadraticElementDlg::onCellDoubleClicked( int theRow, int theCo // purpose : //================================================================================= -void SMESHGUI_AddQuadraticElementDlg::onCellTextChange(int theRow, int theCol) +void SMESHGUI_AddQuadraticElementDlg::onCellTextChange(int /*theRow*/, int /*theCol*/) { myCurrentLineEdit = 0; displaySimulation();