class ElementBase
- ElementBase是所有可更新的变量的基类。
- 需要传入一个模板类DERIVED, ElementBase继承于这个模板类。比如传入一个Eigen的Matrix,那么ElementBase就是一个Matrix。
- D_是变量的长度,如果变量是个vector的话。
- mtDifVec定义更新这个变量的误差值。
- 静态函数Identity()用于生成一个单位变量。
- boxPlus, boxMinus,boxMinusJac,setIdentity,print,setRandom,fix是需要自己实现的功能函数
- get函数用于返回转换成基类(比如egien类型嗯)的索引。
- registerCovarianceToPropertyHandler帮足版一个Eigen::Matrix存在配置系统里(PropertyHandler)。这个Eigen::Matrix作为这个变量的协方差矩阵。大小为D_×D_
- registerElementToPropertyHandler把变量值记录到PropertyHandler中。
- name_可以给这个类一个名字,用于基类中知道其真正的派生类。
class AuxiliaryBase
- 只实现了get函数的类,其他函数的实现都是空
class ScalarElement
- 单个值(double)的变量
- PropertyHandler用类名字加变量名来注册
class VectorElement
class QuaternionElement
class NormalVectorElement
- 欧拉角表示的旋转
- 自带存储,而不是继承与三方的结构,比如Eigen
class ArrayElement
- 很多个相同种类Elements组合在一起的Elements
- 比如有取出第几个变量
TH_getDimension
- 元函数,用于在预编译阶段获得元数据的大小
class State
- 很多个不同种类Elements组合在一起的Elements
- 各种功能函数就是依次调用这些Element的功能函数。