Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
            {
            }
        }