1#ifndef TT_INCLUDE__ODESYSTEMCLASS_H
2#define TT_INCLUDE__ODESYSTEMCLASS_H
3#include "engine_vector.h"
4class StateVectorClass :
public DynamicVectorClass<float>
7 void Reset(
void) { ActiveCount = 0; }
8 void Resize(
int size) {
if (size > VectorMax) { DynamicVectorClass<float>::Resize(size); } }
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;
17class IntegrationSystem
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);