diff --git a/external/tween-engine/Makefile b/external/tween-engine/Makefile deleted file mode 100644 index 5a65908..0000000 --- a/external/tween-engine/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -PROJECT = libtween -CXX = arm-none-eabi-g++ -AR = arm-none-eabi-ar -CXXFLAGS = -g -Wall -pedantic -std=c++11 -fno-rtti -fno-exceptions - -INCLUDES = -Iinclude/ -SOURCES = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) -OBJECTS = $(SOURCES:src/%.cpp=build/arm/%.o) - -TEST_CXX = g++ -TEST_AR = ar -TEST_CXXFLAGS = -g -Wall -pedantic -std=c++11 -fno-rtti -fno-exceptions -DTESTING -TEST_OBJECTS = $(SOURCES:src/%.cpp=build/test/%.o) - -.PHONY: all dir clean test - -all: dir $(PROJECT).a - -test: dir $(PROJECT)-test.a - -dir: - @mkdir -p build/arm/equations - @mkdir -p build/arm/paths - @mkdir -p build/test/equations - @mkdir -p build/test/paths - @mkdir -p lib - -$(PROJECT).a: $(OBJECTS) - $(AR) rvs lib/$@ $^ -$(PROJECT)-test.a: $(TEST_OBJECTS) - $(TEST_AR) rvs lib/$@ $^ - -clean: - @rm -rf build - @rm -rf lib - @echo "Successfully cleaned." - -build/arm/%.o: src/%.cpp - $(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@ - $(CXX) -MM $< > build/arm/$*.d - -build/test/%.o: src/%.cpp - $(TEST_CXX) $(INCLUDES) $(TEST_CXXFLAGS) -c $< -o $@ - $(TEST_CXX) -MM $< > build/test/$*.d diff --git a/external/tween-engine/build/arm/BaseTween.d b/external/tween-engine/build/arm/BaseTween.d deleted file mode 100644 index 2981aee..0000000 --- a/external/tween-engine/build/arm/BaseTween.d +++ /dev/null @@ -1 +0,0 @@ -BaseTween.o: src/BaseTween.cpp diff --git a/external/tween-engine/build/arm/BaseTween.o b/external/tween-engine/build/arm/BaseTween.o deleted file mode 100644 index 6f9e9ff..0000000 Binary files a/external/tween-engine/build/arm/BaseTween.o and /dev/null differ diff --git a/external/tween-engine/build/arm/Tween.d b/external/tween-engine/build/arm/Tween.d deleted file mode 100644 index 585022b..0000000 --- a/external/tween-engine/build/arm/Tween.d +++ /dev/null @@ -1 +0,0 @@ -Tween.o: src/Tween.cpp diff --git a/external/tween-engine/build/arm/Tween.o b/external/tween-engine/build/arm/Tween.o deleted file mode 100644 index f071c14..0000000 Binary files a/external/tween-engine/build/arm/Tween.o and /dev/null differ diff --git a/external/tween-engine/build/arm/TweenEquations.d b/external/tween-engine/build/arm/TweenEquations.d deleted file mode 100644 index becc511..0000000 --- a/external/tween-engine/build/arm/TweenEquations.d +++ /dev/null @@ -1 +0,0 @@ -TweenEquations.o: src/TweenEquations.cpp diff --git a/external/tween-engine/build/arm/TweenEquations.o b/external/tween-engine/build/arm/TweenEquations.o deleted file mode 100644 index 57b7715..0000000 Binary files a/external/tween-engine/build/arm/TweenEquations.o and /dev/null differ diff --git a/external/tween-engine/build/arm/TweenManager.d b/external/tween-engine/build/arm/TweenManager.d deleted file mode 100644 index feeea23..0000000 --- a/external/tween-engine/build/arm/TweenManager.d +++ /dev/null @@ -1 +0,0 @@ -TweenManager.o: src/TweenManager.cpp diff --git a/external/tween-engine/build/arm/TweenManager.o b/external/tween-engine/build/arm/TweenManager.o deleted file mode 100644 index 8ef8d1c..0000000 Binary files a/external/tween-engine/build/arm/TweenManager.o and /dev/null differ diff --git a/external/tween-engine/build/arm/TweenPaths.d b/external/tween-engine/build/arm/TweenPaths.d deleted file mode 100644 index 6dc1e33..0000000 --- a/external/tween-engine/build/arm/TweenPaths.d +++ /dev/null @@ -1 +0,0 @@ -TweenPaths.o: src/TweenPaths.cpp diff --git a/external/tween-engine/build/arm/TweenPaths.o b/external/tween-engine/build/arm/TweenPaths.o deleted file mode 100644 index fb35a28..0000000 Binary files a/external/tween-engine/build/arm/TweenPaths.o and /dev/null differ diff --git a/external/tween-engine/build/arm/TweenPool.d b/external/tween-engine/build/arm/TweenPool.d deleted file mode 100644 index 3086a2b..0000000 --- a/external/tween-engine/build/arm/TweenPool.d +++ /dev/null @@ -1 +0,0 @@ -TweenPool.o: src/TweenPool.cpp diff --git a/external/tween-engine/build/arm/TweenPool.o b/external/tween-engine/build/arm/TweenPool.o deleted file mode 100644 index ba56cbf..0000000 Binary files a/external/tween-engine/build/arm/TweenPool.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Back.d b/external/tween-engine/build/arm/equations/Back.d deleted file mode 100644 index 117980f..0000000 --- a/external/tween-engine/build/arm/equations/Back.d +++ /dev/null @@ -1 +0,0 @@ -Back.o: src/equations/Back.cpp diff --git a/external/tween-engine/build/arm/equations/Back.o b/external/tween-engine/build/arm/equations/Back.o deleted file mode 100644 index 0e26154..0000000 Binary files a/external/tween-engine/build/arm/equations/Back.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Bounce.d b/external/tween-engine/build/arm/equations/Bounce.d deleted file mode 100644 index 1a97f22..0000000 --- a/external/tween-engine/build/arm/equations/Bounce.d +++ /dev/null @@ -1 +0,0 @@ -Bounce.o: src/equations/Bounce.cpp diff --git a/external/tween-engine/build/arm/equations/Bounce.o b/external/tween-engine/build/arm/equations/Bounce.o deleted file mode 100644 index 9c46a3e..0000000 Binary files a/external/tween-engine/build/arm/equations/Bounce.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Circ.d b/external/tween-engine/build/arm/equations/Circ.d deleted file mode 100644 index fa46078..0000000 --- a/external/tween-engine/build/arm/equations/Circ.d +++ /dev/null @@ -1 +0,0 @@ -Circ.o: src/equations/Circ.cpp diff --git a/external/tween-engine/build/arm/equations/Circ.o b/external/tween-engine/build/arm/equations/Circ.o deleted file mode 100644 index 9bc8366..0000000 Binary files a/external/tween-engine/build/arm/equations/Circ.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Cubic.d b/external/tween-engine/build/arm/equations/Cubic.d deleted file mode 100644 index e04988b..0000000 --- a/external/tween-engine/build/arm/equations/Cubic.d +++ /dev/null @@ -1 +0,0 @@ -Cubic.o: src/equations/Cubic.cpp diff --git a/external/tween-engine/build/arm/equations/Cubic.o b/external/tween-engine/build/arm/equations/Cubic.o deleted file mode 100644 index 590f197..0000000 Binary files a/external/tween-engine/build/arm/equations/Cubic.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Elastic.d b/external/tween-engine/build/arm/equations/Elastic.d deleted file mode 100644 index e0dbf27..0000000 --- a/external/tween-engine/build/arm/equations/Elastic.d +++ /dev/null @@ -1 +0,0 @@ -Elastic.o: src/equations/Elastic.cpp diff --git a/external/tween-engine/build/arm/equations/Elastic.o b/external/tween-engine/build/arm/equations/Elastic.o deleted file mode 100644 index cb39dcc..0000000 Binary files a/external/tween-engine/build/arm/equations/Elastic.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Expo.d b/external/tween-engine/build/arm/equations/Expo.d deleted file mode 100644 index 2d522ae..0000000 --- a/external/tween-engine/build/arm/equations/Expo.d +++ /dev/null @@ -1 +0,0 @@ -Expo.o: src/equations/Expo.cpp diff --git a/external/tween-engine/build/arm/equations/Expo.o b/external/tween-engine/build/arm/equations/Expo.o deleted file mode 100644 index 5e003b6..0000000 Binary files a/external/tween-engine/build/arm/equations/Expo.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Linear.d b/external/tween-engine/build/arm/equations/Linear.d deleted file mode 100644 index 76690a7..0000000 --- a/external/tween-engine/build/arm/equations/Linear.d +++ /dev/null @@ -1 +0,0 @@ -Linear.o: src/equations/Linear.cpp diff --git a/external/tween-engine/build/arm/equations/Linear.o b/external/tween-engine/build/arm/equations/Linear.o deleted file mode 100644 index 5e33add..0000000 Binary files a/external/tween-engine/build/arm/equations/Linear.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Quad.d b/external/tween-engine/build/arm/equations/Quad.d deleted file mode 100644 index 8ef0b3a..0000000 --- a/external/tween-engine/build/arm/equations/Quad.d +++ /dev/null @@ -1 +0,0 @@ -Quad.o: src/equations/Quad.cpp diff --git a/external/tween-engine/build/arm/equations/Quad.o b/external/tween-engine/build/arm/equations/Quad.o deleted file mode 100644 index d804a6c..0000000 Binary files a/external/tween-engine/build/arm/equations/Quad.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Quart.d b/external/tween-engine/build/arm/equations/Quart.d deleted file mode 100644 index a42d44d..0000000 --- a/external/tween-engine/build/arm/equations/Quart.d +++ /dev/null @@ -1 +0,0 @@ -Quart.o: src/equations/Quart.cpp diff --git a/external/tween-engine/build/arm/equations/Quart.o b/external/tween-engine/build/arm/equations/Quart.o deleted file mode 100644 index e1b5168..0000000 Binary files a/external/tween-engine/build/arm/equations/Quart.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Quint.d b/external/tween-engine/build/arm/equations/Quint.d deleted file mode 100644 index a86b838..0000000 --- a/external/tween-engine/build/arm/equations/Quint.d +++ /dev/null @@ -1 +0,0 @@ -Quint.o: src/equations/Quint.cpp diff --git a/external/tween-engine/build/arm/equations/Quint.o b/external/tween-engine/build/arm/equations/Quint.o deleted file mode 100644 index d229dcc..0000000 Binary files a/external/tween-engine/build/arm/equations/Quint.o and /dev/null differ diff --git a/external/tween-engine/build/arm/equations/Sine.d b/external/tween-engine/build/arm/equations/Sine.d deleted file mode 100644 index c4b1da4..0000000 --- a/external/tween-engine/build/arm/equations/Sine.d +++ /dev/null @@ -1 +0,0 @@ -Sine.o: src/equations/Sine.cpp diff --git a/external/tween-engine/build/arm/equations/Sine.o b/external/tween-engine/build/arm/equations/Sine.o deleted file mode 100644 index 48171e5..0000000 Binary files a/external/tween-engine/build/arm/equations/Sine.o and /dev/null differ diff --git a/external/tween-engine/build/arm/paths/CatmullRom.d b/external/tween-engine/build/arm/paths/CatmullRom.d deleted file mode 100644 index 8d2fe6c..0000000 --- a/external/tween-engine/build/arm/paths/CatmullRom.d +++ /dev/null @@ -1 +0,0 @@ -CatmullRom.o: src/paths/CatmullRom.cpp diff --git a/external/tween-engine/build/arm/paths/CatmullRom.o b/external/tween-engine/build/arm/paths/CatmullRom.o deleted file mode 100644 index 14557fc..0000000 Binary files a/external/tween-engine/build/arm/paths/CatmullRom.o and /dev/null differ diff --git a/external/tween-engine/build/arm/paths/LinearPath.d b/external/tween-engine/build/arm/paths/LinearPath.d deleted file mode 100644 index 84466cd..0000000 --- a/external/tween-engine/build/arm/paths/LinearPath.d +++ /dev/null @@ -1 +0,0 @@ -LinearPath.o: src/paths/LinearPath.cpp diff --git a/external/tween-engine/build/arm/paths/LinearPath.o b/external/tween-engine/build/arm/paths/LinearPath.o deleted file mode 100644 index 0c09cf4..0000000 Binary files a/external/tween-engine/build/arm/paths/LinearPath.o and /dev/null differ diff --git a/external/tween-engine/include/TweenEngine/BaseTween.h b/external/tween-engine/include/TweenEngine/BaseTween.h deleted file mode 100644 index 63f918c..0000000 --- a/external/tween-engine/include/TweenEngine/BaseTween.h +++ /dev/null @@ -1,172 +0,0 @@ -// -// BaseTween.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * BaseTween is the base class of Tween and Timeline. It defines the - * iteration engine used to play animations for any number of times, and in - * any direction, at any speed. - *

- * - * It is responsible for calling the different callbacks at the right moments, - * and for making sure that every callbacks are triggered, even if the update - * engine gets a big delta time at once. - * - * @see Tween - * @see Timeline - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __BaseTween__ -#define __BaseTween__ - -#include -#include -#include - -namespace TweenEngine -{ - class TweenManager; - - typedef std::function TweenCallbackFunction; - - class BaseTween - { - private: - // General - int step; - int repeatCnt; - bool isIterationStep; - bool isYoyoFlag; - - // Timings - float repeatDelay; - float currentTime; - float deltaTime; - bool isStartedFlag; // true when the object is started - bool isInitializedFlag; // true after the delay - bool isFinishedFlag; // true when all repetitions are done - bool isKilledFlag; // true if kill() was called - bool isPausedFlag; // true if pause() was called - - // Misc - TweenCallback *callback; - int callbackTriggers; - void *userData; - std::map callbacks; - - // Update - void initialize(); - void testRelaunch(); - void updateStep(); - void testCompletion(); - - protected: - // Timings - float delayStart; - float duration; - - virtual void reset(); - virtual void forceStartValues() = 0; - virtual void forceEndValues() = 0; - virtual void initializeOverride(); - virtual void updateOverride(int step, int lastStep, bool isIterationStep, float delta); - virtual void forceToStart(); - virtual void forceToEnd(float time); - - void callCallback(int type); - bool isReverse(int step); - bool isValid(int step); - - public: - virtual ~BaseTween() {} - - virtual int getTweenCount() = 0; - virtual int getTimelineCount() = 0; - - // Package access - bool isAutoRemoveEnabled; - bool isAutoStartEnabled; - - virtual BaseTween &build(); - BaseTween &start(); - BaseTween &start(TweenManager &manager); - BaseTween &delay(float delay); - void kill(); - virtual void free(); - void pause(); - void resume(); - BaseTween &repeat(int count, float delay); - BaseTween &repeatYoyo(int count, float delay); - BaseTween &setCallback(TweenCallback *callback); - BaseTween &setCallback(int type, const TweenCallbackFunction& callback); - BaseTween &setCallbackTriggers(int flags); - BaseTween &setUserData(void *data); - - // Getters - float getDelay(); - float getDuration(); - int getRepeatCount(); - float getRepeatDelay(); - float getFullDuration(); - void *getUserData(); - int getStep(); - float getCurrentTime(); - bool isStarted(); - bool isInitialized(); - bool isFinished(); - bool isYoyo(); - bool isPaused(); - - // Update - void update(float delta); - - }; - -} - -#endif /* defined(__BaseTween__) */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/tween-engine/include/TweenEngine/Pool.h b/external/tween-engine/include/TweenEngine/Pool.h deleted file mode 100644 index 3047ec7..0000000 --- a/external/tween-engine/include/TweenEngine/Pool.h +++ /dev/null @@ -1,100 +0,0 @@ -// -// Pool.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * A light pool of objects that can be resused to avoid allocation. - * Based on Nathan Sweet pool implementation - */ - -#ifndef __Pool__ -#define __Pool__ - -#include - #include - -namespace TweenEngine -{ - - template - class PoolCallback - { - public: - virtual void onPool(T *obj) = 0; - virtual void onUnPool(T *obj) = 0; - }; - - template - class Pool - { - private: - std::vector objects; - PoolCallback *callback; - - protected: - virtual ~Pool() {} - virtual T *create()=0; - - public: - Pool(int initCapacity, PoolCallback *callback); - T *get(); - void free(T *obj); - void clear(); - int size(); - void ensureCapacity(int minCapacity); - - }; - - // Implementation - template - Pool::Pool(int initCapacity, PoolCallback *cb) : objects(initCapacity), callback(cb) - { - } - - template - T *Pool::get() - { - T *obj = nullptr; - if (objects.empty()) - { - obj = create(); - } - else - { - obj = objects.back(); - objects.pop_back(); - if (obj == nullptr) obj = create(); - } - if (callback != nullptr) callback->onUnPool(obj); - return obj; - } - - template - void Pool::free(T *obj) - { - if (obj == nullptr) return; - - bool contains = (std::find(objects.begin(), objects.end(), obj) != objects.end()); - - if (!contains) - { - if (callback != nullptr) callback->onPool(obj); - objects.push_back(obj); - } - } - - template - void Pool::clear() { objects.clear(); } - - template - int Pool::size() { return objects.size(); } - - template - void Pool::ensureCapacity(int minCapacity) { objects.reserve(minCapacity); } - -} - -#endif /* defined(__Pool__) */ diff --git a/external/tween-engine/include/TweenEngine/Tween.h b/external/tween-engine/include/TweenEngine/Tween.h deleted file mode 100644 index da5c24b..0000000 --- a/external/tween-engine/include/TweenEngine/Tween.h +++ /dev/null @@ -1,116 +0,0 @@ -// -// Tween.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Tween__ -#define __Tween__ - -#include -#include -#include -#include -#include -#include -#include - -namespace TweenEngine -{ - class TweenPool; - class TweenPoolCallback; - - class Tween : public BaseTween - { - friend class TweenPoolCallback; - - private: - static int combinedAttrsLimit; - static int waypointsLimit; - - // Main - Tweenable *targetObj; - int type; - TweenEquation *equation; - TweenPath *pathAlgorithm; - - // General - bool isFrom; - bool isRelative; - int combinedAttrsCnt; - int waypointsCnt; - - // Values - float* startValues; - float* targetValues; - float* waypoints; - - // Buffers - float *accessorBuffer; - int accessorBufferSize; - float *pathBuffer; - int pathBufferSize; - - //static TweenPoolCallback *poolCallback; - static TweenPool &pool; - - void setup(Tweenable *target, int tweenType, float duration); - - protected: - virtual void reset(); - virtual void forceStartValues(); - virtual void forceEndValues(); - virtual void initializeOverride(); - virtual void updateOverride(int step, int lastStep, bool isIterationStep, float delta); - - public: - static const int ACCESSOR_READ = 0; - static const int ACCESSOR_WRITE = 1; - - static void setCombinedAttributesLimit(int limit); - static void setWaypointsLimit(int limit); - static const char *getVersion(); - - static int getPoolSize(); - static void ensurePoolCapacity(int minCapacity); - - static Tween &to(Tweenable& target, int tweenType, float duration); - static Tween &from(Tweenable& target, int tweenType, float duration); - static Tween &set(Tweenable& target, int tweenType); - static Tween &call(TweenCallback &callback); - static Tween &mark(); - - Tween(); - ~Tween(); - - virtual int getTweenCount(); - virtual int getTimelineCount(); - - virtual Tween &build(); - virtual void free(); - - Tween &ease(TweenEquation &easeEquation); - Tween &target(float targetValue); - Tween &target(float targetValue1, float targetValue2); - Tween &target(float targetValue1, float targetValue2, float targetValue3); - Tween &target(float *targetValues, int len); - Tween &targetRelative(float targetValue); - Tween &targetRelative(float targetValue1, float targetValue2); - Tween &targetRelative(float targetValue1, float targetValue2, float targetValue3); - Tween &targetRelative(float *targetValues, int len); - Tween &waypoint(float targetValue); - Tween &waypoint(float targetValue1, float targetValue2); - Tween &waypoint(float targetValue1, float targetValue2, float targetValue3); - Tween &waypoint(float *targetValues, int len); - Tween &path(TweenPath &path); - int getType(); - TweenEquation *getEasing(); - float *getTargetValues(); - int getCombinedAttributesCount(); - - - }; -} - -#endif /* defined(__Tween__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenAccessor.h b/external/tween-engine/include/TweenEngine/TweenAccessor.h deleted file mode 100644 index e5857ce..0000000 --- a/external/tween-engine/include/TweenEngine/TweenAccessor.h +++ /dev/null @@ -1,103 +0,0 @@ -// -// TweenAccessor.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * The TweenAccessor interface lets you interpolate any attribute from any - * object. Just implement it as you want and register it to the engine by - * calling {@link Tween#registerAccessor}. - *

- * - *

Example

- * - * The following code snippet presents an example of implementation for tweening - * a Particle class. This Particle class is supposed to only define a position - * with an "x" and an "y" fields, and their associated getters and setters. - *

- * - *

 {@code
- * public class ParticleAccessor implements TweenAccessor {
- *     public static final int X = 1;
- *     public static final int Y = 2;
- *     public static final int XY = 3;
- *
- *     public int getValues(Particle target, int tweenType, float[] returnValues) {
- *         switch (tweenType) {
- *             case X: returnValues[0] = target.getX(); return 1;
- *             case Y: returnValues[0] = target.getY(); return 1;
- *             case XY:
- *                 returnValues[0] = target.getX();
- *                 returnValues[1] = target.getY();
- *                 return 2;
- *             default: assert false; return 0;
- *         }
- *     }
- *
- *     public void setValues(Particle target, int tweenType, float[] newValues) {
- *         switch (tweenType) {
- *             case X: target.setX(newValues[0]); break;
- *             case Y: target.setY(newValues[1]); break;
- *             case XY:
- *                 target.setX(newValues[0]);
- *                 target.setY(newValues[1]);
- *                 break;
- *             default: assert false; break;
- *         }
- *     }
- * }
- * }
- * - * Once done, you only need to register this TweenAccessor once to be able to - * use it for every Particle objects in your application: - *

- * - *

 {@code
- * Tween.registerAccessor(Particle.class, new ParticleAccessor());
- * }
- * - * And that's all, the Tween Engine can no work with all your particles! - * - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __TweenAccessor__ -#define __TweenAccessor__ - -namespace TweenEngine -{ - template - class TweenAccessor - { - - public: - virtual ~TweenAccessor() {} - - /** - * Gets one or many values from the target object associated to the - * given tween type. It is used by the Tween Engine to determine starting - * values. - * - * @param target The target object of the tween. - * @param tweenType An integer representing the tween type. - * @param returnValues An array which should be modified by this method. - * @return The count of modified slots from the returnValues array. - */ - virtual int getValues(T& target, int tweenType, float *returnValues) = 0; - - /** - * This method is called by the Tween Engine each time a running tween - * associated with the current target object has been updated. - * - * @param target The target object of the tween. - * @param tweenType An integer representing the tween type. - * @param newValues The new values determined by the Tween Engine. - */ - virtual void setValues(T& target, int tweenType, float *newValues) = 0; - }; - -} - -#endif /* defined(__TweenAccessor__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenCallback.h b/external/tween-engine/include/TweenEngine/TweenCallback.h deleted file mode 100644 index 8523479..0000000 --- a/external/tween-engine/include/TweenEngine/TweenCallback.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// TweenCallback.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * TweenCallbacks are used to trigger actions at some specific times. They are - * used in both Tweens and Timelines. The moment when the callback is - * triggered depends on its registered triggers: - *

- * - * BEGIN: right after the delay (if any)
- * START: at each iteration beginning
- * END: at each iteration ending, before the repeat delay
- * COMPLETE: at last END event
- * BACK_BEGIN: at the beginning of the first backward iteration
- * BACK_START: at each backward iteration beginning, after the repeat delay
- * BACK_END: at each backward iteration ending
- * BACK_COMPLETE: at last BACK_END event - *

- * - *

 {@code
- * forward :      BEGIN                                   COMPLETE
- * forward :      START    END      START    END      START    END
- * |--------------[XXXXXXXXXX]------[XXXXXXXXXX]------[XXXXXXXXXX]
- * backward:      bEND  bSTART      bEND  bSTART      bEND  bSTART
- * backward:      bCOMPLETE                                 bBEGIN
- * }
- * - * @see Tween - * @see Timeline - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __TweenCallback__ -#define __TweenCallback__ - -namespace TweenEngine -{ - class BaseTween; - - class TweenCallback - { - - public: - static const int BEGIN = 0x01; - static const int START = 0x02; - static const int END = 0x04; - static const int COMPLETE = 0x08; - static const int BACK_BEGIN = 0x10; - static const int BACK_START = 0x20; - static const int BACK_END = 0x40; - static const int BACK_COMPLETE = 0x80; - static const int ANY_FORWARD = 0x0F; - static const int ANY_BACKWARD = 0xF0; - static const int ANY = 0xFF; - - virtual ~TweenCallback() {} - virtual void onEvent(int type, BaseTween *source) = 0; - }; - -} -#endif /* defined(__TweenCallback__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenEquation.h b/external/tween-engine/include/TweenEngine/TweenEquation.h deleted file mode 100644 index 0227c99..0000000 --- a/external/tween-engine/include/TweenEngine/TweenEquation.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// TweenEquation.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * Base class for every easing equation. You can create your own equations - * and directly use them in the Tween engine by inheriting from this class. - * - * @see Tween - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __TweenEquation__ -#define __TweenEquation__ - -//#include - -namespace TweenEngine -{ - class TweenEquation - { - public: - /** - * Computes the next value of the interpolation. - * - * @param t The current time, between 0 and 1. - * @return The current value. - */ - virtual float compute(float t) = 0; - - virtual const char *toString() = 0; - - /** - * Returns true if the given string is the name of this equation (the name - * is returned in the toString() method, don't forget to override it). - * This method is usually used to save/load a tween to/from a text file. - */ - //bool isValueOf(const char *str) { return !strcmp(str, toString()); }; - - }; -} - -#endif /* defined(__TweenEquation__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenEquations.h b/external/tween-engine/include/TweenEngine/TweenEquations.h deleted file mode 100644 index 22d1358..0000000 --- a/external/tween-engine/include/TweenEngine/TweenEquations.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// TweenEquations.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __TweenEquations__ -#define __TweenEquations__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace TweenEngine -{ - class TweenEquations - { - public: - static TweenEquation &easeInQuad; - static TweenEquation &easeOutQuad; - static TweenEquation &easeInOutQuad; - static TweenEquation &easeInOutLinear; - static TweenEquation &easeInBack; - static TweenEquation &easeOutBack; - static TweenEquation &easeInOutBack; - static TweenEquation &easeInBounce; - static TweenEquation &easeOutBounce; - static TweenEquation &easeInOutBounce; - static TweenEquation &easeInCirc; - static TweenEquation &easeOutCirc; - static TweenEquation &easeInOutCirc; - static TweenEquation &easeInCubic; - static TweenEquation &easeOutCubic; - static TweenEquation &easeInOutCubic; - static TweenEquation &easeInElastic; - static TweenEquation &easeOutElastic; - static TweenEquation &easeInOutElastic; - static TweenEquation &easeInExpo; - static TweenEquation &easeOutExpo; - static TweenEquation &easeInOutExpo; - static TweenEquation &easeInQuart; - static TweenEquation &easeOutQuart; - static TweenEquation &easeInOutQuart; - static TweenEquation &easeInQuint; - static TweenEquation &easeOutQuint; - static TweenEquation &easeInOutQuint; - static TweenEquation &easeInSine; - static TweenEquation &easeOutSine; - static TweenEquation &easeInOutSine; - }; - -} - -#endif /* defined(__TweenEquations__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenManager.h b/external/tween-engine/include/TweenEngine/TweenManager.h deleted file mode 100644 index 828d411..0000000 --- a/external/tween-engine/include/TweenEngine/TweenManager.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// TweenManager.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * A TweenManager updates all your tweens and timelines at once. - * Its main interest is that it handles the tween/timeline life-cycles for you, - * as well as the pooling constraints (if object pooling is enabled). - *

- * - * Just give it a bunch of tweens or timelines and call update() periodically, - * you don't need to care for anything else! Relax and enjoy your animations. - * - * @see Tween - * @see Timeline - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __TweenManager__ -#define __TweenManager__ - -#include -#include - -#include - -namespace TweenEngine -{ - class TweenManager - { - private: - std::vectorobjects; - - bool isPaused = false; - - public: - TweenManager(); - - static void setAutoRemove(BaseTween &object, bool value); - static void setAutoStart(BaseTween &object, bool value); - - TweenManager &add(BaseTween &object); - void killAll(); - void ensureCapacity(int minCapacity); - void pause(); - void resume(); - void update(float delta); - int size(); - - // Debug Helpers - int getRunningTweensCount(); - int getRunningTimelinesCount(); - std::vector &getObjects(); - }; - -} - -#endif /* defined(__TweenManager__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenPath.h b/external/tween-engine/include/TweenEngine/TweenPath.h deleted file mode 100644 index 2dc3cd9..0000000 --- a/external/tween-engine/include/TweenEngine/TweenPath.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// TweenPath.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * Base class for every paths. You can create your own paths and directly use - * them in the Tween engine by inheriting from this class. - * - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#ifndef __TweenPath__ -#define __TweenPath__ - -namespace TweenEngine -{ - class TweenPath - { - public: - /** - * Computes the next value of the interpolation, based on its waypoints and - * the current progress. - * - * @param t The progress of the interpolation, between 0 and 1. May be out - * of these bounds if the easing equation involves some kind of rebounds. - * @param points The waypoints of the tween, from start to target values. - * @param pointsCnt The number of valid points in the array. - * @return The next value of the interpolation. - */ - virtual float compute(float t, float *points, int pointsCnt) = 0; - }; -} - -#endif /* defined(__TweenPath__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenPaths.h b/external/tween-engine/include/TweenEngine/TweenPaths.h deleted file mode 100644 index 2d11717..0000000 --- a/external/tween-engine/include/TweenEngine/TweenPaths.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// TweenPaths.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __TweenPaths__ -#define __TweenPaths__ - -#include - -namespace TweenEngine -{ - class TweenPaths - { - public: - static TweenPath &linear; - static TweenPath &catmullRom; - }; -} - -#endif /* defined(__TweenPaths__) */ diff --git a/external/tween-engine/include/TweenEngine/TweenPool.h b/external/tween-engine/include/TweenEngine/TweenPool.h deleted file mode 100644 index 1970b88..0000000 --- a/external/tween-engine/include/TweenEngine/TweenPool.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// TweenPool.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __TweenPool__ -#define __TweenPool__ - -#include -#include - -namespace TweenEngine -{ - class TweenPoolCallback : public PoolCallback - { - public: - void onPool(Tween *obj); - void onUnPool(Tween *obj); - }; - - class TweenPool : public Pool - { - protected: - Tween *create(); - public: - TweenPool(); - - }; -} -#endif /* defined(__TweenPool__) */ diff --git a/external/tween-engine/include/TweenEngine/Tweenable.h b/external/tween-engine/include/TweenEngine/Tweenable.h deleted file mode 100644 index 22d9158..0000000 --- a/external/tween-engine/include/TweenEngine/Tweenable.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __Tweenable__ -#define __Tweenable__ - -namespace TweenEngine { - class Tweenable { - public: - virtual int getValues(int tweenType, float *returnValues) = 0; - virtual void setValues(int tweenType, float *newValues) = 0; - }; -} - -#endif diff --git a/external/tween-engine/include/TweenEngine/equations/Back.h b/external/tween-engine/include/TweenEngine/equations/Back.h deleted file mode 100644 index 6e411cd..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Back.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Back.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Back__ -#define __Back__ - -#include - -namespace TweenEngine -{ - class BackIn : public TweenEquation - { - ~BackIn(); - float compute(float t); - const char *toString(); - }; - - class BackOut : public TweenEquation - { - ~BackOut(); - float compute(float t); - const char *toString(); - }; - - class BackInOut : public TweenEquation - { - ~BackInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Back__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Bounce.h b/external/tween-engine/include/TweenEngine/equations/Bounce.h deleted file mode 100644 index 9bce310..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Bounce.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// Bounce.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Bounce__ -#define __Bounce__ - -#include - -namespace TweenEngine -{ - class BounceIn : public TweenEquation - { - ~BounceIn(); - float compute(float t); - const char *toString(); - }; - - class BounceOut : public TweenEquation - { - ~BounceOut(); - float compute(float t); - const char *toString(); - }; - - class BounceInOut : public TweenEquation - { - ~BounceInOut(); - float compute(float t); - const char *toString(); - }; -} - - -#endif /* defined(__Bounce__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Circ.h b/external/tween-engine/include/TweenEngine/equations/Circ.h deleted file mode 100644 index 1d59d49..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Circ.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Circ.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Circ__ -#define __Circ__ - -#include - -namespace TweenEngine -{ - class CircIn : public TweenEquation - { - ~CircIn(); - float compute(float t); - const char *toString(); - }; - - class CircOut : public TweenEquation - { - ~CircOut(); - float compute(float t); - const char *toString(); - }; - - class CircInOut : public TweenEquation - { - ~CircInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Circ__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Cubic.h b/external/tween-engine/include/TweenEngine/equations/Cubic.h deleted file mode 100644 index 4411818..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Cubic.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Cubic.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Cubic__ -#define __Cubic__ - -#include - -namespace TweenEngine -{ - class CubicIn : public TweenEquation - { - ~CubicIn(); - float compute(float t); - const char *toString(); - }; - - class CubicOut : public TweenEquation - { - ~CubicOut(); - float compute(float t); - const char *toString(); - }; - - class CubicInOut : public TweenEquation - { - ~CubicInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Cubic__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Elastic.h b/external/tween-engine/include/TweenEngine/equations/Elastic.h deleted file mode 100644 index 9a0dfb6..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Elastic.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// Elastic.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Elastic__ -#define __Elastic__ - -#include - -namespace TweenEngine -{ - class ElasticIn : public TweenEquation - { - private: - float amplitude; - float period; - bool isAmplitudeSet; - bool isPeriodSet; - public: - ~ElasticIn(); - float compute(float t); - const char *toString(); - void setAmplitude(float a); - void setPeriod(float p); - }; - - class ElasticOut : public TweenEquation - { - private: - float amplitude; - float period; - bool isAmplitudeSet; - bool isPeriodSet; - public: - ~ElasticOut(); - float compute(float t); - const char *toString(); - void setAmplitude(float a); - void setPeriod(float p); - }; - - class ElasticInOut : public TweenEquation - { - private: - float amplitude; - float period; - bool isAmplitudeSet; - bool isPeriodSet; - public: - ~ElasticInOut(); - float compute(float t); - const char *toString(); - void setAmplitude(float a); - void setPeriod(float p); - }; -} - -#endif /* defined(__Elastic__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Expo.h b/external/tween-engine/include/TweenEngine/equations/Expo.h deleted file mode 100644 index 79c1087..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Expo.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Expo.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Expo__ -#define __Expo__ - -#include - -namespace TweenEngine -{ - class ExpoIn : public TweenEquation - { - ~ExpoIn(); - float compute(float t); - const char *toString(); - }; - - class ExpoOut : public TweenEquation - { - ~ExpoOut(); - float compute(float t); - const char *toString(); - }; - - class ExpoInOut : public TweenEquation - { - ~ExpoInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Expo__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Linear.h b/external/tween-engine/include/TweenEngine/equations/Linear.h deleted file mode 100644 index 559b1d8..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Linear.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// Linear.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Linear__ -#define __Linear__ - -#include - -namespace TweenEngine -{ - class LinearInOut : public TweenEquation - { - ~LinearInOut(); - float compute(float t); - const char *toString(); - }; -} - - -#endif /* defined(__Linear__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Quad.h b/external/tween-engine/include/TweenEngine/equations/Quad.h deleted file mode 100644 index 995cdbf..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Quad.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Quad.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Quad__ -#define __Quad__ - -#include - -namespace TweenEngine -{ - class QuadIn : public TweenEquation - { - ~QuadIn(); - float compute(float t); - const char *toString(); - }; - - class QuadOut : public TweenEquation - { - ~QuadOut(); - float compute(float t); - const char *toString(); - }; - - class QuadInOut : public TweenEquation - { - ~QuadInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Quad__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Quart.h b/external/tween-engine/include/TweenEngine/equations/Quart.h deleted file mode 100644 index c821a18..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Quart.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Quart.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Quart__ -#define __Quart__ - -#include - -namespace TweenEngine -{ - class QuartIn : public TweenEquation - { - ~QuartIn(); - float compute(float t); - const char *toString(); - }; - - class QuartOut : public TweenEquation - { - ~QuartOut(); - float compute(float t); - const char *toString(); - }; - - class QuartInOut : public TweenEquation - { - ~QuartInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Quart__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Quint.h b/external/tween-engine/include/TweenEngine/equations/Quint.h deleted file mode 100644 index cad718a..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Quint.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Quint.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Quint__ -#define __Quint__ - -#include - -namespace TweenEngine -{ - class QuintIn : public TweenEquation - { - ~QuintIn(); - float compute(float t); - const char *toString(); - }; - - class QuintOut : public TweenEquation - { - ~QuintOut(); - float compute(float t); - const char *toString(); - }; - - class QuintInOut : public TweenEquation - { - ~QuintInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Quint__) */ diff --git a/external/tween-engine/include/TweenEngine/equations/Sine.h b/external/tween-engine/include/TweenEngine/equations/Sine.h deleted file mode 100644 index b288755..0000000 --- a/external/tween-engine/include/TweenEngine/equations/Sine.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Sine.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __Sine__ -#define __Sine__ - -#include - -namespace TweenEngine -{ - class SineIn : public TweenEquation - { - ~SineIn(); - float compute(float t); - const char *toString(); - }; - - class SineOut : public TweenEquation - { - ~SineOut(); - float compute(float t); - const char *toString(); - }; - - class SineInOut : public TweenEquation - { - ~SineInOut(); - float compute(float t); - const char *toString(); - }; -} - -#endif /* defined(__Sine__) */ diff --git a/external/tween-engine/include/TweenEngine/paths/CatmullRom.h b/external/tween-engine/include/TweenEngine/paths/CatmullRom.h deleted file mode 100644 index 104bda7..0000000 --- a/external/tween-engine/include/TweenEngine/paths/CatmullRom.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// CatmullRom.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __CatmullRom__ -#define __CatmullRom__ - -#include - -namespace TweenEngine -{ - class CatmullRom : public TweenPath - { - float compute(float t, float *points, int pointsCnt); - float catmullRomSpline(float a, float b, float c, float d, float t); - }; -} - -#endif /* defined(__CatmullRom__) */ diff --git a/external/tween-engine/include/TweenEngine/paths/LinearPath.h b/external/tween-engine/include/TweenEngine/paths/LinearPath.h deleted file mode 100644 index 145d48d..0000000 --- a/external/tween-engine/include/TweenEngine/paths/LinearPath.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// Linear.h -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#ifndef __LinearPath__ -#define __LinearPath__ - -#include - -namespace TweenEngine -{ - class LinearPath : public TweenPath - { - float compute(float t, float *points, int pointsCnt); - }; -} - -#endif /* defined(__LinearPath__) */ diff --git a/external/tween-engine/lib/libtween.a b/external/tween-engine/lib/libtween.a deleted file mode 100644 index 0e76ca6..0000000 Binary files a/external/tween-engine/lib/libtween.a and /dev/null differ diff --git a/external/tween-engine/src/BaseTween.cpp b/external/tween-engine/src/BaseTween.cpp deleted file mode 100644 index 3c09085..0000000 --- a/external/tween-engine/src/BaseTween.cpp +++ /dev/null @@ -1,525 +0,0 @@ -// -// BaseTween.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -//#define NDEBUG - -#include -#include - -namespace TweenEngine -{ - void BaseTween::reset() - { - step = -2; - repeatCnt = 0; - isIterationStep = isYoyoFlag = false; - - delayStart = duration = repeatDelay = currentTime = deltaTime = 0; - isStartedFlag = isInitializedFlag = isFinishedFlag = isKilledFlag = isPausedFlag = false; - - callback = nullptr; - callbackTriggers = TweenCallback::COMPLETE; - userData = nullptr; - callbacks.clear(); - - isAutoRemoveEnabled = isAutoStartEnabled = true; - } - - // API - - /** - * Builds and validates the object. Only needed if you want to finalize a - * tween or timeline without starting it, since a call to ".start()" also - * calls this method. - * - * @return The current object, for chaining instructions. - */ - BaseTween &BaseTween::build() - { - return *this; - } - - /** - * Starts or restarts the object unmanaged. You will need to take care of - * its life-cycle. If you want the tween to be managed for you, use a - * {@link TweenManager}. - * - * @return The current object, for chaining instructions. - */ - BaseTween &BaseTween::start() - { - build(); - currentTime = 0; - isStartedFlag = true; - return *this; - } - - /** - * Convenience method to add an object to a manager. Its life-cycle will be - * handled for you. Relax and enjoy the animation. - * - * @return The current object, for chaining instructions. - */ - BaseTween &BaseTween::start(TweenManager &manager) { - manager.add(*this); - return *this; - } - - /** - * Adds a delay to the tween or timeline. - * - * @param delay A duration. - * @return The current object, for chaining instructions. - */ - BaseTween &BaseTween::delay(float delay) - { - this->delayStart += delay; - return *this; - } - - /** - * Kills the tween or timeline. If you are using a TweenManager, this object - * will be removed automatically. - */ - void BaseTween::kill() - { - isKilledFlag = true; - } - - /** - * Stops and resets the tween or timeline, and sends it to its pool, for - + * later reuse. Note that if you use a {@link TweenManager}, this method - + * is automatically called once the animation is finished. - */ - void BaseTween::free() - { - } - - /** - * Pauses the tween or timeline. Further update calls won't have any effect. - */ - void BaseTween::pause() - { - isPausedFlag = true; - } - - /** - * Resumes the tween or timeline. Has no effect is it was no already paused. - */ - void BaseTween::resume() - { - isPausedFlag = false; - } - - /** - * Repeats the tween or timeline for a given number of times. - * @param count The number of repetitions. For infinite repetition, - * use Tween.INFINITY, or a negative number. - * - * @param delay A delay between each iteration. - * @return The current tween or timeline, for chaining instructions. - */ - BaseTween &BaseTween::repeat(int count, float delay) - { - if (isStartedFlag) - { - //throw new RuntimeException("You can't change the repetitions of a tween or timeline once it is started"); - } - else - { - repeatCnt = count; - repeatDelay = delay >= 0 ? delay : 0; - isYoyoFlag = false; - } - return *this; - } - - /** - * Repeats the tween or timeline for a given number of times. - * Every two iterations, it will be played backwards. - * - * @param count The number of repetitions. For infinite repetition, - * use Tween.INFINITY, or '-1'. - * @param delay A delay before each repetition. - * @return The current tween or timeline, for chaining instructions. - */ - BaseTween &BaseTween::repeatYoyo(int count, float delay) - { - if (isStartedFlag) - { - //throw new RuntimeException("You can't change the repetitions of a tween or timeline once it is started"); - } - else - { - repeatCnt = count; - repeatDelay = delay >= 0 ? delay : 0; - isYoyoFlag = true; - } - return *this; - } - - /** - * Sets the callback. By default, it will be fired at the completion of the - * tween or timeline (event COMPLETE). If you want to change this behavior - * and add more triggers, use the {@link setCallbackTriggers()} method. - * - * @see TweenCallback - */ - BaseTween &BaseTween::setCallback(TweenCallback *callback) - { - this->callback = callback; - return *this; - } - - BaseTween &BaseTween::setCallback(int type, const TweenCallbackFunction& callback) - { - callbacks[type] = callback; - return *this; - } - - /** - * Changes the triggers of the callback. The available triggers, listed as - * members of the {@link TweenCallback} interface, are: - *

- * - * BEGIN: right after the delay (if any)
- * START: at each iteration beginning
- * END: at each iteration ending, before the repeat delay
- * COMPLETE: at last END event
- * BACK_BEGIN: at the beginning of the first backward iteration
- * BACK_START: at each backward iteration beginning, after the repeat delay
- * BACK_END: at each backward iteration ending
- * BACK_COMPLETE: at last BACK_END event - *

- * - *

 {@code
-	 * forward :      BEGIN                                   COMPLETE
-	 * forward :      START    END      START    END      START    END
-	 * |--------------[XXXXXXXXXX]------[XXXXXXXXXX]------[XXXXXXXXXX]
-	 * backward:      bEND  bSTART      bEND  bSTART      bEND  bSTART
-	 * backward:      bCOMPLETE                                 bBEGIN
-	 * }
- * - * @param flags one or more triggers, separated by the '|' operator. - * @see TweenCallback - */ - BaseTween &BaseTween::setCallbackTriggers(int flags) - { - this->callbackTriggers = flags; - return *this; - } - - /** - * Attaches an object to this tween or timeline. It can be useful in order - * to retrieve some data from a TweenCallback. - * - * @param data Any kind of object. - * @return The current tween or timeline, for chaining instructions. - */ - BaseTween &BaseTween::setUserData(void *data) - { - userData = data; - return *this; - } - - // ------------------------------------------------------------------------- - // Getters - // ------------------------------------------------------------------------- - - /** - * Gets the delay of the tween or timeline. Nothing will happen before - * this delay. - */ - float BaseTween::getDelay() { return delayStart; } - - /** - * Gets the duration of a single iteration. - */ - float BaseTween::getDuration() { return duration; } - - /** - * Gets the number of iterations that will be played. - */ - int BaseTween::getRepeatCount() { return repeatCnt; } - - /** - * Gets the delay occuring between two iterations. - */ - float BaseTween::getRepeatDelay() { return repeatDelay; } - - /** - * Returns the complete duration, including initial delay and repetitions. - * The formula is as follows: - *
-	 * fullDuration = delay + duration + (repeatDelay + duration) * repeatCnt
-	 * 
- */ - float BaseTween::getFullDuration() - { - if (repeatCnt < 0) return -1; - return delayStart + duration + (repeatDelay + duration) * repeatCnt; - } - - /** - * Gets the attached data, or null if none. - */ - void *BaseTween::getUserData() { return userData; } - - /** - * Gets the id of the current step. Values are as follows:
- *
    - *
  • even numbers mean that an iteration is playing,
    - *
  • odd numbers mean that we are between two iterations,
    - *
  • -2 means that the initial delay has not ended,
    - *
  • -1 means that we are before the first iteration,
    - *
  • repeatCount*2 + 1 means that we are after the last iteration - */ - int BaseTween::getStep() { return step; } - - /** - * Gets the local time. - */ - float BaseTween::getCurrentTime() { return currentTime; } - - /** - * Returns true if the tween or timeline has been started. - */ - bool BaseTween::isStarted() { return isStartedFlag; } - - /** - * Returns true if the tween or timeline has been initialized. Starting - * values for tweens are stored at initialization time. This initialization - * takes place right after the initial delay, if any. - */ - bool BaseTween::isInitialized() { return isInitializedFlag; } - - /** - * Returns true if the tween is finished (i.e. if the tween has reached - * its end or has been killed). If you don't use a TweenManager, you may - * want to call {@link free()} to reuse the object later. - */ - bool BaseTween::isFinished() { return isFinishedFlag || isKilledFlag; } - - /** - * Returns true if the iterations are played as yoyo. Yoyo means that - * every two iterations, the animation will be played backwards. - */ - bool BaseTween::isYoyo() { return isYoyoFlag; } - - /** - * Returns true if the tween or timeline is currently paused. - */ - bool BaseTween::isPaused() { return isPausedFlag; } - - void BaseTween::initializeOverride() {} - - void BaseTween::updateOverride(int step, int lastStep, bool isIterationStep, float delta) {} - - void BaseTween::forceToStart() - { - currentTime = -delayStart; - step = -1; - isIterationStep = false; - if (isReverse(0)) forceEndValues(); - else forceStartValues(); - } - - void BaseTween::forceToEnd(float time) - { - currentTime = time - getFullDuration(); - step = repeatCnt*2 + 1; - isIterationStep = false; - if (isReverse(repeatCnt*2)) forceStartValues(); - else forceEndValues(); - } - - void BaseTween::callCallback(int type) - { - auto callback = callbacks.find(type); - if (callback != callbacks.end()) { - callback->second(this); - } -// if (callback != nullptr && (callbackTriggers & type) > 0) callback->onEvent(type, this); - } - - bool BaseTween::isReverse(int step) - { - return isYoyoFlag && abs(step%4) == 2; - } - - bool BaseTween::isValid(int step) - { - return (step >= 0 && step <= repeatCnt*2) || repeatCnt < 0; - } - - // ------------------------------------------------------------------------- - // Update engine - // ------------------------------------------------------------------------- - - /** - * Updates the tween or timeline state. You may want to use a - * TweenManager to update objects for you. - * - * Slow motion, fast motion and backward play can be easily achieved by - * tweaking this delta time. Multiply it by -1 to play the animation - * backward, or by 0.5 to play it twice slower than its normal speed. - * - * @param delta A delta time between now and the last call. - */ - void BaseTween::update(float delta) - { - if (!isStartedFlag || isPausedFlag || isKilledFlag) return; - - deltaTime = delta; - - if (!isInitializedFlag) initialize(); - - if (isInitializedFlag) - { - testRelaunch(); - updateStep(); - testCompletion(); - } - - currentTime += deltaTime; - deltaTime = 0; - } - - void BaseTween::initialize() { - if (currentTime+deltaTime >= delayStart) - { - initializeOverride(); - isInitializedFlag = true; - isIterationStep = true; - step = 0; - deltaTime -= delayStart-currentTime; - currentTime = 0; - callCallback(TweenCallback::BEGIN); - callCallback(TweenCallback::START); - } - } - - void BaseTween::testRelaunch() - { - if (!isIterationStep && repeatCnt >= 0 && step < 0 && currentTime+deltaTime >= 0) - { - // assert(step == -1); - isIterationStep = true; - step = 0; - float delta = 0-currentTime; - deltaTime -= delta; - currentTime = 0; - callCallback(TweenCallback::BEGIN); - callCallback(TweenCallback::START); - updateOverride(step, step-1, isIterationStep, delta); - - } - else if (!isIterationStep && repeatCnt >= 0 && step > repeatCnt*2 && currentTime+deltaTime < 0) - { - // assert(step == repeatCnt*2 + 1); - isIterationStep = true; - step = repeatCnt*2; - float delta = 0-currentTime; - deltaTime -= delta; - currentTime = duration; - callCallback(TweenCallback::BACK_BEGIN); - callCallback(TweenCallback::BACK_START); - updateOverride(step, step+1, isIterationStep, delta); - } - } - - void BaseTween::updateStep() - { - while (isValid(step)) - { - if (!isIterationStep && currentTime+deltaTime <= 0) - { - isIterationStep = true; - step -= 1; - - float delta = 0-currentTime; - deltaTime -= delta; - currentTime = duration; - - if (isReverse(step)) forceStartValues(); - else forceEndValues(); - callCallback(TweenCallback::BACK_START); - updateOverride(step, step+1, isIterationStep, delta); - - } - else if (!isIterationStep && currentTime+deltaTime >= repeatDelay) - { - isIterationStep = true; - step += 1; - - float delta = repeatDelay-currentTime; - deltaTime -= delta; - currentTime = 0; - - if (isReverse(step)) forceEndValues(); else forceStartValues(); - callCallback(TweenCallback::START); - updateOverride(step, step-1, isIterationStep, delta); - - } - else if (isIterationStep && currentTime+deltaTime < 0) - { - isIterationStep = false; - step -= 1; - - float delta = 0-currentTime; - deltaTime -= delta; - currentTime = 0; - - updateOverride(step, step+1, isIterationStep, delta); - callCallback(TweenCallback::BACK_END); - - if (step < 0 && repeatCnt >= 0) callCallback(TweenCallback::BACK_COMPLETE); - else currentTime = repeatDelay; - - } - else if (isIterationStep && currentTime+deltaTime > duration) - { - isIterationStep = false; - step += 1; - - float delta = duration-currentTime; - deltaTime -= delta; - currentTime = duration; - - updateOverride(step, step-1, isIterationStep, delta); - callCallback(TweenCallback::END); - - if (step > repeatCnt*2 && repeatCnt >= 0) callCallback(TweenCallback::COMPLETE); - currentTime = 0; - - } - else if (isIterationStep) - { - float delta = deltaTime; - deltaTime -= delta; - currentTime += delta; - updateOverride(step, step, isIterationStep, delta); - break; - - } - else - { - float delta = deltaTime; - deltaTime -= delta; - currentTime += delta; - break; - } - } - } - - void BaseTween::testCompletion() - { - isFinishedFlag = repeatCnt >= 0 && (step > repeatCnt*2 || step < 0); - } - - -} \ No newline at end of file diff --git a/external/tween-engine/src/Tween.cpp b/external/tween-engine/src/Tween.cpp deleted file mode 100644 index 7fd05c8..0000000 --- a/external/tween-engine/src/Tween.cpp +++ /dev/null @@ -1,796 +0,0 @@ -// -// Tween.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * Core class of the Tween Engine. A Tween is basically an interpolation - * between two values of an object attribute. However, the main interest of a - * Tween is that you can apply an easing formula on this interpolation, in - * order to smooth the transitions or to achieve cool effects like springs or - * bounces. - *

    - * - * The Universal Tween Engine is called "universal" because it is able to apply - * interpolations on every attribute from every possible object. Therefore, - * every object in your application can be animated with cool effects: it does - * not matter if your application is a game, a desktop interface or even a - * console program! If it makes sense to animate something, then it can be - * animated through this engine. - *

    - * - * This class contains many static factory methods to create and instantiate - * new interpolations easily. The common way to create a Tween is by using one - * of these factories: - *

    - * - * - Tween.to(...)
    - * - Tween.from(...)
    - * - Tween.set(...)
    - * - Tween.call(...) - *

    - * - *

    Example - firing a Tween

    - * - * The following example will move the target horizontal position from its - * current value to x=200 and y=300, during 500ms, but only after a delay of - * 1000ms. The animation will also be repeated 2 times (the starting position - * is registered at the end of the delay, so the animation will automatically - * restart from this registered position). - *

    - * - *

     {@code
    - * Tween.to(myObject, POSITION_XY, 0.5f)
    - *      .target(200, 300)
    - *      .ease(Quad.INOUT)
    - *      .delay(1.0f)
    - *      .repeat(2, 0.2f)
    - *      .start(myManager);
    - * }
    - * - * Tween life-cycles can be automatically managed for you, thanks to the - * {@link TweenManager} class. If you choose to manage your tween when you start - * it, then you don't need to care about it anymore. Tweens are - * fire-and-forget: don't think about them anymore once you started - * them (if they are managed of course). - *

    - * - * You need to periodicaly update the tween engine, in order to compute the new - * values. If your tweens are managed, only update the manager; else you need - * to call {@link #update()} on your tweens periodically. - *

    - * - *

    Example - setting up the engine

    - * - * The engine cannot directly change your objects attributes, since it doesn't - * know them. Therefore, you need to tell him how to get and set the different - * attributes of your objects: you need to implement the {@link - * TweenAccessor} interface for each object class you will animate. Once - * done, don't forget to register these implementations, using the static method - * {@link registerAccessor()}, when you start your application. - * - * @see TweenAccessor - * @see TweenManager - * @see TweenEquation - * @see Timeline - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -//#define NDEBUG - -#include -#include - -namespace TweenEngine -{ - int Tween::combinedAttrsLimit = 3; - int Tween::waypointsLimit = 0; - - /** - * Changes the limit for combined attributes. Defaults to 3 to reduce - * memory footprint. - */ - void Tween::setCombinedAttributesLimit(int limit) { Tween::combinedAttrsLimit = limit; } - - /** - * Changes the limit of allowed waypoints for each tween. Defaults to 0 to - * reduce memory footprint. - */ - void Tween::setWaypointsLimit(int limit) { Tween::waypointsLimit = limit; } - - /** - * Gets the version number of the library. - */ - const char *Tween::getVersion() { return "6.3.3"; } - - /** - * Used for debug purpose. Gets the current number of objects that are - * waiting in the Tween pool. - */ - int Tween::getPoolSize() { return pool.size(); } - - /** - * Increases the minimum capacity of the pool. Capacity defaults to 20. - */ - void Tween::ensurePoolCapacity(int minCapacity) { pool.ensureCapacity(minCapacity); } - - TweenPool &Tween::pool = *(new TweenPool()); - - // ------------------------------------------------------------------------- - // Static -- factories - // ------------------------------------------------------------------------- - - /** - * Factory creating a new standard interpolation. This is the most common - * type of interpolation. The starting values are retrieved automatically - * after the delay (if any). - *

    - * - * You need to set the target values of the interpolation by using one - * of the target() methods. The interpolation will run from the - * starting values to these target values. - *

    - * - * The common use of Tweens is "fire-and-forget": you do not need to care - * for tweens once you added them to a TweenManager, they will be updated - * automatically, and cleaned once finished. Common call: - *

    - * - *
     {@code
    -	 * Tween.to(myObject, POSITION, 1.0f)
    -	 *      .target(50, 70)
    -	 *      .ease(Quad.INOUT)
    -	 *      .start(myManager);
    -	 * }
    - * - * Several options such as delay, repetitions and callbacks can be added to - * the tween. - * - * @param target The target object of the interpolation. - * @param tweenType The desired type of interpolation. - * @param duration The duration of the interpolation, in milliseconds. - * @return The generated Tween. - */ - Tween &Tween::to(Tweenable& target, int tweenType, float duration) - { - Tween &tween = *(pool.get()); - tween.setup(&target, tweenType, duration); - tween.ease(TweenEquations::easeInOutQuad); - tween.path(TweenPaths::catmullRom); - return tween; - } - - /** - * Factory creating a new reversed interpolation. The ending values are - * retrieved automatically after the delay (if any). - *

    - * - * You need to set the starting values of the interpolation by using one - * of the target() methods. The interpolation will run from the - * starting values to these target values. - *

    - * - * The common use of Tweens is "fire-and-forget": you do not need to care - * for tweens once you added them to a TweenManager, they will be updated - * automatically, and cleaned once finished. Common call: - *

    - * - *
     {@code
    -	 * Tween.from(myObject, POSITION, 1.0f)
    -	 *      .target(0, 0)
    -	 *      .ease(Quad.INOUT)
    -	 *      .start(myManager);
    -	 * }
    - * - * Several options such as delay, repetitions and callbacks can be added to - * the tween. - * - * @param target The target object of the interpolation. - * @param tweenType The desired type of interpolation. - * @param duration The duration of the interpolation, in milliseconds. - * @return The generated Tween. - */ - Tween &Tween::from(Tweenable& target, int tweenType, float duration) - { - Tween &tween = *(pool.get()); - tween.setup(&target, tweenType, duration); - tween.ease(TweenEquations::easeInOutQuad); - tween.path(TweenPaths::catmullRom); - tween.isFrom = true; - return tween; - } - - /** - * Factory creating a new instantaneous interpolation (thus this is not - * really an interpolation). - *

    - * - * You need to set the target values of the interpolation by using one - * of the target() methods. The interpolation will set the target - * attribute to these values after the delay (if any). - *

    - * - * The common use of Tweens is "fire-and-forget": you do not need to care - * for tweens once you added them to a TweenManager, they will be updated - * automatically, and cleaned once finished. Common call: - *

    - * - *
     {@code
    -	 * Tween.set(myObject, POSITION)
    -	 *      .target(50, 70)
    -	 *      .delay(1.0f)
    -	 *      .start(myManager);
    -	 * }
    - * - * Several options such as delay, repetitions and callbacks can be added to - * the tween. - * - * @param target The target object of the interpolation. - * @param tweenType The desired type of interpolation. - * @return The generated Tween. - */ - Tween &Tween::set(Tweenable& target, int tweenType) - { - Tween &tween = *(pool.get()); - tween.setup(&target, tweenType, 0); - tween.ease(TweenEquations::easeInOutQuad); - return tween; - } - - /** - * Factory creating a new timer. The given callback will be triggered on - * each iteration start, after the delay. - *

    - * - * The common use of Tweens is "fire-and-forget": you do not need to care - * for tweens once you added them to a TweenManager, they will be updated - * automatically, and cleaned once finished. Common call: - *

    - * - *
     {@code
    -	 * Tween.call(myCallback)
    -	 *      .delay(1.0f)
    -	 *      .repeat(10, 1000)
    -	 *      .start(myManager);
    -	 * }
    - * - * @param callback The callback that will be triggered on each iteration - * start. - * @return The generated Tween. - * @see TweenCallback - */ - Tween &Tween::call(TweenCallback &callback) - { - Tween &tween = *(pool.get()); - tween.setup(nullptr, -1, 0); - tween.setCallback(&callback); - tween.setCallbackTriggers(TweenCallback::START); - return tween; - } - - /** - * Convenience method to create an empty tween. Such object is only useful - * when placed inside animation sequences (see {@link Timeline}), in which - * it may act as a beacon, so you can set a callback on it in order to - * trigger some action at the right moment. - * - * @return The generated Tween. - * @see Timeline - */ - Tween &Tween::mark() - { - Tween &tween = *(pool.get()); - tween.setup(nullptr, -1, 0); - return tween; - } - - // ------------------------------------------------------------------------- - // Setup - // ------------------------------------------------------------------------- - - Tween::Tween() - { - startValues = new float[combinedAttrsLimit]; - targetValues = new float[combinedAttrsLimit]; - waypoints = new float[waypointsLimit*combinedAttrsLimit]; - accessorBuffer = new float[combinedAttrsLimit]; - accessorBufferSize = combinedAttrsLimit; - pathBuffer = new float[(2+waypointsLimit)*combinedAttrsLimit]; - pathBufferSize = (2+waypointsLimit)*combinedAttrsLimit; - targetObj = nullptr; - } - - Tween::~Tween() - { - delete startValues; - delete targetValues; - delete waypoints; - delete accessorBuffer; - delete pathBuffer; - // if (accessor != nullptr) Block_release(accessor); - } - - void Tween::reset() - { - BaseTween::reset(); - - equation = nullptr; - pathAlgorithm = nullptr; - isFrom = isRelative = false; - combinedAttrsCnt = waypointsCnt = 0; - - if (accessorBufferSize != combinedAttrsLimit) { - accessorBuffer = new float[combinedAttrsLimit]; - } - - if (pathBufferSize != (2+waypointsLimit)*combinedAttrsLimit) { - pathBuffer = new float[(2+waypointsLimit)*combinedAttrsLimit]; - } - - // if (accessor != nullptr) - // { - // Block_release(accessor); - targetObj = nullptr; - // } - type = -1; - } - - void Tween::setup(Tweenable *target, int tweenType, float duration) - { - // assert(duration >= 0); - this->targetObj = target; - this->type = tweenType; - this->duration = duration; - } - - // ------------------------------------------------------------------------- - // Public API - // ------------------------------------------------------------------------- - - /** - * Sets the easing equation of the tween. Existing equations are located in - * aurelienribon.tweenengine.equations package, but you can of course - * implement your owns, see {@link TweenEquation}. You can also use the - * {@link TweenEquations} static instances to quickly access all the - * equations. Default equation is Quad.INOUT. - *

    - * - * Proposed equations are:
    - * - Linear.INOUT,
    - * - Quad.IN | OUT | INOUT,
    - * - Cubic.IN | OUT | INOUT,
    - * - Quart.IN | OUT | INOUT,
    - * - Quint.IN | OUT | INOUT,
    - * - Circ.IN | OUT | INOUT,
    - * - Sine.IN | OUT | INOUT,
    - * - Expo.IN | OUT | INOUT,
    - * - Back.IN | OUT | INOUT,
    - * - Bounce.IN | OUT | INOUT,
    - * - Elastic.IN | OUT | INOUT - * - * @return The current tween, for chaining instructions. - * @see TweenEquation - * @see TweenEquations - */ - Tween &Tween::ease(TweenEquation &easeEquation) - { - this->equation = &easeEquation; - return *this; - } - - /** - * Sets the target value of the interpolation. The interpolation will run - * from the value at start time (after the delay, if any) to this - * target value. - *

    - * - * To sum-up:
    - * - start value: value at start time, after delay
    - * - end value: param - * - * @param targetValue The target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::target(float targetValue) - { - targetValues[0] = targetValue; - return *this; - } - - /** - * Sets the target values of the interpolation. The interpolation will run - * from the values at start time (after the delay, if any) to these - * target values. - *

    - * - * To sum-up:
    - * - start values: values at start time, after delay
    - * - end values: params - * - * @param targetValue1 The 1st target value of the interpolation. - * @param targetValue2 The 2nd target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::target(float targetValue1, float targetValue2) - { - targetValues[0] = targetValue1; - targetValues[1] = targetValue2; - return *this; - } - - /** - * Sets the target values of the interpolation. The interpolation will run - * from the values at start time (after the delay, if any) to these - * target values. - *

    - * - * To sum-up:
    - * - start values: values at start time, after delay
    - * - end values: params - * - * @param targetValue1 The 1st target value of the interpolation. - * @param targetValue2 The 2nd target value of the interpolation. - * @param targetValue3 The 3rd target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::target(float targetValue1, float targetValue2, float targetValue3) - { - targetValues[0] = targetValue1; - targetValues[1] = targetValue2; - targetValues[2] = targetValue3; - return *this; - } - - Tween &Tween::target(float *targetValues, int len) - { - if (len <= combinedAttrsLimit) - { - for (int i=0; itargetValues[i] = targetValues[i]; - } - return *this; - } - - /** - * Sets the target value of the interpolation, relatively to the value - * at start time (after the delay, if any). - *

    - * - * To sum-up:
    - * - start value: value at start time, after delay
    - * - end value: param + value at start time, after delay - * - * @param targetValue The relative target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::targetRelative(float targetValue) - { - isRelative = true; - targetValues[0] = isInitialized() ? targetValue + startValues[0] : targetValue; - return *this; - } - - /** - * Sets the target values of the interpolation, relatively to the values - * at start time (after the delay, if any). - *

    - * - * To sum-up:
    - * - start values: values at start time, after delay
    - * - end values: params + values at start time, after delay - * - * @param targetValue1 The 1st relative target value of the interpolation. - * @param targetValue2 The 2nd relative target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::targetRelative(float targetValue1, float targetValue2) - { - isRelative = true; - targetValues[0] = isInitialized() ? targetValue1 + startValues[0] : targetValue1; - targetValues[1] = isInitialized() ? targetValue2 + startValues[1] : targetValue2; - return *this; - } - - /** - * Sets the target values of the interpolation, relatively to the values - * at start time (after the delay, if any). - *

    - * - * To sum-up:
    - * - start values: values at start time, after delay
    - * - end values: params + values at start time, after delay - * - * @param targetValue1 The 1st relative target value of the interpolation. - * @param targetValue2 The 2nd relative target value of the interpolation. - * @param targetValue3 The 3rd relative target value of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::targetRelative(float targetValue1, float targetValue2, float targetValue3) - { - isRelative = true; - targetValues[0] = isInitialized() ? targetValue1 + startValues[0] : targetValue1; - targetValues[1] = isInitialized() ? targetValue2 + startValues[1] : targetValue2; - targetValues[2] = isInitialized() ? targetValue3 + startValues[2] : targetValue3; - return *this; - } - - /** - * Sets the target values of the interpolation, relatively to the values - * at start time (after the delay, if any). - *

    - * - * To sum-up:
    - * - start values: values at start time, after delay
    - * - end values: params + values at start time, after delay - * - * @param targetValues The relative target values of the interpolation. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::targetRelative(float *targetValues, int len) - { - if (len <= combinedAttrsLimit) - { - for (int i=0; itargetValues[i] = isInitialized() ? targetValues[i] + startValues[i] : targetValues[i]; - } - - isRelative = true; - return *this; - } - - /** - * Adds a waypoint to the path. The default path runs from the start values - * to the end values linearly. If you add waypoints, the default path will - * use a smooth catmull-rom spline to navigate between the waypoints, but - * you can change this behavior by using the {@link #path(TweenPath)} - * method. - *

    - * Note that if you want waypoints relative to the start values, use one of - * the .targetRelative() methods to define your target. - * - * @param targetValue The target of this waypoint. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::waypoint(float targetValue) - { - if (waypointsCnt < waypointsLimit) - { - waypoints[waypointsCnt] = targetValue; - waypointsCnt += 1; - } - - return *this; - } - - /** - * Adds a waypoint to the path. The default path runs from the start values - * to the end values linearly. If you add waypoints, the default path will - * use a smooth catmull-rom spline to navigate between the waypoints, but - * you can change this behavior by using the {@link #path(TweenPath)} - * method. - *

    - * Note that if you want waypoints relative to the start values, use one of - * the .targetRelative() methods to define your target. - * - * @param targetValue1 The 1st target of this waypoint. - * @param targetValue2 The 2nd target of this waypoint. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::waypoint(float targetValue1, float targetValue2) - { - if (waypointsCnt < waypointsLimit) - { - waypoints[waypointsCnt*2] = targetValue1; - waypoints[waypointsCnt*2+1] = targetValue2; - waypointsCnt += 1; - } - - return *this; - } - - /** - * Adds a waypoint to the path. The default path runs from the start values - * to the end values linearly. If you add waypoints, the default path will - * use a smooth catmull-rom spline to navigate between the waypoints, but - * you can change this behavior by using the {@link #path(TweenPath)} - * method. - *

    - * Note that if you want waypoints relative to the start values, use one of - * the .targetRelative() methods to define your target. - * - * @param targetValue1 The 1st target of this waypoint. - * @param targetValue2 The 2nd target of this waypoint. - * @param targetValue3 The 3rd target of this waypoint. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::waypoint(float targetValue1, float targetValue2, float targetValue3) - { - if (waypointsCnt < waypointsLimit) - { - waypoints[waypointsCnt*3] = targetValue1; - waypoints[waypointsCnt*3+1] = targetValue2; - waypoints[waypointsCnt*3+2] = targetValue3; - waypointsCnt += 1; - } - return *this; - } - - /** - * Adds a waypoint to the path. The default path runs from the start values - * to the end values linearly. If you add waypoints, the default path will - * use a smooth catmull-rom spline to navigate between the waypoints, but - * you can change this behavior by using the {@link #path(TweenPath)} - * method. - *

    - * Note that if you want waypoints relative to the start values, use one of - * the .targetRelative() methods to define your target. - * - * @param targetValues The targets of this waypoint. - * @return The current tween, for chaining instructions. - */ - Tween &Tween::waypoint(float *targetValues, int len) - { - if (waypointsCnt < waypointsLimit) - { - for (int i=0; iwaypoints[waypointsCnt*len+i] = targetValues[i]; - waypointsCnt += 1; - } - return *this; - } - - /** - * Sets the algorithm that will be used to navigate through the waypoints, - * from the start values to the end values. Default is a catmull-rom spline, - * but you can find other paths in the {@link TweenPaths} class. - * - * @param path A TweenPath implementation. - * @return The current tween, for chaining instructions. - * @see TweenPath - * @see TweenPaths - */ - Tween &Tween::path(TweenPath &path) - { - this->pathAlgorithm = &path; - return *this; - } - - // ------------------------------------------------------------------------- - // Getters - // ------------------------------------------------------------------------- - - /** - * Gets the easing equation. - */ - TweenEquation *Tween::getEasing() { return equation; } - - /** - * Gets the target values. The returned buffer is as long as the maximum - * allowed combined values. Therefore, you're surely not interested in all - * its content. Use {@link #getCombinedTweenCount()} to get the number of - * interesting slots. - */ - float *Tween::getTargetValues() { return targetValues; } - - /** - * Gets the number of combined animations. - */ - int Tween::getCombinedAttributesCount() { return combinedAttrsCnt; } - - // ------------------------------------------------------------------------- - // Base Class - // ------------------------------------------------------------------------- - - Tween &Tween::build() - { - if (targetObj != nullptr) { - combinedAttrsCnt = targetObj->getValues(type, accessorBuffer); - } - // assert(combinedAttrsCnt <= combinedAttrsLimit); - return *this; - } - - void Tween::free() { pool.free(this); } - - void Tween::initializeOverride() - { - targetObj->getValues(type, startValues); - - for (int i=0; i lastStep) - { - targetObj->setValues(type, isReverse(lastStep) ? startValues : targetValues); - return; - } - - if (!isIterationStep && step < lastStep) - { - targetObj->setValues(type, isReverse(lastStep) ? targetValues : startValues); - return; - } - - // Validation - - // assert(isIterationStep); - // assert(getCurrentTime() >= 0); - // assert(getCurrentTime() <= duration); - - // Case duration equals zero - - if (duration < 0.00000000001f && delta > -0.00000000001f) - { - targetObj->setValues(type, isReverse(step) ? targetValues : startValues); - return; - } - - if (duration < 0.00000000001f && delta < 0.00000000001f) { - targetObj->setValues(type, isReverse(step) ? startValues : targetValues); - return; - } - - // Normal behavior - - float time = isReverse(step) ? duration - getCurrentTime() : getCurrentTime(); - float t = equation->compute(time/duration); - - if (waypointsCnt == 0 || pathAlgorithm == nullptr) - { - for (int i=0; icompute(t, pathBuffer, waypointsCnt+2); - } - } - - targetObj->setValues(type, accessorBuffer); - } - - void Tween::forceStartValues(){ - targetObj->setValues(type, startValues); - } - - void Tween::forceEndValues(){ - targetObj->setValues(type, targetValues); - } - - int Tween::getTweenCount() { return 1; } - - int Tween::getTimelineCount() { return 0; } - -} \ No newline at end of file diff --git a/external/tween-engine/src/TweenEquations.cpp b/external/tween-engine/src/TweenEquations.cpp deleted file mode 100644 index 335b827..0000000 --- a/external/tween-engine/src/TweenEquations.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// Equations.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -namespace TweenEngine -{ - TweenEquation &TweenEquations::easeInQuad = *(new QuadIn()); - TweenEquation &TweenEquations::easeOutQuad = *(new QuadOut()); - TweenEquation &TweenEquations::easeInOutQuad = *(new QuadInOut()); - - TweenEquation &TweenEquations::easeInOutLinear = *(new LinearInOut()); - - TweenEquation &TweenEquations::easeInBack = *(new BackIn()); - TweenEquation &TweenEquations::easeOutBack = *(new BackOut()); - TweenEquation &TweenEquations::easeInOutBack = *(new BackInOut()); - - TweenEquation &TweenEquations::easeInBounce = *(new BounceIn()); - TweenEquation &TweenEquations::easeOutBounce = *(new BounceOut()); - TweenEquation &TweenEquations::easeInOutBounce = *(new BounceInOut()); - - TweenEquation &TweenEquations::easeInCirc = *(new CircIn()); - TweenEquation &TweenEquations::easeOutCirc = *(new CircOut()); - TweenEquation &TweenEquations::easeInOutCirc = *(new CircInOut()); - - TweenEquation &TweenEquations::easeInCubic = *(new CubicIn()); - TweenEquation &TweenEquations::easeOutCubic = *(new CubicOut()); - TweenEquation &TweenEquations::easeInOutCubic = *(new CubicInOut()); - - TweenEquation &TweenEquations::easeInElastic = *(new ElasticIn()); - TweenEquation &TweenEquations::easeOutElastic = *(new ElasticOut()); - TweenEquation &TweenEquations::easeInOutElastic = *(new ElasticInOut()); - - TweenEquation &TweenEquations::easeInExpo = *(new ExpoIn()); - TweenEquation &TweenEquations::easeOutExpo = *(new ExpoOut()); - TweenEquation &TweenEquations::easeInOutExpo = *(new ExpoInOut()); - - TweenEquation &TweenEquations::easeInQuart = *(new QuartIn()); - TweenEquation &TweenEquations::easeOutQuart = *(new QuartOut()); - TweenEquation &TweenEquations::easeInOutQuart = *(new QuartInOut()); - - TweenEquation &TweenEquations::easeInQuint = *(new QuintIn()); - TweenEquation &TweenEquations::easeOutQuint = *(new QuintOut()); - TweenEquation &TweenEquations::easeInOutQuint = *(new QuintInOut()); - - TweenEquation &TweenEquations::easeInSine = *(new SineIn()); - TweenEquation &TweenEquations::easeOutSine = *(new SineOut()); - TweenEquation &TweenEquations::easeInOutSine = *(new SineInOut()); -} \ No newline at end of file diff --git a/external/tween-engine/src/TweenManager.cpp b/external/tween-engine/src/TweenManager.cpp deleted file mode 100644 index ee535f0..0000000 --- a/external/tween-engine/src/TweenManager.cpp +++ /dev/null @@ -1,186 +0,0 @@ -// -// TweenManager.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - // ------------------------------------------------------------------------- - // Static API - // ------------------------------------------------------------------------- - - /** - * Disables or enables the "auto remove" mode of any tween manager for a - * particular tween or timeline. This mode is activated by default. The - * interest of desactivating it is to prevent some tweens or timelines from - * being automatically removed from a manager once they are finished. - * Therefore, if you update a manager backwards, the tweens or timelines - * will be played again, even if they were finished. - */ - void TweenManager::setAutoRemove(BaseTween &object, bool value) - { - object.isAutoRemoveEnabled = value; - } - - /** - * Disables or enables the "auto start" mode of any tween manager for a - * particular tween or timeline. This mode is activated by default. If it - * is not enabled, add a tween or timeline to any manager won't start it - * automatically, and you'll need to call .start() manually on your object. - */ - void TweenManager::setAutoStart(BaseTween &object, bool value) - { - object.isAutoStartEnabled = value; - } - - int getTweensCount(std::vector objs) - { - int cnt = 0; - for (int i=0, n=objs.size(); igetTweenCount(); - } - return cnt; - } - - int getTimelinesCount(std::vector objs) - { - int cnt = 0; - for (int i=0, n=objs.size(); igetTimelineCount(); - } - return cnt; - } - - bool isTweenFinished(BaseTween *obj) - { - if (obj->isFinished() && obj->isAutoRemoveEnabled) - { - obj->free(); - return true; - } - return false; - } - - // ------------------------------------------------------------------------- - // API - // ------------------------------------------------------------------------- - - TweenManager::TweenManager() : objects() - { - objects.reserve(20); - } - - /** - * Adds a tween or timeline to the manager and starts or restarts it. - * - * @return The manager, for instruction chaining. - */ - TweenManager &TweenManager::add(BaseTween &object) - { - bool isPresent = (std::find(objects.begin(), objects.end(), &object) != objects.end()); - if (!isPresent) objects.push_back(&object); - if (object.isAutoStartEnabled) object.start(); - return *this; - } - - /** - * Kills every managed tweens and timelines. - */ - void TweenManager::killAll() - { - for (int i=0, n=objects.size(); ikill(); - } - } - - /** - * Increases the minimum capacity of the manager. Defaults to 20. - */ - void TweenManager::ensureCapacity(int minCapacity) { objects.reserve(minCapacity); } - - /** - * Pauses the manager. Further update calls won't have any effect. - */ - void TweenManager::pause() { isPaused = true; } - - /** - * Resumes the manager, if paused. - */ - void TweenManager::resume() { isPaused = false; } - - /** - * Updates every tweens with a delta time ang handles the tween life-cycles - * automatically. If a tween is finished, it will be removed from the - * manager. The delta time represents the elapsed time between now and the - * last update call. Each tween or timeline manages its local time, and adds - * this delta to its local time to update itself. - *

    - * - * Slow motion, fast motion and backward play can be easily achieved by - * tweaking this delta time. Multiply it by -1 to play the animation - * backward, or by 0.5 to play it twice slower than its normal speed. - */ - - void TweenManager::update(float delta) - { - // Remove tweens that are finished - objects.erase(std::remove_if(objects.begin(),objects.end(),isTweenFinished), objects.end()); - - if (!isPaused) - { - if (delta >= 0) - { - for (int i=0, n=objects.size(); iupdate(delta); - } - else - { - for (int i=objects.size()-1; i>=0; i--) objects[i]->update(delta); - } - } - } - - /** - * Gets the number of managed objects. An object may be a tween or a - * timeline. Note that a timeline only counts for 1 object, since it - * manages its children itself. - *

    - * To get the count of running tweens, see {@link #getRunningTweensCount()}. - */ - int TweenManager::size() { return objects.size(); } - - /** - * Gets the number of running tweens. This number includes the tweens - * located inside timelines (and nested timelines). - *

    - * Provided for debug purpose only. - */ - int TweenManager::getRunningTweensCount() { return getTweensCount(objects); } - - /** - * Gets the number of running timelines. This number includes the timelines - * nested inside other timelines. - *

    - * Provided for debug purpose only. - */ - int TweenManager::getRunningTimelinesCount() { return getTimelinesCount(objects); } - - /** - * Gets a list of every managed object. - *

    - * Provided for debug purpose only. - */ - std::vector &TweenManager::getObjects() - { - return objects; - } - -} diff --git a/external/tween-engine/src/TweenPaths.cpp b/external/tween-engine/src/TweenPaths.cpp deleted file mode 100644 index b664b85..0000000 --- a/external/tween-engine/src/TweenPaths.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// -// TweenPaths.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -#include -#include - -namespace TweenEngine -{ - TweenPath &TweenPaths::linear = *(new LinearPath()); - TweenPath &TweenPaths::catmullRom = *(new CatmullRom()); -} \ No newline at end of file diff --git a/external/tween-engine/src/TweenPool.cpp b/external/tween-engine/src/TweenPool.cpp deleted file mode 100644 index f092f86..0000000 --- a/external/tween-engine/src/TweenPool.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// TweenPool.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - void TweenPoolCallback::onPool(Tween *obj) - { - obj->reset(); - } - - void TweenPoolCallback::onUnPool(Tween *obj) - { - obj->reset(); - } - - TweenPool::TweenPool() : Pool(20, new TweenPoolCallback()) - { - } - - Tween *TweenPool::create() { return new Tween(); } - - //TweenPoolCallback *Tween::poolCallback = new TweenPoolCallback(); - //TweenPool *Tween::pool = new TweenPool(20, Tween::poolCallback); - - /* - private static final Pool pool = new Pool(20, poolCallback) { - @Override protected Tween create() {return new Tween();} - }; - */ - - -} \ No newline at end of file diff --git a/external/tween-engine/src/equations/Back.cpp b/external/tween-engine/src/equations/Back.cpp deleted file mode 100644 index 5b34bf9..0000000 --- a/external/tween-engine/src/equations/Back.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// Back.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -#define S (1.70158f) - -namespace TweenEngine -{ - float BackIn::compute(float t) { return t*t*((S+1)*t - S); } - const char *BackIn::toString() { return "Back.IN"; } - - float BackOut::compute(float t) { - t -= 1; - return (t*t*((S+1)*t + S) + 1); - } - const char *BackOut::toString() { return "Back.OUT"; } - - float BackInOut::compute(float t) { - float s=S*1.525; - t*=2; - if (t < 1) { - return 0.5f*(t*t*((s+1)*t - s)); - } else { - t -= 2; - return 0.5f*(t*t*((s+1)*t + s) + 2); - } - } - const char *BackInOut::toString() { return "Back.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Bounce.cpp b/external/tween-engine/src/equations/Bounce.cpp deleted file mode 100644 index 8cb6b5c..0000000 --- a/external/tween-engine/src/equations/Bounce.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// Bounce.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -namespace TweenEngine -{ - inline float outBounce(float t) { - if (t < (1/2.75)) { - return 7.5625f*t*t; - } else if (t < (2/2.75)) { - t = t - (1.5 / 2.75); - return (7.5625 * t * t + 0.75); - } else if (t < (2.5/2.75)) { - t = t - (2.25 / 2.75); - return (7.5625 * t * t + 0.9375); - } else { - t = t - (2.625 / 2.75); - return (7.5625 * t * t + 0.984375); - } - } - - inline float inBounce(float t) { - return 1 - outBounce(1-t); - } - - float BounceIn::compute(float t) { return inBounce(t); } - const char *BounceIn::toString() { return "Bounce.IN"; } - - float BounceOut::compute(float t) { return outBounce(t); } - const char *BounceOut::toString() { return "Bounce.OUT"; } - - float BounceInOut::compute(float t) { - if (t < 0.5f) return (inBounce(t*2) * 0.5f); - else return (outBounce(t*2-1) * 0.5f + 0.5f); - } - const char *BounceInOut::toString() { return "Bounce.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Circ.cpp b/external/tween-engine/src/equations/Circ.cpp deleted file mode 100644 index fe93f57..0000000 --- a/external/tween-engine/src/equations/Circ.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// Circ.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - float CircIn::compute(float t) { return (float) -sqrt(1 - t*t) - 1; } - const char *CircIn::toString() { return "Circ.IN"; } - - float CircOut::compute(float t) { return (float) sqrt(1 - (t-1)*(t-1)); } - const char *CircOut::toString() { return "Circ.OUT"; } - - float CircInOut::compute(float t) { - t *= 2; - if (t < 1) { - return (-0.5 * (sqrt(1 - t*t) - 1)); - } else { - t -= 2; - return (0.5 * (sqrt(1 - t*t) + 1)); - } - } - - const char *CircInOut::toString() { return "Circ.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Cubic.cpp b/external/tween-engine/src/equations/Cubic.cpp deleted file mode 100644 index 990998e..0000000 --- a/external/tween-engine/src/equations/Cubic.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// Cubic.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -namespace TweenEngine -{ - float CubicIn::compute(float t) { return t*t*t; } - const char *CubicIn::toString() { return "Cubic.IN"; } - - float CubicOut::compute(float t) { - t -= 1; - return t*t*t + 1; - } - const char *CubicOut::toString() { return "Cubic.OUT"; } - - float CubicInOut::compute(float t) { - t *= 2; - if (t < 1) { - return 0.5f * t*t*t; - } else { - t -= 2; - return 0.5f * (t*t*t + 2); - } - } - const char *CubicInOut::toString() { return "Cubic.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Elastic.cpp b/external/tween-engine/src/equations/Elastic.cpp deleted file mode 100644 index 421f5a7..0000000 --- a/external/tween-engine/src/equations/Elastic.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// Elastic.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -#define M_PI 3.14159265358979323846 -#define M_TWOPI (M_PI * 2.0) - -namespace TweenEngine -{ - float ElasticIn::compute(float t) { - float a = amplitude; - float p = period; - if (t == 0) return 0; - if (t == 1) return 1; - if (!isPeriodSet) p = 0.3; - float s; - if (!isAmplitudeSet || a < 1) { - a = 1; - s = p/4.0; - } else { - s = p/(M_TWOPI) * (float)asin(1/a); - } - t -= 1; - return -(a*(float)pow(2,10*t) * (float)sin((t-s)*(M_TWOPI)/p )); - } - const char *ElasticIn::toString() { return "Elastic.IN"; } - void ElasticIn::setAmplitude(float a) { this->amplitude = a; this->isAmplitudeSet = true; } - void ElasticIn::setPeriod(float p) { this->period = p; this->isPeriodSet = true; } - - float ElasticOut::compute(float t) { - float a = amplitude; - float p = period; - if (t==0) return 0; - if (t==1) return 1; - if (!isPeriodSet) p = 0.3f; - float s; - if (!isAmplitudeSet || a < 1) { - a = 1; - s = p/4.0; - } else { - s = p/(M_TWOPI) * (float)asin(1/a); - } - return a*(float)pow(2,-10*t) * (float)sin((t-s)*(M_TWOPI)/p ) + 1; - } - const char *ElasticOut::toString() { return "Elastic.OUT"; } - void ElasticOut::setAmplitude(float a) { this->amplitude = a; this->isAmplitudeSet = true; } - void ElasticOut::setPeriod(float p) { this->period = p; this->isPeriodSet = true; } - - float ElasticInOut::compute(float t) { - float a = amplitude; - float p = period; - if (t==0) return 0; - t *= 2; - if (t==2) return 1; - if (!isPeriodSet) p = 0.3f*1.5f; - float s; - if (!isAmplitudeSet || a < 1) { - a = 1; - s = p/4.0; - } else { - s = p/(M_TWOPI) * (float)asin(1/a); - } - if (t < 1) { - t -= 1; - return -0.5f*(a*(float)pow(2,10*t) * (float)sin((t-s)*(M_TWOPI)/p)); - } else { - t -= 1; - return a*(float)pow(2,-10*t) * (float)sin((t-s)*(M_TWOPI)/p)*0.5f + 1; - } - } - const char *ElasticInOut::toString() { return "Elastic.INOUT"; } - void ElasticInOut::setAmplitude(float a) { this->amplitude = a; this->isAmplitudeSet = true; } - void ElasticInOut::setPeriod(float p) { this->period = p; this->isPeriodSet = true; } -} diff --git a/external/tween-engine/src/equations/Expo.cpp b/external/tween-engine/src/equations/Expo.cpp deleted file mode 100644 index 4e4f9aa..0000000 --- a/external/tween-engine/src/equations/Expo.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// Expo.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - float ExpoIn::compute(float t) { - return (t==0) ? 0 : (float)pow(2,10*(t-1)); - } - const char *ExpoIn::toString() { return "Expo.IN"; } - - float ExpoOut::compute(float t) { - return (t==1) ? 1 : -(float)pow(2,-10*t) + 1; - } - const char *ExpoOut::toString() { return "Expo.OUT"; } - - float ExpoInOut::compute(float t) { - if (t==0) return 0; - if (t==1) return 1; - t *= 2; - if (t < 1) { - return 0.5f * (float)pow(2,10*(t-1)); - } else { - t -= 1; - return 0.5f * (-(float)pow(2,-10*t) + 2); - } - } - const char *ExpoInOut::toString() { return "Expo.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Linear.cpp b/external/tween-engine/src/equations/Linear.cpp deleted file mode 100644 index 139b809..0000000 --- a/external/tween-engine/src/equations/Linear.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// Linear.cpp -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * Easing equation based on Robert Penner's work: - * http://robertpenner.com/easing/ - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#include - -namespace TweenEngine -{ - float LinearInOut::compute(float t) { return t; } - const char *LinearInOut::toString() { return "Linear.INOUT"; } - -} \ No newline at end of file diff --git a/external/tween-engine/src/equations/Quad.cpp b/external/tween-engine/src/equations/Quad.cpp deleted file mode 100644 index fb9bcf1..0000000 --- a/external/tween-engine/src/equations/Quad.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// Quad.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -/** - * Easing equation based on Robert Penner's work: - * http://robertpenner.com/easing/ - * @author Aurelien Ribon | http://www.aurelienribon.com/ - */ - -#include - -namespace TweenEngine -{ - float QuadIn::compute(float t) { return t*t; } - const char *QuadIn::toString() { return "Quad.IN"; } - - float QuadOut::compute(float t) { return -t*(t-2); } - const char *QuadOut::toString() { return "Quad.OUT"; } - - float QuadInOut::compute(float t) - { - t*=2; - if (t < 1) return 0.5f*t*t; - return -0.5f * ((t-1)*(t-3) - 1); - } - const char *QuadInOut::toString() { return "Quad.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Quart.cpp b/external/tween-engine/src/equations/Quart.cpp deleted file mode 100644 index 3fc2357..0000000 --- a/external/tween-engine/src/equations/Quart.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// Quart.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -namespace TweenEngine -{ - float QuartIn::compute(float t) { return t*t*t*t; } - const char *QuartIn::toString() { return "Quart.IN"; } - - float QuartOut::compute(float t) { - t-=1; - return -(t*t*t*t - 1); - } - const char *QuartOut::toString() { return "Quart.OUT"; } - - float QuartInOut::compute(float t) { - t *= 2; - if (t < 1) { - return 0.5f*t*t*t*t; - } else { - t -= 2; - return -0.5f * (t*t*t*t - 2); - } - } - const char *QuartInOut::toString() { return "Quart.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Quint.cpp b/external/tween-engine/src/equations/Quint.cpp deleted file mode 100644 index 3f7ab67..0000000 --- a/external/tween-engine/src/equations/Quint.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// Quint.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include - -namespace TweenEngine -{ - float QuintIn::compute(float t) { return t*t*t*t*t; } - const char *QuintIn::toString() { return "Quint.IN"; } - - float QuintOut::compute(float t) { - t-=1; - return -(t*t*t*t*t - 1); - } - const char *QuintOut::toString() { return "Quint.OUT"; } - - float QuintInOut::compute(float t) { - t *= 2; - if (t < 1) { - return 0.5f*t*t*t*t*t; - } else { - t -= 2; - return -0.5f * (t*t*t*t*t - 2); - } - } - const char *QuintInOut::toString() { return "Quint.INOUT"; } -} diff --git a/external/tween-engine/src/equations/Sine.cpp b/external/tween-engine/src/equations/Sine.cpp deleted file mode 100644 index 4248f2d..0000000 --- a/external/tween-engine/src/equations/Sine.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// Sine.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 - -namespace TweenEngine -{ - float SineIn::compute(float t) { return (float)-cos(t * (M_PI_2)) + 1; } - const char *SineIn::toString() { return "Sine.IN"; } - - float SineOut::compute(float t) { return (float)sin(t * (M_PI_2)); } - const char *SineOut::toString() { return "Sine.OUT"; } - - float SineInOut::compute(float t) { return -0.5f * ((float)cos(M_PI*t) - 1); } - const char *SineInOut::toString() { return "Sine.INOUT"; } -} diff --git a/external/tween-engine/src/paths/CatmullRom.cpp b/external/tween-engine/src/paths/CatmullRom.cpp deleted file mode 100644 index 11918ab..0000000 --- a/external/tween-engine/src/paths/CatmullRom.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// CatmullRom.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - float CatmullRom::compute(float t, float *points, int pointsCnt) - { - int segment = (int) floor((pointsCnt-1) * t); - segment = segment > 0 ? segment : 0; - segment = segment < (pointsCnt-2) ? segment : pointsCnt-2; - - t = t * (pointsCnt-1) - segment; - - if (segment == 0) - { - return catmullRomSpline(points[0], points[0], points[1], points[2], t); - } - - if (segment == pointsCnt-2) - { - return catmullRomSpline(points[pointsCnt-3], points[pointsCnt-2], points[pointsCnt-1], points[pointsCnt-1], t); - } - - return catmullRomSpline(points[segment-1], points[segment], points[segment+1], points[segment+2], t); - } - - float CatmullRom::catmullRomSpline(float a, float b, float c, float d, float t) - { - float t1 = (c - a) * 0.5f; - float t2 = (d - b) * 0.5f; - - float h1 = +2 * t * t * t - 3 * t * t + 1; - float h2 = -2 * t * t * t + 3 * t * t; - float h3 = t * t * t - 2 * t * t + t; - float h4 = t * t * t - t * t; - - return b * h1 + c * h2 + t1 * h3 + t2 * h4; - } - -} \ No newline at end of file diff --git a/external/tween-engine/src/paths/LinearPath.cpp b/external/tween-engine/src/paths/LinearPath.cpp deleted file mode 100644 index 47f9633..0000000 --- a/external/tween-engine/src/paths/LinearPath.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// Linear.cpp -// -// This code is derived from Universal Tween Engine -// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 -// - -#include -#include - -namespace TweenEngine -{ - float LinearPath::compute(float t, float *points, int pointsCnt) - { - int segment = (int) floor((pointsCnt-1) * t); - segment = segment > 0 ? segment : 0; - segment = segment < (pointsCnt-2) ? segment : pointsCnt-2; - - t = t * (pointsCnt-1) - segment; - - return points[segment] + t * (points[segment+1] - points[segment]); - } -} \ No newline at end of file