﻿<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid Background="Silver">
    <Grid.RowDefinitions>
      <RowDefinition/>
      <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Viewport3D HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch">
      <Viewport3D.Camera>
        <PerspectiveCamera
          x:Name="Camera"
          FarPlaneDistance="100"
          FieldOfView="45"
          LookDirection="0,0,-5"
          NearPlaneDistance="0.1"
          Position="0,0,10"
          UpDirection="0,1,0">
        </PerspectiveCamera>
      </Viewport3D.Camera>
      <ModelVisual3D>
        <ModelVisual3D.Content>
          <Model3DGroup>
            <Model3DGroup.Transform>
              <RotateTransform3D>
                <RotateTransform3D.Rotation>
                  <AxisAngleRotation3D Angle="{Binding ElementName=rotateSlider,Path=Value}"
                                       Axis="1,1,1"/>
                </RotateTransform3D.Rotation>
              </RotateTransform3D>
            </Model3DGroup.Transform>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="-0.5,-0.5,-0.5 -0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,-0.5,-0.5 -0.5,-0.5,-0.5 "
                                TriangleIndices="0,1,2 3,4,5"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="White"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 "
                                TriangleIndices="0,1,2 3,4,5"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="Yellow"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="-0.5,-0.5,-0.5 0.5,-0.5,-0.5 0.5,-0.5,0.5 0.5,-0.5,0.5 -0.5,-0.5,0.5 -0.5,-0.5,-0.5 "
                                TriangleIndices="0,1,2 3,4,5"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="Blue"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="0.5,-0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,0.5 0.5,0.5,0.5 0.5,-0.5,0.5 0.5,-0.5,-0.5 "
                                TriangleIndices="0,1,2 3,4,5"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="Green"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="0.5,0.5,-0.5 -0.5,0.5,-0.5 -0.5,0.5,0.5 -0.5,0.5,0.5 0.5,0.5,0.5 0.5,0.5,-0.5 -0.5,0.5,-0.5 "
                                TriangleIndices="0,1,2 3,4,5"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="Red"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <GeometryModel3D>
              <GeometryModel3D.Geometry>
                <MeshGeometry3D Positions="-0.5,-0.5,-0.5 -0.5,-0.5,0.5 -0.5,0.5,0.5 -0.5,0.5,-0.5"
                                TriangleIndices="1,2,0 3,0,2"/>
              </GeometryModel3D.Geometry>
              <GeometryModel3D.Material>
                <DiffuseMaterial Brush="Pink"/>
              </GeometryModel3D.Material>
            </GeometryModel3D>
            <AmbientLight Color="#FFFFFFFF"/>
          </Model3DGroup>
        </ModelVisual3D.Content>
      </ModelVisual3D>
    </Viewport3D>
    <Slider
      x:Name="rotateSlider"
      MinWidth="192"
      Grid.Row="1"
      HorizontalAlignment="Center"
      Margin="10"
      Maximum="360"
      Minimum="0"
      Value="45"/>
  </Grid>
</Page>
