| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #pragma once
- #include "BsCorePrerequisites.h"
- #include "BsAnimationCurve.h"
- namespace BansheeEngine
- {
- /** @addtogroup Animation
- * @{
- */
- /** Helper class for dealing with animations, animation clips and curves. */
- class BS_CORE_EXPORT AnimationUtility
- {
- public:
- /**
- * Wraps or clamps the provided time value between the provided range.
- *
- * @param[in,out] time Time value to wrap/clamp.
- * @param[in] start Start of the range.
- * @param[in] end End of the range.
- * @param[in] loop If true the value will be wrapped, otherwise clamped to range.
- */
- static void wrapTime(float& time, float start, float end, bool loop);
- /** Converts a curve in euler angles (in degrees) into a curve using quaternions. */
- static TAnimationCurve<Quaternion> eulerToQuaternionCurve(const TAnimationCurve<Vector3>& eulerCurve);
- /** Converts a curve in quaternions into a curve using euler angles (in degrees). */
- static TAnimationCurve<Vector3> quaternionToEulerCurve(const TAnimationCurve<Quaternion>& quatCurve);
- /** Scales all curve values and tangents by the specified scale factor. */
- template<class T>
- static TAnimationCurve<T> scaleCurve(const TAnimationCurve<T>& curve, float factor);
- /** Adds a time offset to all keyframes in the provided curve. */
- template<class T>
- static TAnimationCurve<T> offsetCurve(const TAnimationCurve<T>& curve, float offset);
- };
- /** @} */
- }
|