return aPresentations;
}
+Handle(AIS_InteractiveObject) XGUI_Selection::getIO(const ModuleBase_ViewerPrs& thePrs)
+{
+ Handle(AIS_InteractiveObject) anIO = thePrs.interactive();
+ if (anIO.IsNull()) {
+ Handle(SelectMgr_EntityOwner) anOwner = thePrs.owner();
+ if (!anOwner.IsNull())
+ anIO = Handle(AIS_InteractiveObject)::DownCast(anOwner->Selectable());
+
+ if (anIO.IsNull() && thePrs.object()) {
+ XGUI_Displayer* aDisplayer = myWorkshop->displayer();
+ AISObjectPtr anAISObject = aDisplayer->getAISObject(thePrs.object());
+ if (anAISObject.get())
+ anIO = anAISObject->impl<Handle(AIS_InteractiveObject)>();
+ }
+ }
+ return anIO;
+}
+
void XGUI_Selection::getSelectedInViewer(QList<ModuleBase_ViewerPrs>& thePresentations) const
{
Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
// we should not check the appearance of this feature because there can be some selected shapes
// for one feature
Handle(StdSelect_BRepOwner) aBRO = Handle(StdSelect_BRepOwner)::DownCast(theOwner);
- if( !aBRO.IsNull() ) {
+ if( !aBRO.IsNull() && aBRO->HasShape() ) {
// the located method is called in the context to obtain the shape by the SelectedShape() method,
// so the shape is located by the same rules
TopoDS_Shape aShape = aBRO->Shape().Located (aBRO->Location() * aBRO->Shape().Location());
return myWorkshop->objectBrowser()->selectedObjects();
}
+void XGUI_Selection::setSelectedObjects( const QObjectPtrList& theObjects ) const
+{
+ return myWorkshop->objectBrowser()->setObjectsSelected( theObjects );
+}
+
QObjectPtrList XGUI_Selection::selectedPresentations() const
{
QObjectPtrList aSelectedList;