🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
ast::Axes类 参考abstract

#include <Axes.hpp>

+ 类 ast::Axes 继承关系图:

Public 成员函数

virtual Axes * getParent () const =0
 
virtual errc_t getTransform (const TimePoint &tp, Rotation &rotation) const =0
 
virtual errc_t getTransform (const TimePoint &tp, KinematicRotation &rotation) const =0
 
virtual errc_t getTransform (const TimePoint &tp, AccelerationRotation &rotation) const
 
int getDepth () const
 
Axes * getAncestor (int depth) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes *target, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes &target, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes *target, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes &target, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, AccelerationRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, AccelerationRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFromParent (const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFromParent (const TimePoint &tp, KinematicRotation &rotation) const
 
errc_t getAttitudeIn (Axes &axes, const TimePoint &tp, Quaternion &quat) const
 
A_ALWAYS_INLINE errc_t getAttitudeIn (Axes *axes, const TimePoint &tp, Quaternion &quat) const
 
errc_t getAttitudeIn (Axes &axes, const TimePoint &tp, Quaternion &quat, Vector3d &angvel) const
 
A_ALWAYS_INLINE errc_t getAttitudeIn (Axes *axes, const TimePoint &tp, Quaternion &quat, Vector3d &angvel) const
 
- Public 成员函数 继承自 ast::ObjectNamed
 ObjectNamed ()=default
 
 ObjectNamed (StringView name)
 
const std::string & getName () const override
 
void setName (StringView name) override
 
- Public 成员函数 继承自 ast::Object
 Object (Object *parentScope)
 
 Object (std::nullptr_t)
 
virtual Class * getType () const
 
virtual std::string getRepresentation () const
 
const std::string & name () const
 
std::string displayName () const
 
errc_t showEditDialog ()
 
Attribute attr (StringView path)
 
errc_t getAttrBool (StringView path, bool &value) const
 
errc_t getAttrInt (StringView path, int &value) const
 
errc_t getAttrDouble (StringView path, double &value) const
 
errc_t getAttrString (StringView path, std::string &value) const
 
errc_t getAttrObject (StringView path, Object *&value) const
 
double getAttrDouble (StringView path) const
 
int getAttrInt (StringView path) const
 
bool getAttrBool (StringView path) const
 
std::string getAttrString (StringView path) const
 
Object * getAttrObject (StringView path) const
 
errc_t setAttrBool (StringView path, bool value)
 
errc_t setAttrInt (StringView path, int value)
 
errc_t setAttrDouble (StringView path, double value)
 
errc_t setAttrString (StringView path, StringView value)
 
errc_t setAttrObject (StringView path, Object *value)
 
Class * type () const
 
const std::string & typeName () const
 
Property * getProperty (StringView fieldName) const
 
ObjectId getID () const
 
errc_t setParentScope (Object *parentScope)
 
Object * getParentScope () const
 
template<typename T >
T getParent () const
 
bool isOfType (const Class *type) const
 
bool isOfType (StringView typeName) const
 
template<typename T >
bool isOfType () const
 
template<typename Func >
void addDelayedLink (Func &&link)
 
template<typename Func >
void addDelayedLinkIfFailed (Func &&link)
 
void resolveLinks ()
 
bool readOnly () const
 
void setReadOnly (bool readOnly)
 
bool active () const
 
void setActive (bool active)
 
bool isComponent () const
 
void setIsComponent (bool isComponent)
 
bool isEntity () const
 
void setIsEntity (bool isEntity)
 
const char * tr (const char *msg) const
 
 Referenced ()
 
 Referenced (initial_strong_ref_t)
 
- Public 成员函数 继承自 ast::Referenced
 Referenced (initial_strong_ref_t)
 
uint32_t refCount () const
 
uint32_t weakRefCount () const
 
bool isDestructed () const
 
void destruct ()
 
uint32_t incWeakRef ()
 
uint32_t decWeakRef ()
 
uint32_t incRef ()
 
uint32_t decRef ()
 
uint32_t decRefNoDelete ()
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 ast::Object
static Object * Resolve (StringView value)
 
static void ClassInit (Class *cls)
 
static Class * StaticType ()
 
- 静态 Public 属性 继承自 ast::Object
static Class staticType
 
- Protected 成员函数 继承自 ast::Object
 Object (const Object &)
 
Object & operator= (const Object &)
 
- Protected 成员函数 继承自 ast::Referenced
void setDestructed ()
 

详细描述

轴系抽象基类

轴系是一种几何元素,表示三维空间中的一组正交坐标轴方向。 所有具体轴系类型(地固系、惯性系、冻结系等)均派生自此类。 轴系通过父子关系构成树形层级,根轴系通常为惯性空间(如 ICRF)。

成员函数说明

◆ getAncestor()

Axes * ast::Axes::getAncestor ( int depth) const

获取当前轴系指定深度的祖先轴系

参数
depth目标祖先的深度
返回
祖先轴系指针,若 depth 超出范围则返回 nullptr

◆ getAttitudeIn() [1/2]

errc_t ast::Axes::getAttitudeIn ( Axes & axes,
const TimePoint & tp,
Quaternion & quat ) const

获取当前轴系相对于目标轴系的姿态(四元数表示)

参数
axes目标轴系
tp时间点
quat四元数
返回
错误码

◆ getAttitudeIn() [2/2]

errc_t ast::Axes::getAttitudeIn ( Axes & axes,
const TimePoint & tp,
Quaternion & quat,
Vector3d & angvel ) const

获取当前轴系相对于目标轴系的姿态(四元数表示)和角速度

参数
axes目标轴系
tp时间点
quat四元数
angvel角速度
返回
错误码

◆ getDepth()

int ast::Axes::getDepth ( ) const

获取当前轴系的深度

根轴系深度为 0,每增加一级父轴系深度加 1。

返回
深度值

◆ getParent()

virtual Axes * ast::Axes::getParent ( ) const
pure virtual

◆ getTransform() [1/3]

errc_t ast::Axes::getTransform ( const TimePoint & tp,
AccelerationRotation & rotation ) const
virtual

获取当前轴系相对于父轴系的加速度旋转变换

参数
tp时间点
rotation输出参数,加速度旋转变换(包含加速度)
返回
错误码

默认实现:先由具体轴系给出本轴系相对父轴系的运动学旋转变换(旋转矩阵 + 角速度), 再对两端时刻的角速度做中心差分(端点处退化为单侧差分)得到角加速度。

按 AccelerationRotation 的约定,角加速度是角速度的分量在源轴系(父轴系)下的 坐标时间导数,因此这里直接对 getTransform 返回的角速度分量做差商即可, 不需要额外补偿父轴系自身的转动——父轴系转动引入的输运项由组合变换 AccelerationRotation::composed 统一处理。

这是给没有解析角加速度的轴系兜底用的默认实现,有解析解的轴系应当重写本函数。

被 ast::AttitudeSpinning , 以及 ast::AxesProxy 重载.

◆ getTransform() [2/3]

◆ getTransform() [3/3]

◆ getTransformFrom() [1/3]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformFrom ( Axes * source,
const TimePoint & tp,
AccelerationRotation & rotation ) const
inline

获取源轴系到当前轴系的加速度旋转变换

参数
source源轴系
tp时间点
rotation输出参数,加速度旋转变换(包含角加速度)
返回
错误码

◆ getTransformFrom() [2/3]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformFrom ( Axes * source,
const TimePoint & tp,
KinematicRotation & rotation ) const
inline

获取源轴系到当前轴系的运动学旋转变换

参数
source源轴系
tp时间点
rotation输出参数,运动学旋转变换(包含角速度)
返回
错误码

◆ getTransformFrom() [3/3]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformFrom ( Axes * source,
const TimePoint & tp,
Rotation & rotation ) const
inline

获取源轴系到当前轴系的旋转变换

参数
source源轴系
tp时间点
rotation输出参数,旋转变换
返回
错误码

◆ getTransformFromParent() [1/2]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformFromParent ( const TimePoint & tp,
KinematicRotation & rotation ) const
inline

获取当前轴系相对于父轴系的运动学旋转变换

参数
tp时间点
rotation输出参数,运动学旋转变换(包含角速度)
返回
错误码

◆ getTransformFromParent() [2/2]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformFromParent ( const TimePoint & tp,
Rotation & rotation ) const
inline

获取当前轴系相对于父轴系的旋转变换

参数
tp时间点
rotation输出参数,旋转变换
返回
错误码

◆ getTransformTo() [1/2]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformTo ( Axes * target,
const TimePoint & tp,
KinematicRotation & rotation ) const
inline

获取当前轴系到目标轴系的运动学旋转变换

参数
target目标轴系
tp时间点
rotation输出参数,运动学旋转变换(包含角速度)
返回
错误码

◆ getTransformTo() [2/2]

A_ALWAYS_INLINE errc_t ast::Axes::getTransformTo ( Axes * target,
const TimePoint & tp,
Rotation & rotation ) const
inline

获取当前轴系到目标轴系的旋转变换

参数
target目标轴系
tp时间点
rotation输出参数,旋转变换
返回
错误码

该类的文档由以下文件生成: