🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ObjectCalculation.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/ObjectNamed.hpp"
25#include "AstUtil/Dimension.hpp"
26
27AST_NAMESPACE_BEGIN
28
40class AST_UTIL_API ObjectCalculation : public ObjectNamed
41{
42public:
43 AST_OBJECT(ObjectCalculation)
44
45 using ObjectNamed::ObjectNamed;
46 ~ObjectCalculation() override = default;
47public:
50 virtual Class* getExpectedType() const = 0;
51
58 virtual errc_t calculateNoCheckType(const Object* obj, double& result) = 0;
59
61 virtual Dimension getDimension() const {return EDimension::eUnit;}
62
64 bool isAngle() const {return getDimension() == EDimension::eAngle;}
65
70 errc_t calculate(const Object* obj, double& result);
71
75 bool isExpectedType(const Object* obj) const;
76};
77
78
79
82AST_NAMESPACE_END
类元信息
定义 Class.hpp:40
量纲
定义 Dimension.hpp:360
对象计算基类
定义 ObjectCalculation.hpp:41
virtual Dimension getDimension() const
获取计算结果的量纲
定义 ObjectCalculation.hpp:61
virtual Class * getExpectedType() const =0
获取期望输入的对象类型
virtual errc_t calculateNoCheckType(const Object *obj, double &result)=0
计算结果
bool isAngle() const
检查计算结果是否为角度量纲
定义 ObjectCalculation.hpp:64
命名对象
定义 ObjectNamed.hpp:36
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
@ eUnit
单位量纲