/// <summary> /// Gets the wrapped uv. /// </summary> /// <returns>The wrapped uv.</returns> /// <param name="uV">U v.</param> private Vector2 GetWrappedUv(Vector2 uV) { float u = uV.x; float v = uV.y; switch (m_Wrap) { case Wrap.Clamp: u = HydraMathUtils.Clamp(u, 0.0f, 1.0f); v = HydraMathUtils.Clamp(v, 0.0f, 1.0f); break; case Wrap.Repeat: u = Mathf.Repeat(u, 1.0f); v = Mathf.Repeat(v, 1.0f); break; case Wrap.PingPong: u = HydraMathUtils.PingPong(u, 1.0f); v = HydraMathUtils.PingPong(v, 1.0f); break; default: throw new ArgumentOutOfRangeException(); } return(new Vector2(u, v)); }
/// <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)); }
/// <summary> /// Validates the time scale. /// </summary> /// <returns>The time scale.</returns> /// <param name="scale">Scale.</param> public static float ValidateTimeScale(float scale) { return(HydraMathUtils.Clamp(scale, 0.0f, 10.0f)); }