From 39504e536cc18b39e274d4876e6d59951a61750e Mon Sep 17 00:00:00 2001 From: denizdiktas Date: Mon, 24 Jul 2023 12:27:30 +0300 Subject: [PATCH] Added: JSON parser (with example) --- .../demo/earth/CMakeLists.txt | 7 +++++ .../demo/earth/Main_widget.cpp | 31 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/Arrangement_on_surface_2/demo/earth/CMakeLists.txt b/Arrangement_on_surface_2/demo/earth/CMakeLists.txt index 490fc454a5d..910db93261f 100644 --- a/Arrangement_on_surface_2/demo/earth/CMakeLists.txt +++ b/Arrangement_on_surface_2/demo/earth/CMakeLists.txt @@ -36,6 +36,12 @@ if ( NOT Boost_FOUND ) endif() +################################################################################ +include(FetchContent) +FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz) +FetchContent_MakeAvailable(json) +# find_package(nlohmann_json 3.2.0 REQUIRED) +################################################################################ set(SHAPELIB_INCLUDE_DIR "" CACHE PATH "DEFINE ME!!!") #target_include_directories(earth PRIVATE ${SHAPELIB_INCLUDE_DIR}) @@ -127,6 +133,7 @@ target_link_libraries(earth PRIVATE Qt6::Xml CGAL::CGAL shp + nlohmann_json::nlohmann_json ) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/shaders diff --git a/Arrangement_on_surface_2/demo/earth/Main_widget.cpp b/Arrangement_on_surface_2/demo/earth/Main_widget.cpp index 042063e8f44..388bd2fcdc2 100644 --- a/Arrangement_on_surface_2/demo/earth/Main_widget.cpp +++ b/Arrangement_on_surface_2/demo/earth/Main_widget.cpp @@ -159,9 +159,40 @@ void Main_widget::init_problematic_nodes() std::unique_ptr new_faces; +#include +using json = nlohmann::json; void Main_widget::initializeGL() { + json js; + auto& ja = js["vertices"] = json::array(); + json json_v1 = R"( + { + "location": "0", + "dx": {"num": "123","den": "1"}, + "dy": {"num": "456","den": "5"}, + "dz": {"num": "789","den": "9"} + } + )"_json; + json json_v2 = R"( + { + "location": "0", + "dx": {"num": "111","den": "2"}, + "dy": {"num": "333","den": "4"}, + "dz": {"num": "555","den": "6"} + } + )"_json; + json jv2; + jv2["location"] = "0"; + jv2["dx"]["num"] = "111"; jv2["dx"]["den"] = "2"; + jv2["dy"]["num"] = "333"; jv2["dy"]["den"] = "4"; + jv2["dz"]["num"] = "555"; jv2["dz"]["den"] = "6"; + + ja.push_back(json_v1); + ja.push_back(jv2); + ja.size(); + std::cout << js << std::endl; + // verify that the node (180.0, -84.71338) in Antarctica is redundant verify_antarctica_node_is_redundant();