- //! Returns list of currently selected AIS objects
- //! \param theList returning list of selected AIS objects
- virtual void selectedAISObjects(AIS_ListOfInteractive& theList) const = 0;
-
- //! Returns list of currently selected QModelIndexes
- virtual ObjectPtr getSelectableObject(const Handle_SelectMgr_EntityOwner& theOwner) const = 0;
-
- //! Returns list of currently selected shapes and their owners (objects).
- //! Both lists are synchronized
- //! \param theList returning list of selected AIS objects
- //! \param theOwners list of objects
- virtual void selectedShapes(NCollection_List<TopoDS_Shape>& theList,
- std::list<ObjectPtr>& theOwners) const = 0;
-
- //! Return the shape from the viewer presentation.
- //! If the shape is equal to the shape of selected object, it returns an empty shape
- //! \param thePrs a selected object
- //! \return a shape
- MODULEBASE_EXPORT ResultPtr getResult(const ModuleBase_ViewerPrs& thePrs);
-
- //! Return the shape from the viewer presentation.
- //! If the shape is equal to the shape of selected object, it returns an empty shape
- //! \param thePrs a selected object
- //! \return a shape
- MODULEBASE_EXPORT GeomShapePtr getShape(const ModuleBase_ViewerPrs& thePrs);
-
- //! Wraps the object list into the viewer prs list
- //! \param theObjects a list of objects
- //! \return a list of prs, where only object is not empty
- static MODULEBASE_EXPORT QList<ModuleBase_ViewerPrs> getViewerPrs(
+ /// Return the shape from the viewer presentation.
+ /// If the shape is equal to the shape of selected object, it returns an empty shape
+ /// \param thePrs a selected object
+ /// \return a shape
+ ResultPtr getResult(const std::shared_ptr<ModuleBase_ViewerPrs>& thePrs);
+
+ /// Return the shape from the viewer presentation.
+ /// If the shape is equal to the shape of selected object, it returns an empty shape
+ /// \param thePrs a selected object
+ /// \return a shape
+ GeomShapePtr getShape(const std::shared_ptr<ModuleBase_ViewerPrs>& thePrs);
+
+ /// Return the IO from the viewer presentation.
+ /// \param thePrs a selected object
+ /// \return an interactive object
+ virtual Handle(AIS_InteractiveObject)
+ getIO(const std::shared_ptr<ModuleBase_ViewerPrs>& thePrs) = 0;
+
+ /// Wraps the object list into the viewer prs list
+ /// \param theObjects a list of objects
+ /// \return a list of prs, where only object is not empty
+ static QList<std::shared_ptr<ModuleBase_ViewerPrs>> getViewerPrs(