Пример #1
0
	public static Vector3 ApplyFriction(this Vector3 v, Vector3 f) {
		Vector3 m = v.Abs();
		m.x = v.x.Sign() * Mathf.Max(m.x-f.x, 0);
		m.y = v.y.Sign() * Mathf.Max(m.y-f.y, 0);
		m.z = v.z.Sign() * Mathf.Max(m.z-f.z, 0);
		return m;
	}
Пример #2
0
 public static Complex Sign(this Complex c)
 {
     if (c == 0) {
         return 1;
     } else {
         return c / c.Abs();
     }
 }
Пример #3
0
		/// <summary>
		/// 	Clamp the point to the rect.
		/// </summary>
		/// <param name="extends">Extends.</param>
		/// <param name="point">Point.</param>
		public static Vector2 Clamp(this Rect extends, Vector2 point)
		{
			extends = extends.Abs();

			float x = HydraMathUtils.Clamp(point.x, extends.xMin, extends.xMax);
			float y = HydraMathUtils.Clamp(point.y, extends.yMin, extends.yMax);

			return new Vector2(x, y);
		}
Пример #4
0
    public static Vector3 MaxClamp(this Vector3 vector)
    {
        var absVec = vector.Abs();

        if (absVec.x >= absVec.y && absVec.x >= absVec.z)
            return new Vector3(Math.Sign(vector.x), 0, 0);
        if (absVec.y >= absVec.x && absVec.y >= absVec.z)
            return new Vector3(0, Math.Sign(vector.y), 0);
        if (absVec.z >= absVec.x && absVec.z >= absVec.y)
            return new Vector3(0, 0, Math.Sign(vector.z));

        return Vector3.zero;
    }
Пример #5
0
 public static bool AbsMoreThan(this long f1, long f2)
 {
     return f1.Abs () > f2;
 }