|
AndroMeta
2.0.0
|
00001 /* 00002 * Copyright 2009-2012 AndroMeta LLC. All rights reserved. 00003 * 00004 * AndroMeta LLC retains all intellectual property and proprietary 00005 * rights to this software and related documentation and any modifications 00006 * thereto. Any use, reproduction, disclosure, or distribution of this 00007 * software and related documentation without an express license agreement 00008 * from AndroMeta LLC is strictly prohibited. 00009 * 00010 */ 00011 00018 #ifndef ANDROMETA_M_MATH_H 00019 #define ANDROMETA_M_MATH_H 00020 00021 #include <AndroMeta/MNode.h> 00022 #include <AndroMeta/MVar.h> 00023 00024 namespace Meta{ 00025 00026 class MObject; 00027 00039 class MMath{ 00040 public: 00041 00045 static mnode degrees(const mvar& deg, MObject* obj=0); 00046 00050 static mnode pi(MObject* obj=0); 00051 00055 static mnode euler(MObject* obj=0); 00056 00060 static mnode catalan(MObject* obj=0); 00061 00065 static mnode sqrt(const mvar& v, MObject* obj=0); 00066 00070 static mnode pow(const mvar& v, const mvar& exponent, MObject* obj=0); 00071 00075 static mnode exp(const mvar& v, MObject* obj=0); 00076 00080 static mvar abs(const mvar& v); 00081 00085 static mnode log10(const mvar& v, MObject* obj=0); 00086 00090 static mnode log(const mvar& v, MObject* obj); 00091 00095 static mnode cos(const mvar& v, MObject* obj=0); 00096 00100 static mnode acos(const mvar& v, MObject* obj=0); 00101 00105 static mnode cosh(const mvar& v, MObject* obj=0); 00106 00110 static mnode sin(const mvar& v, MObject* obj=0); 00111 00115 static mnode asin(const mvar& v, MObject* obj=0); 00116 00120 static mnode sinh(const mvar& v, MObject* obj=0); 00121 00125 static mnode tan(const mvar& v, MObject* obj=0); 00126 00130 static mnode cot(const mvar& v, MObject* obj=0); 00131 00135 static mnode acot(const mvar& v, MObject* obj=0); 00136 00140 static mnode atan(const mvar& v, MObject* obj=0); 00141 00145 static mnode atan2(const mvar& y, const mvar& x, MObject* obj=0); 00146 00150 static mnode tanh(const mvar& v, MObject* obj=0); 00151 00155 static mnode sec(const mvar& v, MObject* obj=0); 00156 00160 static mnode csc(const mvar& v, MObject* obj=0); 00161 00165 static mnode sech(const mvar& v, MObject* obj=0); 00166 00170 static mnode csch(const mvar& v, MObject* obj=0); 00171 00175 static mnode asec(const mvar& v, MObject* obj=0); 00176 00180 static mnode acsc(const mvar& v, MObject* obj=0); 00181 00185 static mnode asech(const mvar& v, MObject* obj=0); 00186 00190 static mnode acsch(const mvar& v, MObject* obj=0); 00191 00195 static mnode coth(const mvar& v, MObject* obj=0); 00196 00200 static mnode acoth(const mvar& v, MObject* obj=0); 00201 00205 static mnode atanh(const mvar& v, MObject* obj=0); 00206 00210 static mnode asinh(const mvar& v, MObject* obj=0); 00211 00215 static mnode acosh(const mvar& v, MObject* obj=0); 00216 00220 static mvar floor(const mvar& v); 00221 00225 static mvar ceil(const mvar& v); 00226 00231 static mvar round(const mvar& v, double precision=1); 00232 00238 static bool nearInteger(double v, mvar& n); 00239 00244 static mnode distance(const mvar& u, const mvar& v, MObject* obj=0); 00245 00249 static double fastDistance(const mvar& u, const mvar& v); 00250 00254 static mvar scaleVector(const mvar& u, double magnitude); 00255 00260 static mvec vectorRange(const mvar& b){ 00261 return vectorRange(0, b, 1); 00262 } 00263 00268 static mvec vectorRange(const mvar& a, const mvar& b){ 00269 return vectorRange(a, b, 1); 00270 } 00271 00276 static mvec vectorRange(const mvar& a, const mvar& b, const mvar& inc); 00277 00282 static mlist listRange(const mvar& b){ 00283 return listRange(0, b, 1); 00284 } 00285 00290 static mlist listRange(const mvar& a, const mvar& b){ 00291 return listRange(a, b, 1); 00292 } 00293 00298 static mlist listRange(const mvar& a, const mvar& b, const mvar& inc); 00299 00307 static mvar clamp(const mvar& v, const mvar& min, const mvar& max); 00308 }; 00309 00310 } // end namespace Meta 00311 00312 #endif // ANDROMETA_M_MATH_H
1.7.6.1