00001
00002
00004
00005 #if !defined(AFX_RUNGEKUTTA4_H__A40CE5C1_D4BD_48A1_9AF2_8A298CAA6FAC__INCLUDED_)
00006 #define AFX_RUNGEKUTTA4_H__A40CE5C1_D4BD_48A1_9AF2_8A298CAA6FAC__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #include "Integrator.h"
00013
00015
00018 class CRungeKutta4Op : public CIntegrator
00019 {
00020 public:
00022 virtual void SetDt(float dt);
00023 CRungeKutta4Op();
00025 CRungeKutta4Op(CVectorField *vectorField,CInterpolator *interpolator,float dt);
00026 virtual ~CRungeKutta4Op();
00028 virtual CSamplePoint *ComputeNext(CSamplePoint *lastPoint);
00029 private:
00030 CVector3D m_AVec,m_BVec,m_CVec,m_DVec;
00031 CPoint3D m_Pos;
00032 CSamplePoint m_SP;
00033
00034 float m_DtDiv2;
00035
00036 };
00037
00038 #endif // !defined(AFX_RUNGEKUTTA4_H__A40CE5C1_D4BD_48A1_9AF2_8A298CAA6FAC__INCLUDED_)