30 _precision = precision;
54 return (
int)_defs.size();
65 nassertr(n >= 0 && n < (
int)_defs.size(), DT_c_interval);
66 return _defs[n]._type;
78 nassertr(n >= 0 && n < (
int)_defs.size(), NULL);
79 nassertr(_defs[n]._type == DT_c_interval, NULL);
80 return _defs[n]._c_interval;
92 nassertr(n >= 0 && n < (
int)_defs.size(), -1);
93 nassertr(_defs[n]._type == DT_ext_index, -1);
94 return _defs[n]._ext_index;
108 return service_event_queue();
121 nassertr(!_event_queue.empty(), -1);
122 const EventQueueEntry &entry = _event_queue.front();
123 const IntervalDef &def = _defs[entry._n];
124 nassertr(def._type == DT_ext_index, -1);
125 return def._ext_index;
137 nassertr(!_event_queue.empty(), 0.0f);
138 return int_to_double_time(_event_queue.front()._time);
150 nassertr(!_event_queue.empty(), ET_step);
151 return _event_queue.front()._event_type;
160 INLINE
int CMetaInterval::
161 double_to_int_time(
double t)
const {
163 return (
int)floor(t * _precision + 0.5);
173 INLINE
double CMetaInterval::
174 int_to_double_time(
int time)
const {
175 return (
double)time / _precision;
183 INLINE CMetaInterval::PlaybackEvent::
184 PlaybackEvent(
int time,
int n,
185 CMetaInterval::PlaybackEventType type) :
198 INLINE
bool CMetaInterval::PlaybackEvent::
199 operator < (
const CMetaInterval::PlaybackEvent &other)
const {
200 return _time < other._time;
208 INLINE CMetaInterval::EventQueueEntry::
209 EventQueueEntry(
int n, CInterval::EventType event_type,
int time) :
211 _event_type(event_type),
The base class for timeline components.
void mark_dirty()
Called by a derived class to indicate the interval has been changed internally and must be recomputed...