X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_AddQuadraticElementDlg.cxx;h=d6fe5d426dcd5dc1d83281ee41bb11cc01ee2075;hp=5cfddb9ce8850d6010519951a9d9cb24e90ef2fb;hb=8d297d6698f361d4f2dde723050bcfbaea050920;hpb=23d90107acec5e54ded86d9f309fe5cb42720b78 diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx index 5cfddb9ce..d6fe5d426 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,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,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:; } } @@ -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(); @@ -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