//********************************** 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 "BsAnimation.h" namespace BansheeEngine { class ScriptAnimationClip; /** @addtogroup ScriptInteropEngine * @{ */ /** Interop class between C++ & CLR for MorphShapes. */ class BS_SCR_BE_EXPORT ScriptMorphShapes : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphShapes") /** Returns the native wrapped object. */ SPtr getInternal() const { return mMorphShapes; } /** Creates a managed object from the native morph shapes object. */ static MonoObject* create(const SPtr& morphShapes); private: ScriptMorphShapes(MonoObject* managedInstance, const SPtr& morphShapes); SPtr mMorphShapes; /************************************************************************/ /* CLR HOOKS */ /************************************************************************/ static MonoArray* internal_GetChannels(ScriptMorphShapes* thisPtr); }; /** Interop class between C++ & CLR for MorphChannel. */ class BS_SCR_BE_EXPORT ScriptMorphChannel : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphChannel") /** Converts native object to its managed counterpart. */ static MonoObject* toManaged(const SPtr& value); private: ScriptMorphChannel(MonoObject* instance); }; /** Interop class between C++ & CLR for MorphShape. */ class BS_SCR_BE_EXPORT ScriptMorphShape : public ScriptObject { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphShape") /** Converts native object to its managed counterpart. */ static MonoObject* toManaged(const SPtr& value); private: ScriptMorphShape(MonoObject* instance); }; /** @} */ }