浏览该文件的文档.
24#include "AstUtil/TypeTraits.hpp"
25#include "AstMath/KinematicRotation.hpp"
34class KinematicRotation;
38#define _AST_DECL_AXES(NAME) \
39 class AST_CORE_API Axes##NAME : public Axes \
42 Axes##NAME() = default; \
43 ~Axes##NAME() override = default; \
44 static Axes##NAME* Instance(); \
45 Axes* getParent() const override; \
46 errc_t getTransform(const TimePoint& tp, Rotation& rotation) const override; \
47 errc_t getTransform(const TimePoint& tp, KinematicRotation& rotation) const override; \
49 A_ALWAYS_INLINE Axes* aAxes##NAME()\
51 return Axes##NAME::Instance();\
54#define _AST_IMPL_AXES_BASE(NAME, PARENT)\
55 Axes##NAME* Axes##NAME::Instance() \
57 static SharedPtr<Axes##NAME> instance(new Axes##NAME()); \
58 return instance.get(); \
60 Axes *Axes##NAME::getParent() const\
62 return Axes##PARENT::Instance();\
65#define _AST_IMPL_AXES_DYNAMIC(NAME, PARENT) \
66 _AST_IMPL_AXES_BASE(NAME, PARENT)\
67 errc_t Axes##NAME::getTransform(const TimePoint &tp, Rotation &rotation) const\
69 a##PARENT##To##NAME##Transform(tp, rotation);\
72 errc_t Axes##NAME::getTransform(const TimePoint &tp, KinematicRotation &rotation) const\
74 a##PARENT##To##NAME##Transform(tp, rotation);\
78#define _AST_IMPL_AXES_INERTIAL(NAME, PARENT) \
79 _AST_IMPL_AXES_BASE(NAME, PARENT)\
80 errc_t Axes##NAME::getTransform(const TimePoint &tp, Rotation &rotation) const\
82 a##PARENT##To##NAME##Transform(rotation);\
85 errc_t Axes##NAME::getTransform(const TimePoint &tp, KinematicRotation &rotation) const\
87 a##PARENT##To##NAME##Transform(rotation.getRotation());\
88 rotation.setRotationRate(Vector3d::Zero());\
92#define _AST_IMPL_AXES_PSEUDO_INERTIAL(NAME, PARENT) \
93 _AST_IMPL_AXES_BASE(NAME, PARENT)\
94 errc_t Axes##NAME::getTransform(const TimePoint &tp, Rotation &rotation) const\
96 a##PARENT##To##NAME##Transform(tp, rotation);\
99 errc_t Axes##NAME::getTransform(const TimePoint &tp, KinematicRotation &rotation) const\
101 a##PARENT##To##NAME##Transform(tp, rotation.getRotation());\
102 rotation.setRotationRate(Vector3d::Zero());\