+#endif
+
+ /// Returns container of visible presentations for the object. For a feature object,
+ /// the feature results are processed also. The presentations map is not cleared inside.
+ /// \param theObject a feature or result
+ /// \param thePresentations result map of presentations
+ void getPresentations(const ObjectPtr& theObject,
+ NCollection_Map<Handle(AIS_InteractiveObject)>& thePresentations);
+
+ /// Sets the shapes selected in the context. It contains logic of the similar method
+ /// in OCCT but improved for performance. The modification is to iterates by a list
+ /// of owners in the context only once.
+ /// \param theContext a viewer context. It has opened local context
+ /// \param theShapesToBeSelected a map of shapes. Owner's shape is searched in the map and the
+ /// owner is selected if it is found there.
+ /// Only first owner is processed(according to OCCT logic)
+ static void AddOrRemoveSelectedShapes(Handle(AIS_InteractiveContext) theContext,
+ const NCollection_DataMap<TopoDS_Shape,
+ NCollection_Map<Handle(AIS_InteractiveObject)>>& theShapesToBeSelected);