BsScriptMorphShapes.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. #include "BsAnimation.h"
  7. namespace BansheeEngine
  8. {
  9. class ScriptAnimationClip;
  10. /** @addtogroup ScriptInteropEngine
  11. * @{
  12. */
  13. /** Interop class between C++ & CLR for MorphShapes. */
  14. class BS_SCR_BE_EXPORT ScriptMorphShapes : public ScriptObject <ScriptMorphShapes>
  15. {
  16. public:
  17. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphShapes")
  18. /** Returns the native wrapped object. */
  19. SPtr<MorphShapes> getInternal() const { return mMorphShapes; }
  20. /** Creates a managed object from the native morph shapes object. */
  21. static MonoObject* create(const SPtr<MorphShapes>& morphShapes);
  22. private:
  23. ScriptMorphShapes(MonoObject* managedInstance, const SPtr<MorphShapes>& morphShapes);
  24. SPtr<MorphShapes> mMorphShapes;
  25. /************************************************************************/
  26. /* CLR HOOKS */
  27. /************************************************************************/
  28. static MonoArray* internal_GetChannels(ScriptMorphShapes* thisPtr);
  29. };
  30. /** Interop class between C++ & CLR for MorphChannel. */
  31. class BS_SCR_BE_EXPORT ScriptMorphChannel : public ScriptObject<ScriptMorphChannel>
  32. {
  33. public:
  34. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphChannel")
  35. /** Converts native object to its managed counterpart. */
  36. static MonoObject* toManaged(const SPtr<MorphChannel>& value);
  37. private:
  38. ScriptMorphChannel(MonoObject* instance);
  39. };
  40. /** Interop class between C++ & CLR for MorphShape. */
  41. class BS_SCR_BE_EXPORT ScriptMorphShape : public ScriptObject<ScriptMorphShape>
  42. {
  43. public:
  44. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "MorphShape")
  45. /** Converts native object to its managed counterpart. */
  46. static MonoObject* toManaged(const SPtr<MorphShape>& value);
  47. private:
  48. ScriptMorphShape(MonoObject* instance);
  49. };
  50. /** @} */
  51. }