-/*******************************************************************************
-
- 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 <boost/shared_ptr.hpp>
-#include <Moof/Engine.hh>
+#include <Moof/Core.hh>
#include <Moof/Interpolator.hh>
#include <Moof/Layer.hh>
#include <Moof/Log.hh>
namespace Mf {
-template <typename T>
+template <class T>
class Transition : public Layer
{
LayerP mTo;
}
- void poppedFromEngine()
+ void removedFromCore(Core& core)
{
- if (mTo) engine.push(mTo);
+ if (mTo) core.push(mTo);
}
- void update(Scalar t, Scalar dt)
+ void update(Core& core, Scalar t, Scalar dt)
{
mInterp.update(t, dt);
- if (mFrom) mFrom->update(t, dt);
- if (mTo) mTo->update(t, dt);
+ if (mFrom) mFrom->update(core, t, dt);
+ if (mTo) mTo->update(core, t, dt);
if (mInterp.isDone())
{
// to should /replace/ this
- engine.pop(this);
+ core.pop(this);
}
}
glPopMatrix();
}
- void draw(Scalar alpha) const
+ void draw(Core& core, Scalar alpha) const
{
Scalar a = mInterp.getState(alpha);
logInfo << "transition state: " << a << std::endl;
glPushMatrix();
glLoadIdentity();
glRotate(180.0 * a, 0.0, 1.0, 0.0);
- mFrom->draw(alpha);
+ mFrom->draw(core, alpha);
glPopMatrix();
}
//drawFade(a);
glPushMatrix();
glLoadIdentity();
glRotate(180.0 * (1.0 - a), 0.0, 1.0, 0.0);
- mTo->draw(alpha);
+ mTo->draw(core, alpha);
glPopMatrix();
}
//drawFade(1.0 - a);
}
- bool handleEvent(const Event& event)
+ bool handleEvent(Core& core, const Event& event)
{
if (mTo)
{
- return mTo->handleEvent(event);
+ return mTo->handleEvent(core, event);
}
else if (mFrom)
{
- return mFrom->handleEvent(event);
+ return mFrom->handleEvent(core, event);
}
return false;
}
#endif // _MOOF_TRANSITION_HH_
-/** vim: set ts=4 sw=4 tw=80: *************************************************/
-