Exemple #1
0
 public LVector2(LFloat x, LFloat y)
 {
     this._x = x._val;
     this._y = y._val;
 }
 public static Vector3 ToVector3XZ(this LVector2 vec, LFloat y)
 {
     return(new Vector3(vec.x.ToFloat(), y.ToFloat(), vec.y.ToFloat()));
 }
Exemple #3
0
 public static LVector2 Lerp(LVector2 a, LVector2 b, LFloat f)
 {
     return(new LVector2(true,
                         (int)(((long)(b._x - a._x) * f._val) / LFloat.Precision) + a._x,
                         (int)(((long)(b._y - a._y) * f._val) / LFloat.Precision) + a._y));
 }
Exemple #4
0
 public static LFloat Max(LFloat a, LFloat b)
 {
     return(new LFloat(true, Max(a._val, b._val)));
 }
Exemple #5
0
 public static LFloat Lerp(LFloat a, LFloat b, LFloat f)
 {
     return(new LFloat(true, (int)(((long)(b._val - a._val) * f._val) / LFloat.Precision) + a._val));
 }
Exemple #6
0
 public static bool SameSign(LFloat a, LFloat b)
 {
     return((long)a._val * b._val > 0L);
 }
Exemple #7
0
 public static int Sign(LFloat val)
 {
     return(System.Math.Sign(val._val));
 }
Exemple #8
0
 //ccw
 public static LFloat Cos(LFloat radians)
 {
     return(new LFloat(true, LUTCos.table[_GetIdx(radians)]));
 }
Exemple #9
0
 public static LFloat Sqr(LFloat a)
 {
     return(a * a);
 }
Exemple #10
0
 public static LFloat Atan2(LFloat y, LFloat x)
 {
     return(Atan2(y._val, x._val));
 }
Exemple #11
0
 //ccw
 public static LFloat Sin(LFloat radians)
 {
     return(new LFloat(true, LUTSin.table[_GetIdx(radians)]));
 }
Exemple #12
0
 public static LFloat Range(LFloat min, LFloat max)
 {
     return(_i.Range(min, max));
 }
Exemple #13
0
 public LVector3(LFloat x, LFloat y, LFloat z)
 {
     this._x = x._val;
     this._y = y._val;
     this._z = z._val;
 }
Exemple #14
0
 public static LFloat Sqrt(LFloat val)
 {
     return(Lockstep.Math.LMath.Sqrt(val));
 }
Exemple #15
0
        public static LFloat Cos(LFloat radians)
        {
            int index = LUTSinCos.getIndex(radians);

            return(new LFloat(true, (long)LUTSinCos.cos_table[index] / 10));
        }
        /// <summary>
        /// 夹角大小
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        public static LFloat Angle(LQuaternion a, LQuaternion b)
        {
            LFloat single = Dot(a, b);

            return(LMath.Acos(LMath.Min(LMath.Abs(single), LFloat.one)) * 2 * (180 / LMath.PI));
        }