🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ODEEventDetectorList.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstMath/ODEEventObserver.hpp"
25#include <vector>
26
27AST_NAMESPACE_BEGIN
28
29class ODEEventObserver;
30
31class AST_MATH_API ODEEventDetectorList: public ODEStateObserver
32{
33public:
34 ~ODEEventDetectorList() override;
35 ODEEventDetectorList() = default;
36
37 EODEAction onStateUpdate(double* y, double& x, ODEIntegrator* integrator) final;
38
39 void addEventDetector(ODEEventDetector* detector);
40
41 void removeEventDetector(ODEEventDetector* detector);
42
43 bool empty() const { return eventObservers_.empty(); }
44
45 size_t size() const { return eventObservers_.size(); }
46
47 void clear(){ eventObservers_.clear(); }
48
49 ODEEventObserver& operator[](size_t index) { return *eventObservers_[index]; }
50 const ODEEventObserver& operator[](size_t index) const { return *eventObservers_[index]; }
51protected:
52 std::vector<ODEEventObserver*> eventObservers_;
53};
54
55
56AST_NAMESPACE_END
定义 ODEEventDetectorList.hpp:32
ODE积分的事件检测器
定义 ODEEventDetector.hpp:36
定义 ODEEventObserver.hpp:32
ODE 积分器
定义 ODEIntegrator.hpp:83
ODE状态量观察者
定义 ODEStateObserver.hpp:39
virtual EODEAction onStateUpdate(double *y, double &x, ODEIntegrator *integrator)=0
状态更新处理函数