#ifndef B3_GPU_NARROWPHASE_INTERNAL_DATA_H #define B3_GPU_NARROWPHASE_INTERNAL_DATA_H #include "Bullet3OpenCL/ParallelPrimitives/b3OpenCLArray.h" #include "Bullet3Collision/NarrowPhaseCollision/shared/b3ConvexPolyhedronData.h" #include "Bullet3Collision/NarrowPhaseCollision/b3Config.h" #include "Bullet3Collision/NarrowPhaseCollision/shared/b3Collidable.h" #include "Bullet3OpenCL/Initialize/b3OpenCLInclude.h" #include "Bullet3Common/b3AlignedObjectArray.h" #include "Bullet3Common/b3Vector3.h" #include "Bullet3Collision/NarrowPhaseCollision/shared/b3RigidBodyData.h" #include "Bullet3Collision/NarrowPhaseCollision/b3Contact4.h" #include "Bullet3OpenCL/BroadphaseCollision/b3SapAabb.h" #include "Bullet3OpenCL/NarrowphaseCollision/b3QuantizedBvh.h" #include "Bullet3OpenCL/NarrowphaseCollision/b3BvhInfo.h" #include "Bullet3Common/shared/b3Int4.h" #include "Bullet3Common/shared/b3Int2.h" class b3ConvexUtility; struct b3GpuNarrowPhaseInternalData { b3AlignedObjectArray* m_convexData; b3AlignedObjectArray m_convexPolyhedra; b3AlignedObjectArray m_uniqueEdges; b3AlignedObjectArray m_convexVertices; b3AlignedObjectArray m_convexIndices; b3OpenCLArray* m_convexPolyhedraGPU; b3OpenCLArray* m_uniqueEdgesGPU; b3OpenCLArray* m_convexVerticesGPU; b3OpenCLArray* m_convexIndicesGPU; b3OpenCLArray* m_worldVertsB1GPU; b3OpenCLArray* m_clippingFacesOutGPU; b3OpenCLArray* m_worldNormalsAGPU; b3OpenCLArray* m_worldVertsA1GPU; b3OpenCLArray* m_worldVertsB2GPU; b3AlignedObjectArray m_cpuChildShapes; b3OpenCLArray* m_gpuChildShapes; b3AlignedObjectArray m_convexFaces; b3OpenCLArray* m_convexFacesGPU; struct GpuSatCollision* m_gpuSatCollision; b3OpenCLArray* m_triangleConvexPairs; b3OpenCLArray* m_pBufContactBuffersGPU[2]; int m_currentContactBuffer; b3AlignedObjectArray* m_pBufContactOutCPU; b3AlignedObjectArray* m_bodyBufferCPU; b3OpenCLArray* m_bodyBufferGPU; b3AlignedObjectArray* m_inertiaBufferCPU; b3OpenCLArray* m_inertiaBufferGPU; int m_numAcceleratedShapes; int m_numAcceleratedRigidBodies; b3AlignedObjectArray m_collidablesCPU; b3OpenCLArray* m_collidablesGPU; b3OpenCLArray* m_localShapeAABBGPU; b3AlignedObjectArray* m_localShapeAABBCPU; b3AlignedObjectArray m_bvhData; b3AlignedObjectArray m_meshInterfaces; b3AlignedObjectArray m_treeNodesCPU; b3AlignedObjectArray m_subTreesCPU; b3AlignedObjectArray m_bvhInfoCPU; b3OpenCLArray* m_bvhInfoGPU; b3OpenCLArray* m_treeNodesGPU; b3OpenCLArray* m_subTreesGPU; b3Config m_config; }; #endif //B3_GPU_NARROWPHASE_INTERNAL_DATA_H