<pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>class</span> LocalParameterizationSE3 <span style='color:#800080; '>:</span> <span style='color:#800000; font-weight:bold; '>public</span> ceres<span style='color:#800080; '>::</span>LocalParameterization
<span style='color:#800080; '>{</span>
<span style='color:#800000; font-weight:bold; '>public</span><span style='color:#e34adc; '>:</span>
<span style='color:#800000; font-weight:bold; '>virtual</span> <span style='color:#808030; '>~</span>LocalParameterizationSE3<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>{</span><span style='color:#800080; '>}</span>
<span style='color:#800000; font-weight:bold; '>virtual</span> <span style='color:#800000; font-weight:bold; '>bool</span> Plus
<span style='color:#808030; '>(</span>
<span style='color:#800000; font-weight:bold; '>float</span> <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#808030; '>*</span> T_raw<span style='color:#808030; '>,</span>
<span style='color:#800000; font-weight:bold; '>float</span> <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#808030; '>*</span> delta_raw<span style='color:#808030; '>,</span>
<span style='color:#800000; font-weight:bold; '>float</span><span style='color:#808030; '>*</span> T_plus_delta_raw
<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>const</span>
<span style='color:#800080; '>{</span>
Eigen<span style='color:#800080; '>::</span>Map<span style='color:#800080; '><</span>Sophus<span style='color:#800080; '>::</span>SE3f <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#800080; '>></span> <span style='color:#800000; font-weight:bold; '>const</span> pose_se3<span style='color:#808030; '>(</span>T_raw<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
<span style='color:#696969; '>// Eigen::Map<Eigen::Matrix<float, 6, 1, Eigen::RowMajor> const> delta(delta_raw);</span>
Eigen<span style='color:#800080; '>::</span>Map<span style='color:#800080; '><</span>Eigen<span style='color:#800080; '>::</span>Vector6f <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#800080; '>></span> delta<span style='color:#808030; '>(</span>delta_raw<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
Eigen<span style='color:#800080; '>::</span>Map<span style='color:#800080; '><</span>Sophus<span style='color:#800080; '>::</span>SE3f<span style='color:#800080; '>></span> T_plus_delta<span style='color:#808030; '>(</span>T_plus_delta_raw<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
T_plus_delta <span style='color:#808030; '>=</span> pose_se3 <span style='color:#808030; '>*</span> Sophus<span style='color:#800080; '>::</span>SE3f<span style='color:#800080; '>::</span><span style='color:#603000; '>exp</span><span style='color:#808030; '>(</span>delta<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
<span style='color:#800000; font-weight:bold; '>return</span> <span style='color:#800000; font-weight:bold; '>true</span><span style='color:#800080; '>;</span>
<span style='color:#800080; '>}</span>
<span style='color:#800000; font-weight:bold; '>private</span><span style='color:#e34adc; '>:</span>
<span style='color:#800000; font-weight:bold; '>virtual</span> <span style='color:#800000; font-weight:bold; '>bool</span> ComputeJacobian
<span style='color:#808030; '>(</span>
<span style='color:#800000; font-weight:bold; '>float</span> <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#808030; '>*</span> T_raw<span style='color:#808030; '>,</span>
<span style='color:#800000; font-weight:bold; '>float</span><span style='color:#808030; '>*</span> jacobian_raw
<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>const</span>
<span style='color:#800080; '>{</span>
Eigen<span style='color:#800080; '>::</span>Map<span style='color:#800080; '><</span>Sophus<span style='color:#800080; '>::</span>SE3f <span style='color:#800000; font-weight:bold; '>const</span><span style='color:#800080; '>></span> pose_se3<span style='color:#808030; '>(</span>T_raw<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
Eigen<span style='color:#800080; '>::</span>Map<span style='color:#808030; '><</span>Eigen<span style='color:#800080; '>::</span>Matrix<span style='color:#808030; '><</span><span style='color:#800000; font-weight:bold; '>float</span><span style='color:#808030; '>,</span> <span style='color:#008c00; '>7</span><span style='color:#808030; '>,</span> <span style='color:#008c00; '>6</span><span style='color:#808030; '>,</span> Eigen<span style='color:#800080; '>::</span>RowMajor<span style='color:#808030; '>></span><span style='color:#808030; '>></span> jacobian<span style='color:#808030; '>(</span>jacobian_raw<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
jacobian <span style='color:#808030; '>=</span> pose_se3<span style='color:#808030; '>.</span>Dx_this_mul_exp_x_at_0<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
<span style='color:#800000; font-weight:bold; '>return</span> <span style='color:#800000; font-weight:bold; '>true</span><span style='color:#800080; '>;</span>
<span style='color:#800080; '>}</span>
<span style='color:#800080; '>}</span>
</pre>
<!--Created using ToHtml.com on 2021-04-22 21:54:18 UTC -->