summaryrefslogtreecommitdiff
path: root/src/serialization-camera.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-04-07 11:27:00 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-04-07 11:27:00 -0400
commitff63a4b2bf9f096f8cf8c6824e826b3b4d79e747 (patch)
treebc5834ffecfa87ad70aac530a14acf38245c515b /src/serialization-camera.cpp
parent2f57eefb01c478ffe62845b8051bc82036cbb819 (diff)
pke: saving and loading scenes works
Diffstat (limited to 'src/serialization-camera.cpp')
-rw-r--r--src/serialization-camera.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/serialization-camera.cpp b/src/serialization-camera.cpp
index abf404b..501be6e 100644
--- a/src/serialization-camera.cpp
+++ b/src/serialization-camera.cpp
@@ -61,16 +61,18 @@ bool FindFirstInstanceHandle(void *handle, void *mapping) {
void pke_deserialize_camera(srlztn_deserialize_helper *h) {
PK_STN_RES stn_res;
PkeCamera cam{};
+ cam.type = PKE_CAMERA_TYPE_PERSPECTIVE;
+ cam.view = PKE_CAMERA_VIEW_FREE;
InstPos instPos;
InstanceHandle instanceHandle = InstanceHandle_MAX;
pk_uuid target_uuid = pk_uuid_zed;
- glm::vec3 pos;
- glm::quat quat_rot;
- glm::vec3 scale;
+ glm::vec3 pos = glm::vec3(0);
+ glm::quat quat_rot = glm::quat(0, 0, 0, 1);
+ glm::vec3 scale = glm::vec3(1);
instPos.mass = 1;
instPos.posRot.setIdentity();
instPos.scale = btVector3(1, 1, 1);
- while (h->i.getline(h->read_line, h->read_line_len)) {
+ while (h->i->getline(h->read_line, h->read_line_len)) {
if (strcmp(h->read_line, SRLZTN_OBJ_END) == 0) {
int64_t targetInstanceIndex = -1;
@@ -109,7 +111,7 @@ void pke_deserialize_camera(srlztn_deserialize_helper *h) {
}
if (strncmp(h->read_line, SRLZTN_CAMERA_TYPE, strlen(SRLZTN_CAMERA_TYPE)) == 0) {
uint64_t prefixLen = strlen(SRLZTN_CAMERA_TYPE);
- stn_res = pk_stn(&cam.type, h->read_line + prefixLen);
+ stn_res = pk_stn(&cam.type, h->read_line + prefixLen, nullptr);
if (stn_res != PK_STN_RES_SUCCESS) {
fprintf(stderr, "[%s] Err '%u' parsing camera type from: '%s'", __FILE__, stn_res, h->read_line);
}
@@ -117,7 +119,7 @@ void pke_deserialize_camera(srlztn_deserialize_helper *h) {
}
if (strncmp(h->read_line, SRLZTN_CAMERA_ORIENTATION, strlen(SRLZTN_CAMERA_ORIENTATION)) == 0) {
uint64_t prefixLen = strlen(SRLZTN_CAMERA_ORIENTATION);
- stn_res = pk_stn(&cam.view, h->read_line + prefixLen);
+ stn_res = pk_stn(&cam.view, h->read_line + prefixLen, nullptr);
if (stn_res != PK_STN_RES_SUCCESS) {
fprintf(stderr, "[%s] Err '%u' parsing camera view from: '%s'", __FILE__, stn_res, h->read_line);
}
@@ -126,11 +128,11 @@ void pke_deserialize_camera(srlztn_deserialize_helper *h) {
if (strstr(h->read_line, SRLZTN_CAMERA_INSTANCE_HANDLE)) {
uint64_t prefixLen = strlen(SRLZTN_CAMERA_INSTANCE_HANDLE);
h->read_line[prefixLen + 10] = '\0';
- stn_res = pk_stn(&instanceHandle.bucketIndex, h->read_line + prefixLen);
+ stn_res = pk_stn(&instanceHandle.bucketIndex, h->read_line + prefixLen, nullptr, 16);
if (stn_res != PK_STN_RES_SUCCESS) {
fprintf(stderr, "[%s] Err '%u' parsing camera instance handle from: '%s'", __FILE__, stn_res, h->read_line);
}
- stn_res = pk_stn(&instanceHandle.itemIndex, h->read_line + prefixLen + 11);
+ stn_res = pk_stn(&instanceHandle.itemIndex, h->read_line + prefixLen + 11, nullptr, 16);
if (stn_res != PK_STN_RES_SUCCESS) {
fprintf(stderr, "[%s] Err '%u' parsing camera instance handle from: '%s'", __FILE__, stn_res, h->read_line);
}
@@ -141,9 +143,9 @@ void pke_deserialize_camera(srlztn_deserialize_helper *h) {
(h->read_line + prefixLen) >> cam.uuid;
continue;
}
- if (strncmp(h->read_line, SRLZTN_CAMERA_IS_PRIMARY, strlen(SRLZTN_CAMERA_IS_PRIMARY)) == 0) {
+ if (strstr(h->read_line, SRLZTN_CAMERA_IS_PRIMARY)) {
uint64_t prefixLen = strlen(SRLZTN_CAMERA_IS_PRIMARY);
- stn_res = pk_stn(&cam.isPrimary, h->read_line + prefixLen);
+ stn_res = pk_stn(&cam.isPrimary, h->read_line + prefixLen, nullptr);
if (stn_res != PK_STN_RES_SUCCESS) {
fprintf(stderr, "[%s] Err '%u' parsing camera primary from: '%s'", __FILE__, stn_res, h->read_line);
}