From 4052b4754ab7ad7d8ce269850c534416c165cae6 Mon Sep 17 00:00:00 2001 From: dmv Date: Mon, 19 May 2008 07:01:31 +0000 Subject: [PATCH] IPAL19097: NPAL16768 is not implemented for "Normal to a face" --- src/MeasureGUI/MeasureGUI_NormaleDlg.cxx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx b/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx index 4bc7beb43..02503996e 100644 --- a/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx @@ -185,6 +185,27 @@ void MeasureGUI_NormaleDlg::SelectionIntoArgument() QString aName = GEOMBase::GetName(aSelectedObject); if (myEditCurrentArgument == GroupArgs->LineEdit1) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(firstIObject(), aMap); + if (aMap.Extent() == 1) // Local Selection + { + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + int anIndex = aMap( 1 ); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + aName += QString(":face_%1").arg(anIndex); + } + else // Global Selection + { + if (aShape.ShapeType() != TopAbs_FACE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } myFace = aSelectedObject; } else if (myEditCurrentArgument == GroupArgs->LineEdit2) { @@ -243,6 +264,7 @@ void MeasureGUI_NormaleDlg::SetEditCurrentArgument() if (send == GroupArgs->PushButton1) { myEditCurrentArgument = GroupArgs->LineEdit1; + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); } else if (send == GroupArgs->PushButton2) { myEditCurrentArgument = GroupArgs->LineEdit2; -- 2.39.2