- QList<ModuleBase_ViewerPrs> myValidPrs; /// cash of valid selection presentations
- QList<ModuleBase_ViewerPrs> myInvalidPrs; /// cash of invalid selection presentations
+#ifdef LIST_OF_VALID_PRS
+ QList<std::shared_ptr<ModuleBase_ViewerPrs>> myValidPrs; /// cash of valid selection presentations
+ QList<std::shared_ptr<ModuleBase_ViewerPrs>> myInvalidPrs; /// cash of invalid selection presentations
+#else
+ // assume that one presentation selection presentation corresponds only one shape
+ NCollection_DataMap<TopoDS_Shape, std::shared_ptr<ModuleBase_ViewerPrs> > myValidPrs;
+ NCollection_DataMap<TopoDS_Shape, std::shared_ptr<ModuleBase_ViewerPrs> > myInvalidPrs;
+#endif