示例#1
0
 public static void DebugDrawPolyline(DebugDrawContext context, params Vector2[] vertices)
 {
     var vertexData = new VertexPositionColor[vertices.Length];
     for (int i = 0; i < vertices.Length; i++)
         vertexData[i] = new VertexPositionColor(new Vector3(vertices[i], DEBUG_DRAW_Z), context.Color);
     DebugDraw(context, vertexData, PrimitiveType.LineStrip);
 }
示例#2
0
 public static void DebugDrawPoints(DebugDrawContext context, params Vector2[] points)
 {
     var vertexData = new VertexPositionColor[points.Length * 2];
     for (int i = 0; i < points.Length; i++)
     {
         vertexData[i * 2 + 0] = new VertexPositionColor(new Vector3(points[i], DEBUG_DRAW_Z), context.Color);
         vertexData[i * 2 + 1] = new VertexPositionColor(new Vector3(points[i] + Vector2.UnitX, DEBUG_DRAW_Z), context.Color);
     }
     DebugDraw(context, vertexData, PrimitiveType.LineList);
 }
示例#3
0
 public static void DebugDrawCircle(DebugDrawContext context, BoundingSphere sphere)
 {
     VertexPositionColor[] vertexData;
     Graphics3D.GetWireframeModelData(sphere, DEBUG_DRAW_Z, context.Color, out vertexData);
     DebugDraw(context, vertexData, PrimitiveType.LineStrip);
 }
示例#4
0
 private static void DebugDraw(DebugDrawContext context, VertexPositionColor[] vertexData, PrimitiveType primitiveType)
 {
     var gfx = AssaultWingCore.Instance.GraphicsDeviceService.GraphicsDevice;
     DebugEffect.View = context.View;
     DebugEffect.Projection = context.Projection;
     DebugEffect.World = context.World;
     var primitiveCount = primitiveType == PrimitiveType.LineList ? vertexData.Length / 2
         : primitiveType == PrimitiveType.LineStrip ? vertexData.Length - 1
         : primitiveType == PrimitiveType.TriangleList ? vertexData.Length / 3
         : primitiveType == PrimitiveType.TriangleStrip ? vertexData.Length - 2
         : 0;
     if (primitiveCount <= 0) throw new ArgumentException("Invalid primitive type or vertex count");
     foreach (var pass in DebugEffect.CurrentTechnique.Passes)
     {
         pass.Apply();
         gfx.DrawUserPrimitives<VertexPositionColor>(primitiveType, vertexData, 0, primitiveCount);
     }
 }