ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvGenericAnnotationTool.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 <QFile>
11 
12 #include "CV_db.h"
13 
14 class ccPointCloud;
16 
18 class CV_DB_LIB_API ecvGenericAnnotationTool : public QObject {
19  Q_OBJECT
20 public:
22 
26  enum AnnotationMode { SEMANTICS, BOUNDINGBOX };
27 
28  ecvGenericAnnotationTool(AnnotationMode mode = AnnotationMode::BOUNDINGBOX);
29  virtual ~ecvGenericAnnotationTool() = default;
30 
31  inline AnnotationMode getAnnotationMode() { return m_annotationMode; }
32 
33 public:
34  virtual void setVisualizer(ecvGenericVisualizer3D* viewer = nullptr) = 0;
35 
36  virtual bool loadClassesFromFile(const std::string& file) = 0;
37  virtual void getAnnotationLabels(std::vector<std::string>& labelList) = 0;
38  virtual bool getCurrentAnnotations(std::vector<int>& annos) const = 0;
39  virtual void initAnnotationLabels(
40  const std::vector<std::string>& labelList) {}
41 
42  virtual void toggleInteractor() = 0;
43  virtual bool setInputCloud(ccPointCloud* pointCloud, int viewport = 0) = 0;
44  virtual void start() = 0;
45  virtual void stop() = 0;
46 
47  virtual void intersectMode() = 0;
48  virtual void unionMode() = 0;
49  virtual void trimMode() = 0;
50  virtual void resetMode() = 0;
51 
52 public:
53  virtual void reset() = 0;
54  virtual void clear() = 0;
55  virtual void exportAnnotations() = 0;
56  virtual void updateCloud() = 0;
57  virtual void changeAnnotationType(const std::string& type) = 0;
58  virtual void selectExistedAnnotation(const std::string& type) = 0;
59  virtual void showAnnotation() = 0;
60  virtual void hideAnnotation() = 0;
61  virtual void showOrigin() = 0;
62  virtual void hideOrigin() = 0;
63  virtual void removeAnnotation() = 0;
64 
65 signals:
66  void objectPicked(bool isPicked);
67 
68 protected:
70 
73  virtual bool buildUp() { return true; }
74 
75  virtual void initialize(ecvGenericVisualizer3D* viewer) = 0;
76 
79 
82 };
#define CV_DB_LIB_API
Definition: CV_db.h:15
char type
#define signals
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Generic Annotation Tool interface.
virtual void hideAnnotation()=0
virtual void updateCloud()=0
ecvGenericAnnotationTool(AnnotationMode mode=AnnotationMode::BOUNDINGBOX)
AnnotationMode
Default constructor.
virtual void selectExistedAnnotation(const std::string &type)=0
virtual bool getCurrentAnnotations(std::vector< int > &annos) const =0
virtual void reset()=0
virtual void stop()=0
virtual void hideOrigin()=0
virtual bool setInputCloud(ccPointCloud *pointCloud, int viewport=0)=0
virtual void intersectMode()=0
void objectPicked(bool isPicked)
ccPointCloud * vertices()
Returns vertices.
virtual void resetMode()=0
virtual void initialize(ecvGenericVisualizer3D *viewer)=0
virtual void getAnnotationLabels(std::vector< std::string > &labelList)=0
virtual bool loadClassesFromFile(const std::string &file)=0
virtual void changeAnnotationType(const std::string &type)=0
virtual void removeAnnotation()=0
virtual void initAnnotationLabels(const std::vector< std::string > &labelList)
virtual void start()=0
virtual ~ecvGenericAnnotationTool()=default
virtual void toggleInteractor()=0
virtual void clear()=0
virtual bool buildUp()
Builds primitive.
virtual void unionMode()=0
virtual void showOrigin()=0
virtual void showAnnotation()=0
virtual void trimMode()=0
virtual void setVisualizer(ecvGenericVisualizer3D *viewer=nullptr)=0
virtual void exportAnnotations()=0
Generic visualizer 3D interface.