85 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef HX_MATH
							 | 
						||
| 
								 | 
							
								#define HX_MATH
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef HXCPP_H
							 | 
						||
| 
								 | 
							
								#include <hxcpp.h>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <cmath>
							 | 
						||
| 
								 | 
							
								#include <stdlib.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class HXCPP_EXTERN_CLASS_ATTRIBUTES Math_obj : public hx::Object
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								   HX_IS_INSTANCE_OF enum { _hx_ClassId = hx::clsIdMath };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   typedef hx::Object super;
							 | 
						||
| 
								 | 
							
								   typedef Math_obj OBJ_;
							 | 
						||
| 
								 | 
							
								   HX_DO_RTTI;
							 | 
						||
| 
								 | 
							
								   void __construct();
							 | 
						||
| 
								 | 
							
								   static Dynamic __CreateEmpty();
							 | 
						||
| 
								 | 
							
								   static void __boot();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   inline static int floor(double inX) { return __int__(::std::floor(inX)); }
							 | 
						||
| 
								 | 
							
								   inline static int ceil(double inX) { return __int__(::std::ceil(inX)); }
							 | 
						||
| 
								 | 
							
								   inline static int round(double inX) { return floor(inX+0.5); }
							 | 
						||
| 
								 | 
							
								   inline static double ffloor(double inX) { return ::std::floor(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double fceil(double inX) { return ::std::ceil(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double fround(double inX) { return ::std::floor(inX+0.5); }
							 | 
						||
| 
								 | 
							
								   inline static double random() { return __hxcpp_drand(); }
							 | 
						||
| 
								 | 
							
								   inline static double sqrt(double inX) { return ::std::sqrt(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double cos(double inX) { return ::std::cos(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double sin(double inX) { return ::std::sin(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double tan(double inX) { return ::std::tan(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double atan2(double inY,double inX) { return ::std::atan2(inY,inX); }
							 | 
						||
| 
								 | 
							
								   inline static double abs(double inX) { return ::std::fabs(inX); }
							 | 
						||
| 
								 | 
							
								   inline static double pow(double inA,double inB) { return ::std::pow(inA,inB); }
							 | 
						||
| 
								 | 
							
								   inline static double log(double inA) { return ::std::log(inA); }
							 | 
						||
| 
								 | 
							
								   inline static double max(double inA,double inB) { return inA>inB ? inA:inA==inA?inB:inA; }
							 | 
						||
| 
								 | 
							
								   inline static double min(double inA,double inB) { return inA<inB ? inA:inA==inA?inB:inA; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   inline static double atan(double inA) { return ::std::atan(inA); }
							 | 
						||
| 
								 | 
							
								   inline static double asin(double inA) { return ::std::asin(inA); }
							 | 
						||
| 
								 | 
							
								   inline static double acos(double inA) { return ::std::acos(inA); }
							 | 
						||
| 
								 | 
							
								   inline static double exp(double inA) { return ::std::exp(inA); }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   static bool isNaN(double inX);
							 | 
						||
| 
								 | 
							
								   static bool isFinite(double inX);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   static Dynamic floor_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic ceil_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic round_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic ffloor_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic fceil_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic fround_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic random_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic sqrt_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic cos_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic sin_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic tan_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic atan2_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic abs_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic pow_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic log_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic min_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic max_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic atan_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic asin_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic acos_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic exp_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic isNaN_dyn();
							 | 
						||
| 
								 | 
							
								   static Dynamic isFinite_dyn();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   static double NaN;
							 | 
						||
| 
								 | 
							
								   static double PI;
							 | 
						||
| 
								 | 
							
								   static double NEGATIVE_INFINITY;
							 | 
						||
| 
								 | 
							
								   static double POSITIVE_INFINITY;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef hx::ObjectPtr<Math_obj> Math;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |