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; }
public static Complex Sign(this Complex c) { if (c == 0) { return 1; } else { return c / c.Abs(); } }
/// <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); }
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; }
public static bool AbsMoreThan(this long f1, long f2) { return f1.Abs () > f2; }