-// Copyright (C) 2007-2013 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
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
this, SLOT(SelectionIntoArgument()));
initName(tr("GEOM_BNDBOX"));
- globalSelection();
+ activateSelection();
SelectionIntoArgument();
}
return false;
initName();
+ activateSelection();
return true;
}
connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
this, SLOT(SelectionIntoArgument()));
- globalSelection();
+ activateSelection();
redisplayPreview();
}
double& theYmin, double& theYmax,
double& theZmin, double& theZmax)
{
- if (myObj->_is_nil())
+ if (!myObj)
return false;
GEOM::GEOM_IMeasureOperations_var anOper = GEOM::GEOM_IMeasureOperations::_narrow(getOperation());
- anOper->GetBoundingBox(myObj, theXmin, theXmax, theYmin, theYmax, theZmin, theZmax);
+ anOper->GetBoundingBox(myObj.get(), true, theXmin, theXmax, theYmin, theYmax, theZmin, theZmax);
return anOper->IsDone();
}
void MeasureGUI_BndBoxDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
- myObj = GEOM::GEOM_Object::_nil();
+ myObj.nullify();
- LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
- SALOME_ListIO aSelList;
- aSelMgr->selectedObjects(aSelList);
+ QList<TopAbs_ShapeEnum> aTypes;
+ aTypes << TopAbs_VERTEX << TopAbs_EDGE << TopAbs_WIRE << TopAbs_FACE << TopAbs_SHELL << TopAbs_SOLID << TopAbs_COMPSOLID << TopAbs_COMPOUND << TopAbs_SHAPE;
+ myObj = getSelected( aTypes );
- if (aSelList.Extent() != 1) {
+ if ( !myObj ) {
processObject();
erasePreview();
return;
}
- GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First());
-
- if (aSelectedObject->_is_nil()) {
- processObject();
- erasePreview();
- return;
- }
-
- myObj = aSelectedObject;
- myEditCurrentArgument->setText(GEOMBase::GetName(myObj));
+ myEditCurrentArgument->setText(GEOMBase::GetName(myObj.get()));
processObject();
redisplayPreview();
}
//=================================================================================
GEOM::GEOM_IOperations_ptr MeasureGUI_BndBoxDlg::createOperation()
{
- return getGeomEngine()->GetIMeasureOperations(getStudyId());
+ return getGeomEngine()->GetIMeasureOperations();
}
//=================================================================================
//=================================================================================
bool MeasureGUI_BndBoxDlg::isValid (QString&)
{
- return !myObj->_is_nil();
+ return myObj;
}
//=================================================================================
bool MeasureGUI_BndBoxDlg::execute (ObjectList& objects)
{
GEOM::GEOM_IMeasureOperations_var anOper = GEOM::GEOM_IMeasureOperations::_narrow(getOperation());
- GEOM::GEOM_Object_var anObj = anOper->MakeBoundingBox(myObj);
+ GEOM::GEOM_Object_var anObj = anOper->MakeBoundingBox(myObj.get(), true);
if (!anObj->_is_nil())
objects.push_back(anObj._retn());
return true;
}
+//=================================================================================
+// function : activateSelection()
+// purpose :
+//=================================================================================
+void MeasureGUI_BndBoxDlg::activateSelection()
+{
+ globalSelection( GEOM_ALLSHAPES );
+ localSelection( TopAbs_SHAPE );
+}
+
//=================================================================================
// function : redisplayPreview()
// purpose :
erasePreview(false);
try {
- SUIT_OverrideCursor();
+ SUIT_OverrideCursor wc;
getDisplayer()->SetColor(Quantity_NOC_VIOLET);
getDisplayer()->SetToActivate(false);
catch (const SALOME::SALOME_Exception& e) {
SalomeApp_Tools::QtCatchCorbaException(e);
}
+ catch (...) {
+ }
+}
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose : virtual method to add new SubObjects if local selection
+//=================================================================================
+void MeasureGUI_BndBoxDlg::addSubshapesToStudy()
+{
+ GEOMBase::PublishSubObject( myObj.get() );
+}
+
+//=================================================================================
+// function : getSourceObjects
+// purpose : virtual method to get source objects
+//=================================================================================
+QList<GEOM::GeomObjPtr> MeasureGUI_BndBoxDlg::getSourceObjects()
+{
+ QList<GEOM::GeomObjPtr> res;
+ res << myObj;
+ return res;
}