X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FTransition.hh;h=ab09c02a582ddd7f5320a18dbaa284c3d8b559bb;hp=cf1595c125bb351556b11d720fcbeeeb1c422672;hb=e495074443d9fd7bc16137084cf9de3d031b75c4;hpb=a4debfe4a5f5d339410788971b698ba00cb7f09c diff --git a/src/Moof/Transition.hh b/src/Moof/Transition.hh index cf1595c..ab09c02 100644 --- a/src/Moof/Transition.hh +++ b/src/Moof/Transition.hh @@ -46,20 +46,17 @@ namespace Mf { template class Transition : public Layer { - LayerP to; - LayerP from; + LayerP mTo; + LayerP mFrom; - T interpolator; - - Engine* engine; + T mInterp; public: Transition(LayerP t, LayerP f, const T& interp) : - to(t), - from(f), - interpolator(interp), - engine(0) {} + mTo(t), + mFrom(f), + mInterp(interp) {} typedef boost::shared_ptr Ptr; @@ -69,27 +66,22 @@ public: } - void pushed(Engine& e) - { - engine = &e; - } - - void popped(Engine& e) + void popped(Engine& engine) { - if (to) e.push(to); + if (mTo) engine.push(mTo); } - void update(Scalar t, Scalar dt) + void update(Engine& engine, Scalar t, Scalar dt) { - interpolator.update(t, dt); + mInterp.update(t, dt); - if (from) from->update(t, dt); - if (to) to->update(t, dt); + if (mFrom) mFrom->update(engine, t, dt); + if (mTo) mTo->update(engine, t, dt); - if (interpolator.isDone()) + if (mInterp.isDone()) { // to should /replace/ this - engine->pop(this); + engine.pop(this); } } @@ -126,43 +118,43 @@ public: glPopMatrix(); } - void draw(Scalar alpha) const + void draw(Engine& engine, Scalar alpha) const { - Scalar a = interpolator.getState(alpha); - logInfo("draw state: %f", a); + Scalar a = mInterp.getState(alpha); + logDebug("transition state: %f", a); //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - if (from) + if (mFrom) { glPushMatrix(); glLoadIdentity(); glRotate(180.0 * a, 0.0, 1.0, 0.0); - from->draw(alpha); + mFrom->draw(engine, alpha); glPopMatrix(); } //drawFade(a); - if (to) + if (mTo) { glPushMatrix(); glLoadIdentity(); glRotate(180.0 * (1.0 - a), 0.0, 1.0, 0.0); - to->draw(alpha); + mTo->draw(engine, alpha); glPopMatrix(); } //drawFade(1.0 - a); } - bool handleEvent(const Event& event) + bool handleEvent(Engine& engine, const Event& event) { - if (to) + if (mTo) { - return to->handleEvent(event); + return mTo->handleEvent(engine, event); } - else if (from) + else if (mFrom) { - return from->handleEvent(event); + return mFrom->handleEvent(engine, event); } return false; }