26 #ifndef vtkChartSelectionHelper_h
27 #define vtkChartSelectionHelper_h
54 assert(link != NULL && selectionIds != NULL);
67 if (selectionPlot == plot)
102 std::vector<vtkIdType> output;
113 while (i < size && iOld < oldSize)
115 if (ptrSelection[i] > ptrOldSelection[iOld])
117 output.push_back(ptrOldSelection[iOld++]);
119 else if (ptrSelection[i] == ptrOldSelection[iOld])
124 else if (ptrSelection[i] < ptrOldSelection[iOld])
129 while (iOld < oldSize)
131 output.push_back(ptrOldSelection[iOld++]);
135 for (std::vector<vtkIdType>::iterator it = output.begin();
136 it != output.end(); ++it, ++ptrSelection)
153 std::vector<vtkIdType>::iterator it;
154 it = std::set_union(ptrSelection,
159 int newSize =
int(it - output.begin());
162 for (std::vector<vtkIdType>::iterator i = output.begin(); i != it;
175 std::vector<vtkIdType> output;
184 while (i < size && iOld < oldSize)
186 if (ptrSelection[i] > ptrOldSelection[iOld])
188 output.push_back(ptrOldSelection[iOld++]);
190 else if (ptrSelection[i] == ptrOldSelection[iOld])
195 else if (ptrSelection[i] < ptrOldSelection[iOld])
197 output.push_back(ptrSelection[i++]);
202 output.push_back(ptrSelection[i++]);
204 while (iOld < oldSize)
206 output.push_back(ptrOldSelection[iOld++]);
210 for (std::vector<vtkIdType>::iterator it = output.begin();
211 it != output.end(); ++it, ++ptrSelection)
226 if (!plotSelection || !oldSelection)
233 switch(selectionMode)
275 return selectionMode;
281 #endif // vtkChartSelectionHelper_h
A node in a selection tree. Used to store selection results.
virtual vtkSelection * GetCurrentSelection()
unsigned int GetNumberOfNodes()
virtual void SetFieldType(int type)
static void AddSelection(vtkIdTypeArray *selection, vtkIdTypeArray *oldSelection)
vtkIdType GetNumberOfTuples()
virtual void AddNode(vtkSelectionNode *)
static void MinusSelection(vtkIdTypeArray *selection, vtkIdTypeArray *oldSelection)
A node in a selection tree. Used to store selection results.
virtual void SetNumberOfTuples(vtkIdType number)=0
static void MakeSelection(vtkAnnotationLink *link, vtkIdTypeArray *selectionIds, vtkPlot *plot)
dynamic, self-adjusting array of vtkIdType
Hold a reference to a vtkObjectBase instance.
virtual vtkInformation * GetProperties()
static vtkSmartPointer< T > New()
static vtkPlot * SafeDownCast(vtkObjectBase *o)
data structure to represent mouse events.
static vtkInformationObjectBaseKey * PROP()
virtual vtkSelectionNode * GetNode(unsigned int idx)
virtual void SetContentType(int type)
Abstract class for 2D plots.
virtual void * GetVoidPointer(vtkIdType id)=0
virtual vtkTable * GetInput()
static void BuildSelection(vtkAnnotationLink *link, int selectionMode, vtkIdTypeArray *plotSelection, vtkIdTypeArray *oldSelection, vtkPlot *plot)
static int GetMouseSelectionMode(const vtkContextMouseEvent &mouse, int selectionMode)
Allocate and hold a VTK object.
static vtkInformationObjectBaseKey * SOURCE()
virtual void SetSelectionList(vtkAbstractArray *)
static void ToggleSelection(vtkIdTypeArray *selection, vtkIdTypeArray *oldSelection)
virtual void SetCurrentSelection(vtkSelection *sel)
An algorithm for linking annotations among objects.