Skip to content

Commit 7f25bb8

Browse files
authored
Merge pull request #8 from qnzhou/main
Compilation fix
2 parents 7b8cb96 + 77a8538 commit 7f25bb8

6 files changed

Lines changed: 47 additions & 5 deletions

File tree

.github/workflows/cmake-single-platform.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- uses: actions/checkout@v4
2424

2525
- name: Install deps
26-
run: sudo apt install -y libopengl-dev libgl1-mesa-dev libxrandr-dev libxi-dev libxinerama-dev libgl-dev libxcursor-dev libmpfr-dev libmpfrc++-dev
26+
run: sudo apt install -y libopengl-dev libgl1-mesa-dev libxrandr-dev libxi-dev libxinerama-dev libgl-dev libxcursor-dev libmpfr-dev libmpfrc++-dev libblas-dev liblapack-dev
2727

2828
- name: Configure CMake
2929
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
@@ -34,9 +34,10 @@ jobs:
3434
# Build your program with the given configuration
3535
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
3636

37+
- name: Build tests
38+
run: cmake --build ${{github.workspace}}/build --target penner_tests --config ${{env.BUILD_TYPE}}
39+
3740
- name: Test
3841
working-directory: ${{github.workspace}}/build
39-
# Execute tests defined by the CMake configuration.
40-
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
41-
run: make test
42+
run: ctest --output-on-failure --build-config ${{env.BUILD_TYPE}}
4243

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ if (PROJECT_IS_TOP_LEVEL)
2626
option(BUILD_CURVATURE_METRIC_TESTS "Build tests" ON)
2727
option(CHECK_VALIDITY "Check validity pre and post conditions" ON)
2828

29+
if(BUILD_CURVATURE_METRIC_TESTS)
30+
include(Catch2)
31+
include(CTest)
32+
endif()
33+
2934
# Set default libigl and suitesparse options
3035
option(LIBIGL_PREDICATES "Use Predicates" ON)
3136
set ( SUITESPARSE_ENABLE_PROJECTS "suitesparse_config;cholmod;spqr" )

src/feature/pybind.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "feature/core/common.h"
2222
#include "feature/core/component_mesh.h"
2323
#include "util/vf_corners.h"
24+
#include "util/vf_mesh.h"
2425
#include "feature/dirichlet/constraint.h"
2526
#include "feature/dirichlet/optimization.h"
2627
#include "feature/dirichlet/dirichlet_penner_cone_metric.h"

src/holonomy/pybind.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,21 @@ void init_holonomy_pybind(pybind11::module& m)
5353
pybind11::class_<IntrinsicNRosyField>(m, "IntrinsicNRosyField")
5454
.def(pybind11::init<>())
5555
.def("initialize", &IntrinsicNRosyField::initialize)
56-
.def("set_field", &IntrinsicNRosyField::set_field)
56+
.def("set_field", pybind11::overload_cast<
57+
const Mesh<Scalar>&,
58+
const std::vector<int>&,
59+
const Eigen::MatrixXi&,
60+
const std::vector<int>&,
61+
const Eigen::VectorXd&,
62+
const Eigen::MatrixXd&,
63+
const Eigen::MatrixXi&>(&IntrinsicNRosyField::set_field))
64+
.def("set_field", pybind11::overload_cast<
65+
const Mesh<Scalar>&,
66+
const std::vector<int>&,
67+
const Eigen::MatrixXi&,
68+
const Eigen::VectorXd&,
69+
const Eigen::MatrixXd&,
70+
const Eigen::MatrixXi&>(&IntrinsicNRosyField::set_field))
5771
.def("compute_principal_matchings", &IntrinsicNRosyField::compute_principal_matchings)
5872
.def("fix_inconsistent_matchings", &IntrinsicNRosyField::fix_inconsistent_matchings)
5973
.def("compute_rotation_form", &IntrinsicNRosyField::compute_rotation_form);

src/optimization/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,10 @@ if ((NOT USE_MULTIPRECISION) AND (DEBUG_WARNINGS))
5555
-Wall -Wpedantic -Wextra -Werror
5656
)
5757
endif()
58+
59+
if(BUILD_CURVATURE_METRIC_TESTS)
60+
add_executable(penner_tests tests/tests.cpp)
61+
target_link_libraries(penner_tests PRIVATE PennerOptimizationLib Catch2::Catch2WithMain)
62+
target_include_directories(penner_tests PRIVATE tests)
63+
add_test(NAME penner_tests COMMAND penner_tests)
64+
endif()

src/optimization/parameterization/layout.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,20 @@ double signed_area(
212212
}
213213

214214
// find the previous halfedge of a halfedge in a mesh
215+
template <typename Scalar>
216+
int prev_halfedge(
217+
const Mesh<Scalar>& m,
218+
int hij)
219+
{
220+
int hli = hij;
221+
while (m.n[hli] != hij)
222+
{
223+
hli = m.n[hli];
224+
}
225+
226+
return hli;
227+
}
228+
215229
template <typename Scalar>
216230
int prev_halfedge(
217231
const OverlayMesh<Scalar>& m,

0 commit comments

Comments
 (0)