src/tools/values/vebMathExpr.h

Go to the documentation of this file.
00001 /*
00002 
00003 *************************************************************************
00004 
00005 ArmageTron -- Just another Tron Lightcycle Game in 3D.
00006 Copyright (C) 2000  Manuel Moos (manuel@moosnet.de)
00007 
00008 **************************************************************************
00009 
00010 This program is free software; you can redistribute it and/or
00011 modify it under the terms of the GNU General Public License
00012 as published by the Free Software Foundation; either version 2
00013 of the License, or (at your option) any later version.
00014 
00015 This program is distributed in the hope that it will be useful,
00016 but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 GNU General Public License for more details.
00019 
00020 You should have received a copy of the GNU General Public License
00021 along with this program; if not, write to the Free Software
00022 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00023 
00024 ***************************************************************************
00025 
00026 */
00027 
00030 
00031 #ifndef ARMAGETRON_vebMathExpr_h
00032 #define ARMAGETRON_vebMathExpr_h
00033 
00034 #include <map>
00035 
00036 #include "values/vCore.h"
00037 
00038 class ROperation;
00039 class RVar;
00040 class RFunction;
00041 
00042 namespace vValue {
00043 namespace Expr {
00044 namespace Bindings {
00045 
00047 class MathExpr : public Base {
00048 public:
00049     typedef std::map<tString, float *> varmap_t; 
00050     typedef std::map<tString, float ((*)(float))> funcmap_t; 
00051 private:
00052     boost::shared_ptr<ROperation> m_operation;
00053     RVar **m_vararray;
00054     RFunction **m_funcarray;
00055     int m_varsSize, m_functionsSize;
00056 public:
00057     MathExpr(tString const &expr); 
00058     MathExpr(tString const &expr, varmap_t const &vars, funcmap_t const &functions); 
00059 
00060     Base *copy(void) const;
00061     ~MathExpr(void);
00062 
00063     virtual Variant GetValue(void) const; 
00064 };
00065 
00066 }
00067 }
00068 }
00069 
00070 #endif

Generated on Sat Mar 15 22:56:04 2008 for Armagetron Advanced by  doxygen 1.5.4