MCPcopy Create free account
hub / github.com/defold/defold / PostEventsInterval

Function PostEventsInterval

engine/rig/src/rig.cpp:250–278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

248 }
249
250 static void PostEventsInterval(HRigInstance instance, const dmRigDDF::RigAnimation* animation, float start_cursor, float end_cursor, float duration, bool backwards, float blend_weight)
251 {
252 const uint32_t track_count = animation->m_EventTracks.m_Count;
253 for (uint32_t ti = 0; ti < track_count; ++ti)
254 {
255 const dmRigDDF::EventTrack* track = &animation->m_EventTracks[ti];
256 const uint32_t key_count = track->m_Keys.m_Count;
257 for (uint32_t ki = 0; ki < key_count; ++ki)
258 {
259 const dmRigDDF::EventKey* key = &track->m_Keys[ki];
260 float cursor = key->m_T;
261 if (backwards)
262 cursor = duration - cursor;
263 if (start_cursor <= cursor && cursor < end_cursor)
264 {
265 RigKeyframeEventData event_data;
266 event_data.m_EventId = track->m_EventId;
267 event_data.m_AnimationId = animation->m_Id;
268 event_data.m_BlendWeight = blend_weight;
269 event_data.m_T = key->m_T;
270 event_data.m_Integer = key->m_Integer;
271 event_data.m_Float = key->m_Float;
272 event_data.m_String = key->m_String;
273
274 instance->m_EventCallback(RIG_EVENT_TYPE_KEYFRAME, (void*)&event_data, instance->m_EventCBUserData1, instance->m_EventCBUserData2);
275 }
276 }
277 }
278 }
279
280 static void PostEvents(HRigInstance instance, RigPlayer* player, const dmRigDDF::RigAnimation* animation, float dt, float prev_cursor, float duration, bool completed, float blend_weight)
281 {

Callers 1

PostEventsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected