//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// #pragma once #include "BsScriptEnginePrerequisites.h" #include "BsScriptObject.h" #include "BsAnimationCurve.h" namespace BansheeEngine { /** @addtogroup ScriptInteropEngine * @{ */ /** Interop class between C++ & CLR for AnimationCurves. */ class BS_SCR_BE_EXPORT ScriptAnimationCurves : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "AnimationCurves") /** Converts managed animation curves its native counterpart. */ static SPtr toNative(MonoObject* object); /** Converts native animation curves to its managed counterpart. */ static MonoObject* toManaged(const SPtr& curves); private: ScriptAnimationCurves(MonoObject* instance); /************************************************************************/ /* CLR HOOKS */ /************************************************************************/ static MonoField* sPositionCurvesField; static MonoField* sRotationCurvesField; static MonoField* sScaleCurvesField; static MonoField* sFloatCurvesField; }; /** Interop class between C++ & CLR for NamedVector3Curve. */ class BS_SCR_BE_EXPORT ScriptNamedVector3Curve : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "NamedVector3Curve") /** Converts managed 3D vector animation curve its native counterpart. */ static TNamedAnimationCurve toNative(MonoObject* object); /** Converts native 3D vector animation curve to its managed counterpart. */ static MonoObject* toManaged(const TNamedAnimationCurve& curve); private: ScriptNamedVector3Curve(MonoObject* instance); /************************************************************************/ /* CLR HOOKS */ /************************************************************************/ static MonoField* sNameField; static MonoField* sFlagsField; static MonoField* sXCurveField; static MonoField* sYCurveField; static MonoField* sZCurveField; }; /** Interop class between C++ & CLR for NamedFloatCurve. */ class BS_SCR_BE_EXPORT ScriptNamedFloatCurve : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "NamedFloatCurve") /** Converts managed float animation curve its native counterpart. */ static TNamedAnimationCurve toNative(MonoObject* object); /** Converts native float animation curve to its managed counterpart. */ static MonoObject* toManaged(const TNamedAnimationCurve& curve); private: ScriptNamedFloatCurve(MonoObject* instance); /************************************************************************/ /* CLR HOOKS */ /************************************************************************/ static MonoField* sNameField; static MonoField* sFlagsField; static MonoField* sCurveField; }; /** @} */ }