group_flavor in internal::LieGroup template
parent
79ea949df9
commit
3dc9a7c852
|
@ -117,10 +117,12 @@ struct Manifold {
|
||||||
/// A helper that implements the traits interface for GTSAM lie groups.
|
/// A helper that implements the traits interface for GTSAM lie groups.
|
||||||
/// To use this for your gtsam type, define:
|
/// To use this for your gtsam type, define:
|
||||||
/// template<> struct traits<Type> : public LieGroup<Type> { };
|
/// template<> struct traits<Type> : public LieGroup<Type> { };
|
||||||
template<typename ManifoldType>
|
template<typename ManifoldType,typename _group_flavor = additive_group_tag>
|
||||||
struct LieGroup {
|
struct LieGroup {
|
||||||
// Typedefs required by all manifold types.
|
// Typedefs required by all manifold types.
|
||||||
typedef lie_group_tag structure_category;
|
typedef lie_group_tag structure_category;
|
||||||
|
typedef _group_flavor group_flavor;
|
||||||
|
|
||||||
enum { dimension = ManifoldType::dimension };
|
enum { dimension = ManifoldType::dimension };
|
||||||
typedef Eigen::Matrix<double, dimension, 1> TangentVector;
|
typedef Eigen::Matrix<double, dimension, 1> TangentVector;
|
||||||
typedef OptionalJacobian<dimension, dimension> ChartJacobian;
|
typedef OptionalJacobian<dimension, dimension> ChartJacobian;
|
||||||
|
|
|
@ -304,7 +304,7 @@ typedef std::pair<Point2,Point2> Point2Pair;
|
||||||
GTSAM_EXPORT boost::optional<Pose2> align(const std::vector<Point2Pair>& pairs);
|
GTSAM_EXPORT boost::optional<Pose2> align(const std::vector<Point2Pair>& pairs);
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct traits_x<Pose2> : public internal::LieGroup<Pose2> {};
|
struct traits_x<Pose2> : public internal::LieGroup<Pose2, multiplicative_group_tag> {};
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
||||||
|
|
||||||
|
|
|
@ -363,6 +363,6 @@ typedef std::pair<Point3, Point3> Point3Pair;
|
||||||
GTSAM_EXPORT boost::optional<Pose3> align(const std::vector<Point3Pair>& pairs);
|
GTSAM_EXPORT boost::optional<Pose3> align(const std::vector<Point3Pair>& pairs);
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct traits_x<Pose3> : public internal::LieGroup<Pose3> {};
|
struct traits_x<Pose3> : public internal::LieGroup<Pose3, multiplicative_group_tag> {};
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
||||||
|
|
|
@ -242,6 +242,6 @@ namespace gtsam {
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct traits_x<Rot2> : public internal::LieGroup<Rot2> {};
|
struct traits_x<Rot2> : public internal::LieGroup<Rot2, multiplicative_group_tag> {};
|
||||||
|
|
||||||
} // gtsam
|
} // gtsam
|
||||||
|
|
|
@ -473,6 +473,6 @@ namespace gtsam {
|
||||||
GTSAM_EXPORT std::pair<Matrix3,Vector3> RQ(const Matrix3& A);
|
GTSAM_EXPORT std::pair<Matrix3,Vector3> RQ(const Matrix3& A);
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct traits_x<Rot3> : public internal::LieGroup<Rot3> {};
|
struct traits_x<Rot3> : public internal::LieGroup<Rot3, multiplicative_group_tag> {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue