private void DrawTexture( Tex tex, DoubleRect rect, FloatRect uv, Vector2d origin, Vector2d rotationAnchor, float opacity, bool pretty = false ) { var angle = Angle.FromLine(origin, rotationAnchor); var t = Utility.RotateRect(rect, Vector2d.Zero, angle); var transform = new Vector2d[] { (t[0] + origin), // 0 tl (t[1] + origin), // 1 tr (t[2] + origin), // 2 br (t[3] + origin), // 3 bl }; var texrect = GameDrawingMatrix.ScreenCoords(transform); var color = Color.FromArgb((int)(255f * opacity), Color.White); Color[] colors = new Color[] { color, color, color, color }; if (pretty) { var random = new Random((Environment.TickCount / 100) % 255); for (int i = 0; i < colors.Length; i++) { bool redness = random.Next() % 2 == 0; bool blueness = random.Next() % 2 == 0; var random1 = Math.Max(200, random.Next() % 255); int red = Math.Min(255, redness ? (random1 * 2) : (random1 / 2)); int green = Math.Min(255, (blueness && redness) ? (random1) : (random1 / 2)); int blue = Math.Min(255, blueness ? (random1 * 2) : (random1 / 2)); colors[i] = Color.FromArgb((int)(255f * opacity), red, green, blue); } } var u1 = uv.Left; var v1 = uv.Top; var u2 = uv.Right; var v2 = uv.Bottom; var verts = new RiderVertex[] { new RiderVertex(texrect[0], new Vector2(uv.Left, uv.Top), tex, colors[0]), new RiderVertex(texrect[1], new Vector2(uv.Right, uv.Top), tex, colors[1]), new RiderVertex(texrect[2], new Vector2(uv.Right, uv.Bottom), tex, colors[2]), new RiderVertex(texrect[3], new Vector2(uv.Left, uv.Bottom), tex, colors[3]) }; Array.Add(verts[0]); Array.Add(verts[1]); Array.Add(verts[2]); Array.Add(verts[3]); Array.Add(verts[2]); Array.Add(verts[0]); }
private Vector2[] DrawLine(Vector2d p1, Vector2d p2, int color, float size) { var calc = Utility.GetThickLine(p1, p2, Angle.FromLine(p1, p2), size); var t = GameDrawingMatrix.ScreenCoords(calc); var verts = new RiderVertex[] { RiderVertex.NoTexture(t[0],color), RiderVertex.NoTexture(t[1],color), RiderVertex.NoTexture(t[2],color), RiderVertex.NoTexture(t[3],color) }; Array.Add(verts[0]); Array.Add(verts[1]); Array.Add(verts[2]); Array.Add(verts[3]); Array.Add(verts[2]); Array.Add(verts[0]); return t; }