]> git.xolatile.top Git - xolatile-raylib-ada.git/commitdiff
Collision functions...
authorxolatile <xolatile@proton.me>
Wed, 3 Apr 2024 06:18:42 +0000 (02:18 -0400)
committerxolatile <xolatile@proton.me>
Wed, 3 Apr 2024 06:18:42 +0000 (02:18 -0400)
raylib.ads

index c586679f3f1486644432c449476c5495cfbeb87c..c226cda8d60799794d6e212be6a13fdda9b51733 100644 (file)
@@ -748,6 +748,8 @@ package Raylib is
                Direction : Vector_3D := (0.0, 0.0, 0.0);
        end record with Convention => C_Pass_By_Copy;
 
+       No_Ray : Ray;
+
        type Ray_Collision is record
                Hit      : Logical   := False;
                Distance : Float     := 0.0;
@@ -755,11 +757,15 @@ package Raylib is
                Normal   : Vector_3D := (0.0, 0.0, 0.0);
        end record with Convention => C_Pass_By_Copy;
 
+       No_Ray_Collision : Ray_Collision;
+
        type Bounding_Box is record
                Min : Vector_3D := (0.0, 0.0, 0.0);
                Max : Vector_3D := (0.0, 0.0, 0.0);
        end record with Convention => C_Pass_By_Copy;
 
+       No_Bounding_Box : Bounding_Box;
+
        type Wave is record
                Frame_Count : Natural := 0;
                Sample_Rate : Natural := 0;
@@ -3727,45 +3733,79 @@ package Raylib is
                --~Convention    => C,
                --~External_Name => "";
 
-       --~function bool CheckCollisionSpheres (Vector3 center1, float radius1, Vector3 center2, float radius2) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Check_Collision_Spheres (
+               Center_1 : Vector_3D := (0.0, 0.0, 0.0);
+               Radius_1 : Float     := 0.0;
+               Center_2 : Vector_3D := (0.0, 0.0, 0.0);
+               Radius_2 : Float     := 0.0
+       ) return Logical with
+               Import        => True,
+               Convention    => C,
+               External_Name => "CheckCollisionSpheres";
 
-       --~function bool CheckCollisionBoxes (BoundingBox box1, BoundingBox box2) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Check_Collision_Boxes (
+               Box_1 : Bounding_Box := No_Bounding_Box;
+               Box_2 : Bounding_Box := No_Bounding_Box
+       ) return Logical with
+               Import        => True,
+               Convention    => C,
+               External_Name => "CheckCollisionBoxes";
 
-       --~function bool CheckCollisionBoxSphere (BoundingBox box, Vector3 center, float radius) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Check_Collision_Box_Sphere (
+               Box    : Bounding_Box := No_Bounding_Box;
+               Center : Vector_3D    := (0.0, 0.0, 0.0);
+               Radius : Float        := 0.0
+       ) return Logical with
+               Import        => True,
+               Convention    => C,
+               External_Name => "CheckCollisionBoxSphere";
 
-       --~function RayCollision GetRayCollisionSphere (Ray ray, Vector3 center, float radius) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Ray_Collision_Sphere (
+               Hit    : Ray       := No_Ray;
+               Center : Vector_3D := (0.0, 0.0, 0.0);
+               Radius : Float     := 0.0
+       ) return Ray_Collision with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetRayCollisionSphere";
 
-       --~function RayCollision GetRayCollisionBox (Ray ray, BoundingBox box) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Ray_Collision_Box (
+               Hit : Ray          := No_Ray;
+               Box : Bounding_Box := No_Bounding_Box
+       ) return Ray_Collision with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetRayCollisionBox";
 
-       --~function RayCollision GetRayCollisionMesh (Ray ray, Mesh mesh, Matrix transform) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Ray_Collision_Mesh (
+               Hit       : Ray       := No_Ray;
+               Data      : Mesh      := No_Mesh;
+               Transform : Matrix_4D := Id_Matrix
+       ) return Ray_Collision with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetRayCollisionMesh";
 
-       --~function RayCollision GetRayCollisionTriangle (Ray ray, Vector3 p1, Vector3 p2, Vector3 p3) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Ray_Collision_Triangle (
+               Hit     : Ray       := No_Ray;
+               Point_1 : Vector_3D := (0.0, 0.0, 0.0);
+               Point_2 : Vector_3D := (0.0, 0.0, 0.0);
+               Point_3 : Vector_3D := (0.0, 0.0, 0.0)
+       ) return Ray_Collision with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetRayCollisionTriangle";
 
-       --~function RayCollision GetRayCollisionQuad (Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Ray_Collision_Quad (
+               Hit     : Ray       := No_Ray;
+               Point_1 : Vector_3D := (0.0, 0.0, 0.0);
+               Point_2 : Vector_3D := (0.0, 0.0, 0.0);
+               Point_3 : Vector_3D := (0.0, 0.0, 0.0);
+               Point_4 : Vector_3D := (0.0, 0.0, 0.0)
+       ) return Ray_Collision with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetRayCollisionQuad";
 
        --~typedef void  (*AudioCallback) (void *bufferData, unsigned int frames) with
                --~Import        => True,
@@ -3782,20 +3822,20 @@ package Raylib is
                Convention    => C,
                External_Name => "CloseAudioDevice";
 
-       --~function bool IsAudioDeviceReady (void) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Is_Audio_Device_Ready return Logical with
+               Import        => True,
+               Convention    => C,
+               External_Name => "IsAudioDeviceReady";
 
-       --~procedure SetMasterVolume (float volume) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       procedure Set_Master_Volume (Volume : Float := 1.0) with
+               Import        => True,
+               Convention    => C,
+               External_Name => "SetMasterVolume";
 
-       --~function float GetMasterVolume (void) with
-               --~Import        => True,
-               --~Convention    => C,
-               --~External_Name => "";
+       function Get_Master_Volume return Float with
+               Import        => True,
+               Convention    => C,
+               External_Name => "GetMasterVolume";
 
        --~function Wave LoadWave (const char *fileName) with
                --~Import        => True,