42 if (from.count(l) == 0)
return;
43 if (from.count(vi) == 1) {
66EdgeSE2SensorCalibDrawAction::EdgeSE2SensorCalibDrawAction()
69HyperGraphElementAction* EdgeSE2SensorCalibDrawAction::operator()(
70 HyperGraph::HyperGraphElement* element,
71 HyperGraphElementAction::Parameters*) {
72 if (
typeid(*element).name() != _typeName)
return nullptr;
73 EdgeSE2SensorCalib* e =
static_cast<EdgeSE2SensorCalib*
>(element);
74 VertexSE2* fromEdge =
static_cast<VertexSE2*
>(e->vertex(0));
75 VertexSE2* toEdge =
static_cast<VertexSE2*
>(e->vertex(1));
76 glColor3f(0.5, 0.5, 1.0);
77 glPushAttrib(GL_ENABLE_BIT);
78 glDisable(GL_LIGHTING);
80 glVertex3f((
float)fromEdge->estimate().translation().x(),
81 (
float)fromEdge->estimate().translation().y(), 0.f);
82 glVertex3f((
float)toEdge->estimate().translation().x(),
83 (
float)toEdge->estimate().translation().y(), 0.f);
bool writeInformationMatrix(std::ostream &os) const
write the upper trinagular part of the information matrix into the stream
bool readInformationMatrix(std::istream &is)
EIGEN_STRONG_INLINE const Measurement & measurement() const
accessor functions for the measurement represented by the edge
Measurement _measurement
the measurement of the edge
const EstimateType & estimate() const
return the current estimate of the vertex
void setEstimate(const EstimateType &et)
set the estimate for the vertex also calls updateCache()
scanmatch measurement that also calibrates an offset for the laser
virtual void initialEstimate(const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *to)
virtual bool write(std::ostream &os) const
write the vertex to a stream
virtual bool read(std::istream &is)
read the vertex from a stream, i.e., the internal state of the vertex
VertexContainer _vertices
std::set< Vertex * > VertexSet
A general case Vertex for optimization.
SE2 inverse() const
invert :-)
2D pose Vertex, (x,y,theta)
bool writeVector(std::ostream &os, const Eigen::DenseBase< Derived > &b)
bool readVector(std::istream &is, Eigen::DenseBase< Derived > &b)