mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-12 00:29:17 +05:00
22252: EDF 2684 SMESH: Extrusion along a path with a curvilinear edge
Allow selecting any node as a Base Point
This commit is contained in:
parent
e7dbe802e0
commit
667c4a210e
@ -883,7 +883,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::SelectionIntoArgument()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QString aString;
|
QString aString;
|
||||||
int aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myMeshActor->getIO(), aString);
|
int aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||||
// return if more than one node is selected
|
// return if more than one node is selected
|
||||||
if (aNbUnits != 1)
|
if (aNbUnits != 1)
|
||||||
return;
|
return;
|
||||||
@ -978,17 +978,15 @@ void SMESHGUI_ExtrusionAlongPathDlg::SetEditCurrentArgument (QToolButton* button
|
|||||||
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
|
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
|
||||||
aViewWindow->SetSelectionMode(NodeSelection);
|
aViewWindow->SetSelectionMode(NodeSelection);
|
||||||
|
|
||||||
SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter(SMESH::MESHorSUBMESH);
|
SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter(SMESH::IDSOURCE);
|
||||||
SMESH_TypeFilter* aSmeshGroupFilter = new SMESH_TypeFilter(SMESH::GROUP);
|
|
||||||
SMESH_NumberFilter* aVertexFilter = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE,
|
SMESH_NumberFilter* aVertexFilter = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE,
|
||||||
-1, TopAbs_VERTEX);
|
-1, TopAbs_VERTEX);
|
||||||
QList<SUIT_SelectionFilter*> aListOfFilters;
|
QList<SUIT_SelectionFilter*> aListOfFilters;
|
||||||
if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
|
if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
|
||||||
if (aSmeshGroupFilter) aListOfFilters.append(aSmeshGroupFilter);
|
|
||||||
if (aVertexFilter) aListOfFilters.append(aVertexFilter);
|
if (aVertexFilter) aListOfFilters.append(aVertexFilter);
|
||||||
|
|
||||||
mySelectionMgr->installFilter(new SMESH_LogicalFilter
|
mySelectionMgr->installFilter(new SMESH_LogicalFilter
|
||||||
(aListOfFilters, SMESH_LogicalFilter::LO_OR));
|
(aListOfFilters, SMESH_LogicalFilter::LO_OR, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myEditCurrentArgument && !myEditCurrentArgument->hasFocus())
|
if (myEditCurrentArgument && !myEditCurrentArgument->hasFocus())
|
||||||
@ -1277,9 +1275,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::onDisplaySimulation( bool toDisplayPreview
|
|||||||
SMESH::SMESH_MeshEditor::Extrusion_Error retVal;
|
SMESH::SMESH_MeshEditor::Extrusion_Error retVal;
|
||||||
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer();
|
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer();
|
||||||
bool NeedGroups = false;
|
bool NeedGroups = false;
|
||||||
SMESH::ElementType ElemType = SMESH::FACE;
|
SMESH::ElementType ElemType = ( GetConstructorId() == 0 ) ? SMESH::EDGE : SMESH::FACE;
|
||||||
if( GetConstructorId() == 0 )
|
|
||||||
ElemType = SMESH::EDGE;
|
|
||||||
if( !MeshCheck->isChecked() ) {
|
if( !MeshCheck->isChecked() ) {
|
||||||
aMeshEditor->ExtrusionAlongPathX(anElementsId, myPath, aNodeStart, AnglesGrp->isChecked(),
|
aMeshEditor->ExtrusionAlongPathX(anElementsId, myPath, aNodeStart, AnglesGrp->isChecked(),
|
||||||
anAngles, LinearAnglesCheck->isChecked(),
|
anAngles, LinearAnglesCheck->isChecked(),
|
||||||
@ -1294,7 +1290,6 @@ void SMESHGUI_ExtrusionAlongPathDlg::onDisplaySimulation( bool toDisplayPreview
|
|||||||
NeedGroups, ElemType, retVal);
|
NeedGroups, ElemType, retVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
wc.suspend();
|
|
||||||
if( retVal == SMESH::SMESH_MeshEditor::EXTR_OK ) {
|
if( retVal == SMESH::SMESH_MeshEditor::EXTR_OK ) {
|
||||||
SMESH::MeshPreviewStruct_var aMeshPreviewStruct = aMeshEditor->GetPreviewData();
|
SMESH::MeshPreviewStruct_var aMeshPreviewStruct = aMeshEditor->GetPreviewData();
|
||||||
mySimulation->SetData(aMeshPreviewStruct._retn());
|
mySimulation->SetData(aMeshPreviewStruct._retn());
|
||||||
|
Loading…
Reference in New Issue
Block a user