diff --git a/data/test_scene.json b/data/test_scene.json index 383ab87..a8499fb 100644 --- a/data/test_scene.json +++ b/data/test_scene.json @@ -6,8 +6,8 @@ "z" : 100 }, "target" : { - "x" : -140, - "y" : 50, + "x" : 140, + "y" : 0, "z" : 0 }, "world_up" : { diff --git a/src/camera.cpp b/src/camera.cpp index dfa4b6f..741ca4f 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -25,7 +25,9 @@ cameraInitPerspective(camera& cam, glm::vec3 position, glm::vec3 target, glm::ve cam.up = glm::normalize(glm::cross(cam.forward, cam.left)); cam.hAngle = glm::atan(cam.forward.x, cam.forward.y); - cam.vAngle = glm::atan(cam.forward.z, cam.forward.y); + // NOTE: using pythagoras' to get absolute value of relative axis for vAngle component + real32 len = glm::sqrt(glm::pow(cam.forward.y, 2) + glm::pow(cam.forward.x, 2)); + cam.vAngle = glm::atan(cam.forward.z, len); cam.view = glm::lookAt(cam.position, cam.position + cam.forward, cam.up); cam.model = glm::mat4(1.0f); diff --git a/src/scene_loader.cpp b/src/scene_loader.cpp index 08b82af..60aa0f4 100644 --- a/src/scene_loader.cpp +++ b/src/scene_loader.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "aixlog.hpp" #include "entity.h" @@ -181,8 +182,11 @@ parseFile(rapidjson::Document* doc, const char* data_dir, const char* file_name) ret = false; } - if (doc->Parse(contents).HasParseError() || !doc->IsObject()) { + rapidjson::ParseResult pr = doc->Parse(contents/*, rapidjson::kParseStopWhenDoneFlag*/); + if (!pr || !doc->IsObject()) { LOG(ERROR) << "Error parrsing scene file: " << file_name << "\n"; + LOG(ERROR) << "Error desscription: " << rapidjson::GetParseError_En(pr.Code()) + << " (" << pr.Offset() << ")\n"; ret = false; }