summaryrefslogtreecommitdiff
path: root/src/entities.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-31 12:46:09 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-11-15 13:13:25 -0500
commitf2c808b1235b9d76e4d4753c025f404e7736ca3c (patch)
tree34100f4a05d6feb40474c50f1d3539611b0016ba /src/entities.cpp
parent18e65823663af6e2a1472b66486526a23d5e9c30 (diff)
use model for collision + refactor physics init and rigidbody creation
Diffstat (limited to 'src/entities.cpp')
-rw-r--r--src/entities.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/entities.cpp b/src/entities.cpp
index a9108a0..c06aa3c 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -1,7 +1,10 @@
#include "entities.hpp"
-#include <vulkan/vulkan_core.h>
+#include "physics.hpp"
+
+#include <BulletCollision/CollisionShapes/btConvexHullShape.h>
+
DynArray<EntityType> GlobalEntityTypes{16};
void EntityType_Init() {
@@ -546,7 +549,6 @@ void EntityType_Load(EntityType &et) {
srcPtr = static_cast<char *>(gltfData->buffers[0].data) + accIndex.buffer_view->offset;
memcpy(dstPtr, srcPtr, accIndex.buffer_view->size);
-
VkCommandBufferBeginInfo vkCommandBufferBeginInfo;
vkCommandBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
vkCommandBufferBeginInfo.pNext = nullptr;
@@ -610,6 +612,14 @@ void EntityType_Load(EntityType &et) {
vkAllocateMemory(vkDevice, &vkMemoryAllocateInfo, vkAllocator, &et.deviceMemoryInst);
vkBindBufferMemory(vkDevice, grBinds.instanceBuffer, et.deviceMemoryInst, 0);
+ // bullet
+ {
+ et.bt.shape = Pke_New<btConvexHullShape>(MemBkt_Bullet);
+ btScalar *vertDataPointer = reinterpret_cast<btScalar *>(accVert.buffer_view->buffer->data);
+ vertDataPointer += accVert.buffer_view->offset;
+ new (et.bt.shape) btConvexHullShape(vertDataPointer, accVert.count, accVert.stride);
+ }
+
// cleanup
cgltf_free(gltfData);
AM_Destroy(assetHandle);