some changes after Kai feedback
diff --git a/CMakeLists.txt b/CMakeLists.txt index c12ca18..fb12fb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -1,17 +1,18 @@ cmake_minimum_required(VERSION 3.0.0) project(delaunator VERSION 0.1.0) set (CMAKE_CXX_STANDARD 17) -if (NOT EXISTS "${PROJECT_SOURCE_DIR}/includes") - execute_process(COMMAND bash "-c" "(cd ${PROJECT_SOURCE_DIR} && ./fetch-includes.sh)") +if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/includes") + execute_process(COMMAND bash "-c" "(cd ${CMAKE_CURRENT_SOURCE_DIR} && ./fetch-includes.sh)") endif() -# message("PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}") +# message("PROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}") add_executable(main src/main.cpp) add_library(delaunator src/delaunator.cpp) -target_include_directories (main PRIVATE "${PROJECT_SOURCE_DIR}/includes/rapidjson/include") -target_include_directories (delaunator PRIVATE "${PROJECT_SOURCE_DIR}/includes/rapidjson/include") +target_include_directories (main PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/rapidjson/include") +target_include_directories (delaunator PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/rapidjson/include") +target_include_directories (delaunator PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/prettyprint") target_link_libraries(main delaunator) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) -include(CPack) +# include(CPack)
diff --git a/fetch-includes.sh b/fetch-includes.sh index 9039cab..5fd564c 100755 --- a/fetch-includes.sh +++ b/fetch-includes.sh
@@ -4,3 +4,4 @@ rm -rf ./includes/* git clone --branch v1.1.0 --depth=1 git@github.com:Tencent/rapidjson.git ./includes/rapidjson +git clone --branch master --depth=1 git@github.com:louisdx/cxx-prettyprint.git ./includes/prettyprint
diff --git a/src/delaunator.cpp b/src/delaunator.cpp index d12f110..16f86f8 100644 --- a/src/delaunator.cpp +++ b/src/delaunator.cpp
@@ -5,6 +5,8 @@ #include <tuple> #include <exception> #include <cmath> +#include "prettyprint.hpp" +#include <iostream> using namespace std; @@ -158,20 +160,6 @@ // } // } } - void print_array(unsigned long int ids[], unsigned int size) { - printf("["); - for (unsigned int i = 0; i < size; i++) { - printf("%lu, ", ids[i]); - } - printf("]\n"); - } - void print_array(const vector<int> &v) { - printf("["); - for (int i = 0; i < v.size(); i++) { - printf("%d, ", v[i]); - } - printf("]\n"); - } } Delaunator::Delaunator(const vector<double> &coords) { @@ -241,7 +229,7 @@ } if (min_radius == max_double) { - throw No_triangulation(); + throw runtime_error("not triangulation");; } if ( @@ -267,13 +255,8 @@ // sort the points by distance from the seed triangle circumcenter quicksort(ids, coords, 0, n - 1, m_center_x, m_center_y); - // print_array(ids, n); m_hash_size = ceil(sqrt(n)); m_hash.reserve(m_hash_size); for (int i = 0; i < m_hash_size; i++) m_hash.push_back(-1); - print_array(m_hash); - // printf("isnan(m_hash[0])=%d\n", isnan(m_hash[0])); - printf("m_hash[1]=%d\n", m_hash[1]); - // printf("i0x=%f i0y=%f", i0x, i0y); };
diff --git a/src/delaunator.h b/src/delaunator.h index 7276101..8cb0ea8 100644 --- a/src/delaunator.h +++ b/src/delaunator.h
@@ -2,19 +2,12 @@ #include <vector> #include <exception> -using namespace std; - class Delaunator{ public: - Delaunator(const vector<double> &coords); - struct No_triangulation : public exception { - const char * what () const throw () { - return "No delaunay triangulation"; - }; - }; + Delaunator(const std::vector<double> &coords); private: double m_center_x; double m_center_y; double m_hash_size; - vector<int> m_hash; + std::vector<int> m_hash; };