コード例 #1
0
        private void Draw(WorldStateChange change)
        {
            _worldState = change.Perform(WorldStateChangeAware.Instance)(_worldState);

            var world = _worldBuilder.BuildWorld(_worldState);

            _renderer.Render(world, _backBuffer);
            pictureBox1.Image = _backBuffer;

            var exchange = _backBuffer;

            _backBuffer  = _frontBuffer;
            _frontBuffer = exchange;
        }
コード例 #2
0
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            switch (_mouseMode)
            {
            case MouseMode.RotateLight:
                Draw(WorldStateChange.ChangeLightPosition(e.X, e.Y));
                break;

            case MouseMode.RotateModel:
                var x = ((float)ViewportWidth / 2 - e.X) / ((float)ViewportWidth / 2) * (float)Math.PI / 2;
                var y = ((float)ViewportHeight / 2 - e.Y) / ((float)ViewportHeight / 2) * (float)Math.PI / 2;

                Draw(WorldStateChange.ChangeModelRotation(x, y));
                break;
            }
        }
コード例 #3
0
 private void textureRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeFillMode(FillMode.Texture));
 }
コード例 #4
0
 private void normalMappingRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeLightMode(LightMode.NormalMapping));
 }
コード例 #5
0
 private void solidColorRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeFillMode(FillMode.SolidColor));
 }
コード例 #6
0
 private void gouraudRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeLightMode(LightMode.Gouraud));
 }
コード例 #7
0
 private void simpleRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeLightMode(LightMode.Simple));
 }
コード例 #8
0
 private void bordersAndFillRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     Draw(WorldStateChange.ChangeRenderMode(RenderMode.BordersAndFill));
 }
コード例 #9
0
        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            var perspectiveProjection = perspectiveProjectionCheckBox.Checked;

            Draw(WorldStateChange.ChangePerspectiveProjection(perspectiveProjection));
        }
コード例 #10
0
        private void CameraZPositionHandler(object sender, EventArgs e)
        {
            var viewportScale = (float)viewportScaleNumericUpDown.Value;

            Draw(WorldStateChange.ChangeViewportScale(viewportScale));
        }