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