From 5f47d2433125bd816fef464b8ed50233be7b777c Mon Sep 17 00:00:00 2001 From: koldo Date: Sun, 27 Dec 2015 19:53:11 +0000 Subject: [PATCH] ScatterDraw: constants and functions list are public git-svn-id: svn://ultimatepp.org/upp/trunk@9357 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ScatterDraw/Equation.cpp | 5 ++++- uppsrc/ScatterDraw/Equation.h | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/uppsrc/ScatterDraw/Equation.cpp b/uppsrc/ScatterDraw/Equation.cpp index a40fa0cda..e97e9b689 100644 --- a/uppsrc/ScatterDraw/Equation.cpp +++ b/uppsrc/ScatterDraw/Equation.cpp @@ -122,13 +122,15 @@ String FourierEquation::GetEquation(int numDigits) { return ret; } +static double degToRad(double deg) {return M_PI/180.;} EvalExpr::EvalExpr() { noCase = false; constants.Add("PI", M_PI); constants.Add("M_PI", M_PI); - constants.Add("e", exp(1.0)); + constants.Add("e", M_E); + functions.Add("abs", fabs); functions.Add("ceil", ceil); functions.Add("floor", floor); @@ -142,6 +144,7 @@ EvalExpr::EvalExpr() { functions.Add("sinh", sinh); functions.Add("cosh", cosh); functions.Add("tanh", tanh); + functions.Add("degToRad", degToRad); } double EvalExpr::Term(CParser& p) { diff --git a/uppsrc/ScatterDraw/Equation.h b/uppsrc/ScatterDraw/Equation.h index 60e03daea..82f4426eb 100644 --- a/uppsrc/ScatterDraw/Equation.h +++ b/uppsrc/ScatterDraw/Equation.h @@ -234,6 +234,9 @@ public: void GetVariable(int id, String &name, double &value) {name = variables.GetKey(id); value = variables[id];} int GetVariablesCount() {return variables.GetCount();} + VectorMap constants; + VectorMap functions; + private: void *Functions_Get(CParser& p); double Term(CParser& p); @@ -245,10 +248,8 @@ private: String MulStr(CParser& p, int numDigits); String ExpStr(CParser& p, int numDigits); bool noCase; - - VectorMap constants; + VectorMap variables; - VectorMap functions; }; class UserEquation : public ExplicitEquation {