🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
AccessEvaluator.hpp
浏览该文件的文档.
1
21
22#pragma once
23
24#include "AstGlobal.h"
25#include "AstUtil/ObjectNamed.hpp"
26#include "AstCore/TimePoint.hpp"
27#include "AstCore/TimeInterval.hpp"
28#include "AstCore/TimeIntervalList.hpp"
29#include <vector>
30
31AST_NAMESPACE_BEGIN
32
33class AccessConstraint;
34class AccessStepper;
35
36
37
44AST_CORE_API errc_t aEvaluateAccess(
45 const AccessConstraint* constraint,
46 AccessStepper* stepper,
47 const TimeInterval& interval,
48 TimeIntervalList& result
49);
50
51
58AST_CORE_API errc_t aEvaluateAccess(
59 const AccessConstraint* constraint,
60 AccessStepper* stepper,
61 const TimeIntervalList& intervalList,
62 TimeIntervalList& result
63);
64
65
72AST_CORE_API errc_t aEvaluateAccess(
73 const std::vector<AccessConstraint*>& constraints,
74 AccessStepper* stepper,
75 const TimeInterval& interval,
76 TimeIntervalList& result
77);
78
79
80
83class AST_CORE_API AccessEvaluator : public ObjectNamed
84{
85public:
86 AST_OBJECT(AccessEvaluator)
87
89 virtual ~AccessEvaluator();
90 A_DISABLE_COPY(AccessEvaluator)
91
92
93 void setConstraint(AccessConstraint* constraint) { constraint_ = constraint; }
94 AccessConstraint* constraint() const { return constraint_; }
95
97 void setStepper(AccessStepper* stepper) { stepper_ = stepper; }
98 AccessStepper* stepper() const { return stepper_; }
99
104 errc_t evaluate(const TimeInterval& interval, TimeIntervalList& result);
105
107 bool check(const TimePoint& time) const;
108
109private:
110 AccessConstraint* constraint_{};
111 AccessStepper* stepper_{};
112};
113
114AST_NAMESPACE_END
访问约束抽象基类
定义 AccessConstraint.hpp:41
访问评估器
定义 AccessEvaluator.hpp:84
void setStepper(AccessStepper *stepper)
设置步进策略
定义 AccessEvaluator.hpp:97
步进策略抽象基类
定义 AccessStepper.hpp:35
命名对象
定义 ObjectNamed.hpp:36
errc_t aEvaluateAccess(const AccessConstraint *constraint, AccessStepper *stepper, const TimeInterval &interval, TimeIntervalList &result)
评估访问约束的时间段
定义 AccessEvaluator.cpp:131