X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FTransition.hh;h=2f468fc4227d8a154f94700f7ce7a7d8c3d5d335;hp=cf1595c125bb351556b11d720fcbeeeb1c422672;hb=41f8dd670e963aad94527ce2be0486268993a477;hpb=a4debfe4a5f5d339410788971b698ba00cb7f09c diff --git a/src/Moof/Transition.hh b/src/Moof/Transition.hh index cf1595c..2f468fc 100644 --- a/src/Moof/Transition.hh +++ b/src/Moof/Transition.hh @@ -1,37 +1,21 @@ -/******************************************************************************* - - Copyright (c) 2009, Charles McGarvey - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*******************************************************************************/ +/*] Copyright (c) 2009-2010, Charles McGarvey [************************** +**] All rights reserved. +* +* vi:ts=4 sw=4 tw=75 +* +* Distributable under the terms and conditions of the 2-clause BSD license; +* see the file COPYING for a complete text of the license. +* +**************************************************************************/ +#define _MOOF_TRANSITION_HH_ #ifndef _MOOF_TRANSITION_HH_ #define _MOOF_TRANSITION_HH_ #include -#include +#include #include #include #include @@ -43,23 +27,20 @@ namespace Mf { -template +template class Transition : public Layer { - LayerP to; - LayerP from; - - T interpolator; + LayerP mTo; + LayerP mFrom; - 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 +50,22 @@ public: } - void pushed(Engine& e) - { - engine = &e; - } - - void popped(Engine& e) + void removedFromCore(Core& core) { - if (to) e.push(to); + if (mTo) core.push(mTo); } - void update(Scalar t, Scalar dt) + void update(Core& core, 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(core, t, dt); + if (mTo) mTo->update(core, t, dt); - if (interpolator.isDone()) + if (mInterp.isDone()) { // to should /replace/ this - engine->pop(this); + core.pop(this); } } @@ -105,15 +81,15 @@ public: glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); - glColor4(1.0, 1.0, 1.0, alpha); + glColor(1.0, 1.0, 1.0, alpha); Mf::Texture::resetBind(); //glRectf(-1.0f, -1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); - glVertex3f(-1.0, -1.0, -0.1); - glVertex3f(1.0, -1.0, -0.1); - glVertex3f(1.0, 1.0, -0.1); - glVertex3f(-1.0, 1.0, -0.1); + glVertex(-1.0, -1.0, -0.1); + glVertex(1.0, -1.0, -0.1); + glVertex(1.0, 1.0, -0.1); + glVertex(-1.0, 1.0, -0.1); glEnd(); glDisable(GL_BLEND); @@ -126,43 +102,43 @@ public: glPopMatrix(); } - void draw(Scalar alpha) const + void draw(Core& core, Scalar alpha) const { - Scalar a = interpolator.getState(alpha); - logInfo("draw state: %f", a); + Scalar a = mInterp.getState(alpha); + logInfo << "transition state: " << a << std::endl; //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(core, 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(core, alpha); glPopMatrix(); } //drawFade(1.0 - a); } - bool handleEvent(const Event& event) + bool handleEvent(Core& core, const Event& event) { - if (to) + if (mTo) { - return to->handleEvent(event); + return mTo->handleEvent(core, event); } - else if (from) + else if (mFrom) { - return from->handleEvent(event); + return mFrom->handleEvent(core, event); } return false; } @@ -173,5 +149,3 @@ public: #endif // _MOOF_TRANSITION_HH_ -/** vim: set ts=4 sw=4 tw=80: *************************************************/ -