Wildmeshing Toolkit
Loading...
Searching...
No Matches
src
wmtk
utils
VolumeRemesher.hpp
1
#pragma once
2
3
// VolumeRemesher's 3D API (embed_tri_in_poly_mesh, and vol_rem::TetMesh from
4
// delaunay3d_wrapper.h), minus the macros it leaks. Include this instead of
5
// <VolumeRemesher/embed.h>.
6
//
7
// Delaunay3D, which VolumeRemesher includes from embed.h on, marks its tetrahedra with
8
// `#define DT_UNKNOWN 0`, `DT_OUT 1` and `DT_IN 2`. glibc's <dirent.h> declares DT_UNKNOWN as
9
// an enumerator, so on Linux any translation unit that reaches <dirent.h> afterwards -- Eigen's
10
// SparseExtra does, through libigl -- expands it to `0 = 0` and fails to compile. macOS defines
11
// DT_UNKNOWN as the same macro, and Windows has no <dirent.h>, so only Linux breaks.
12
//
13
// Dropping the macros here is safe: the preprocessor has already expanded them in Delaunay3D's
14
// templates by the time the header ends, and nothing in the toolkit uses them.
15
#include <VolumeRemesher/embed.h>
16
17
#undef DT_UNKNOWN
18
#undef DT_OUT
19
#undef DT_IN
Generated by
1.9.8