// // magSlideTransition.cpp // Copyright (c) 2017 Cristobal Mendoza // http://cuppetellimendoza.com // #include "magSlideTransition.h" void magSlideTransition::start(std::shared_ptr<magSlide> nextSlide) { runningTime = 0; active = true; this->nextSlide = nextSlide; } void magSlideTransition::update(uint64_t timeDelta) { if (!active) return; runningTime += timeDelta; if (runningTime >= duration) { ofEventArgs arghh; // arghhhh... nextSlide->setOpacity(255); nextSlide->setPosition(0, 0); end(); transitionCompleteEvent.notify(this, arghh); active = false; } } uint64_t magSlideTransition::getRunningTime() { return runningTime; } float magSlideTransition::getNormalizedTime() { return (double)runningTime / (double)duration; } void magDissolveTransition::draw() { slide->setOpacity(255 - (getNormalizedTime() * 255)); nextSlide->setOpacity(getNormalizedTime()*255); } void magDissolveTransition::start(std::shared_ptr<magSlide> nextSlide) { magSlideTransition::start(nextSlide); nextSlide->setOpacity(0); } void magDissolveTransition::end() { nextSlide->setOpacity(255); slide->setOpacity(0); }