#ifndef B3_GPU_RAYCAST_H #define B3_GPU_RAYCAST_H #include "Bullet3Common/b3Vector3.h" #include "Bullet3OpenCL/Initialize/b3OpenCLInclude.h" #include "Bullet3Common/b3AlignedObjectArray.h" #include "b3RaycastInfo.h" class b3GpuRaycast { protected: struct b3GpuRaycastInternalData* m_data; public: b3GpuRaycast(cl_context ctx,cl_device_id device, cl_command_queue q); virtual ~b3GpuRaycast(); void castRaysHost(const b3AlignedObjectArray& raysIn, b3AlignedObjectArray& hitResults, int numBodies, const struct b3RigidBodyCL* bodies, int numCollidables, const struct b3Collidable* collidables, const struct b3GpuNarrowPhaseInternalData* narrowphaseData); void castRays(const b3AlignedObjectArray& rays, b3AlignedObjectArray& hitResults, int numBodies,const struct b3RigidBodyCL* bodies, int numCollidables, const struct b3Collidable* collidables, const struct b3GpuNarrowPhaseInternalData* narrowphaseData ); /* const b3OpenCLArray* bodyBuf, b3OpenCLArray* contactOut, int& nContacts, int maxContactCapacity, const b3OpenCLArray& hostConvexData, const b3OpenCLArray& vertices, const b3OpenCLArray& uniqueEdges, const b3OpenCLArray& faces, const b3OpenCLArray& indices, const b3OpenCLArray& gpuCollidables, const b3OpenCLArray& gpuChildShapes, const b3OpenCLArray& clAabbs, b3OpenCLArray& worldVertsB1GPU, b3OpenCLArray& clippingFacesOutGPU, b3OpenCLArray& worldNormalsAGPU, b3OpenCLArray& worldVertsA1GPU, b3OpenCLArray& worldVertsB2GPU, b3AlignedObjectArray& bvhData, b3OpenCLArray* treeNodesGPU, b3OpenCLArray* subTreesGPU, b3OpenCLArray* bvhInfo, int numObjects, int maxTriConvexPairCapacity, b3OpenCLArray& triangleConvexPairs, int& numTriConvexPairsOut */ }; #endif //B3_GPU_RAYCAST_H