GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
concepts.h
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
25 #pragma once
26 
27 #include <gtsam/base/Matrix.h>
28 
29 namespace gtsam {
30 
37 template<class POSE>
38 class PoseConcept {
39 public:
40  typedef typename POSE::Translation Translation;
41  typedef typename POSE::Rotation Rotation;
42 
43 private:
44  static Rotation checkRotationMemberAccess(const POSE& p) {
45  return p.rotation();
46  }
47 
48  static Translation checkTranslationMemberAccess(const POSE& p) {
49  return p.translation();
50  }
51 
52  static std::pair<size_t, size_t> checkTranslationInterval() {
53  return POSE::translationInterval();
54  }
55 
56  static std::pair<size_t, size_t> checkRotationInterval() {
57  return POSE::rotationInterval();
58  }
59 };
60 
61 } // \namespace gtsam
62 
73 #define GTSAM_CONCEPT_POSE_INST(T) template class gtsam::PoseConcept<T>;
74 #define GTSAM_CONCEPT_POSE_TYPE(T) using _gtsam_PoseConcept##T = gtsam::PoseConcept<T>;
75 
Definition: concepts.h:38
typedef and functions to augment Eigen&#39;s MatrixXd
Definition: chartTesting.h:28