Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
ODESystemClass.h
1#ifndef TT_INCLUDE__ODESYSTEMCLASS_H
2#define TT_INCLUDE__ODESYSTEMCLASS_H
3#include "engine_vector.h"
4class StateVectorClass : public DynamicVectorClass<float>
5{
6public:
7 void Reset(void) { ActiveCount = 0; }
8 void Resize(int size) { if (size > VectorMax) { DynamicVectorClass<float>::Resize(size); } }
9};
10class ODESystemClass
11{
12public:
13 virtual void Get_State(StateVectorClass & set_state) = 0;
14 virtual int Set_State(const StateVectorClass & new_state,int start_index = 0) = 0;
15 virtual int Compute_Derivatives(float t,StateVectorClass * test_state,StateVectorClass * dydt,int start_index = 0) = 0;
16};
17class IntegrationSystem
18{
19public:
20 static void Euler_Integrate(ODESystemClass * sys,float dt);
21 static void Midpoint_Integrate(ODESystemClass * sys,float dt);
22 static void Runge_Kutta_Integrate(ODESystemClass * sys,float dt);
23 static void Runge_Kutta5_Integrate(ODESystemClass * odesys,float dt);
24};
25
26#endif