]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Transition.hh
foundational changes; tying up some loose ends
[chaz/yoink] / src / Moof / Transition.hh
index f1e1bcb4c6efb0a4523e7e3d2320fe7e70f09d2c..ab09c02a582ddd7f5320a18dbaa284c3d8b559bb 100644 (file)
@@ -51,15 +51,12 @@ class Transition : public Layer
 
        T               mInterp;
 
-       Engine* mEngine;
-
 public:
 
        Transition(LayerP t, LayerP f, const T& interp) :
                mTo(t),
                mFrom(f),
-               mInterp(interp),
-               mEngine(0) {}
+               mInterp(interp) {}
 
        typedef boost::shared_ptr<Transition> Ptr;
 
@@ -69,27 +66,22 @@ public:
        }
 
 
-       void pushed(Engine& engine)
-       {
-               mEngine = &engine;
-       }
-
        void popped(Engine& engine)
        {
                if (mTo) engine.push(mTo);
        }
 
-       void update(Scalar t, Scalar dt)
+       void update(Engine& engine, Scalar t, Scalar dt)
        {
                mInterp.update(t, dt);
 
-               if (mFrom) mFrom->update(t, dt);
-               if (mTo) mTo->update(t, dt);
+               if (mFrom) mFrom->update(engine, t, dt);
+               if (mTo) mTo->update(engine, t, dt);
 
                if (mInterp.isDone())
                {
                        // to should /replace/ this
-                       mEngine->pop(this);
+                       engine.pop(this);
                }
        }
 
@@ -126,10 +118,10 @@ public:
                glPopMatrix();
        }
 
-       void draw(Scalar alpha) const
+       void draw(Engine& engine, Scalar alpha) const
        {
                Scalar a = mInterp.getState(alpha);
-               logInfo("draw state: %f", a);
+               logDebug("transition state: %f", a);
 
                //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
@@ -138,7 +130,7 @@ public:
                        glPushMatrix();
                        glLoadIdentity();
                        glRotate(180.0 * a, 0.0, 1.0, 0.0);
-                       mFrom->draw(alpha);
+                       mFrom->draw(engine, alpha);
                        glPopMatrix();
                }
                        //drawFade(a);
@@ -148,21 +140,21 @@ public:
                        glPushMatrix();
                        glLoadIdentity();
                        glRotate(180.0 * (1.0 - a), 0.0, 1.0, 0.0);
-                       mTo->draw(alpha);
+                       mTo->draw(engine, alpha);
                        glPopMatrix();
                }
                        //drawFade(1.0 - a);
        }
 
-       bool handleEvent(const Event& event)
+       bool handleEvent(Engine& engine, const Event& event)
        {
                if (mTo)
                {
-                       return mTo->handleEvent(event);
+                       return mTo->handleEvent(engine, event);
                }
                else if (mFrom)
                {
-                       return mFrom->handleEvent(event);
+                       return mFrom->handleEvent(engine, event);
                }
                return false;
        }
This page took 0.021699 seconds and 4 git commands to generate.