-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "SVTK.h"
#include "SVTK_Selection.h"
+#include "SVTK_Hash.h"
+
#include "SALOME_ListIO.hxx"
+#include <VTKViewer_Filter.h>
+
#include <TColStd_MapOfInteger.hxx>
#include <TColStd_IndexedMapOfInteger.hxx>
#include <vtkObject.h>
-class Handle(VTKViewer_Filter);
-
+class SALOME_InteractiveObject;
class SALOME_Actor;
class SVTK_SelectionEvent;
class vtkActorCollection;
class vtkRenderer;
-class Handle(SALOME_InteractiveObject);
//! Define an abstract interface for selection in SVTK package
/*!
void
ClearIndex() = 0;
+ /// ! Composite indexes
+ virtual
+ bool
+ HasCompositeIndex(const Handle(SALOME_InteractiveObject)& theIO ) const = 0;
+
+ //! Get composite indexes of subslection for given #SALOME_InteractiveObject
+ virtual
+ void
+ GetCompositeIndex( const Handle(SALOME_InteractiveObject)& theIO,
+ SVTK_IndexedMapOfIds& theIds ) = 0;
+
+ //! Change composite indices of subselection for given #SALOME_InteractiveObject
+ virtual
+ bool
+ AddOrRemoveCompositeIndex( const Handle(SALOME_InteractiveObject)& theIO,
+ const SVTK_IndexedMapOfIds& theIds,
+ bool theIsModeShift) = 0;
+
+ //! Change composite index of subslection for given #SALOME_InteractiveObject
+ virtual
+ bool
+ AddOrRemoveCompositeIndex( const Handle(SALOME_InteractiveObject)& theIO,
+ SVTK_ListOfInteger ids,
+ bool theIsModeShift) = 0;
+
+ //! Change composite index of subslection for given #SALOME_InteractiveObject
+ virtual
+ void
+ RemoveCompositeIndex( const Handle(SALOME_InteractiveObject)& theIO,
+ SVTK_ListOfInteger ids ) = 0;
+
+ //! Check, if the given composite index is present in subselection
+ virtual
+ bool
+ IsCompositeIndexSelected(const Handle(SALOME_InteractiveObject)& theIO,
+ SVTK_ListOfInteger ids ) const = 0;
+
+ //! Clear composite indexes subselection
+ virtual
+ void
+ ClearCompositeIndex() = 0;
+
//----------------------------------------------------------------------------
typedef int TFilterID;