public void DrawObject(ViewerObjectBase obj) { var x = 2f * (2f / _scale); _device.Transform.World = Matrix.Scaling(x, x, x); if (obj.Rotate) { var transforms1 = _device.Transform; transforms1.World *= Matrix.RotationZ(6.283185f - obj.Orientation); } var transform = _device.Transform; transform.World *= Matrix.Translation(obj.Position); _device.RenderState.TextureFactor = obj.Color; var textureState = _device.TextureState[0]; textureState.ColorOperation = TextureOperation.Modulate; textureState.ColorArgument0 = TextureArgument.TextureColor; textureState.ColorArgument1 = TextureArgument.TFactor; _device.VertexFormat = VertexFormats.Diffuse | VertexFormats.Position; _device.SetTexture(0, null); _device.SetStreamSource(0, obj.VbBuffer, 0); _device.DrawPrimitives(PrimitiveType.TriangleList, 0, obj.NumberOfVertexs); var v = Vector3.Project(new Vector3(0f, 0f, 0f), _device.Viewport, _device.Transform.Projection, _device.Transform.View, _device.Transform.World); obj.Vector2 = new Vector2(v.X, v.Y); _font.DrawText(null, obj.ToString(), (int)v.X + 10, (int)v.Y - 4, _textColor); }
public void DrawLine(ViewerObjectBase source, ViewerObjectBase dest) { var myLine = new Line(_device); Vector2[] vertices = { source.Vector2, dest.Vector2 }; try { myLine.Width = 1; myLine.Draw(vertices, Color.Magenta); } catch { } }