Files
2026-08-08 19:30:03 -07:00

24 lines
667 B
C++

#pragma once
typedef void (*idODEDeriveFunction)(float time, const void* userData,
const float* state, float* derivatives);
class idODE {
public:
idODE(const int stateDimension, idODEDeriveFunction deriveFunction,
const void* data)
: dimension(stateDimension), derive(deriveFunction), userData(data) {}
virtual ~idODE() = default;
virtual float Evaluate(const float* state, float* newState,
float time, float timeStep) = 0;
int dimension;
idODEDeriveFunction derive;
const void* userData;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(idODE) == 16, "Recovered idODE ABI changed");
#endif