Пример #1
0
 public static IAnimationSequenceBuilder <TTargetObject> ChangeOpacityTo <TTargetObject>(this IAnimationSequenceBuilder <TTargetObject> sequenceBuilder, float targetOpacity, TimeSpan animationTime)
     where TTargetObject : class, IAnimatableObjectOpacity
 {
     sequenceBuilder.Add(
         new ChangeOpacityToAnimation(sequenceBuilder.TargetObject, targetOpacity, animationTime));
     return(sequenceBuilder);
 }
Пример #2
0
 /// <summary>
 /// Rotates the object by the given euler rotation vector.
 /// </summary>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">The sequence builder.</param>
 /// <param name="targetYaw">The target value for the Yaw (Y) rotation component.</param>
 /// <param name="animationTime">The animation time.</param>
 public static IAnimationSequenceBuilder <TargetObject> RotateEulerAnglesYawBy <TargetObject>(this IAnimationSequenceBuilder <TargetObject> sequenceBuilder, float targetYaw, TimeSpan animationTime)
     where TargetObject : class, IAnimatableObjectEulerRotation
 {
     sequenceBuilder.Add(
         new RotateEulerAnglesAnimation(
             sequenceBuilder.TargetObject, new Vector3(0f, targetYaw, 0f), animationTime,
             calculationComponent: RotationCalculationComponent.Yaw,
             stateChangeMode: AnimationStateChangeMode.ChangeStateBy));
     return(sequenceBuilder);
 }
Пример #3
0
 /// <summary>
 /// Moves current object by the given move vector.
 /// </summary>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="moveVector">The move vector.</param>
 /// <param name="animationTime">Total time for the animation.</param>
 public static IAnimationSequenceBuilder <TTargetObject> Move2DBy <TTargetObject>(this IAnimationSequenceBuilder <TTargetObject> sequenceBuilder, Vector2 moveVector, TimeSpan animationTime)
     where TTargetObject : class, IAnimatableObjectPosition2D
 {
     sequenceBuilder.Add(
         new Move2DByAnimation(sequenceBuilder.TargetObject, moveVector, animationTime));
     return(sequenceBuilder);
 }
Пример #4
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <typeparam name="THostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TTargetObject">The type of the target object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="speed">The speed for animation calculation.</param>
 /// <param name="acceleration">The acceleration.</param>
 /// <param name="deceleration">The deceleration.</param>
 public static IAnimationSequenceBuilder <THostObject> Move2DTo <THostObject, TTargetObject>(this IAnimationSequenceBuilder <THostObject> sequenceBuilder, TTargetObject targetObject, Vector2 targetVector, float speed, float acceleration, float deceleration)
     where TTargetObject : class, IAnimatableObjectPosition2D
     where THostObject : class
 {
     sequenceBuilder.Add(
         new Move2DToAnimation(targetObject, targetVector, new MovementSpeed(speed, acceleration, deceleration)));
     return(sequenceBuilder);
 }
Пример #5
0
 /// <summary>
 /// Moves current object by the given move vector.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="moveVector">The move vector.</param>
 /// <param name="animationTime">Total time for the animation.</param>
 public static IAnimationSequenceBuilder <HostObject> Move3DBy <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, TargetObject targetObject, Vector3 moveVector, TimeSpan animationTime)
     where HostObject : class
     where TargetObject : class, IAnimatableObjectPosition
 {
     sequenceBuilder.Add(
         new Move3DByAnimation(targetObject, moveVector, animationTime));
     return(sequenceBuilder);
 }
Пример #6
0
 /// <summary>
 /// Moves the given Camera to the given ViewPoint.
 /// </summary>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetViewPoint">The target ViewPoint object.</param>
 /// <param name="animationTime">Total time for the animation.</param>
 public static IAnimationSequenceBuilder <TargetObject> CameraStraightMoveTo <TargetObject>(this IAnimationSequenceBuilder <TargetObject> sequenceBuilder, Camera3DViewPoint targetViewPoint, TimeSpan animationTime)
     where TargetObject : Camera3DBase
 {
     sequenceBuilder.Add(
         new CameraStraightMoveAnimation(sequenceBuilder.TargetObject as Camera3DBase, targetViewPoint, animationTime));
     return(sequenceBuilder);
 }
Пример #7
0
 /// <summary>
 /// Increases a int value by a given total increase value over the given duration.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="valueGetter">The value getter.</param>
 /// <param name="valueSetter">The value setter.</param>
 /// <param name="totalIncrease">The value to increase in total.</param>
 /// <param name="duration">Total duration to wait.</param>
 public static IAnimationSequenceBuilder <ObjectType> ChangeIntBy <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, Func <int> valueGetter, Action <int> valueSetter, int totalIncrease, TimeSpan duration)
     where ObjectType : class
 {
     builder.Add(new ChangeIntByAnimation(builder.TargetObject, valueGetter, valueSetter, totalIncrease, duration));
     return(builder);
 }
Пример #8
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="speed">The speed for animation calculation.</param>
 /// <returns></returns>
 public static IAnimationSequenceBuilder <HostObject> Move3DTo <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, TargetObject targetObject, Vector3 targetVector, MovementSpeed speed)
     where TargetObject : class, IAnimatableObjectPosition
     where HostObject : class
 {
     sequenceBuilder.Add(
         new Move3DToAnimation(targetObject, targetVector, speed));
     return(sequenceBuilder);
 }
Пример #9
0
 /// <summary>
 /// Wait until given time has passed.
 /// </summary>
 /// <typeparam name="ObjectType">The type of the object to be animated.</typeparam>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="waittime">The total time to wait.</param>
 public static IAnimationSequenceBuilder <ObjectType> WaitUntilTimePassed <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, TimeSpan waittime)
     where ObjectType : class
 {
     builder.Add(new WaitTimePassedAnimation(waittime));
     return(builder);
 }
Пример #10
0
 /// <summary>
 /// Adds a lazy animation object.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="animationCreator">A lambda that creates the animation.</param>
 public static IAnimationSequenceBuilder <ObjectType> Lazy <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, Func <IAnimation> animationCreator)
     where ObjectType : class
 {
     builder.Add(new LazyAnimation(animationCreator));
     return(builder);
 }
Пример #11
0
 /// <summary>
 /// Waits until previous animation steps are finished.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 public static IAnimationSequenceBuilder <ObjectType> WaitFinished <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder)
     where ObjectType : class
 {
     builder.Add(new WaitFinishedAnimation());
     return(builder);
 }
Пример #12
0
 /// <summary>
 /// Waits until the given condition returns true.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="checkFunction">Return true to continue with the animation.</param>
 public static IAnimationSequenceBuilder <ObjectType> WaitForCondition <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, Func <bool> checkFunction)
     where ObjectType : class
 {
     builder.Add(new WaitForConditionPassedAnimation(checkFunction));
     return(builder);
 }
Пример #13
0
 /// <summary>
 /// Waits until given task has finished executing.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="blockingTask">The Task for which we have to wait.</param>
 public static IAnimationSequenceBuilder <ObjectType> WaitTaskFinished <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, Task blockingTask)
     where ObjectType : class
 {
     builder.Add(new WaitTaskFinishedAnimation(blockingTask));
     return(builder);
 }
Пример #14
0
 /// <summary>
 /// Moves current object by the given move vector.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="moveVector">The move vector.</param>
 /// <param name="speed">Total speed of the movement animation.</param>
 public static IAnimationSequenceBuilder <HostObject> Move3DBy <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, TargetObject targetObject, Vector3 moveVector, float speed)
     where HostObject : class
     where TargetObject : class, IAnimatableObjectPosition
 {
     sequenceBuilder.Add(
         new Move3DByAnimation(targetObject, moveVector, new MovementSpeed(speed)));
     return(sequenceBuilder);
 }
Пример #15
0
        /// <summary>
        /// Removes this object from the scene.
        /// No further animations possible because animations are updated by the scene.
        /// </summary>
        public static IAnimationSequenceBuilder <ObjectType> RemoveObjectFromScene <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder)
            where ObjectType : SceneObject
        {
            SceneObject targetObject = builder.TargetObject;

            builder.CallAction(() =>
            {
                if (targetObject.Scene == null)
                {
                    return;
                }

                targetObject.Scene.ManipulateSceneAsync((manipulator) =>
                {
                    manipulator.Remove(targetObject);
                }).FireAndForget();
            });
            return(builder);
        }
Пример #16
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="animationTime">Total time for the animation.</param>
 public static IAnimationSequenceBuilder <TargetObject> Move3DTo <TargetObject>(this IAnimationSequenceBuilder <TargetObject> sequenceBuilder, Vector3 targetVector, TimeSpan animationTime)
     where TargetObject : class, IAnimatableObjectPosition
 {
     sequenceBuilder.Add(
         new Move3DToAnimation(sequenceBuilder.TargetObject, targetVector, animationTime));
     return(sequenceBuilder);
 }
Пример #17
0
        /// <summary>
        /// Removes the given object from the scene.
        /// </summary>
        public static IAnimationSequenceBuilder <ObjectType> RemoveObjectFromScene <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, SceneObject objectToRemove)
            where ObjectType : class
        {
            builder.CallAction(() =>
            {
                if (objectToRemove.Scene == null)
                {
                    return;
                }

                objectToRemove.Scene.ManipulateSceneAsync((manipulator) =>
                {
                    manipulator.Remove(objectToRemove);
                }).FireAndForget();
            });

            return(builder);
        }
Пример #18
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObjects">A collection containing all target objects.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="speed">The speed for animation calculation.</param>
 /// <returns></returns>
 public static IAnimationSequenceBuilder <HostObject> Move3DTo <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, IEnumerable <TargetObject> targetObjects, Vector3 targetVector, float speed)
     where TargetObject : class, IAnimatableObjectPosition
     where HostObject : class
 {
     foreach (var actTargetObject in targetObjects)
     {
         sequenceBuilder.Add(
             new Move3DToAnimation(actTargetObject, targetVector, new MovementSpeed(speed)));
     }
     return(sequenceBuilder);
 }
Пример #19
0
 /// <summary>
 /// Waits some time before continueing with next animation sequence.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="milliseconds">The total milliseconds to wait.</param>
 public static IAnimationSequenceBuilder <ObjectType> Delay <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, int milliseconds)
     where ObjectType : class
 {
     builder.Add(new DelayAnimation(TimeSpan.FromMilliseconds(milliseconds)));
     return(builder);
 }
Пример #20
0
 /// <summary>
 /// Moves current object by the given move vector.
 /// </summary>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="moveVector">The move vector.</param>
 /// <param name="speed">Total speed of the movement animation.</param>
 public static IAnimationSequenceBuilder <TargetObject> Move3DBy <TargetObject>(this IAnimationSequenceBuilder <TargetObject> sequenceBuilder, Vector3 moveVector, MovementSpeed speed)
     where TargetObject : class, IAnimatableObjectPosition
 {
     sequenceBuilder.Add(
         new Move3DByAnimation(sequenceBuilder.TargetObject, moveVector, speed));
     return(sequenceBuilder);
 }
Пример #21
0
 /// <summary>
 /// Waits some time before continueing with next animation sequence.
 /// </summary>
 /// <param name="builder">The AnimationSequenceBuilder object.</param>
 /// <param name="duration">Total duration to wait.</param>
 public static IAnimationSequenceBuilder <ObjectType> Delay <ObjectType>(this IAnimationSequenceBuilder <ObjectType> builder, TimeSpan duration)
     where ObjectType : class
 {
     builder.Add(new DelayAnimation(duration));
     return(builder);
 }
Пример #22
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <typeparam name="TTargetObject">The type of the target object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="speed">The speed for animation calculation.</param>
 /// <returns></returns>
 public static IAnimationSequenceBuilder <TTargetObject> Move2DTo <TTargetObject>(this IAnimationSequenceBuilder <TTargetObject> sequenceBuilder, Vector2 targetVector, float speed)
     where TTargetObject : class, IAnimatableObjectPosition2D
 {
     sequenceBuilder.Add(
         new Move2DToAnimation(sequenceBuilder.TargetObject, targetVector, new MovementSpeed(speed)));
     return(sequenceBuilder);
 }
Пример #23
0
 /// <summary>
 /// Rotates the object to the given quaternion.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">The sequence builder.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="targetQuaternion">The target quaternion.</param>
 /// <param name="animationTime">The animation time.</param>
 public static IAnimationSequenceBuilder <HostObject> RotateQuaternionTo <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, TargetObject targetObject, Quaternion targetQuaternion, TimeSpan animationTime)
     where HostObject : class
     where TargetObject : class, IAnimatableObjectQuaternion
 {
     sequenceBuilder.Add(
         new RotateQuaternionToAnimation(targetObject, targetQuaternion, animationTime));
     return(sequenceBuilder);
 }
Пример #24
0
 /// <summary>
 /// Moves current object to the given target position.
 /// </summary>
 /// <typeparam name="THostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TTargetObject">The type of the target object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObjects">A collection containing all target objects.</param>
 /// <param name="targetVector">The target position for the object.</param>
 /// <param name="speed">The speed for animation calculation.</param>
 public static IAnimationSequenceBuilder <THostObject> Move2DTo <THostObject, TTargetObject>(this IAnimationSequenceBuilder <THostObject> sequenceBuilder, IEnumerable <TTargetObject> targetObjects, Vector2 targetVector, MovementSpeed speed)
     where TTargetObject : class, IAnimatableObjectPosition2D
     where THostObject : class
 {
     foreach (var actTargetObject in targetObjects)
     {
         sequenceBuilder.Add(
             new Move2DToAnimation(actTargetObject, targetVector, speed));
     }
     return(sequenceBuilder);
 }
Пример #25
0
 /// <summary>
 /// Rotates the object by the given euler rotation vector.
 /// </summary>
 /// <typeparam name="HostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TargetObject">The type of the arget object.</typeparam>
 /// <param name="sequenceBuilder">The sequence builder.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="rotateVector">The rotate vector.</param>
 /// <param name="animationTime">The animation time.</param>
 public static IAnimationSequenceBuilder <HostObject> RotateEulerAnglesBy <HostObject, TargetObject>(this IAnimationSequenceBuilder <HostObject> sequenceBuilder, TargetObject targetObject, Vector3 rotateVector, TimeSpan animationTime)
     where HostObject : class
     where TargetObject : class, IAnimatableObjectEulerRotation
 {
     sequenceBuilder.Add(
         new RotateEulerAnglesAnimation(
             targetObject, rotateVector, animationTime,
             stateChangeMode: AnimationStateChangeMode.ChangeStateBy));
     return(sequenceBuilder);
 }
Пример #26
0
 /// <summary>
 /// Moves current object by the given move vector.
 /// </summary>
 /// <typeparam name="THostObject">The type of the ost object.</typeparam>
 /// <typeparam name="TTargetObject">The type of the target object.</typeparam>
 /// <param name="sequenceBuilder">AnimationSequenceBuilder building the animation.</param>
 /// <param name="targetObject">The target object.</param>
 /// <param name="moveVector">The move vector.</param>
 /// <param name="speed">Total speed of the movement animation.</param>
 public static IAnimationSequenceBuilder <THostObject> Move2DBy <THostObject, TTargetObject>(this IAnimationSequenceBuilder <THostObject> sequenceBuilder, TTargetObject targetObject, Vector2 moveVector, MovementSpeed speed)
     where THostObject : class
     where TTargetObject : class, IAnimatableObjectPosition2D
 {
     sequenceBuilder.Add(
         new Move2DByAnimation(targetObject, moveVector, speed));
     return(sequenceBuilder);
 }
Пример #27
0
 public static IAnimationSequenceBuilder <TTargetObject> ChangeAccentuationFactorTo <TTargetObject>(this IAnimationSequenceBuilder <TTargetObject> sequenceBuilder, float targetAccentuation, TimeSpan animationTime)
     where TTargetObject : class, IAnimatableObjectAccentuation
 {
     sequenceBuilder.Add(
         new ChangeAccentuationToAnimation(sequenceBuilder.TargetObject, targetAccentuation, animationTime));
     return(sequenceBuilder);
 }