//---------------------------------------------------------------------------------------------------------------------- private static double CalculateTimeForLimitedAnimation(SceneCachePlayer scPlayer, LimitedAnimationController overrideLimitedAnimationController, double time) { LimitedAnimationController origLimitedAnimationController = scPlayer.GetLimitedAnimationController(); if (origLimitedAnimationController.IsEnabled()) //do nothing if LA is set on the target SceneCache return time; if (!overrideLimitedAnimationController.IsEnabled()) return time; ISceneCacheInfo scInfo = scPlayer.ExtractSceneCacheInfo(forceOpen: true); if (null == scInfo) return time; int frame = scPlayer.CalculateFrame((float)time,overrideLimitedAnimationController); return frame / scInfo.GetSampleRate(); }
internal LimitedAnimationController(LimitedAnimationController otherController) { m_enabled = otherController.IsEnabled(); m_frameOffset = otherController.GetFrameOffset(); m_numFramesToHold = otherController.GetNumFramesToHold(); }