123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System;
-
- namespace UnityEngine.Timeline
- {
- /// <summary>
- /// Describes the timeline features supported by a clip
- /// </summary>
- [Flags]
- public enum ClipCaps
- {
- /// <summary>
- /// No features are supported.
- /// </summary>
- None = 0,
-
- /// <summary>
- /// The clip supports loops.
- /// </summary>
- Looping = 1 << 0,
-
- /// <summary>
- /// The clip supports clip extrapolation.
- /// </summary>
- Extrapolation = 1 << 1,
-
- /// <summary>
- /// The clip supports initial local times greater than zero.
- /// </summary>
- ClipIn = 1 << 2,
-
- /// <summary>
- /// The clip supports time scaling.
- /// </summary>
- SpeedMultiplier = 1 << 3,
-
- /// <summary>
- /// The clip supports blending between clips.
- /// </summary>
- Blending = 1 << 4,
-
- /// <summary>
- /// The clip supports time scaling, and sets the default trim mode in the editor to scale the clip
- /// (speed multiplier) when the start/end of the clip is trimmed.
- /// </summary>
- AutoScale = 1 << 5 | SpeedMultiplier,
-
- /// <summary>
- /// All features are supported.
- /// </summary>
- All = ~None
- }
-
- static class TimelineClipCapsExtensions
- {
- public static bool SupportsLooping(this TimelineClip clip)
- {
- return clip != null && (clip.clipCaps & ClipCaps.Looping) != ClipCaps.None;
- }
-
- public static bool SupportsExtrapolation(this TimelineClip clip)
- {
- return clip != null && (clip.clipCaps & ClipCaps.Extrapolation) != ClipCaps.None;
- }
-
- public static bool SupportsClipIn(this TimelineClip clip)
- {
- return clip != null && (clip.clipCaps & ClipCaps.ClipIn) != ClipCaps.None;
- }
-
- public static bool SupportsSpeedMultiplier(this TimelineClip clip)
- {
- return clip != null && (clip.clipCaps & ClipCaps.SpeedMultiplier) != ClipCaps.None;
- }
-
- public static bool SupportsBlending(this TimelineClip clip)
- {
- return clip != null && (clip.clipCaps & ClipCaps.Blending) != ClipCaps.None;
- }
-
- public static bool HasAll(this ClipCaps caps, ClipCaps flags)
- {
- return (caps & flags) == flags;
- }
-
- public static bool HasAny(this ClipCaps caps, ClipCaps flags)
- {
- return (caps & flags) != 0;
- }
- }
- }
|