/// <summary> /// Sets a 2d vector. /// </summary> /// <param name="vec">Vector to set.</param> public void Set(Purple.Math.Vector2 vec) { lastUpdate++; Resize(4, ShaderConstantType.Float); values.SetValue(vec.X, 0); values.SetValue(vec.Y, 1); values.SetValue(0.0f, 2); values.SetValue(1.0f, 3); }
/// <summary> /// rotates a unit vector /// </summary> /// <param name="vec">vector to rotate</param> /// <param name="alpha">angle to use for rotation</param> /// <returns>rotates a certain unit vector</returns> public Purple.Math.Vector2 RotateUnit(Purple.Math.Vector2 vec, float alpha) { return(PixelToUnit(Purple.Math.Vector2.Rotate(UnitToPixel(vec), alpha))); }
/// <summary> /// converts pixel coordinates to unit coordinates /// </summary> /// <param name="pixel">pixel position</param> /// <returns>unit position</returns> public Purple.Math.Vector2 PixelToUnit(Purple.Math.Vector2 pixel) { return(new Purple.Math.Vector2((pixel.X - 0.5f) / targetSize.X, (pixel.Y - 0.5f) / targetSize.Y)); }
/// <summary> /// converts unit coordinates to pixel coordinates /// </summary> /// <param name="unit">unit position</param> /// <returns>pixel position</returns> public Purple.Math.Vector2 UnitToPixel(Purple.Math.Vector2 unit) { return(new Purple.Math.Vector2(unit.X * targetSize.X + 0.5f, unit.Y * targetSize.Y + 0.5f)); }
/// <summary> /// Sets a 2d vector. /// </summary> /// <param name="vec">Vector to set.</param> public void Set(Purple.Math.Vector2 vec) { internalConstant.Set(vec); }