public void Process(Clip clip, AnimationClipBindingConstant bindings, IReadOnlyDictionary <uint, string> tos) { IReadOnlyList <StreamedFrame> streamedFrames = clip.StreamedClip.GenerateFrames(m_version, m_platform, m_flags); float lastDenseFrame = clip.DenseClip.FrameCount / clip.DenseClip.SampleRate; float lastSampleFrame = streamedFrames.Count > 1 ? streamedFrames[streamedFrames.Count - 2].Time : 0.0f; float lastFrame = Math.Max(lastDenseFrame, lastSampleFrame); Clear(); ProcessStreams(streamedFrames, bindings, tos); ProcessDenses(clip, bindings, tos); if (Clip.IsReadConstantClip(m_version)) { ProcessConstant(clip, bindings, tos, lastFrame); } CreateCurves(); }
private void ProcessInner() { Clip clip = m_clip.MuscleClip.Clip; AnimationClipBindingConstant bindings = m_clip.ClipBindingConstant; IReadOnlyDictionary <uint, string> tos = m_clip.FindTOS(); IReadOnlyList <StreamedFrame> streamedFrames = clip.StreamedClip.GenerateFrames(Version, Platform, Flags); float lastDenseFrame = clip.DenseClip.FrameCount / clip.DenseClip.SampleRate; float lastSampleFrame = streamedFrames.Count > 1 ? streamedFrames[streamedFrames.Count - 2].Time : 0.0f; float lastFrame = Math.Max(lastDenseFrame, lastSampleFrame); ProcessStreams(streamedFrames, bindings, tos, clip.DenseClip.SampleRate); ProcessDenses(clip, bindings, tos); if (Clip.IsReadConstantClip(Version)) { ProcessConstant(clip, bindings, tos, lastFrame); } CreateCurves(); }