ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cvSelectionBase.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <vector>
11 
12 #include "qPCL.h"
13 
14 // Forward declarations
16 class vtkPolyData;
17 class vtkActor;
18 class vtkDataSet;
19 class cvSelectionData;
21 
22 namespace PclUtils {
23 class PCLVis;
24 }
25 
45 public:
46  cvSelectionBase() : m_viewer(nullptr) {}
47  virtual ~cvSelectionBase() = default;
48 
56  virtual void setVisualizer(ecvGenericVisualizer3D* viewer) {
57  m_viewer = viewer;
58  }
59 
64  ecvGenericVisualizer3D* getVisualizer() const { return m_viewer; }
65 
66 protected:
76  PclUtils::PCLVis* getPCLVis() const;
77 
82  bool hasValidPCLVis() const;
83 
89  vtkDataSet* getDataFromActor(vtkActor* actor);
90 
95  QList<vtkActor*> getDataActors() const;
96 
105  std::vector<vtkPolyData*> getAllPolyDataFromVisualizer();
106 
124  virtual vtkPolyData* getPolyDataForSelection(
125  const cvSelectionData* selectionData = nullptr);
126 
127 protected:
130 };
Lightweight base class for all selection-related components.
virtual void setVisualizer(ecvGenericVisualizer3D *viewer)
Set the visualizer instance.
ecvGenericVisualizer3D * m_viewer
Visualizer instance (abstract interface)
ecvGenericVisualizer3D * getVisualizer() const
Get the visualizer instance.
virtual ~cvSelectionBase()=default
Encapsulates selection data without exposing VTK types.
Central manager for all selection operations in the view.
Generic visualizer 3D interface.
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15