internal static void UpdateClipIntersection(TimelineClip blendOutClip, TimelineClip blendInClip) { if (!blendOutClip.SupportsBlending() || !blendInClip.SupportsBlending()) { return; } if (blendInClip.end < blendOutClip.end) { return; } double duration = Math.Max(0, blendOutClip.start + blendOutClip.duration - blendInClip.start); duration = duration <= kMinOverlapTime ? 0 : duration; blendOutClip.blendOutDuration = duration; blendInClip.blendInDuration = duration; var blendInMode = blendInClip.blendInCurveMode; var blendOutMode = blendOutClip.blendOutCurveMode; if (blendInMode == TimelineClip.BlendCurveMode.Manual && blendOutMode == TimelineClip.BlendCurveMode.Auto) { blendOutClip.mixOutCurve = CurveEditUtility.CreateMatchingCurve(blendInClip.mixInCurve); } else if (blendInMode == TimelineClip.BlendCurveMode.Auto && blendOutMode == TimelineClip.BlendCurveMode.Manual) { blendInClip.mixInCurve = CurveEditUtility.CreateMatchingCurve(blendOutClip.mixOutCurve); } else if (blendInMode == TimelineClip.BlendCurveMode.Auto && blendOutMode == TimelineClip.BlendCurveMode.Auto) { blendInClip.mixInCurve = null; // resets to default curves blendOutClip.mixOutCurve = null; } }
internal static void UpdateClipIntersection(TimelineClip blendOutClip, TimelineClip blendInClip) { if (blendOutClip.SupportsBlending() && blendInClip.SupportsBlending()) { double num = Math.Max(0.0, blendOutClip.start + blendOutClip.duration - blendInClip.start); num = ((num > TrackExtensions.kMinOverlapTime) ? num : 0.0); blendOutClip.blendOutDuration = num; blendInClip.blendInDuration = num; TimelineClip.BlendCurveMode blendInCurveMode = blendInClip.blendInCurveMode; TimelineClip.BlendCurveMode blendOutCurveMode = blendOutClip.blendOutCurveMode; if (blendInCurveMode == TimelineClip.BlendCurveMode.Manual && blendOutCurveMode == TimelineClip.BlendCurveMode.Auto) { blendOutClip.mixOutCurve = CurveEditUtility.CreateMatchingCurve(blendInClip.mixInCurve); } else if (blendInCurveMode == TimelineClip.BlendCurveMode.Auto && blendOutCurveMode == TimelineClip.BlendCurveMode.Manual) { blendInClip.mixInCurve = CurveEditUtility.CreateMatchingCurve(blendOutClip.mixOutCurve); } else if (blendInCurveMode == TimelineClip.BlendCurveMode.Auto && blendOutCurveMode == TimelineClip.BlendCurveMode.Auto) { blendInClip.mixInCurve = null; blendOutClip.mixOutCurve = null; } } }