git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@196 92aac97c-a6ce-11dd-a772-7fcde58d38e6
This commit is contained in:
parent
bf096063bd
commit
b184152773
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
// Libraries
|
// Libraries
|
||||||
#include "RK4.h"
|
#include "RK4.h"
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
// We want to use the ReactPhysics3D namespace
|
// We want to use the ReactPhysics3D namespace
|
||||||
using namespace reactphysics3d;
|
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
|
// 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) {
|
const DerivativeBodyState& lastDerivativeBodyState) {
|
||||||
// Compute the bodyState at time t + dt
|
// Compute the bodyState at time t + dt
|
||||||
bodyState.computeAtTime(timeStep, lastDerivativeBodyState);
|
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
|
// Integrate a body state over time. This method use the RK4 integration algorithm
|
||||||
void RK4::integrate(BodyState& bodyState, const Time& time, const Time& timeStep) {
|
void RK4::integrate(BodyState& bodyState, const Time& time, const Time& timeStep) {
|
||||||
|
|
||||||
// Compute the 4 derivatives body states at different time values.
|
// Compute the 4 derivatives body states at different time values.
|
||||||
DerivativeBodyState a = evaluate(bodyState, time);
|
DerivativeBodyState a = evaluate(bodyState, time);
|
||||||
DerivativeBodyState b = evaluate(bodyState, time, timeStep*0.5, a);
|
DerivativeBodyState b = evaluate(bodyState, time, timeStep*0.5, a);
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace reactphysics3d {
|
||||||
class RK4 : public IntegrationAlgorithm {
|
class RK4 : public IntegrationAlgorithm {
|
||||||
private :
|
private :
|
||||||
DerivativeBodyState evaluate(const BodyState& bodyState, const Time& time); // Compute a derivative body state
|
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
|
const Time& timeStep, const DerivativeBodyState& lastDerivativeBodyState); // Compute a derivative body state
|
||||||
|
|
||||||
public :
|
public :
|
||||||
|
|
Loading…
Reference in New Issue
Block a user