diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-04-07 11:27:00 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-04-07 11:27:00 -0400 |
| commit | ff63a4b2bf9f096f8cf8c6824e826b3b4d79e747 (patch) | |
| tree | bc5834ffecfa87ad70aac530a14acf38245c515b /src/serialization-camera.cpp | |
| parent | 2f57eefb01c478ffe62845b8051bc82036cbb819 (diff) | |
pke: saving and loading scenes works
Diffstat (limited to 'src/serialization-camera.cpp')
| -rw-r--r-- | src/serialization-camera.cpp | 22 |
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); } |
