/// \return list of presentations
virtual QList<ModuleBase_ViewerPrs> getSelected(const SelectionPlace& thePlace = Browser) const = 0;
+ /// The values are appended to the first parameter list if the first list does not contain an item
+ /// with the same object
+ /// \param theValues a list of new values
+ /// \param theValuesTo a list, that will be changed
+ static void appendSelected(const QList<ModuleBase_ViewerPrs> theValues,
+ QList<ModuleBase_ViewerPrs>& theValuesTo);
+
/// Returns a list of viewer highlited presentations
/// \return list of presentations
virtual QList<ModuleBase_ViewerPrs> getHighlighted() const = 0;
*/
virtual QObjectPtrList selectedObjects() const = 0;
+ /// Set selected objects list
+ virtual void setSelectedObjects( const QObjectPtrList& ) const = 0;
+
/**
* Returns list of currently selected results
*/
//! \return a list of prs, where only object is not empty
static MODULEBASE_EXPORT QList<ModuleBase_ViewerPrs> getViewerPrs(
const QObjectPtrList& theObjects);
+
+ /// Removes selection items where owners have equal vertices. The first
+ /// owner with the qual vertex stays in the list.
+ static MODULEBASE_EXPORT void filterSelectionOnEqualPoints
+ (QList<ModuleBase_ViewerPrs>& theSelected);
+private:
+ /// Returns true if the presentations have an owner with a vertex and these vertices are equal.
+ /// \param thePrs1 the first viewer selected presentation
+ /// \param thePrs2 the second viewer selected presentation
+ static bool isEqualVertices(const ModuleBase_ViewerPrs thePrs1,
+ const ModuleBase_ViewerPrs thePrs2);
};
#endif