Example #1
0
        public override MeshObject GetMesh()
        {
            var vertices = new Renderer.VertexDataStruct[]
            {
                new Renderer.VertexDataStruct()
                {
                    position = new Vector4(_ray.Position, 1),
                    color    = Vector4.One,
                },

                new Renderer.VertexDataStruct()
                {
                    position = new Vector4(_ray.Direction + _ray.Position, 1),
                    color    = Vector4.One,
                },
            };

            var indices = new uint[]
            {
                0,
                1,
            };

            var result = new MeshObject(
                DirectX3DGraphics.GetInstance(),
                vertices,
                indices,
                PrimitiveTopology.LineList,
                new Material(null, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1),
                true, "", false);

            return(result);
        }
 public Loader(DirectX3DGraphics directX3DGraphics, SamplerState state)
 {
     _directX3DGraphics = directX3DGraphics;
     _imagingFactory    = new ImagingFactory();
     samplerState       = state;
     defaultTexture     = LoadTextureFromFile("Textures\\white.png", true);
     defaultMaterial    = new Graphics.Material(defaultTexture, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1);
 }
Example #3
0
        public Game(Scene scene)
        {
            _scene = scene;

            _renderForm              = new RenderForm();
            _renderForm.UserResized += RenderFormResizedCallback;

            _renderForm.MouseDown += (sender, args) =>
            {
                _ui.Press(_inputController.MousePositionX, _inputController.MousePositionY);
            };
            _renderForm.MouseUp += (sender, args) =>
            {
                if (!_ui.Release(_inputController.MousePositionX, _inputController.MousePositionY))
                {
                    Ray ray = Ray.GetPickRay(
                        (int)_inputController.MousePositionX,
                        (int)_inputController.MousePositionY,
                        new ViewportF(
                            _renderForm.ClientRectangle.X,
                            _renderForm.ClientRectangle.Y,
                            _renderForm.ClientRectangle.Width,
                            _renderForm.ClientRectangle.Height,
                            0, 1),
                        _camera.GetViewMatrix() * _camera.GetPojectionMatrix());

                    _inputController.CursorRay = new RayCollision(ray);
                }
            };


            _directX3DGraphics = DirectX3DGraphics.GetInstance(_renderForm);
            _directX2DGraphics = new DirectX2DGraphics(this, _directX3DGraphics);
            _renderer          = new Renderer(_directX3DGraphics, _directX2DGraphics);
            _renderer.CreateConstantBuffers();

            _audioDevice = new SharpAudioDevice();
            _loader      = new Loader(_directX3DGraphics, _renderer.LinearSampler);

            _timeHelper      = new TimeHelper();
            _inputController = InputController.GetInstance(_renderForm);

            _renderForm.GotFocus += (sender, args) =>
            {
                _inputController.ResetAcquired();
            };

            InitializeScene();
        }
Example #4
0
        private MeshObject MakeMesh()
        {
            Vector3[] corners = new BoundingBox(-_halfSize, _halfSize).GetCorners();

            List <Renderer.VertexDataStruct> vertices = new List <Renderer.VertexDataStruct>();
            List <uint> indices = new List <uint>();

            uint k = 0;

            for (int i = 0; i < corners.Length; i++)
            {
                for (int j = i; j < corners.Length; j++)
                {
                    vertices.Add(new Renderer.VertexDataStruct()
                    {
                        position = new Vector4(corners[i], 1),
                        color    = Vector4.One
                    });
                    vertices.Add(new Renderer.VertexDataStruct()
                    {
                        position = new Vector4(corners[j], 1),
                        color    = Vector4.One
                    });
                    indices.Add(k++);
                    indices.Add(k++);
                }
            }

            return(new MeshObject(
                       DirectX3DGraphics.GetInstance(),
                       vertices.ToArray(),
                       indices.ToArray(),
                       PrimitiveTopology.LineList,
                       new Material(null, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1),
                       true, "", false));
        }