BsScriptSphereCollider.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptSphereCollider.h"
  4. #include "BsSphereCollider.h"
  5. namespace BansheeEngine
  6. {
  7. ScriptSphereCollider::ScriptSphereCollider(MonoObject* instance, const SPtr<Collider>& collider)
  8. :TScriptCollider(instance, collider)
  9. {
  10. }
  11. void ScriptSphereCollider::initRuntimeData()
  12. {
  13. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptSphereCollider::internal_CreateInstance);
  14. metaData.scriptClass->addInternalCall("Internal_SetRadius", &ScriptSphereCollider::internal_SetRadius);
  15. metaData.scriptClass->addInternalCall("Internal_GetRadius", &ScriptSphereCollider::internal_GetRadius);
  16. }
  17. SphereCollider* ScriptSphereCollider::getSphereCollider() const
  18. {
  19. return static_cast<SphereCollider*>(mCollider.get());
  20. }
  21. void ScriptSphereCollider::internal_CreateInstance(MonoObject* instance)
  22. {
  23. SPtr<SphereCollider> collider = SphereCollider::create(1.0f);
  24. collider->_setOwner(PhysicsOwnerType::Script, instance);
  25. ScriptSphereCollider* scriptCollider = new (bs_alloc<ScriptSphereCollider>()) ScriptSphereCollider(instance, collider);
  26. }
  27. void ScriptSphereCollider::internal_SetRadius(ScriptSphereCollider* thisPtr, float radius)
  28. {
  29. thisPtr->getSphereCollider()->setRadius(radius);
  30. }
  31. float ScriptSphereCollider::internal_GetRadius(ScriptSphereCollider* thisPtr)
  32. {
  33. return thisPtr->getSphereCollider()->getRadius();
  34. }
  35. }