Welcome to WindowsClient.net | Sign in | Join

Custom Converter (Camera Translation/Rotation - Maintain Focus on Moving Object)

Thanks to Kurt Berglund for providing this sample.


Photobucket - Video and Image Hosting

 

THIS IS NOT THE ENTIRE SOURCE, ONLY KEY SNIPPETS.

<Window x:Class="Camera3.Window1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Camera3" Height="300" Width="300"

    xmlns:local="clr-namespace:ConvertXaml" >

  <Window.Resources>

    <local:LookDirConverter x:Key="lookDirConverter" />

  </Window.Resources>

 

  <Viewport3D>

    <Viewport3D.Triggers>

      <EventTrigger RoutedEvent="Viewport3D.Loaded">

        <BeginStoryboard>

          <Storyboard>

            <ParallelTimeline RepeatBehavior="Forever">

              <Point3DAnimation From="4,8,12" To="12,8,4"

                                Storyboard.TargetName="myPerspectiveCamera"

                                Storyboard.TargetProperty="Position" 

                                AutoReverse="True"

                                Duration="0:0:4"/>

              <DoubleAnimation From="0" To="16"

                   Storyboard.TargetName="myObjToTrack"

                   Storyboard.TargetProperty="Transform.OffsetY" 

                   AutoReverse="True"

                   Duration="0:0:4"/>

            </ParallelTimeline>

          </Storyboard>

        </BeginStoryboard>

      </EventTrigger>

    </Viewport3D.Triggers>

    <Viewport3D.Camera>

      <PerspectiveCamera  x:Name="myPerspectiveCamera"

                          UpDirection = "0, 1, 0"

                          Position = "8, 8, 8"

                          FieldOfView = "60">

        <PerspectiveCamera.LookDirection>

          <MultiBinding Converter="{StaticResource

                               lookDirConverter}" Mode="OneWay">

            <Binding ElementName="myPerspectiveCamera"

                     Path="Position" />

            <Binding ElementName="myObjToTrack"

                     Path="Transform" />

          </MultiBinding>

        </PerspectiveCamera.LookDirection>

      </PerspectiveCamera>

    </Viewport3D.Camera>

Featured Item

Control Info

Posted: 05-10-2007

Views: 955

Downloads: 486

Download Edit Control
Page view counter