123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /*
- * Copyright (c) 2005, The haXe Project Contributors
- * All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE HAXE PROJECT CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE HAXE PROJECT CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- */
- /**
- This class defines mathematical functions and constants.
- **/
- extern class Math
- {
- static var PI(default,null) : Float;
- static var NaN(default,null) : Float;
- static var NEGATIVE_INFINITY(default,null) : Float;
- static var POSITIVE_INFINITY(default,null) : Float;
- static function abs(v:Float):Float;
- static function min(a:Float,b:Float):Float;
- static function max(a:Float,b:Float):Float;
- static function sin(v:Float):Float;
- static function cos(v:Float):Float;
- static function atan2(y:Float,x:Float):Float;
- static function tan(v:Float):Float;
- static function exp(v:Float):Float;
- static function log(v:Float):Float;
- static function sqrt(v:Float):Float;
- static function round(v:Float):Int;
- static function floor(v:Float):Int;
- static function ceil(v:Float):Int;
- static function atan(v:Float):Float;
- static function asin(v:Float):Float;
- static function acos(v:Float):Float;
- static function pow(v:Float,exp:Float):Float;
- static function random() : Float;
- static function isFinite( f : Float ) : Bool;
- static function isNaN( f : Float ) : Bool;
- private static function __init__() : Void untyped {
- #if flash9
- NaN = __global__["Number"].NaN;
- NEGATIVE_INFINITY = __global__["Number"].NEGATIVE_INFINITY;
- POSITIVE_INFINITY = __global__["Number"].POSITIVE_INFINITY;
- #else
- Math.__name__ = ["Math"];
- Math.NaN = Number["NaN"];
- Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
- Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
- #end
- #if js
- $hxClasses['Math'] = Math;
- #end
- Math.isFinite = function(i) {
- return
- #if flash9
- __global__["isFinite"](i);
- #elseif flash
- _global["isFinite"](i);
- #elseif js
- __js__("isFinite")(i);
- #else
- false;
- #end
- };
- Math.isNaN = function(i) {
- return
- #if flash9
- __global__["isNaN"](i);
- #elseif flash
- _global["isNaN"](i);
- #elseif js
- __js__("isNaN")(i);
- #else
- false;
- #end
- };
- }
- }
|