/// <summary> /// Camera transform /// </summary> /// <param name="source"></param> /// <returns></returns> protected static VertexPositionColor[] CameraTransform(VertexPositionColor[] source) { VertexPositionColor[] result = new VertexPositionColor[source.Length]; Vector2 cameraPosition = Camera2D.Instance.GetPosition(); source.CopyTo(result, 0); for (int i = 0; i < result.Length; i++) { result[i].Position.X -= cameraPosition.X; result[i].Position.Y -= cameraPosition.Y; } return result; }
public virtual void DrawColors(VertexPositionColor[] colors, Vector2 location) { if (colors == null) throw new ArgumentNullException("colors"); VertexPositionColor[] copiedColors = new VertexPositionColor[colors.Length]; colors.CopyTo(copiedColors, 0); this._commands.Enqueue(new ContextCommand { CommandType = CommandType.DrawColors, Vectors = new Vector2[] { location }, Addtions = new object[] { copiedColors } }); }
/// <summary> /// Gets a LineStrip Primitive Parameters /// </summary> /// <param name="isclose"></param> /// <param name="center"></param> /// <param name="vertices"></param> /// <returns></returns> public static PrimitivePara LineStrip(bool isclose,Vector3 center, VertexPositionColor[] vertices) { VertexPositionColor[] v; if (isclose) { v = new VertexPositionColor[vertices.Length+1]; vertices.CopyTo(v, 0); v[vertices.Length] = vertices[0]; } else { v = vertices; } int[] i = new int[v.Length]; for (int j = 0; j < i.Length; j++) { i[j] = j; } var temp =new PrimitivePara(v, i, vsBasePara.VS_PTypeDefault(VSType.Primitive, PrimitiveType.LineStrip)); temp.BasePara.center = center; return temp; }