17 #include <vtkCellPicker.h>
18 #include <vtkHardwareSelector.h>
19 #include <vtkPointPicker.h>
20 #include <vtkSmartPointer.h>
26 class vtkRenderWindowInteractor;
64 m_useHardwareSelection(false),
65 m_captureZValues(true),
66 m_multipleSelectionMode(false),
67 m_interactor(nullptr),
68 m_renderer(nullptr) {}
166 QVector<cvActorSelectionInfo> getActorsAtPoint(
int x,
int y);
184 m_useHardwareSelection = enable;
203 m_multipleSelectionMode = enable;
231 void initializePickers();
243 vtkIdType pickAtPosition(
int x,
int y,
bool selectCells);
253 vtkIdType pickAtCursor(
bool selectCells);
260 m_interactor = interactor;
272 void setRenderer(vtkRenderer* renderer) { m_renderer = renderer; }
284 void setPickerTolerance(
double cellTolerance,
double pointTolerance);
296 vtkActor* getPickedActor(
bool selectCells);
306 vtkPolyData* getPickedPolyData(
bool selectCells);
315 bool getPickedPosition(
bool selectCells,
double position[3]);
345 int fieldAssociation);
354 vtkHardwareSelector* getHardwareSelector();
362 vtkHardwareSelector* configureHardwareSelector(
const int region[4],
363 int fieldAssociation);
368 QVector<cvActorSelectionInfo> extractActorInfo(
369 vtkHardwareSelector* selector, vtkSelection* vtkSel);
375 vtkSelection* vtkSel,
376 const QVector<cvActorSelectionInfo>& actorInfos);
388 vtkRenderer* getRenderer();
Lightweight base class for all selection-related components.
virtual vtkPolyData * getPolyDataForSelection(const cvSelectionData *selectionData=nullptr)
Get polyData using ParaView-style priority (centralized method)
Encapsulates selection data without exposing VTK types.
Selection pipeline abstraction layer.
Central manager for all selection operations in the view.
SelectionMode
Selection modes matching ParaView's SelectionMode enum.
@ SELECT_SURFACE_CELLS
Select cells on surface (rectangle)
SelectionModifier
Selection modifiers for combining selections.
@ SELECTION_DEFAULT
Replace selection (default)
#define QPCL_ENGINE_LIB_API