diff --git a/sources/reactphysics3d/engine/RK4.cpp b/sources/reactphysics3d/engine/RK4.cpp index 8b2968ca..cb1602d3 100644 --- a/sources/reactphysics3d/engine/RK4.cpp +++ b/sources/reactphysics3d/engine/RK4.cpp @@ -19,6 +19,7 @@ // Libraries #include "RK4.h" +#include // We want to use the ReactPhysics3D namespace using namespace reactphysics3d; @@ -52,7 +53,7 @@ DerivativeBodyState RK4::evaluate(const BodyState& bodyState, const Time& time) } // Compute a derivative body state at time t + dt according to the last derivative body state -DerivativeBodyState RK4::evaluate(BodyState& bodyState, const Time& time, const Time& timeStep, +DerivativeBodyState RK4::evaluate(BodyState bodyState, const Time& time, const Time& timeStep, const DerivativeBodyState& lastDerivativeBodyState) { // Compute the bodyState at time t + dt bodyState.computeAtTime(timeStep, lastDerivativeBodyState); @@ -69,6 +70,7 @@ DerivativeBodyState RK4::evaluate(BodyState& bodyState, const Time& time, const // Integrate a body state over time. This method use the RK4 integration algorithm void RK4::integrate(BodyState& bodyState, const Time& time, const Time& timeStep) { + // Compute the 4 derivatives body states at different time values. DerivativeBodyState a = evaluate(bodyState, time); DerivativeBodyState b = evaluate(bodyState, time, timeStep*0.5, a); diff --git a/sources/reactphysics3d/engine/RK4.h b/sources/reactphysics3d/engine/RK4.h index d3c126d1..090015a5 100644 --- a/sources/reactphysics3d/engine/RK4.h +++ b/sources/reactphysics3d/engine/RK4.h @@ -38,7 +38,7 @@ namespace reactphysics3d { class RK4 : public IntegrationAlgorithm { private : DerivativeBodyState evaluate(const BodyState& bodyState, const Time& time); // Compute a derivative body state - DerivativeBodyState evaluate(BodyState& bodyState, const Time& time, + DerivativeBodyState evaluate(BodyState bodyState, const Time& time, const Time& timeStep, const DerivativeBodyState& lastDerivativeBodyState); // Compute a derivative body state public :