Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions .github/workflows/continuous.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,36 +27,38 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-latest, macOS-15, macOS-14, macOS-latest, windows-2022]
os: [ubuntu-22.04, ubuntu-latest, ubuntu-24.04-arm, macOS-15, macOS-14, macOS-latest, windows-2022]
config: [Debug, Release]
envelope: [OFF]
include:
- os: ubuntu-22.04
name: ubuntu-22.04
- os: ubuntu-latest
name: ubuntu-latest
- os: ubuntu-24.04-arm
name: Ubuntu 24.04 ARM64
- os: macos-13
name: macOS-13
- os: macos-14
name: macOS-14 ARM64
- os: macos-latest
name: macOS-latest ARM64
name: macOS-latest ARM64
- os: windows-2022
name: Windows

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 10
submodules: "recursive"

- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
timeout-minutes: 20
with:
detached: true

- name: Setup NMake (Windows)
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
Expand Down Expand Up @@ -95,7 +97,7 @@ jobs:

- name: Build
run: cd build; conda run -n test-env cmake --build . --parallel 2

- name: Tests
run: cd build; ctest --verbose --output-on-failure

Expand Down
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ add_library(${PROJECT_NAME} src/Logger.cpp)
# Public include directory for FloatTetwild
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}/include)

# On aarch64, char is unsigned by default, so force it signed explicitly
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64" AND NOT MSVC)
target_compile_options(${PROJECT_NAME} PUBLIC -fsigned-char)
endif()

# Extra warnings
target_link_libraries(${PROJECT_NAME} PRIVATE warnings::all)

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.MPL2
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Mozilla Public License Version 2.0
means any form of the work other than Source Code Form.

1.7. "Larger Work"
means a work that combines Covered Software with other material, in
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.

1.8. "License"
Expand Down
2 changes: 1 addition & 1 deletion cmake/FindGMPfTetWild.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_INCLUDE_DIRS GMP_LIBRARIES)

mark_as_advanced(GMP_INCLUDE_DIRS GMP_LIBRARIES)
MESSAGE(STATUS "GMP libs: " ${GMP_LIBRARIES} " " ${GMP_INCLUDE_DIRS} )
MESSAGE(STATUS "GMP libs: " ${GMP_LIBRARIES} " " ${GMP_INCLUDE_DIRS} )
10 changes: 6 additions & 4 deletions cmake/FloatTetwildDependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ if(NOT TARGET spdlog::spdlog)
GIT_REPOSITORY https://github.com/gabime/spdlog
GIT_TAG v1.15.3
)

# Configure spdlog to use external fmt
set(SPDLOG_FMT_EXTERNAL ON CACHE BOOL "" FORCE)

FetchContent_MakeAvailable(spdlog)
endif()

Expand All @@ -67,7 +67,7 @@ if(NOT TARGET igl::core)
FetchContent_Declare(
libigl
GIT_REPOSITORY https://github.com/libigl/libigl.git
GIT_TAG v2.6.0
GIT_TAG v2.6.0
)
set(LIBIGL_BUILD_STATIC ON CACHE BOOL "" FORCE)
set(LIBIGL_BUILD_SHARED OFF CACHE BOOL "" FORCE)
Expand All @@ -91,6 +91,8 @@ if(NOT TARGET geogram::geogram)
set(GEO_PLATFORM "Win-vs-generic")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(GEO_PLATFORM "Darwin-clang")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
set(GEO_PLATFORM "Linux64-gcc-aarch64")
else()
set(GEO_PLATFORM "Linux64-gcc")
endif()
Expand Down Expand Up @@ -145,7 +147,7 @@ if(NOT TARGET json)
GIT_TAG 0901d33bf6e7dfe6f70fd9d142c8f5c6695c6c5b
)
FetchContent_MakeAvailable(json)

# Create interface target if not provided by the library
if(NOT TARGET json)
add_library(json INTERFACE)
Expand Down
2 changes: 1 addition & 1 deletion cmake/Warnings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,4 @@ foreach(FLAG IN ITEMS ${MY_FLAGS})
if(IS_SUPPORTED_${FLAG_VAR})
target_compile_options(warnings_all INTERFACE ${FLAG})
endif()
endforeach()
endforeach()
32 changes: 16 additions & 16 deletions replicability_instructions.htm
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<html><head><meta charset="utf-8"></head><body><h2>This code was evaluated for replicability by an independent team of experts (see <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__replicability.graphics_&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=aLRPBOY03k3YjfuJwVKEWeGmpHd6jRcnjg7y8tA2m2A&amp;e=">https://replicability.graphics/</a> ).<br>The remainder of this file contains the evaluation report, along with suggestions to successfully compile and run the code.<br></h2><hr><div id="review-1"><h2>Information</h2><ul><li><span class="family">Paper topic</span>: Geometry</li>
<li><span class="family">Software type</span>: Code</li>
<li><span class="family">Able to run a replicability test</span>: True</li>
<li><span class="family">Replicability score</span>: 5</li>
<li><i class="fas fa-certificate" style="font-size:150%;color:rgb(255,126,47);" title="GRSI"></i> Paper listed in the <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.replicabilitystamp.org_index.html-23https-2Dgithub-2Dcom-2Dwildmeshing-2Dftetwild&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=LPFYkUIYpIOHoWx82nNL3tEyv08OVHQtxgkheUF_p-Q&amp;e=">Graphics Replicability Stamp Initiative</a></li><li><span class="family">Software language</span>: C++</li>
<li><span class="family">License</span>: MPL 2.0</li>
<li><span class="family">Build mechanism</span>: cmake</li>
<li><span class="family">Dependencies</span>: libigl,gmp,tbb,geogram</li>
<li><span class="family">Documentation score</span> {0,1,2}: 3</li>
<li><span class="family">Reviewer</span>: David Coeurjolly &lt;david.coeurjolly@liris.cnrs.fr&gt;</li>
<li><span class="family">Time spent for the test (build->first run, timeout at 100min)</span>: 10min</li>
</ul><h2>Source code information</h2>
<ul><li><span class="family">Code URL</span>: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_wildmeshing_fTetWild&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=4Cv-LYQQltooXl4zkYOKVDhHpVQC7jWWixaM-h4nXJ8&amp;e=">https://github.com/wildmeshing/fTetWild</a></li>
<li><span class="family">Git commit hash</span>: 4c66f57380342e6868f912890c974cc093d505f5</li>
<li><span class="family">Software Heritage link</span>: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__archive.softwareheritage.org_swh-3A1-3Adir-3Ad337a7646c63859e26e2877129a89043302d85ae-3Borigin-3Dhttps-3A__github.com_wildmeshing_fTetWild-3Bvisit-3Dswh-3A1-3Asnp-3Adeaef5698049bc8584dcebb6736e8f7fd3ca1a0a-3Banchor-3Dswh-3A1-3Arev-3Adca0676985c987c5c15156330e8d08779c211b20-3Bpath-3D__&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=draUn3QW1UPvmG63gsPUGEZdYDby62HdwLwHXgrPi3c&amp;e="><img src="https://archive.softwareheritage.org/badge/swh:1:dir:d337a7646c63859e26e2877129a89043302d85ae;origin=https://github.com/wildmeshing/fTetWild;visit=swh:1:snp:deaef5698049bc8584dcebb6736e8f7fd3ca1a0a;anchor=swh:1:rev:dca0676985c987c5c15156330e8d08779c211b20;path=//"></a></li>
</ul><h2>Comments</h2><pre>The build instructions are straightforward to follow (all dependencies are smoothly built at the cmake step). The authors also provide all scripts to replicate all figures of the paper.</pre></div></body></html>
<html><head><meta charset="utf-8"></head><body><h2>This code was evaluated for replicability by an independent team of experts (see <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__replicability.graphics_&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=aLRPBOY03k3YjfuJwVKEWeGmpHd6jRcnjg7y8tA2m2A&amp;e=">https://replicability.graphics/</a> ).<br>The remainder of this file contains the evaluation report, along with suggestions to successfully compile and run the code.<br></h2><hr><div id="review-1"><h2>Information</h2><ul><li><span class="family">Paper topic</span>: Geometry</li>
<li><span class="family">Software type</span>: Code</li>
<li><span class="family">Able to run a replicability test</span>: True</li>
<li><span class="family">Replicability score</span>: 5</li>
<li><i class="fas fa-certificate" style="font-size:150%;color:rgb(255,126,47);" title="GRSI"></i> Paper listed in the <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.replicabilitystamp.org_index.html-23https-2Dgithub-2Dcom-2Dwildmeshing-2Dftetwild&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=LPFYkUIYpIOHoWx82nNL3tEyv08OVHQtxgkheUF_p-Q&amp;e=">Graphics Replicability Stamp Initiative</a></li><li><span class="family">Software language</span>: C++</li>
<li><span class="family">License</span>: MPL 2.0</li>
<li><span class="family">Build mechanism</span>: cmake</li>
<li><span class="family">Dependencies</span>: libigl,gmp,tbb,geogram</li>
<li><span class="family">Documentation score</span> {0,1,2}: 3</li>
<li><span class="family">Reviewer</span>: David Coeurjolly &lt;david.coeurjolly@liris.cnrs.fr&gt;</li>
<li><span class="family">Time spent for the test (build->first run, timeout at 100min)</span>: 10min</li>
</ul><h2>Source code information</h2>
<ul><li><span class="family">Code URL</span>: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_wildmeshing_fTetWild&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=4Cv-LYQQltooXl4zkYOKVDhHpVQC7jWWixaM-h4nXJ8&amp;e=">https://github.com/wildmeshing/fTetWild</a></li>
<li><span class="family">Git commit hash</span>: 4c66f57380342e6868f912890c974cc093d505f5</li>
<li><span class="family">Software Heritage link</span>: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__archive.softwareheritage.org_swh-3A1-3Adir-3Ad337a7646c63859e26e2877129a89043302d85ae-3Borigin-3Dhttps-3A__github.com_wildmeshing_fTetWild-3Bvisit-3Dswh-3A1-3Asnp-3Adeaef5698049bc8584dcebb6736e8f7fd3ca1a0a-3Banchor-3Dswh-3A1-3Arev-3Adca0676985c987c5c15156330e8d08779c211b20-3Bpath-3D__&amp;d=DwMGAg&amp;c=slrrB7dE8n7gBJbeO0g-IQ&amp;r=bp78UsyXybPiEO-Tbr7izQ&amp;m=hBpwXjDxCZJ3dB8T2id60BmOhuiBzmf6_hh3P3xxvzU&amp;s=draUn3QW1UPvmG63gsPUGEZdYDby62HdwLwHXgrPi3c&amp;e="><img src="https://archive.softwareheritage.org/badge/swh:1:dir:d337a7646c63859e26e2877129a89043302d85ae;origin=https://github.com/wildmeshing/fTetWild;visit=swh:1:snp:deaef5698049bc8584dcebb6736e8f7fd3ca1a0a;anchor=swh:1:rev:dca0676985c987c5c15156330e8d08779c211b20;path=//"></a></li>
</ul><h2>Comments</h2><pre>The build instructions are straightforward to follow (all dependencies are smoothly built at the cmake step). The authors also provide all scripts to replicate all figures of the paper.</pre></div></body></html>
2 changes: 1 addition & 1 deletion src/EdgeSwapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -697,4 +697,4 @@ bool floatTetWild::remove_an_edge_56(Mesh& mesh, int v1_id, int v2_id, const std
vector_unique(new_edges);

return true;
}
}
2 changes: 1 addition & 1 deletion src/Mesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -337,4 +337,4 @@ namespace floatTetWild {
// // M.cells.permute_elements(new_index);
}

}
}
2 changes: 1 addition & 1 deletion src/MeshImprovement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1530,7 +1530,7 @@ void floatTetWild::boolean_operation(Mesh& mesh, const json &csg_tree_with_ids,
auto &t = mesh.tets[t_id];
if(t.is_removed)
continue;

bool keep = CSGTreeParser::keep_tet(csg_tree_with_ids, cnt, w);
t.is_removed = !keep;
int tid = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/TriangleInsertion.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,4 @@ namespace floatTetWild {
}


#endif //FLOATTETWILD_TRIANGLEINSERTION_H
#endif //FLOATTETWILD_TRIANGLEINSERTION_H
20 changes: 10 additions & 10 deletions src/auto_table.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -803,19 +803,19 @@ namespace floatTetWild {
{

{

}
},
{

{

}
},
{

{

}
},
{
Expand All @@ -830,7 +830,7 @@ namespace floatTetWild {
{

{

}
},
{
Expand All @@ -855,7 +855,7 @@ namespace floatTetWild {
{

{

}
},
{
Expand All @@ -870,7 +870,7 @@ namespace floatTetWild {
{

{

}
},
{
Expand Down Expand Up @@ -943,7 +943,7 @@ namespace floatTetWild {
{

{

}
},
{
Expand Down Expand Up @@ -994,7 +994,7 @@ namespace floatTetWild {
{

{

}
},
{
Expand Down Expand Up @@ -1173,13 +1173,13 @@ namespace floatTetWild {
{

{

}
},
{

{

}
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/intersections.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -717,4 +717,4 @@ bool floatTetWild::is_point_inside_tet(const Vector3& p, const Vector3& p0t, con
return true;

return false;
}
}
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -698,4 +698,4 @@ int main(int argc, char** argv)
// Eigen::MatrixXd V_sf;
// Eigen::MatrixXi F_sf;
// manifold_surface(mesh, V_sf, F_sf);
//}
//}
Loading
Loading