g2o
Toggle main menu visibility
Loading...
Searching...
No Matches
g2o
types
slam3d_addons
types_slam3d_addons.cpp
Go to the documentation of this file.
1
// g2o - General Graph Optimization
2
// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright notice,
10
// this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above copyright
12
// notice, this list of conditions and the following disclaimer in the
13
// documentation and/or other materials provided with the distribution.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
#include "
types_slam3d_addons.h
"
28
29
#include <iostream>
30
#include <typeinfo>
31
32
#include "
g2o/core/factory.h
"
33
#include "
g2o/stuff/macros.h
"
34
35
namespace
g2o
{
36
37
G2O_REGISTER_TYPE_GROUP
(slam3d_addons);
38
39
G2O_REGISTER_TYPE
(VERTEX3,
VertexSE3Euler
);
40
G2O_REGISTER_TYPE
(EDGE3,
EdgeSE3Euler
);
41
G2O_REGISTER_TYPE
(VERTEX_PLANE,
VertexPlane
);
42
G2O_REGISTER_TYPE
(EDGE_SE3_PLANE_CALIB,
EdgeSE3PlaneSensorCalib
);
43
44
G2O_REGISTER_TYPE
(VERTEX_LINE3D,
VertexLine3D
);
45
G2O_REGISTER_TYPE
(EDGE_SE3_LINE3D,
EdgeSE3Line3D
);
46
G2O_REGISTER_TYPE
(EDGE_PLANE,
EdgePlane
);
47
G2O_REGISTER_TYPE
(EDGE_SE3_CALIB,
EdgeSE3Calib
);
48
49
#ifdef G2O_HAVE_OPENGL
50
G2O_REGISTER_ACTION
(CacheCameraDrawAction);
51
G2O_REGISTER_ACTION
(VertexPlaneDrawAction);
52
G2O_REGISTER_ACTION
(EdgeSE3PlaneSensorCalibDrawAction);
53
G2O_REGISTER_ACTION
(VertexLine3DDrawAction);
54
G2O_REGISTER_ACTION
(EdgeSE3Line3DDrawAction);
55
#endif
56
57
G2O_ATTRIBUTE_CONSTRUCTOR
(init_slam3d_addons_types) {
58
static
bool
initialized =
false
;
59
if
(initialized)
return
;
60
initialized =
true
;
61
62
#ifdef G2O_HAVE_OPENGL
63
HyperGraphActionLibrary
* actionLib =
HyperGraphActionLibrary::instance
();
64
HyperGraphElementAction::HyperGraphElementActionPtr
vertexse3eulerdraw(
65
new
g2o::VertexSE3DrawAction);
66
vertexse3eulerdraw->setTypeName(
typeid
(
VertexSE3Euler
).name());
67
actionLib->
registerAction
(vertexse3eulerdraw);
68
69
HyperGraphElementAction::HyperGraphElementActionPtr
edgese3eulerdraw(
70
new
g2o::EdgeSE3DrawAction);
71
edgese3eulerdraw->setTypeName(
typeid
(
EdgeSE3Euler
).name());
72
actionLib->
registerAction
(edgese3eulerdraw);
73
#endif
74
}
75
76
}
// namespace g2o
g2o::EdgePlane
Definition
edge_plane.h:38
g2o::EdgeSE3Calib
Landmark measurement that also calibrates an offset for the landmark measurement.
Definition
edge_se3_calib.h:43
g2o::EdgeSE3Euler
3D edge between two VertexSE3, uses the euler angle parameterization for the read/write functions onl...
Definition
edge_se3_euler.h:40
g2o::EdgeSE3Line3D
Definition
edge_se3_line.h:40
g2o::EdgeSE3PlaneSensorCalib
plane measurement that also calibrates an offset for the sensor
Definition
edge_se3_plane_calib.h:40
g2o::HyperGraphActionLibrary
library of actions, indexed by the action name;
Definition
hyper_graph_action.h:150
g2o::HyperGraphActionLibrary::registerAction
bool registerAction(const HyperGraphElementAction::HyperGraphElementActionPtr &action)
Definition
hyper_graph_action.cpp:147
g2o::HyperGraphActionLibrary::instance
static HyperGraphActionLibrary * instance()
return the single instance of the HyperGraphActionLibrary
Definition
hyper_graph_action.cpp:127
g2o::HyperGraphElementAction::HyperGraphElementActionPtr
std::shared_ptr< HyperGraphElementAction > HyperGraphElementActionPtr
Definition
hyper_graph_action.h:79
g2o::VertexLine3D
Definition
vertex_line3d.h:38
g2o::VertexPlane
Definition
vertex_plane.h:38
g2o::VertexSE3Euler
3D pose Vertex, (x,y,z,roll,pitch,yaw) the internal parameterization is the same as veretx_se3_quat....
Definition
vertex_se3_euler.h:40
factory.h
G2O_REGISTER_TYPE
#define G2O_REGISTER_TYPE(name, classname)
Definition
factory.h:148
G2O_REGISTER_TYPE_GROUP
#define G2O_REGISTER_TYPE_GROUP(typeGroupName)
Definition
factory.h:156
G2O_REGISTER_ACTION
#define G2O_REGISTER_ACTION(classname)
Definition
hyper_graph_action.h:241
macros.h
G2O_ATTRIBUTE_CONSTRUCTOR
#define G2O_ATTRIBUTE_CONSTRUCTOR(func)
Definition
macros.h:92
g2o
Definition
dl_wrapper.cpp:55
types_slam3d_addons.h
Generated on
for g2o by
1.17.0