X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_AddQuadraticElementDlg.cxx;h=4193be407c39abb92198d6e1f6867f1f2446423f;hp=5cfddb9ce8850d6010519951a9d9cb24e90ef2fb;hb=2077baef82667760cb5fdc79454203a10d457d38;hpb=7a65c9fad427b1ccba6b9ccae612296e5092a324 diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx index 5cfddb9ce..4193be407 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-2016 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,7 +540,7 @@ void SMESHGUI_AddQuadraticElementDlg::Init() myNbMidFaceNodes = 0; myNbCenterNodes = 0; - int aNumRows; + int aNumRows = 0; switch (myGeomType) { case SMDSEntity_Quad_Edge: @@ -587,6 +590,12 @@ void SMESHGUI_AddQuadraticElementDlg::Init() myNbCorners = 6; myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons break; + case SMDSEntity_BiQuad_Penta: + aNumRows = 9; + myNbCorners = 6; + myNbMidFaceNodes = 3; + myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons + break; case SMDSEntity_Quad_Hexa: aNumRows = 12; myNbCorners = 8; @@ -599,6 +608,7 @@ void SMESHGUI_AddQuadraticElementDlg::Init() myNbCenterNodes = 1; myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_hexahedrons break; + default:; } myMidFaceLabel ->setVisible( myNbMidFaceNodes ); @@ -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,6 +735,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() anIds.push_back( aListId[ 0 ].toInt() ); } break; + default:; } if ( myReverseCB->isChecked()) ReverseConnectivity( anIds, myGeomType, /*toReverse=*/true, /*toVtkOrder=*/false ); @@ -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; @@ -849,6 +862,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply() case SMESH::VOLUME: myActor->SetRepresentation(SMESH_Actor::eSurface); myActor->SetEntityMode( aMode |= SMESH_Actor::eVolumes ); break; + default:; } } @@ -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(); @@ -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