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, true, 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();
}
//=================================================================================
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, true);
+ 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 );
+ std::list<int> needTypes;
+ needTypes.push_back( TopAbs_SHAPE ), needTypes.push_back( TopAbs_VERTEX ), needTypes.push_back( TopAbs_EDGE );
+ needTypes.push_back( TopAbs_WIRE ), needTypes.push_back( TopAbs_FACE ), needTypes.push_back( TopAbs_SHELL );
+ needTypes.push_back( TopAbs_SOLID ), needTypes.push_back( TopAbs_COMPSOLID ), needTypes.push_back( TopAbs_COMPOUND );
+ localSelection(GEOM::GEOM_Object::_nil(), needTypes );
+}
+
//=================================================================================
// function : redisplayPreview()
// purpose :
catch (...) {
}
}
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose : virtual method to add new SubObjects if local selection
+//=================================================================================
+void MeasureGUI_BndBoxDlg::addSubshapesToStudy()
+{
+ GEOMBase::PublishSubObject( myObj.get() );
+}