#pragma once #include "BsScriptEnginePrerequisites.h" #include "BsScriptObject.h" #include "../../../bsf/Source/Foundation/bsfCore/Animation/BsAnimationCurve.h" #include "BsScriptObject.h" #include "../../../bsf/Source/Foundation/bsfCore/Animation/BsAnimationCurve.h" #include "BsScriptObject.h" #include "../../../bsf/Source/Foundation/bsfCore/Animation/BsAnimationCurve.h" #include "BsScriptObject.h" #include "../../../bsf/Source/Foundation/bsfCore/Animation/BsAnimationCurve.h" #include "Math/BsVector3.h" #include "Math/BsQuaternion.h" namespace bs { struct __TKeyframeQuaternionInterop; template class TAnimationCurve; struct __TKeyframeVector3Interop; class BS_SCR_BE_EXPORT ScriptTAnimationCurvefloat : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "AnimationCurve") ScriptTAnimationCurvefloat(MonoObject* managedInstance, const SPtr>& value); SPtr> getInternal() const { return mInternal; } static MonoObject* create(const SPtr>& value); private: SPtr> mInternal; static void Internal_TAnimationCurve(MonoObject* managedInstance, MonoArray* keyframes); static float Internal_evaluate(ScriptTAnimationCurvefloat* thisPtr, float time, bool loop); static MonoArray* Internal_getKeyFrames(ScriptTAnimationCurvefloat* thisPtr); }; class BS_SCR_BE_EXPORT ScriptTAnimationCurveVector3 : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Vector3Curve") ScriptTAnimationCurveVector3(MonoObject* managedInstance, const SPtr>& value); SPtr> getInternal() const { return mInternal; } static MonoObject* create(const SPtr>& value); private: SPtr> mInternal; static void Internal_TAnimationCurve(MonoObject* managedInstance, MonoArray* keyframes); static void Internal_evaluate(ScriptTAnimationCurveVector3* thisPtr, float time, bool loop, Vector3* __output); static MonoArray* Internal_getKeyFrames(ScriptTAnimationCurveVector3* thisPtr); }; class BS_SCR_BE_EXPORT ScriptTAnimationCurveQuaternion : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "QuaternionCurve") ScriptTAnimationCurveQuaternion(MonoObject* managedInstance, const SPtr>& value); SPtr> getInternal() const { return mInternal; } static MonoObject* create(const SPtr>& value); private: SPtr> mInternal; static void Internal_TAnimationCurve(MonoObject* managedInstance, MonoArray* keyframes); static void Internal_evaluate(ScriptTAnimationCurveQuaternion* thisPtr, float time, bool loop, Quaternion* __output); static MonoArray* Internal_getKeyFrames(ScriptTAnimationCurveQuaternion* thisPtr); }; class BS_SCR_BE_EXPORT ScriptTAnimationCurveint32_t : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "IntegerCurve") ScriptTAnimationCurveint32_t(MonoObject* managedInstance, const SPtr>& value); SPtr> getInternal() const { return mInternal; } static MonoObject* create(const SPtr>& value); private: SPtr> mInternal; static void Internal_TAnimationCurve(MonoObject* managedInstance, MonoArray* keyframes); static int32_t Internal_evaluate(ScriptTAnimationCurveint32_t* thisPtr, float time, bool loop); static MonoArray* Internal_getKeyFrames(ScriptTAnimationCurveint32_t* thisPtr); }; }