/// <summary>
        /// Called when animation starts.
        /// </summary>
        protected override void OnStartAnimation()
        {
            m_startVector = m_targetObject.Position;
            Vector3 moveVector = m_targetVector - m_startVector;

            // Create move-helper individually
            if (m_paramDuration > TimeSpan.Zero)
            {
                m_moveHelper = new MovementAnimationHelper(
                    new MovementSpeed(moveVector, m_paramDuration),
                    moveVector);
            }
            else if (m_paramMoveSpeed != MovementSpeed.Empty)
            {
                m_moveHelper = new MovementAnimationHelper(m_paramMoveSpeed, moveVector);
            }
            else
            {
                m_moveHelper = new MovementAnimationHelper(
                    new MovementSpeed(moveVector, TimeSpan.FromMilliseconds(1.0)),
                    moveVector);
            }

            // Change the type of this animation in the base class
            base.ChangeToFixedTime(m_moveHelper.MovementTime);
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Move3DByAnimation"/> class.
        /// </summary>
        /// <param name="targetObject">The target object.</param>
        /// <param name="moveVector">The move vector.</param>
        /// <param name="moveSpeed">The speed which is used for movement calculation.</param>
        public Move3DByAnimation(IAnimatableObjectPosition targetObject, Vector3 moveVector, MovementSpeed moveSpeed)
            : base(targetObject)
        {
            m_targetObject = targetObject;
            m_moveVector   = moveVector;
            m_moveHelper   = new MovementAnimationHelper(moveSpeed, moveVector);

            // Switch animation to fixed-time type
            base.ChangeToFixedTime(m_moveHelper.MovementTime);
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Move2DByAnimation"/> class.
        /// </summary>
        /// <param name="targetObject">The target object.</param>
        /// <param name="moveVector">The move vector.</param>
        /// <param name="moveSpeed">The speed which is used for movement calculation.</param>
        public Move2DByAnimation(IAnimatableObjectPosition2D targetObject, Vector2 moveVector, MovementSpeed moveSpeed)
            : base(targetObject)
        {
            _targetObject = targetObject;
            _moveVector   = moveVector;
            _moveHelper   = new MovementAnimationHelper(moveSpeed, new Vector3(moveVector, 0f));

            // Switch animation to fixed-time type
            this.ChangeToFixedTime(_moveHelper.MovementTime);
        }
Example #4
0
            public void Movement_SpeedBased_FixedTime()
            {
                Vector3       movementVector = new Vector3(10f, 0f, 8f);
                MovementSpeed movementSpeed  = new MovementSpeed(movementVector, TimeSpan.FromSeconds(5.0));

                MovementAnimationHelper animHelper = new MovementAnimationHelper(movementSpeed, movementVector);

                Assert.True(animHelper.MovementTime == TimeSpan.FromSeconds(5.0));
                Assert.True(animHelper.AccelerationTime == TimeSpan.Zero);
                Assert.True(animHelper.DecelerationTime == TimeSpan.Zero);
            }
        /// <summary>
        /// Initializes a new instance of the <see cref="Move2DByAnimation" /> class.
        /// </summary>
        /// <param name="targetObject">The target object.</param>
        /// <param name="moveVector">The move vector.</param>
        /// <param name="duration">The duration.</param>
        public Move2DByAnimation(IAnimatableObjectPosition2D targetObject, Vector2 moveVector, TimeSpan duration)
            : base(targetObject)
        {
            m_targetObject = targetObject;
            m_moveVector   = moveVector;
            m_moveHelper   = new MovementAnimationHelper(
                new MovementSpeed(new Vector3(moveVector, 0f), duration),
                new Vector3(moveVector, 0f));

            // Switch animation to fixed-time type
            base.ChangeToFixedTime(m_moveHelper.MovementTime);
        }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Move3DByAnimation" /> class.
        /// </summary>
        /// <param name="targetObject">The target object.</param>
        /// <param name="moveVector">The move vector.</param>
        /// <param name="duration">The duration.</param>
        public Move3DByAnimation(IAnimatableObjectPosition targetObject, Vector3 moveVector, TimeSpan duration)
            : base(targetObject)
        {
            _targetObject = targetObject;
            _moveVector   = moveVector;
            _moveHelper   = new MovementAnimationHelper(
                new MovementSpeed(moveVector, duration),
                moveVector);

            // Switch animation to fixed-time type
            this.ChangeToFixedTime(_moveHelper.MovementTime);
        }
Example #7
0
            public void Movemenet_SpeedBased()
            {
                MovementSpeed palletConveyorSpeed = new MovementSpeed(0.3f);
                MovementSpeed trayConveyorSpeed   = new MovementSpeed(0.8f);

                MovementAnimationHelper animHelper1 = new MovementAnimationHelper(palletConveyorSpeed, new Vector3(5f, 0f, 0f));
                MovementAnimationHelper animHelper2 = new MovementAnimationHelper(palletConveyorSpeed, new Vector3(3f, 4f, 2f));
                MovementAnimationHelper animHelper3 = new MovementAnimationHelper(trayConveyorSpeed, new Vector3(5f, 0f, 0f));

                Assert.True((int)animHelper1.MovementTime.TotalMilliseconds == 16667);
                Assert.True((int)animHelper2.MovementTime.TotalMilliseconds == 17951);
                Assert.True((int)animHelper3.MovementTime.TotalMilliseconds == 6250);
            }
Example #8
0
        public void Movement_AccDecFull_ShortRun()
        {
            // Configuration
            var movementSpeed  = new MovementSpeed(1.5f, 0.8f, -0.4f);
            var movementVector = new Vector3(0f, 0f, -0.14f);

            // Action
            var animHelper = new MovementAnimationHelper(movementSpeed, movementVector);

            // Asserts
            Assert.IsTrue(animHelper.AccelerationTime > TimeSpan.Zero);
            Assert.IsTrue(animHelper.DecelerationTime > TimeSpan.Zero);
            Assert.IsTrue(animHelper.DecelerationTime > animHelper.AccelerationTime);
            Assert.IsTrue(animHelper.FullSpeedTime == TimeSpan.Zero);
            Assert.IsTrue(animHelper.MovementTime < TimeSpan.FromSeconds(15.0));
        }
Example #9
0
            public void Movement_AccDecFull_LongRun()
            {
                // Configuration
                MovementSpeed movementSpeed  = new MovementSpeed(1.5f, 0.6f, -0.5f);
                Vector3       movementVector = new Vector3(10f, 0f, 8f);

                // Action
                MovementAnimationHelper animHelper = new MovementAnimationHelper(movementSpeed, movementVector);

                // Asserts
                Assert.True(animHelper.AccelerationTime > TimeSpan.Zero);
                Assert.True(animHelper.DecelerationTime > TimeSpan.Zero);
                Assert.True(animHelper.DecelerationTime > animHelper.AccelerationTime);
                Assert.True(animHelper.FullSpeedTime > animHelper.AccelerationTime);
                Assert.True(animHelper.FullSpeedTime > animHelper.DecelerationTime);
                Assert.True(animHelper.MovementTime < TimeSpan.FromSeconds(15.0));
            }
 /// <summary>
 /// Called when the FixedTime animation has finished.
 /// (Sets final state to the target object and clears all runtime values).
 /// </summary>
 protected override void OnFixedTimeAnimationFinished()
 {
     m_targetObject.Position = m_targetVector;
     m_startVector           = Vector3.Zero;
     m_moveHelper            = null;
 }