HVSTGFX::CAnimationTrigger::CAnimationTrigger() { CBaseEvent * animEnd = new CBaseEvent("Animation End"); CBaseEvent * animBegin = new CBaseEvent("Animation Begin"); CBaseEvent * animFrame = new CBaseEvent("Animation Frame"); _addEvent(animEnd); _addEvent(animBegin); _addEvent(animFrame); }
void doStep(ModelInstance* comp, fmi2IntegerTime hLocal, int inBetween) { if (inBetween == 0) { } else { if ((comp->eventInfo.nextEventTimeDefined && (comp->time == comp->eventInfo.nextEventTime)) || getEventIndicator(comp) < 0) { fmi2IntegerTime currentTime = comp->time; if (_isTime(comp)) { _removeLast(comp); comp->eventInfo.nextEventTimeDefined = fmi2False; } if (!_isEmpty(comp)) { Event nextEvent = _getLast(comp); comp->eventInfo.nextEventTime = nextEvent.time; comp->eventInfo.nextEventTimeDefined = fmi2True; } if (hr(input_) == present_) { _addEvent(comp, r(input_), currentTime + i(delay_)); comp->eventInfo.nextEventTimeDefined = fmi2True; comp->eventInfo.nextEventTime = _getTime(comp); } } comp->time += hLocal; if (hLocal > 0) comp->microstep = 0; else comp->microstep++; } }
// Used to set the next time event, if any. void eventUpdate(ModelInstance* comp, fmi2EventInfo* eventInfo, int isTimeEvent) { long currentTime = comp->time; if (_isTime(comp)) { _removeLast(comp); eventInfo->nextEventTimeDefined = fmi2False; } if (!_isEmpty(comp)) { Event nextEvent = _getLast(comp); comp->eventInfo.nextEventTime = nextEvent.time; eventInfo->nextEventTimeDefined = fmi2True; } if (hr(input_) == present_) { _addEvent(comp, r(input_), currentTime + i(delay_)); eventInfo->nextEventTimeDefined = fmi2True; comp->eventInfo.nextEventTime = _getTime(comp); } }
// Used to set the next time event, if any. void eventUpdate(ModelInstance* comp, fmi2EventInfo* eventInfo, int isTimeEvent) { long currentTime = comp->time; // printf("DELAY: eventUpdate, time = %ld, _isTime(comp) = %d\n", comp->time, _isTime(comp)); if (_isTime(comp)) { _removeLast(); eventInfo->nextEventTimeDefined = fmi2False; } if (!_isEmpty()) { Event nextEvent = _getLast(); comp->eventInfo.nextEventTime = nextEvent.time; eventInfo->nextEventTimeDefined = fmi2True; // printf("- not empty\n"); // printf("- eventInfo->nextEventTimeDefined = fmi2True\n"); // printf("- addedEvent at time %ld, %ld\n", _getTime(), _getIndex()); } if (hr(input_) == present_) { _addEvent(comp, r(input_), currentTime + i(delay_)); eventInfo->nextEventTimeDefined = fmi2True; comp->eventInfo.nextEventTime = _getTime(); // printf("- present\n"); // printf("- eventInfo->nextEventTimeDefined = fmi2True\n"); // printf("- addedEvent at time %ld, %ld\n", _getTime(), _getIndex()); } }
CTimerTrigger::CTimerTrigger() { CBaseEvent * timerEnd = new CBaseEvent; _addEvent(timerEnd); }