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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }