27#ifndef G2O_SEVEN_DOF_EXPMAP_TYPES
28#define G2O_SEVEN_DOF_EXPMAP_TYPES
29#include "g2o/config.h"
38#ifdef types_sim3_EXPORTS
39#define G2O_TYPES_SIM3_API __declspec(dllexport)
41#define G2O_TYPES_SIM3_API __declspec(dllimport)
44#define G2O_TYPES_SIM3_API
49#define G2O_TYPES_SIM3_API
64 virtual bool read(std::istream& is);
65 virtual bool write(std::ostream& os)
const;
70 Eigen::Map<Vector7> update(
const_cast<double*
>(update_));
72 if (_fix_scale) update[6] = 0;
75 setEstimate(s * estimate());
83 res[0] = v[0] * _focal_length1[0] + _principle_point1[0];
84 res[1] = v[1] * _focal_length1[1] + _principle_point1[1];
90 res[0] = v[0] * _focal_length2[0] + _principle_point2[0];
91 res[1] = v[1] * _focal_length2[1] + _principle_point2[1];
104 :
public BaseBinaryEdge<7, Sim3, VertexSim3Expmap, VertexSim3Expmap> {
106 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
108 virtual bool read(std::istream& is);
109 virtual bool write(std::ostream& os)
const;
116 Sim3 C(_measurement);
118 _error = error_.
log();
129 if (from.count(v1) > 0)
135 virtual void linearizeOplus();
141 :
public BaseBinaryEdge<2, Vector2, VertexPointXYZ, VertexSim3Expmap> {
143 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
145 virtual bool read(std::istream& is);
146 virtual bool write(std::ostream& os)
const;
162 :
public BaseBinaryEdge<2, Vector2, VertexPointXYZ, VertexSim3Expmap> {
164 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
166 virtual bool read(std::istream& is);
167 virtual bool write(std::ostream& os)
const;
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()
7D edge between two Vertex7
virtual double initialEstimatePossible(const OptimizableGraph::VertexSet &, OptimizableGraph::Vertex *)
virtual void initialEstimate(const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *)
std::set< Vertex * > VertexSet
A general case Vertex for optimization.
Vertex for a tracked point in space.
Sim3 Vertex, (x,y,z,qw,qx,qy,qz) the parameterization for the increments constructed is a 7d vector (...
Vector2 cam_map2(const Vector2 &v) const
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Vector2 cam_map1(const Vector2 &v) const
virtual void setToOriginImpl()
sets the node to the origin (used in the multilevel stuff)
virtual void oplusImpl(const double *update_)
Vector2 _principle_point1
Vector2 project(const Vector3 &v)
Vector3 map(const Vector3 &xyz) const
#define G2O_TYPES_SIM3_API