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
;
15
class
ecvGenericVisualizer3D
;
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
78
ccPointCloud
*
vertices
();
79
80
AnnotationMode
m_annotationMode
;
81
ccPointCloud
*
m_associatedCloud
;
82
};
CV_db.h
CV_DB_LIB_API
#define CV_DB_LIB_API
Definition:
CV_db.h:15
type
char type
Definition:
FileIOFactory.cpp:131
signals
#define signals
Definition:
PythonPlugin.cpp:26
ccPointCloud
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Definition:
ecvPointCloud.h:147
ecvGenericAnnotationTool
Generic Annotation Tool interface.
Definition:
ecvGenericAnnotationTool.h:18
ecvGenericAnnotationTool::hideAnnotation
virtual void hideAnnotation()=0
ecvGenericAnnotationTool::updateCloud
virtual void updateCloud()=0
ecvGenericAnnotationTool::ecvGenericAnnotationTool
ecvGenericAnnotationTool(AnnotationMode mode=AnnotationMode::BOUNDINGBOX)
ecvGenericAnnotationTool::AnnotationMode
AnnotationMode
Default constructor.
Definition:
ecvGenericAnnotationTool.h:26
ecvGenericAnnotationTool::selectExistedAnnotation
virtual void selectExistedAnnotation(const std::string &type)=0
ecvGenericAnnotationTool::getCurrentAnnotations
virtual bool getCurrentAnnotations(std::vector< int > &annos) const =0
ecvGenericAnnotationTool::reset
virtual void reset()=0
ecvGenericAnnotationTool::stop
virtual void stop()=0
ecvGenericAnnotationTool::hideOrigin
virtual void hideOrigin()=0
ecvGenericAnnotationTool::setInputCloud
virtual bool setInputCloud(ccPointCloud *pointCloud, int viewport=0)=0
ecvGenericAnnotationTool::intersectMode
virtual void intersectMode()=0
ecvGenericAnnotationTool::objectPicked
void objectPicked(bool isPicked)
ecvGenericAnnotationTool::vertices
ccPointCloud * vertices()
Returns vertices.
ecvGenericAnnotationTool::resetMode
virtual void resetMode()=0
ecvGenericAnnotationTool::initialize
virtual void initialize(ecvGenericVisualizer3D *viewer)=0
ecvGenericAnnotationTool::getAnnotationMode
AnnotationMode getAnnotationMode()
Definition:
ecvGenericAnnotationTool.h:31
ecvGenericAnnotationTool::getAnnotationLabels
virtual void getAnnotationLabels(std::vector< std::string > &labelList)=0
ecvGenericAnnotationTool::m_associatedCloud
ccPointCloud * m_associatedCloud
Definition:
ecvGenericAnnotationTool.h:81
ecvGenericAnnotationTool::loadClassesFromFile
virtual bool loadClassesFromFile(const std::string &file)=0
ecvGenericAnnotationTool::changeAnnotationType
virtual void changeAnnotationType(const std::string &type)=0
ecvGenericAnnotationTool::removeAnnotation
virtual void removeAnnotation()=0
ecvGenericAnnotationTool::initAnnotationLabels
virtual void initAnnotationLabels(const std::vector< std::string > &labelList)
Definition:
ecvGenericAnnotationTool.h:39
ecvGenericAnnotationTool::start
virtual void start()=0
ecvGenericAnnotationTool::~ecvGenericAnnotationTool
virtual ~ecvGenericAnnotationTool()=default
ecvGenericAnnotationTool::toggleInteractor
virtual void toggleInteractor()=0
ecvGenericAnnotationTool::clear
virtual void clear()=0
ecvGenericAnnotationTool::buildUp
virtual bool buildUp()
Builds primitive.
Definition:
ecvGenericAnnotationTool.h:73
ecvGenericAnnotationTool::unionMode
virtual void unionMode()=0
ecvGenericAnnotationTool::showOrigin
virtual void showOrigin()=0
ecvGenericAnnotationTool::showAnnotation
virtual void showAnnotation()=0
ecvGenericAnnotationTool::trimMode
virtual void trimMode()=0
ecvGenericAnnotationTool::setVisualizer
virtual void setVisualizer(ecvGenericVisualizer3D *viewer=nullptr)=0
ecvGenericAnnotationTool::m_annotationMode
AnnotationMode m_annotationMode
Definition:
ecvGenericAnnotationTool.h:80
ecvGenericAnnotationTool::exportAnnotations
virtual void exportAnnotations()=0
ecvGenericVisualizer3D
Generic visualizer 3D interface.
Definition:
ecvGenericVisualizer3D.h:15
libs
CV_db
include
ecvGenericAnnotationTool.h
Generated on Wed Jan 28 2026 09:00:58 for ACloudViewer by
1.9.1