[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-physics / third-party / bullet3 / src / Bullet3OpenCL / Raycast / b3GpuRaycast.h
1 #ifndef B3_GPU_RAYCAST_H
2 #define B3_GPU_RAYCAST_H
3
4 #include "Bullet3Common/b3Vector3.h"
5 #include "Bullet3OpenCL/Initialize/b3OpenCLInclude.h"
6
7 #include "Bullet3Common/b3AlignedObjectArray.h"
8 #include "Bullet3Collision/NarrowPhaseCollision/b3RaycastInfo.h"
9
10 class b3GpuRaycast
11 {
12 protected:
13         struct b3GpuRaycastInternalData* m_data;
14
15 public:
16         b3GpuRaycast(cl_context ctx, cl_device_id device, cl_command_queue q);
17         virtual ~b3GpuRaycast();
18
19         void castRaysHost(const b3AlignedObjectArray<b3RayInfo>& raysIn, b3AlignedObjectArray<b3RayHit>& hitResults,
20                                           int numBodies, const struct b3RigidBodyData* bodies, int numCollidables, const struct b3Collidable* collidables,
21                                           const struct b3GpuNarrowPhaseInternalData* narrowphaseData);
22
23         void castRays(const b3AlignedObjectArray<b3RayInfo>& rays, b3AlignedObjectArray<b3RayHit>& hitResults,
24                                   int numBodies, const struct b3RigidBodyData* bodies, int numCollidables, const struct b3Collidable* collidables,
25                                   const struct b3GpuNarrowPhaseInternalData* narrowphaseData, class b3GpuBroadphaseInterface* broadphase);
26 };
27
28 #endif  //B3_GPU_RAYCAST_H