void ActivityBase::endActivity()
{ // this is a regular activity end
mbIsActive = false;
// Activity is ending, queue event, then if( mpEndEvent )
mrEventQueue.addEvent( mpEndEvent );
// release references
mpEndEvent.reset();
}
void ActivityBase::dequeued()
{ // xxx todo: // // ignored here, if we're still active. Discrete // // activities are dequeued after every perform() call, // // thus, the call is only significant when isActive() == // // false. if( !isActive() )
endAnimation();
}
void ActivityBase::end()
{ if (!isActive() || isDisposed()) return; // assure animation is started: if (mbFirstPerformCall) {
mbFirstPerformCall = false; // notify derived classes that we're starting now
startAnimation();
}
// clamp nT to permissible [0,1] range
nT = std::clamp( nT, 0.0, 1.0 );
// take acceleration/deceleration into account. if the sum // of mnAccelerationFraction and mnDecelerationFraction // exceeds 1.0, ignore both (that's according to SMIL spec) if( (mnAccelerationFraction > 0.0 ||
mnDecelerationFraction > 0.0) &&
mnAccelerationFraction + mnDecelerationFraction <= 1.0 )
{ /* // calc accelerated/decelerated time.
// We have three intervals: // 1 [0,a] // 2 [a,d] // 3 [d,1] (with a and d being acceleration/deceleration // fraction, resp.)
// The change rate during interval 1 is constantly // increasing, reaching 1 at a. It then stays at 1, // starting a linear decrease at d, ending with 0 at // time 1. The integral of this function is the // required new time nT'.
// As we arbitrarily assumed 1 as the upper value of // the change rate, the integral must be normalized to // reach nT'=1 at the end of the interval. This // normalization constant is:
// c = 1 - 0.5a - 0.5d
// The integral itself then amounts to:
// 0.5 nT^2 / a + (nT-a) + (nT - 0.5 nT^2 / d)
// (where each of the three summands correspond to the // three intervals above, and are applied only if nT // has reached the corresponding interval)
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-10-01)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.