MarkerItem.cs
2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
using UnityEngine.Timeline;
using Object = UnityEngine.Object;
namespace UnityEditor.Timeline
{
class MarkerItem : ITimelineItem
{
readonly IMarker m_Marker;
public IMarker marker
{
get { return m_Marker; }
}
public MarkerItem(IMarker marker)
{
m_Marker = marker;
}
public TrackAsset parentTrack
{
get { return m_Marker.parent; }
set {}
}
public double start
{
get { return m_Marker.time; }
set { m_Marker.time = value; }
}
public double end
{
get { return m_Marker.time; }
}
public double duration
{
get { return 0.0; }
}
public bool IsCompatibleWithTrack(TrackAsset track)
{
return TypeUtility.DoesTrackSupportMarkerType(track, m_Marker.GetType());
}
public void PushUndo(string operation)
{
UndoExtensions.RegisterMarker(m_Marker, operation);
}
public TimelineItemGUI gui
{
get { return ItemToItemGui.GetGuiForMarker(m_Marker); }
}
public void Delete()
{
MarkerModifier.DeleteMarker(m_Marker);
}
public ITimelineItem CloneTo(TrackAsset parent, double time)
{
var item = new MarkerItem(MarkerModifier.CloneMarkerToParent(m_Marker, parent));
item.start = time;
return item;
}
protected bool Equals(MarkerItem otherMarker)
{
return Equals(m_Marker, otherMarker.m_Marker);
}
public override int GetHashCode()
{
return (m_Marker != null ? m_Marker.GetHashCode() : 0);
}
public override string ToString()
{
return m_Marker.ToString();
}
public bool Equals(ITimelineItem other)
{
return Equals((object)other);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
var other = obj as MarkerItem;
return other != null && Equals(other);
}
}
}