🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprCalculation.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "Expr.hpp"
25#include "AstUtil/ObjectCalculation.hpp"
26
27
28AST_NAMESPACE_BEGIN
29
36class AST_SCRIPT_API ExprCalculationBase : public Expr
37{
38public:
39
40
41};
42
43
44
45class AST_SCRIPT_API ExprCalculation : public ExprCalculationBase
46{
47public:
48 AST_EXPR(ExprCalculation)
49
50
54 static ExprCalculation* New(Object* obj=nullptr, ObjectCalculation* calc=nullptr);
55
56
57 ExprCalculation() = default;
59 ~ExprCalculation() = default;
60
61 Value* eval() const override;
62
63 errc_t setValue(Value* val) override;
64
65 std::string getExpression(Object* context=nullptr) const override;
66
67public:
71 errc_t calculate(double& val) const;
72
73public:
74 Object* object() const {return object_.get();}
75 void setObject(Object* obj);
76
77 ObjectCalculation* calculation() const {return calculation_.get();}
78 void setCalculation(ObjectCalculation* calc);
79private:
80 void syncTypeMatched();
81private:
82 bool typeMatched_{false};
83 WeakPtr<Object> object_;
84 WeakPtr<ObjectCalculation> calculation_;
85};
86
89AST_NAMESPACE_END
90
91
定义 ExprCalculation.hpp:37
定义 ExprCalculation.hpp:46
表达式基类
定义 Expr.hpp:39
virtual errc_t setValue(Value *val)
设置表达式的值
定义 Expr.hpp:60
virtual Value * eval() const =0
求值
virtual std::string getExpression(Object *context=nullptr) const =0
获取表达式的字符串表示
对象计算基类
定义 ObjectCalculation.hpp:40
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:86
值对象基类
定义 Value.hpp:43
弱引用指针
定义 WeakPtr.hpp:35