+ /// 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 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
+ MODULEBASE_EXPORT 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 MODULEBASE_EXPORT
+ 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 MODULEBASE_EXPORT QList<std::shared_ptr<ModuleBase_ViewerPrs>> getViewerPrs(
+ const QObjectPtrList& theObjects);