Manual_Urho2D.cpp 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // Copyright (c) 2008-2020 the Urho3D project.
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to deal
  6. // in the Software without restriction, including without limitation the rights
  7. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. // copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. // THE SOFTWARE.
  21. //
  22. #ifdef URHO3D_URHO2D
  23. #include "../Precompiled.h"
  24. #include "../AngelScript/APITemplates.h"
  25. #include "../AngelScript/Manual_Urho2D.h"
  26. #include "../Scene/Scene.h"
  27. namespace Urho3D
  28. {
  29. // This function is called before ASRegisterGenerated()
  30. void ASRegisterManualFirst_Urho2D(asIScriptEngine* engine)
  31. {
  32. }
  33. // ========================================================================================
  34. // template<class T> T * Node::GetComponent(bool recursive=false) const | File: ../Scene/Node.h
  35. static PhysicsWorld2D* GetPhysicsWorld2D()
  36. {
  37. Scene* scene = GetScriptContextScene();
  38. return scene ? scene->GetComponent<PhysicsWorld2D>() : nullptr;
  39. }
  40. // This function is called after ASRegisterGenerated()
  41. void ASRegisterManualLast_Urho2D(asIScriptEngine* engine)
  42. {
  43. // template<class T> T * Node::GetComponent(bool recursive=false) const | File: ../Scene/Node.h
  44. engine->RegisterGlobalFunction("PhysicsWorld2D@+ get_physicsWorld2D()", asFUNCTION(GetPhysicsWorld2D), asCALL_CDECL);
  45. }
  46. // ========================================================================================
  47. // RigidBody2D* PhysicsRaycastResult2D::body_ | File: ../Urho2D/PhysicsWorld2D.h
  48. RigidBody2D* PhysicsRaycastResultGetRigidBody2D(PhysicsRaycastResult2D* ptr)
  49. {
  50. return ptr->body_;
  51. }
  52. // ========================================================================================
  53. // void PhysicsWorld2D::Raycast(PODVector< PhysicsRaycastResult2D > &results, const Vector2 &startPoint, const Vector2 &endPoint, unsigned collisionMask=M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h
  54. CScriptArray* PhysicsWorld2DRaycast(const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask, PhysicsWorld2D* ptr)
  55. {
  56. PODVector<PhysicsRaycastResult2D> result;
  57. ptr->Raycast(result, startPoint, endPoint, collisionMask);
  58. return VectorToArray<PhysicsRaycastResult2D>(result, "Array<PhysicsRaycastResult2D>");
  59. }
  60. // void PhysicsWorld2D::RaycastSingle(PhysicsRaycastResult2D &result, const Vector2 &startPoint, const Vector2 &endPoint, unsigned collisionMask=M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h
  61. PhysicsRaycastResult2D PhysicsWorld2DRaycastSingle(const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask, PhysicsWorld2D* ptr)
  62. {
  63. PhysicsRaycastResult2D result;
  64. ptr->RaycastSingle(result, startPoint, endPoint, collisionMask);
  65. return result;
  66. }
  67. // void PhysicsWorld2D::GetRigidBodies(PODVector< RigidBody2D * > &results, const Rect &aabb, unsigned collisionMask=M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h
  68. CScriptArray* PhysicsWorld2DGetRigidBodies(const Rect& aabb, unsigned collisionMask, PhysicsWorld2D* ptr)
  69. {
  70. PODVector<RigidBody2D*> results;
  71. ptr->GetRigidBodies(results, aabb, collisionMask);
  72. return VectorToHandleArray<RigidBody2D>(results, "Array<RigidBody2D@>");
  73. }
  74. }
  75. #endif // def URHO3D_URHO2D