BsScriptAnimationCurve.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "BsScriptObject.h"
  6. namespace BansheeEngine
  7. {
  8. /** @addtogroup ScriptInteropEngine
  9. * @{
  10. */
  11. /** Interop class between C++ & CLR for KeyFrame. */
  12. class BS_SCR_BE_EXPORT ScriptKeyFrame : public ScriptObject<ScriptKeyFrame>
  13. {
  14. public:
  15. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "KeyFrame")
  16. private:
  17. ScriptKeyFrame(MonoObject* instance);
  18. };
  19. /** Interop class between C++ & CLR for AnimationCurve. */
  20. class BS_SCR_BE_EXPORT ScriptAnimationCurve : public ScriptObject<ScriptAnimationCurve>
  21. {
  22. public:
  23. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "AnimationCurve")
  24. private:
  25. ScriptAnimationCurve(MonoObject* instance, const SPtr<TAnimationCurve<float>>& curve);
  26. SPtr<TAnimationCurve<float>> mCurve;
  27. /************************************************************************/
  28. /* CLR HOOKS */
  29. /************************************************************************/
  30. static void internal_Create(MonoObject* instance, MonoArray* keyframes);
  31. static MonoArray* internal_GetKeyFrames(ScriptAnimationCurve* thisPtr);
  32. static void internal_SetKeyFrames(ScriptAnimationCurve* thisPtr, MonoArray* keyframes);
  33. static float internal_Evaluate(ScriptAnimationCurve* thisPtr, float time, bool loop);
  34. };
  35. /** @} */
  36. }