Exemple #1
0
        public override void skipTo(float timelineTime)
        {
            MDISceneViewWindow window = TimelineController.SceneViewController.findWindow(CameraName);

            if (window != null)
            {
                if (timelineTime <= EndTime)
                {
                    Vector3 translation = window.Translation;
                    Vector3 lookAt      = window.LookAt;
                    Vector3 finalTrans  = window.computeAdjustedTranslation(CameraPosition);
                    Vector3 finalLookAt = CameraPosition.LookAt;
                    float   percent     = 1.0f;
                    float   currentTime = timelineTime - StartTime;
                    if (Duration != 0.0f)
                    {
                        percent = currentTime / Duration;
                    }
                    CameraPosition immediatePos = new CameraPosition()
                    {
                        Translation = translation.lerp(ref finalTrans, ref percent),
                        LookAt      = lookAt.lerp(ref finalLookAt, ref percent)
                    };
                    window.immediatlySetPosition(immediatePos);
                    float time = Duration - currentTime;
                    if (time <= 0.001f)
                    {
                        time = 0.001f;
                    }
                    CameraPosition cameraPosition = new CameraPosition(CameraPosition)
                    {
                        Translation = finalTrans,
                    };
                    window.setPosition(cameraPosition, time);
                }
                else
                {
                    Vector3        finalTrans   = window.computeAdjustedTranslation(CameraPosition);
                    CameraPosition immediatePos = new CameraPosition()
                    {
                        Translation = finalTrans,
                        LookAt      = CameraPosition.LookAt
                    };
                    window.immediatlySetPosition(immediatePos);
                }
            }
        }
Exemple #2
0
        public override void started(float timelineTime, Clock clock)
        {
            MDISceneViewWindow window = TimelineController.SceneViewController.findWindow(CameraName);

            if (window != null)
            {
                window.setPosition(CameraPosition, Duration);
            }
            else
            {
                SceneViewWindow sceneViewWindow = TimelineController.SceneViewController.ActiveWindow;
                if (sceneViewWindow != null)
                {
                    sceneViewWindow.setPosition(CameraPosition, Duration);
                }
            }
        }