TrianglesInSpace.Motion.CombinedMotion.GetCurrentMotion C# (CSharp) Method

GetCurrentMotion() public method

public GetCurrentMotion ( ulong currentTime ) : IMotion
currentTime ulong
return IMotion
        public IMotion GetCurrentMotion(ulong currentTime)
        {
            IMotion pathSegment;
            int index = m_Path.Count;
            do
            {
                index--;
                pathSegment = m_Path[index];

            }
            while (index > 0 && pathSegment.StartTime > currentTime);

            //if (index != 0)
            //{
            //    m_Path.RemoveRange(0, index);
            //}

            return pathSegment;
        }

Usage Example

Esempio n. 1
0
        public void MoveToDestination(Vector destination, ulong currentTime)
        {
            var currentMotion   = m_Motion.GetCurrentMotion(currentTime);
            var initialPosition = currentMotion.GetCurrentPosition(currentTime);
            var initialVelocity = currentMotion.GetVelocity(currentTime);

            var newPath = CreatePathTo(destination, initialVelocity, initialPosition, currentTime);

            if (newPath[0].GetCurrentPosition(currentTime) != initialPosition)
            {
                throw new InvalidOperationException("The positions do not match up");
            }

            m_Motion = new CombinedMotion(new List <IMotion>(newPath));
        }