| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- * PolyTween.h
- * Poly
- *
- * Created by Ivan Safrin on 7/7/08.
- * Copyright 2008 __MyCompanyName__. All rights reserved.
- *
- */
- // @package BasicTypes
- #pragma once
- #include "PolyString.h"
- #include "PolyGlobals.h"
- #include "PolyEventDispatcher.h"
- #include "PolyCoreServices.h"
- #include "PolyBezierCurve.h"
- #include "PolyQuaternionCurve.h"
- namespace Polycode {
-
- class Timer;
-
- class _PolyExport Tween : public EventDispatcher {
- public:
- Tween(float *target, int easeType, float startVal, float endVal, float time, bool repeat=false);
- ~Tween();
-
- void handleEvent(Event *event);
- float interpolateTween();
- virtual void updateCustomTween() {}
- void doOnComplete();
-
- void Pause(bool pauseVal);
-
- void Reset();
-
- static const int EASE_NONE = 0;
- static const int EASE_IN_QUAD = 1;
- static const int EASE_OUT_QUAD = 2;
- static const int EASE_INOUT_QUAD = 3;
- static const int EASE_IN_CUBIC= 4;
- static const int EASE_OUT_CUBIC= 5;
- static const int EASE_INOUT_CUBIC= 6;
- static const int EASE_IN_QUART= 7;
- static const int EASE_OUT_QUART= 8;
- static const int EASE_INOUT_QUART= 9;
- static const int EASE_IN_QUINT= 10;
- static const int EASE_OUT_QUINT= 11;
- static const int EASE_INOUT_QUINT= 12;
- static const int EASE_IN_SINE= 13;
- static const int EASE_OUT_SINE= 14;
- static const int EASE_INOUT_SINE= 15;
- static const int EASE_IN_EXPO= 16;
- static const int EASE_OUT_EXPO= 17;
- static const int EASE_INOUT_EXPO= 18;
- static const int EASE_IN_CIRC= 19;
- static const int EASE_OUT_CIRC= 20;
- static const int EASE_INOUT_CIRC= 21;
- static const int EASE_IN_BOUNCE= 22;
- static const int EASE_OUT_BOUNCE = 23;
- static const int EASE_INOUT_BOUNCE = 24;
-
- bool isComplete();
- bool repeat;
-
- void setSpeed(float speed);
-
- protected:
-
-
- int easeType;
- bool complete;
- float endVal;
- float cVal;
- float startVal;
- float actEndTime;
- float endTime;
- float *targetVal;
- float localTargetVal;
- float tweenTime;
- Timer *tweenTimer;
- };
-
- class _PolyExport BezierPathTween : public Tween {
- public:
- BezierPathTween(Vector3 *target, BezierCurve *curve, int easeType, float time, bool repeat=false);
- ~BezierPathTween();
- void updateCustomTween();
- protected:
- float pathValue;
- Tween *pathTween;
- BezierCurve *curve;
- Vector3 *target;
- };
-
- class _PolyExport QuaternionTween : public Tween {
- public:
- QuaternionTween(Quaternion *target, BezierCurve *wCurve, BezierCurve *xCurve, BezierCurve *yCurve,
- BezierCurve *zCurve, int easeType, float time, bool repeat=false);
- ~QuaternionTween();
- void updateCustomTween();
- private:
- float pathValue;
- Tween *pathTween;
- QuaternionCurve *quatCurve;
- Quaternion *target;
- };
-
- }
|