BsCollider.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Physics/BsCollider.h"
  4. #include "Physics/BsCollider.h"
  5. #include "Physics/BsFCollider.h"
  6. #include "Math/BsRay.h"
  7. #include "Physics/BsPhysics.h"
  8. namespace bs
  9. {
  10. Vector3 Collider::getPosition() const
  11. {
  12. return mInternal->getPosition();
  13. }
  14. Quaternion Collider::getRotation() const
  15. {
  16. return mInternal->getRotation();
  17. }
  18. void Collider::setTransform(const Vector3& pos, const Quaternion& rot)
  19. {
  20. mInternal->setTransform(pos, rot);
  21. }
  22. void Collider::setScale(const Vector3& scale)
  23. {
  24. mScale = scale;
  25. }
  26. Vector3 Collider::getScale() const
  27. {
  28. return mScale;
  29. }
  30. void Collider::setIsTrigger(bool value)
  31. {
  32. mInternal->setIsTrigger(value);
  33. }
  34. bool Collider::getIsTrigger() const
  35. {
  36. return mInternal->getIsTrigger();
  37. }
  38. void Collider::setRigidbody(Rigidbody* value)
  39. {
  40. mInternal->setIsStatic(value == nullptr);
  41. mRigidbody = value;
  42. }
  43. void Collider::setMass(float mass)
  44. {
  45. mInternal->setMass(mass);
  46. }
  47. float Collider::getMass() const
  48. {
  49. return mInternal->getMass();
  50. }
  51. void Collider::setMaterial(const HPhysicsMaterial& material)
  52. {
  53. mInternal->setMaterial(material);
  54. }
  55. HPhysicsMaterial Collider::getMaterial() const
  56. {
  57. return mInternal->getMaterial();
  58. }
  59. void Collider::setContactOffset(float value)
  60. {
  61. mInternal->setContactOffset(value);
  62. }
  63. float Collider::getContactOffset()
  64. {
  65. return mInternal->getContactOffset();
  66. }
  67. void Collider::setRestOffset(float value)
  68. {
  69. mInternal->setRestOffset(value);
  70. }
  71. float Collider::getRestOffset()
  72. {
  73. return mInternal->getRestOffset();
  74. }
  75. void Collider::setLayer(UINT64 layer)
  76. {
  77. mInternal->setLayer(layer);
  78. }
  79. UINT64 Collider::getLayer() const
  80. {
  81. return mInternal->getLayer();
  82. }
  83. void Collider::setCollisionReportMode(CollisionReportMode mode)
  84. {
  85. mInternal->setCollisionReportMode(mode);
  86. }
  87. CollisionReportMode Collider::getCollisionReportMode() const
  88. {
  89. return mInternal->getCollisionReportMode();
  90. }
  91. bool Collider::rayCast(const Ray& ray, PhysicsQueryHit& hit, float maxDist) const
  92. {
  93. return gPhysics()._rayCast(ray.getOrigin(), ray.getDirection(), *this, hit, maxDist);
  94. }
  95. bool Collider::rayCast(const Vector3& origin, const Vector3& unitDir, PhysicsQueryHit& hit, float maxDist) const
  96. {
  97. return gPhysics()._rayCast(origin, unitDir, *this, hit, maxDist);
  98. }
  99. }