summaryrefslogtreecommitdiff
path: root/src/camera.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-11-14 14:46:23 -0500
committerJonathan Bradley <jcb@pikum.xyz>2024-11-14 14:46:23 -0500
commitb2548ba4ce295fcd94a50123fb543fac2ef2bc33 (patch)
tree444a32abb4a094c4fa2f7bc9a95aa86963ad4110 /src/camera.cpp
parentb1d926361b9d613ad712ad161f9a8b7ccab4551d (diff)
add pk.h and major pkmem refactor
Completely replaces the memory module with pkmem pkmem is a newer implementation of the same bucket memory structure. Also includes replacing pkstr.h with pk.h's pkstr
Diffstat (limited to 'src/camera.cpp')
-rw-r--r--src/camera.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/camera.cpp b/src/camera.cpp
index 3982642..75aa40f 100644
--- a/src/camera.cpp
+++ b/src/camera.cpp
@@ -5,7 +5,6 @@
#include "camera.hpp"
#include "ecs.hpp"
#include "math-helpers.hpp"
-#include "memory.hpp"
#include "physics.hpp"
PkeCamera NullCamera {
@@ -21,7 +20,7 @@ PkeCamera NullCamera {
};
PkeCamera *ActiveCamera = &NullCamera;
-const PkeHandleItemIndex_T MAX_CAMERAS_PER_BUCKET = 32;
+const pk_handle_item_index_T MAX_CAMERAS_PER_BUCKET = 32;
BucketContainer<PkeCamera, CameraHandle> Camera_BucketContainer{};
btSphereShape CameraShape{1.f};
@@ -34,10 +33,10 @@ PkeCamera &PkeCamera_Register_Inner(PkeCamera &cam, const InstPos &instPos) {
btVector3 localInertia(0, 0, 0);
CameraShape.calculateLocalInertia(instPos.mass, localInertia);
- cam.phys.inst->bt.motionState = Pke_New<btDefaultMotionState>(MemBkt_Bullet);
+ cam.phys.inst->bt.motionState = pk_new<btDefaultMotionState>(MemBkt_Bullet);
new (cam.phys.inst->bt.motionState) btDefaultMotionState(instPos.posRot);
- cam.phys.inst->bt.rigidBody = Pke_New<btRigidBody>(MemBkt_Bullet);
+ cam.phys.inst->bt.rigidBody = pk_new<btRigidBody>(MemBkt_Bullet);
new (cam.phys.inst->bt.rigidBody) btRigidBody(instPos.mass, cam.phys.inst->bt.motionState, &CameraShape, localInertia);
cam.phys.inst->bt.rigidBody->setLinearVelocity(btVector3(0,0,0));
@@ -72,10 +71,10 @@ PkeCamera *PkeCamera_Get(CameraHandle cameraHandle) {
PkeCamera *PkeCamera_Get(EntityHandle handle) {
assert(handle != EntityHandle_MAX);
- for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
+ for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
auto &bkt = Camera_BucketContainer.buckets[b];
long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex;
- for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) {
+ for (pk_handle_item_index_T i = 0; i < itemCount; ++i) {
auto &cam = bkt[i];
if (cam.handle == handle)
return &Camera_BucketContainer.buckets[cam.camHandle.bucketIndex][cam.camHandle.itemIndex];
@@ -107,7 +106,7 @@ void PkeCamera_AttachToInstance(CameraHandle cameraHandle, CompInstance *inst) {
cam.phys.inst->bt.rigidBody->activate();
assert(cam.phys.constraint == nullptr || cam.phys.constraint == CAFE_BABE(btTypedConstraint));
- cam.phys.constraint = Pke_New<btTypedConstraint>(MemBkt_Bullet);
+ cam.phys.constraint = pk_new<btTypedConstraint>(MemBkt_Bullet);
new (cam.phys.constraint) btPoint2PointConstraint(*cam.phys.inst->bt.rigidBody, *inst->bt.rigidBody, btVector3(0.f, -1.f, -1.f), cameraOffset);
BtDynamicsWorld->addConstraint(cam.phys.constraint);
@@ -119,7 +118,7 @@ void PkeCamera_DetachFromInstance(CameraHandle cameraHandle, CompInstance *inst)
assert(cameraHandle != CameraHandle_MAX);
auto &cam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex];
BtDynamicsWorld->removeConstraint(cam.phys.constraint);
- Pke_Delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet);
+ pk_delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet);
cam.phys.constraint = CAFE_BABE(btTypedConstraint);
cam.stale = PKE_CAMERA_STALE_POSROT;
}
@@ -127,10 +126,10 @@ void PkeCamera_DetachFromInstance(CameraHandle cameraHandle, CompInstance *inst)
void PkeCamera_SetPrimary(CameraHandle cameraHandle) {
assert(cameraHandle != CameraHandle_MAX);
auto &primaryCam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex];
- for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
+ for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
auto &bkt = Camera_BucketContainer.buckets[b];
long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex;
- for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) {
+ for (pk_handle_item_index_T i = 0; i < itemCount; ++i) {
auto *cam = &bkt[i];
if (cam->parentHandle != primaryCam.parentHandle) {
continue;
@@ -148,7 +147,7 @@ void PkeCamera_Destroy(CameraHandle cameraHandle) {
if (cam.phys.constraint != nullptr && cam.phys.constraint != CAFE_BABE(btTypedConstraint)) {
// reminder: this is not currently handled by ECS
BtDynamicsWorld->removeConstraint(cam.phys.constraint);
- Pke_Delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet);
+ pk_delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet);
}
ECS_MarkForRemoval(camPtr);
@@ -176,7 +175,7 @@ PkeCamera *PkeCamera_GetCameras(int64_t bucketIndex, int64_t &count) {
void PkeCamera_Init() {
Buckets_Init(Camera_BucketContainer, MAX_CAMERAS_PER_BUCKET);
- NullCamera.phys.inst = Pke_New<CompInstance>();
+ NullCamera.phys.inst = pk_new<CompInstance>();
InstPos instPos{
.scale = btVector3(1.f, 1.f, 1.f),
.mass = 1.f,
@@ -187,11 +186,11 @@ void PkeCamera_Init() {
void PkeCamera_Teardown() {
Buckets_Destroy(Camera_BucketContainer);
BtDynamicsWorld->removeRigidBody(NullCamera.phys.inst->bt.rigidBody);
- Pke_Delete<btDefaultMotionState>(NullCamera.phys.inst->bt.motionState, MemBkt_Bullet);
- Pke_Delete<btRigidBody>(NullCamera.phys.inst->bt.rigidBody, MemBkt_Bullet);
+ pk_delete<btDefaultMotionState>(NullCamera.phys.inst->bt.motionState, MemBkt_Bullet);
+ pk_delete<btRigidBody>(NullCamera.phys.inst->bt.rigidBody, MemBkt_Bullet);
NullCamera.phys.inst->bt.motionState = CAFE_BABE(btDefaultMotionState);
NullCamera.phys.inst->bt.rigidBody = CAFE_BABE(btRigidBody);
- Pke_Delete<CompInstance>(NullCamera.phys.inst);
+ pk_delete<CompInstance>(NullCamera.phys.inst);
NullCamera.phys.inst = CAFE_BABE(CompInstance);
}
@@ -206,10 +205,10 @@ void PkeCamera_Tick(double delta) {
* could be that removing pos and rot from the camera would make this unnecessary?
* See the camera serializer for more.
*/
- for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
+ for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) {
auto &bkt = Camera_BucketContainer.buckets[b];
long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex;
- for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) {
+ for (pk_handle_item_index_T i = 0; i < itemCount; ++i) {
auto &cam = bkt[i];
if (cam.handle == EntityHandle_MAX) {
continue;