00001 /*************************************************************************** 00002 * This file is part of OpenCAL: Open Computer Animation Library * 00003 * I created OpenCAL as my master's thesis Computer Science (multimedia) * 00004 * at the tUL university in Diepenbeek, Belgium * 00005 * * 00006 * Copyright (C) 2003-2004 by Jeroen Dierckx * 00007 * jeroen.dierckx@student.luc.ac.be * 00008 * * 00009 ***************************************************************************/ 00010 00011 #ifndef OPENCAL_ODESOLVER_H 00012 #define OPENCAL_ODESOLVER_H 00013 00014 // Includes 00015 #include <OpenCAL/global.h> 00016 //#include <OpenCAL/PhaseSpace.h> 00017 00018 00019 namespace OpenCAL 00020 { 00021 // Forward declarations 00022 class ODESource; 00023 00030 class OPENCAL_API ODESolver 00031 { 00032 protected: 00033 // Member variables 00034 00035 public: 00036 // Constructors and destructor 00037 //ODESolver(); 00038 virtual ~ODESolver() {} 00039 00040 // Get functions 00041 00042 // Set functions 00043 00044 // Other functions 00045 virtual void solve(float stepSize, ODESource *source) = 0; 00046 00047 /* 00048 virtual PhaseSpace solve( 00049 float stepSize, 00050 const PhaseSpace &state, 00051 const PhaseSpace &deriv) 00052 { 00053 PhaseSpace result; 00054 solve(stepSize, state, deriv, &result); 00055 return result; 00056 } 00057 00058 virtual void solve( 00059 float stepSize, 00060 const PhaseSpace &state, 00061 const PhaseSpace &deriv, 00062 PhaseSpace *result) = 0; 00063 */ 00064 }; 00065 } 00066 00067 #endif // OPENCAL_ODESOLVER_H