BsScriptPhysicsMaterial.cpp 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptPhysicsMaterial.h"
  4. #include "BsScriptResourceManager.h"
  5. #include "BsScriptMeta.h"
  6. #include "BsMonoClass.h"
  7. #include "BsMonoManager.h"
  8. namespace bs
  9. {
  10. ScriptPhysicsMaterial::ScriptPhysicsMaterial(MonoObject* instance, const HPhysicsMaterial& material)
  11. :TScriptResource(instance, material)
  12. {
  13. }
  14. void ScriptPhysicsMaterial::initRuntimeData()
  15. {
  16. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptPhysicsMaterial::internal_CreateInstance);
  17. metaData.scriptClass->addInternalCall("Internal_GetStaticFriction", &ScriptPhysicsMaterial::internal_GetStaticFriction);
  18. metaData.scriptClass->addInternalCall("Internal_SetStaticFriction", &ScriptPhysicsMaterial::internal_SetStaticFriction);
  19. metaData.scriptClass->addInternalCall("Internal_GetDynamicFriction", &ScriptPhysicsMaterial::internal_GetDynamicFriction);
  20. metaData.scriptClass->addInternalCall("Internal_SetDynamicFriction", &ScriptPhysicsMaterial::internal_SetDynamicFriction);
  21. metaData.scriptClass->addInternalCall("Internal_GetRestitution", &ScriptPhysicsMaterial::internal_GetRestitution);
  22. metaData.scriptClass->addInternalCall("Internal_SetRestitution", &ScriptPhysicsMaterial::internal_SetRestitution);
  23. }
  24. void ScriptPhysicsMaterial::internal_CreateInstance(MonoObject* instance, float staticFriction,
  25. float dynamicFriction, float restitution)
  26. {
  27. HPhysicsMaterial material = PhysicsMaterial::create(staticFriction, dynamicFriction, restitution);
  28. ScriptResourceBase* scriptInstance = ScriptResourceManager::instance().createBuiltinScriptResource(material, instance);
  29. }
  30. float ScriptPhysicsMaterial::internal_GetStaticFriction(ScriptPhysicsMaterial* thisPtr)
  31. {
  32. HPhysicsMaterial material = thisPtr->getHandle();
  33. return material->getStaticFriction();
  34. }
  35. void ScriptPhysicsMaterial::internal_SetStaticFriction(ScriptPhysicsMaterial* thisPtr, float value)
  36. {
  37. HPhysicsMaterial material = thisPtr->getHandle();
  38. material->setStaticFriction(value);
  39. }
  40. float ScriptPhysicsMaterial::internal_GetDynamicFriction(ScriptPhysicsMaterial* thisPtr)
  41. {
  42. HPhysicsMaterial material = thisPtr->getHandle();
  43. return material->getDynamicFriction();
  44. }
  45. void ScriptPhysicsMaterial::internal_SetDynamicFriction(ScriptPhysicsMaterial* thisPtr, float value)
  46. {
  47. HPhysicsMaterial material = thisPtr->getHandle();
  48. material->setDynamicFriction(value);
  49. }
  50. float ScriptPhysicsMaterial::internal_GetRestitution(ScriptPhysicsMaterial* thisPtr)
  51. {
  52. HPhysicsMaterial material = thisPtr->getHandle();
  53. return material->getRestitutionCoefficient();
  54. }
  55. void ScriptPhysicsMaterial::internal_SetRestitution(ScriptPhysicsMaterial* thisPtr, float value)
  56. {
  57. HPhysicsMaterial material = thisPtr->getHandle();
  58. material->setRestitutionCoefficient(value);
  59. }
  60. MonoObject* ScriptPhysicsMaterial::createInstance()
  61. {
  62. bool dummy = false;
  63. void* params[1];
  64. params[0] = &dummy;
  65. return metaData.scriptClass->createInstance("bool", params);
  66. }
  67. }