wildmeshing / ftetwild Goto Github PK
View Code? Open in Web Editor NEWFast Tetrahedral Meshing in the Wild
Home Page: https://yixin-hu.github.io/ftetwild.pdf
License: Mozilla Public License 2.0
Fast Tetrahedral Meshing in the Wild
Home Page: https://yixin-hu.github.io/ftetwild.pdf
License: Mozilla Public License 2.0
Hello,
I am trying to make a VS 2017 solution using CMake, which give the following error:
Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18363.
Version: 5.3.0
Build type: Release
CXX_STANDARD: 11
MSVC -> forcing use of statically-linked runtime.
Creating target: igl::core (igl)
Found Geogram here: C:/dev/fTetWild/3rdparty/geogram/src/lib/../..
Using local options file: C:/dev/fTetWild/3rdparty/geogram/CMakeOptions.txt
Configuring build for standalone Geogram (without Vorpaline)
Configuring 64 bits build
Doxygen >= 1.7.0 not found, cannot generate documentation
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
The package name passed to `find_package_handle_standard_args` (GMP) does
not match the name of the calling package (GMPfTetWild). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/FindGMPfTetWild.cmake:32 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:88 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES)
GMP libs: GMP_LIBRARIES-NOTFOUND GMP_INCLUDE_DIRS-NOTFOUND
CMake Error at CMakeLists.txt:90 (MESSAGE):
Cannot find GMP
Configuring incomplete, errors occurred!
See also "C:/dev/fTetWild/bin/CMakeFiles/CMakeOutput.log".
See also "C:/dev/fTetWild/bin/CMakeFiles/CMakeError.log".
I am not used to CMake, but will try to find a solution and post here if I find it. Otherwise, any hints are welcome.
I'm using fTetWild to fix meshes coming from Simulation software.
My request: I'd like to be able to submit absolute values for ideal_edge_length
, eps_simplification
(unit-less, as STLs are) and others as well. Usually I don't care much about the diagonal box of my mesh, nor do I like to measure the mesh (sometimes really a pain) and calculate those values.
We're working in mm and it would make our lives much easier if we could just enter the real values.
Thanks for that awesome mesher!!
Hi,
I am trying to use both fTetWild and kokkos (developed by Sandia National Lab for parallel computing https://github.com/kokkos/kokkos ) in my project. I build the project with mpic++ and set OMPI_CXX to the nvcc_wrapper provided by kokkos and link fTetWild as a static library. The build process works fine but I get segmentation fault error when I run the code.
I have prepared the testing codes in this depository https://github.com/hph73/tetraWild-Kokkos. A makefile has been attached in src. Here are a few additional steps you may need before you can test.
export OMPI_CXX=<path_to_kokkos>/bin/nvcc_wrapper
When the code is built by setting CXX=g++
, everything works fine.
When the code is build by the kokkos nvcc wrapper (enabled by setting CXX=mpic++
), the build process is successful but the code gets segmentation fault.
Thanks!
It seems that the current code can only collapse an edge only when it is a manifold edge. However, in some cases, to simplify a mesh, the non-manifold edges should also be collapsed. Is there a way to collapse the non-manifold edges?
For the last question, I had an idea to split the solid file and then do a merging of the different meshes. In this way, a trade-off can be made between space complexity and time complexity, and even a higher degree of parallel efficiency can be achieved. My initial idea is to achieve mesh merging through local mesh re-division. However, there are still some questions that I would like to consult with Dr.
The first is the use of GEO::delaunay in the GEO library, I coded it according to your code, but the result is that I get the wrong grid, and even the node number of -1 appears in cell_to_v.
The second is that I am not sure whether finding the convex hull based on the grid elements and nodes will lead to the instability of the algorithm, that is, the grid may overlap or have holes.
My code is as follows.
GEO::CmdLine::import_arg_group("standard");
GEO::CmdLine::import_arg_group("pre");
GEO::CmdLine::import_arg_group("algo");
GEO::Delaunay::initialize();
GEO::Delaunay_var T = GEO::Delaunay::create(3, "BDEL");
//T->set_reorder(true);
//T->set_thread_safe(true);
T->set_keeps_infinite(true);
T->set_vertices(vd_.size() / 3, vd_.data());
std::vector<Vector4i> indice;
indice.resize(T->nb_cells());
const auto& tet2v = T->cell_to_v();
for (int i = 0; i < indice.size(); ++i) {
for (int j = 0; j < 4; ++j) {
indice[i][j] = T->cell_vertex(i, j);
}
}
Best wishes!
I am trying to compile fTetWild on M1 Macbook. I got some compile errors due to the architecture.
...
/Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/include/mmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
#error "This header is only meant to be used on x86 and x64 architecture"
^
/Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/include/mmintrin.h:37:5: error: use of undeclared identifier '__builtin_ia32_emms'; did you mean '__builtin_isless'?
__builtin_ia32_emms();
...
I wonder whether there is a quick fix to the issue?
Thanks,
Derek
blocks.zip
Hi, thanks for a very nice tool. I have been playing around with the --csg option but cannot seem to get any cells returned in the output file. Maybe I have compiled it or am using it wrong, but I'm calling fTetWild as:
ftetwild --csg bool.json -o o.msh --no-binary
with the file bool.json:
{
"operation": "join",
"left": "b1.stl",
"right": "b2.stl"
}
where b1.stl and b2.stl are just unit blocks (b2 offset by 0.5 unit lengths). In the resulting o.msh the nodes are written but the element list is empty, that is:
$Elements
0
$EndElements
Meshing the blocks by themselves work fine, so should this work and is there anything I'm doing wrong here?
Hi:
Thanks for the fTetWild. It is amazing!
I want to use the Boolean operation to get the intersection of a cube and a torus. I used the command line in Windows "./FloatTetwild_bin -i cube.obj --tag torus.obj --op 1 -o res.msh". However, it gave me an error message as "Abnormal program termination: function terminate() was called". Is there anything wrong with the command line? Thank you!
model.zip
Hello !
Thanks for sharing this tool!! Looks very nice. I see that you can create conformal meshes coming from multi-regions. That's amazing!!
I am curious about one thing: I would like to use this for a numerical simulation and prescribe different boundary conditions according to different regions (solids) of my .stl data files. For example: a simple cube split into top, sides, bottom would look like this:
myCube.stl:
solid red
...
some faces
...
end solid red
solid gray
...
some faces
...
end solid gray
solid blue
...
some faces
...
end solid blue
if I run:
$tetwild -i myCube.stl -o tetCube.msh --no-binary
I get a nice meshed cube but the patches (physical Surface in GMSH) are not shown.
Lets say I want to use the resulting mesh and impose BCs:
red: myBC 1
gray: myBC 2
blue: myBC 3
how do you know which elements do these patches correspond to ? I've seen that when you perform union of two objects (or stl), you keep the parent body tagged and we know to which original region the elements belong to. Do you have a similar thing for the parent surfaces? Sorry if this already exists, I could not find it.
Thanks a lot !!
Xulia
Hi Yixin,
Thank you for this code! fTetWild runs very fast.
I was wondering if I could specify the size of the bounding box? The mesh created in this box is useful for me and I would like to control the size..
Best,
Jonathan
The readme suggests that the .msh file produced by fTetWild is its "output"... but I was having a lot of trouble with the programs recommended for converting .msh files, so I took a look at some of the other files that fTetWild also outputs on every execution, but I'm not certain as to their contents...
from what I can tell (assuming an input file named debug.stl
) :
debug.stl__sf.obj
and debug.stl__tracked_surface.stl
are identical to debug.stl_.msh
debug.stl__simplify.off
and debug.stl__cutting.stl
are identical to each other, but look rougher than the previous filesIs this a safe assumption, or are these results just a quirk of my input file?
i.e., if I'm struggling to convert the _.msh
file to a format I can use, is it always safe to use the __sf.obj
or __tracked_surface.stl
file instead?
Can I get the surface information of the output mesh? For example, surface triangles.
I see __sf.obj, but I want triangles with the same vertex index as in the mesh (.msh) file.
Hi,
Does the author plan to make GMP an optional library in the future?
Thanks.
Is GMP used only by Rational.h ? If affirmative, I believe it should be possible to remove the GMP dependency (which is LGPL) and use for example Boost.Multiprecision (which has Boost license).
Would Rational.h be the only file to modify, or more parts in the code would need to be rewritten?
Thanks!
I have a flat 3d polygon (geojson polygon) as input data most of the time and a 3d point cloud other times.
Do I need to prepare the input data in some way, or is this library able to triangulate the input data directly?
I have a model (model.stl) to mesh and a background mesh (bg.msh) to guide the meshing. I can supply the actual model and mesh, but for now I'll just describe the behaviour.
The background mesh is basically a box that properly contains the model. So far, during the debugging phase, I've been using constant values for the nodal values of the background mesh. I understand that these values specify (or at least suggest) a maximum edge length of the tets). I invoke Tetwild as follows:
./TetWild --input model.stl --bg-mesh bg --output mesh.msh
When I use constant values >= 0.8 for the background mesh, the mesh generated by TetWild seems to work fine.
In particular, for constant values >2.0, the result resembles the mesh generated by Tetwild using default parameters:
./TetWild --input model.stl
This is expected and acceptable , since the model does have some small features.
However, using constant values of 0.6, TetWild crashes after a minute or two with the following message:
"Abnormal program termination: function terminate() was called"
Moreover, meshing with the following command:
./TetWild --input model.stl -a 0.6
succeeds!
Can you explain:
the discrepancy (using a background mesh with constant nodal values of 0.6 and using a prescribed edge length of 0.6 with no background mesh)
How can I get more information on the cause of the abnormal termination? Perhaps the .csv file that TetWild generates with the .msh file?
Thanks,
Dan
Hi Yixin,
I was trying to compile fTetWild without TBB library by setting the FLOAT_TETWILD_ENABLE_TBB option to OFF. However, after doing so I got quite a few error messages from cmake. It seems that TBB is required to build fast_winding_number, FloatTetwild_bin, FloatTetwild. Any clue how to fixed it?
Thanks,
Hao
Hi dear friends,
I'm heavily testing fTetWild on a model that is well representing what kind of geometry I want to deal with.
It's a CAD produced building element, composed of many sub-elements.
The model is composed of 21k nodes and 18k triangles.
I've compiled fTetWild under Windows, with VS2022, into Release.
To compute the result, I'm using the CSG approach with all sub-elements linked into a huge union chain (JSON).
On my mid range laptop (core i5 8265U + 16Go), overall process with default settings takes 200s.
The result is good at first sight, but if you zoom in :
The result tretrahedralization is largely not respecting model boundaries.
Here are the computations parameters taken from early stage of process :
So here are my questions ;-)
Is the 200s processing time a "normal" score according to your experience ?
Are there any optimizations I can do to severally reduce that processing time ?
I've tested by increasing target edge size (x10) but processing time get worse (230s).
I've tested increasing Min Energy threshold, but this only saved a few seconds.
Is there maybe a parallelized version that could run on multiple cores / thread locally ?
As far as geometric precision is concerned, you can see that with a 2E-3 effective Epsilon, many of the model sub-objects have been "swallowed" during the process, even if these objects are thicker/larger than this limit.
Addtionnaly, you can see that there are many tetras that are protrusing/penetrating the initial model.
To reduce this phenomenon I have to reduce envelop, but computation time seams to be quadratic from this parameter, leading to very very long process time.
I've tested TetWild too, with better results, but with processing time that are not acceptable for my purposes (15 minutes on that model).
Is there other thing to do to reduce that phenomenon ?
Thanks a lot !
Hi!
Your code and article give me much help. But recently I found that large -r would lead to raised or dented mesh at borders, which is severely deviated from the output. I know that reduce input -e will solve this problem, at the cost of a substantial increase in time. So could you please give me some advice to set input -e, according to input model and meshsize.
With best regards!
Hello!
Thank you very much for releasing this code, I was very very excited about using it. I have been using TetWild since 2018 and have always been really happy with its performance. My question is, now that this Fast TetWild is released, is there any reason why I would still want to use the old TetWild? i.e., is there any occasion where the output or robustness of the old TetWild is preferable or should I replace it with this code entirely from now on?
Thanks! Big fan of your work!
Hello,
I'm getting an error when compiling with regards to the libigl library
`CMake Error at C:/cpp/cmake-3.18.0-rc2-win32-x86/cmake-3.18.0-rc2-win32-x86/share/cmake-3.18/Modules/ExternalProject.cmake:2346 (message):
error: could not find git for clone of libigl-download
Call Stack (most recent call first):
C:/cpp/cmake-3.18.0-rc2-win32-x86/cmake-3.18.0-rc2-win32-x86/share/cmake-3.18/Modules/ExternalProject.cmake:3224 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
CMake Error at cmake/DownloadProject.cmake:171 (message):
CMake step for libigl failed: 1
Call Stack (most recent call first):
cmake/FloatTetwildDownloadExternal.cmake:15 (download_project)
cmake/FloatTetwildDownloadExternal.cmake:29 (float_tetwild_download_project)
cmake/FloatTetwildDependencies.cmake:44 (float_tetwild_download_libigl)
CMakeLists.txt:82 (include)`
I am running on windows 10 and using visual studio 2019 command prompt to execute the commands.
Is there something I am doing wrong in regards to the installation with cmake?
Thank you,
Christopher
Hi. I am wondering if this tool is capable of, instead of fulfilling the mesh's interior, generating a "surface" mesh with a adjustable thickness parameter?
Hello,
this is probably just a question, not an issue, but it bugs me. I hope it can be resolved relatively easily: fTetWild generates a nice tetrahedral mesh of the volume enclosed by the watertight input surface mesh. However, the input vertices do in general not appear among the output vertices - and therefore the input triangles do not even have a chance to appear as faces of output tetrahedra. However, this effect would be very desirable.
How can one force the output tets to conform to the input points and triangles?
Thanks for help.
Hi,
I would like to define my own bounding box for tetrahedralization. I notice that bbox_min and bbox_max are provided in the input parameters but got overwritten with the following piece of code. Is it possible to add a flag in the input parameters to avoid the overwriting behavior?
Vector3 min, max;
get_bb_corners(params, input_vertices, min, max);
mesh.params.bbox_min = min;
mesh.params.bbox_max = max;
Hi,
building fTetWild fails with gcc 13 with the following error:
[ 0%] Building CXX object tbb/CMakeFiles/tbb_static.dir/src/old/concurrent_queue_v2.cpp.o
[ 0%] Building CXX object tbb/CMakeFiles/tbb_static.dir/src/old/concurrent_vector_v2.cpp.o
In file included from /home/marius/projects/emimesh/fTetWild/3rdparty/tbb/src/old/concurrent_vector_v2.cpp:20:
/home/marius/projects/emimesh/fTetWild/3rdparty/tbb/include/tbb/task.h:274:20: error: declaration of ‘tbb::task& tbb::internal::task_prefix::task()’ changes meaning of ‘task’ [-Wchanges-meaning]
274 | tbb::task& task() {return *reinterpret_cast<tbb::task*>(this+1);}
| ^~~~
/home/marius/projects/emimesh/fTetWild/3rdparty/tbb/include/tbb/task.h:233:9: note: used here to mean ‘class tbb::task’
233 | task* next_offloaded;
| ^~~~
/home/marius/projects/emimesh/fTetWild/3rdparty/tbb/include/tbb/task.h:29:7: note: declared here
29 | class task;
| ^~~~
cc1plus: note: unrecognized command-line option ‘-Wno-keyword-macro’ may have been intended to silence earlier diagnostics
make[2]: *** [tbb/CMakeFiles/tbb_static.dir/build.make:90: tbb/CMakeFiles/tbb_static.dir/src/old/concurrent_vector_v2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1300: tbb/CMakeFiles/tbb_static.dir/all] Error 2
It seems there is already a fix for it in TBB:
I'm running manjaro/arch linux with gcc13.
Cmake outout:
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GCC >= 4.9 detected, enabling colored diagnostics
CMake Deprecation Warning at cmake/Warnings.cmake:2 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
CMakeLists.txt:32 (include)
-- Performing Test IS_SUPPORTED_-Wall
-- Performing Test IS_SUPPORTED_-Wall - Success
-- Performing Test IS_SUPPORTED_-Wextra
-- Performing Test IS_SUPPORTED_-Wextra - Success
-- Performing Test IS_SUPPORTED_-pedantic
-- Performing Test IS_SUPPORTED_-pedantic - Success
-- Performing Test IS_SUPPORTED_-Wunused
-- Performing Test IS_SUPPORTED_-Wunused - Success
-- Performing Test IS_SUPPORTED_-Wno-long-long
-- Performing Test IS_SUPPORTED_-Wno-long-long - Success
-- Performing Test IS_SUPPORTED_-Wpointer-arith
-- Performing Test IS_SUPPORTED_-Wpointer-arith - Success
-- Performing Test IS_SUPPORTED_-Wformat-2
-- Performing Test IS_SUPPORTED_-Wformat-2 - Success
-- Performing Test IS_SUPPORTED_-Wuninitialized
-- Performing Test IS_SUPPORTED_-Wuninitialized - Success
-- Performing Test IS_SUPPORTED_-Wcast-qual
-- Performing Test IS_SUPPORTED_-Wcast-qual - Success
-- Performing Test IS_SUPPORTED_-Wmissing-noreturn
-- Performing Test IS_SUPPORTED_-Wmissing-noreturn - Success
-- Performing Test IS_SUPPORTED_-Wmissing-format-attribute
-- Performing Test IS_SUPPORTED_-Wmissing-format-attribute - Success
-- Performing Test IS_SUPPORTED_-Wredundant-decls
-- Performing Test IS_SUPPORTED_-Wredundant-decls - Success
-- Performing Test IS_SUPPORTED_-Werror-implicit
-- Performing Test IS_SUPPORTED_-Werror-implicit - Failed
-- Performing Test IS_SUPPORTED_-Werror-nonnull
-- Performing Test IS_SUPPORTED_-Werror-nonnull - Success
-- Performing Test IS_SUPPORTED_-Werror-init-self
-- Performing Test IS_SUPPORTED_-Werror-init-self - Success
-- Performing Test IS_SUPPORTED_-Werror-main
-- Performing Test IS_SUPPORTED_-Werror-main - Success
-- Performing Test IS_SUPPORTED_-Werror-missing-braces
-- Performing Test IS_SUPPORTED_-Werror-missing-braces - Success
-- Performing Test IS_SUPPORTED_-Werror-sequence-point
-- Performing Test IS_SUPPORTED_-Werror-sequence-point - Success
-- Performing Test IS_SUPPORTED_-Werror-return-type
-- Performing Test IS_SUPPORTED_-Werror-return-type - Success
-- Performing Test IS_SUPPORTED_-Werror-trigraphs
-- Performing Test IS_SUPPORTED_-Werror-trigraphs - Success
-- Performing Test IS_SUPPORTED_-Werror-array-bounds
-- Performing Test IS_SUPPORTED_-Werror-array-bounds - Success
-- Performing Test IS_SUPPORTED_-Werror-write-strings
-- Performing Test IS_SUPPORTED_-Werror-write-strings - Success
-- Performing Test IS_SUPPORTED_-Werror-address
-- Performing Test IS_SUPPORTED_-Werror-address - Success
-- Performing Test IS_SUPPORTED_-Werror-int-to-pointer-cast
-- Performing Test IS_SUPPORTED_-Werror-int-to-pointer-cast - Success
-- Performing Test IS_SUPPORTED_-Werror-pointer-to-int-cast
-- Performing Test IS_SUPPORTED_-Werror-pointer-to-int-cast - Failed
-- Performing Test IS_SUPPORTED_-Wno-unused-variable
-- Performing Test IS_SUPPORTED_-Wno-unused-variable - Success
-- Performing Test IS_SUPPORTED_-Wunused-but-set-variable
-- Performing Test IS_SUPPORTED_-Wunused-but-set-variable - Success
-- Performing Test IS_SUPPORTED_-Wno-unused-parameter
-- Performing Test IS_SUPPORTED_-Wno-unused-parameter - Success
-- Performing Test IS_SUPPORTED_-Wno-old-style-cast
-- Performing Test IS_SUPPORTED_-Wno-old-style-cast - Success
-- Performing Test IS_SUPPORTED_-Wshadow
-- Performing Test IS_SUPPORTED_-Wshadow - Success
-- Performing Test IS_SUPPORTED_-Wstrict-null-sentinel
-- Performing Test IS_SUPPORTED_-Wstrict-null-sentinel - Success
-- Performing Test IS_SUPPORTED_-Woverloaded-virtual
-- Performing Test IS_SUPPORTED_-Woverloaded-virtual - Success
-- Performing Test IS_SUPPORTED_-Wsign-promo
-- Performing Test IS_SUPPORTED_-Wsign-promo - Success
-- Performing Test IS_SUPPORTED_-Wstack-protector
-- Performing Test IS_SUPPORTED_-Wstack-protector - Success
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing - Success
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing-2
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing-2 - Success
-- Performing Test IS_SUPPORTED_-Wswitch-default
-- Performing Test IS_SUPPORTED_-Wswitch-default - Success
-- Performing Test IS_SUPPORTED_-Wswitch-enum
-- Performing Test IS_SUPPORTED_-Wswitch-enum - Success
-- Performing Test IS_SUPPORTED_-Wswitch-unreachable
-- Performing Test IS_SUPPORTED_-Wswitch-unreachable - Success
-- Performing Test IS_SUPPORTED_-Wcast-align
-- Performing Test IS_SUPPORTED_-Wcast-align - Success
-- Performing Test IS_SUPPORTED_-Wdisabled-optimization
-- Performing Test IS_SUPPORTED_-Wdisabled-optimization - Success
-- Performing Test IS_SUPPORTED_-Winvalid-pch
-- Performing Test IS_SUPPORTED_-Winvalid-pch - Success
-- Performing Test IS_SUPPORTED_-Wpacked
-- Performing Test IS_SUPPORTED_-Wpacked - Success
-- Performing Test IS_SUPPORTED_-Wno-padded
-- Performing Test IS_SUPPORTED_-Wno-padded - Success
-- Performing Test IS_SUPPORTED_-Wstrict-overflow
-- Performing Test IS_SUPPORTED_-Wstrict-overflow - Success
-- Performing Test IS_SUPPORTED_-Wstrict-overflow-2
-- Performing Test IS_SUPPORTED_-Wstrict-overflow-2 - Success
-- Performing Test IS_SUPPORTED_-Wctor-dtor-privacy
-- Performing Test IS_SUPPORTED_-Wctor-dtor-privacy - Success
-- Performing Test IS_SUPPORTED_-Wlogical-op
-- Performing Test IS_SUPPORTED_-Wlogical-op - Success
-- Performing Test IS_SUPPORTED_-Wnoexcept
-- Performing Test IS_SUPPORTED_-Wnoexcept - Success
-- Performing Test IS_SUPPORTED_-Wnon-virtual-dtor
-- Performing Test IS_SUPPORTED_-Wnon-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Wdelete-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Wdelete-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Werror-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Werror-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Werror-delete-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Werror-delete-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Wno-sign-compare
-- Performing Test IS_SUPPORTED_-Wno-sign-compare - Success
-- Performing Test IS_SUPPORTED_-Wnull-dereference
-- Performing Test IS_SUPPORTED_-Wnull-dereference - Success
-- Performing Test IS_SUPPORTED_-fdelete-null-pointer-checks
-- Performing Test IS_SUPPORTED_-fdelete-null-pointer-checks - Success
-- Performing Test IS_SUPPORTED_-Wduplicated-cond
-- Performing Test IS_SUPPORTED_-Wduplicated-cond - Success
-- Performing Test IS_SUPPORTED_-Wmisleading-indentation
-- Performing Test IS_SUPPORTED_-Wmisleading-indentation - Success
-- Performing Test IS_SUPPORTED_-fno-omit-frame-pointer
-- Performing Test IS_SUPPORTED_-fno-omit-frame-pointer - Success
-- Performing Test IS_SUPPORTED_-fno-optimize-sibling-calls
-- Performing Test IS_SUPPORTED_-fno-optimize-sibling-calls - Success
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at /usr/share/cmake/Modules/ExternalProject.cmake:3136 (message):
The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
not set. The policy's OLD behavior will be used. When using a URL
download, the timestamps of extracted files should preferably be that of
the time of extraction, otherwise code that depends on the extracted
contents might not be rebuilt if the URL changes. The OLD behavior
preserves the timestamps from the archive instead, but this is usually not
what you want. Update your project to the NEW behavior or specify the
DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
robustness issue.
Call Stack (most recent call first):
/usr/share/cmake/Modules/ExternalProject.cmake:4345 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Deprecation Warning at 3rdparty/cli11/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at /usr/share/cmake/Modules/ExternalProject.cmake:3136 (message):
The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
not set. The policy's OLD behavior will be used. When using a URL
download, the timestamps of extracted files should preferably be that of
the time of extraction, otherwise code that depends on the extracted
contents might not be rebuilt if the URL changes. The OLD behavior
preserves the timestamps from the archive instead, but this is usually not
what you want. Update your project to the NEW behavior or specify the
DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
robustness issue.
Call Stack (most recent call first):
/usr/share/cmake/Modules/ExternalProject.cmake:4345 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Deprecation Warning at 3rdparty/fmt/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Version: 5.3.0
-- Build type:
-- CXX_STANDARD: 11
-- Performing Test has_std_11_flag
-- Performing Test has_std_11_flag - Success
-- Performing Test has_std_0x_flag
-- Performing Test has_std_0x_flag - Success
-- Performing Test SUPPORTS_VARIADIC_TEMPLATES
-- Performing Test SUPPORTS_VARIADIC_TEMPLATES - Success
-- Performing Test SUPPORTS_INITIALIZER_LIST
-- Performing Test SUPPORTS_INITIALIZER_LIST - Success
-- Performing Test SUPPORTS_ENUM_BASE
-- Performing Test SUPPORTS_ENUM_BASE - Success
-- Performing Test SUPPORTS_TYPE_TRAITS
-- Performing Test SUPPORTS_TYPE_TRAITS - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Looking for open
-- Looking for open - found
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at /usr/share/cmake/Modules/ExternalProject.cmake:3136 (message):
The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
not set. The policy's OLD behavior will be used. When using a URL
download, the timestamps of extracted files should preferably be that of
the time of extraction, otherwise code that depends on the extracted
contents might not be rebuilt if the URL changes. The OLD behavior
preserves the timestamps from the archive instead, but this is usually not
what you want. Update your project to the NEW behavior or specify the
DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
robustness issue.
Call Stack (most recent call first):
/usr/share/cmake/Modules/ExternalProject.cmake:4345 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'libigl'...
HEAD is now at 45cfc79f Viewer crash after calling clear (#1582)
CMake Deprecation Warning at 3rdparty/libigl/cmake/libigl.cmake:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
cmake/FloatTetwildDependencies.cmake:48 (include)
CMakeLists.txt:73 (include)
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'eigen'...
HEAD is now at cf794d3b7 bump to 3.3.7
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Creating target: igl::core (igl)
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'predicates'...
HEAD is now at 5a1d219 Don't hide exactinit.
CMake Deprecation Warning at 3rdparty/libigl/external/predicates/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Creating target: igl::predicates (igl_predicates)
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'geogram'...
HEAD is now at b613750 fix for M1
-- Found Geogram here: /home/marius/projects/emimesh/fTetWild/3rdparty/geogram/src/lib/../..
CMake Deprecation Warning at 3rdparty/geogram/CMakeLists.txt:9 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Using local options file: /home/marius/projects/emimesh/fTetWild/3rdparty/geogram/CMakeOptions.txt
-- Configuring build for standalone Geogram (without Vorpaline)
-- Doxygen >= 1.7.0 not found, cannot generate documentation
CMake Deprecation Warning at 3rdparty/geogram/doc/CMakeLists.txt:7 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'tbb'...
HEAD is now at ddbe45c Export config for shared TBB. (#57)
CMake Deprecation Warning at 3rdparty/tbb/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Setting build type to 'Release' as none was specified.
-- Performing Test SUPPORTS_STDCXX11
-- Performing Test SUPPORTS_STDCXX11 - Success
-- Performing Test SUPPORTS_MRTM
-- Performing Test SUPPORTS_MRTM - Success
-- Performing Test SUPPORTS_FLIFETIME
-- Performing Test SUPPORTS_FLIFETIME - Success
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Cloning into 'json'...
HEAD is now at 0901d33 v3.1.2
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (GMP) does
not match the name of the calling package (GMPfTetWild). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/FindGMPfTetWild.cmake:32 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:79 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found GMP: /usr/include
-- GMP libs: /usr/lib/libgmp.so /usr/include
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at /usr/share/cmake/Modules/ExternalProject.cmake:3136 (message):
The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
not set. The policy's OLD behavior will be used. When using a URL
download, the timestamps of extracted files should preferably be that of
the time of extraction, otherwise code that depends on the extracted
contents might not be rebuilt if the URL changes. The OLD behavior
preserves the timestamps from the archive instead, but this is usually not
what you want. Update your project to the NEW behavior or specify the
DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
robustness issue.
Call Stack (most recent call first):
/usr/share/cmake/Modules/ExternalProject.cmake:4345 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Performing Test HAVE_FLAG__ffile_prefix_map__home_marius_projects_emimesh_fTetWild_3rdparty_Catch2__
-- Performing Test HAVE_FLAG__ffile_prefix_map__home_marius_projects_emimesh_fTetWild_3rdparty_Catch2__ - Success
-- Configuring done (32.7s)
-- Generating done (0.0s)
-- Build files have been written to: /home/marius/projects/emimesh/fTetWild/build
When compiling with tbb, I got the following error:
Simplification.cpp:396:13: error: use of undeclared identifier 'sm_queue'
sm_queue.push(ElementInQueue(std::array<int, 2>({{v2_id, v_id}}), weight));
It seems like sm_queue
is not declared under preprocessor #ifdef FLOAT_TETWILD_USE_TBB
in Simplification.cpp, or maybe I miss something? Thanks
I'm building fTetWild on Windows, and after following the instructions here Yixin-Hu/TetWild#44 I succeeded in producing an .exe, but then double-clicking that .exe produces the following error:
By looking through this thread #12 I managed to find the required DLL in C:\ProgramData\Anaconda3\pkgs\mpir-3.0.0-hec2e145_1\Library\bin
, and now the .exe seems to work, but this should probably be included in the build instructions
Hi,
First, fTetWild seems like an even better implementation of TetWild, which is saying a lot. Great job!
I opened a related issue on TetWild's repo earlier today, and my motivation is just as I stated over there. Fundamentally, I am trying to figure out a way to take multiple triangulated manifolds, create a tetrahedralization of the union, but still be able to identify which region each resulting tetrahedron belongs to. (see figure below for an example of the overlapping manifolds)
Same model with semi-transparency to make the point of intersections
fTetWild does a great job tetrahedralizing the union (with better performance than TetWild), though I am still stuck trying to figure out how one might determine the corresponding region. Ideally (to me) each tetrahedra would be colored by some combination of the tags of the manifolds that contain them (perhaps a hash of the list of manifold tags that contain them), though I do not understand you algorithm enough to grasp the feasibility or method to implement such a method. I dabbled with the boolean operations to see if I could perform a sequence of operations on groups of manifolds at a time to create a tetrahedralization of each region, but I am encountering runtime errors for many of the operations. So my question is two-fold:
Thanks for your time!
Keith Ballard
A few functions in the source code look like they were generated by some tool from something else, maybe from symbolic math.
Specifically, they are AMIPS_energy_aux
, AMIPS_jacobian
, and AMIPS_hessian
. I don’t think people write C++ code like that.
Could you please open the actual source of that code, as opposed to output of a code generator?
Thanks in advance.
I'm wondering if I can make fTetWild work for domains which have separate subdomains in them, e.g., a ball in a box. If I understand correctly, fTetWild's union operation dissolves subdomain boundaries. I need to have that boundary (approximately) preserved though, and also need to be able to recover the subdomain tet meshes. The mesh should be conformant across the boundaries.
After mesh simplification, there is a probability that holes will appear. Try it a few more times, and each time the results are different: sometimes holes are produced, sometimes no holes are produced. I think it's a data race problem when parallel edge collapse.
Can this be adapted for real time game isosurface generation and manipulation?
I need to compile fTetWild with mingw on windows but got the following errors. I believe some settings need to be done for geogram. Any clue?
Scanning dependencies of target geogram_third_party [ 22%] Building C object geogram/src/lib/geogram/third_party/CMakeFiles/geogram_third_party.dir/LM7/libmeshb7.c.obj gcc.exe: error: /D_SECURE_SCL=0: No such file or directory gcc.exe: error: /GS-: No such file or directory gcc.exe: error: /Ox: No such file or directory gcc.exe: error: /nologo: No such file or directory gcc.exe: error: /MP: No such file or directory gcc.exe: error: /wd4275: No such file or directory gcc.exe: error: /wd4996: No such file or directory gcc.exe: error: /wd4512: No such file or directory gcc.exe: error: /bigobj: No such file or directory gcc.exe: error: /W3: No such file or directory gcc.exe: error: /wd4245: No such file or directory gcc.exe: error: /wd4389: No such file or directory
Hi, after cmake, I choose Visual Studio 2019 to generate FloatTetwild_bin.
And i had this error.
D:\Mesh2Tet-main\fTetWild\build\Debug\FloatTetwild_bin.exe : fatal error LNK1169: one or more multiply defined symbols were found
Hi,
I have difficulties in understanding the input parameters "manifold_surface" and "input_tags".
(1) Is it a better choice to set manifold_surface to true since it guarantees a 2-manifold output? Why does the author set it to false by default?
(2) What's the meaning of "input_tags" and how to use it?
Thanks!
Hi,
A quick question about the parameter "skip_simplify". What's the benefits and drawback of setting skip_simplify to be true?
Thanks!
I came across following problem:
if I build fTetWild on linux ( Linux Mint 19.3, gcc 7.5.0) , then running FloatTetwild_bin -i test_surface.ply -o test_surface.msh
works as expected. But if i integrate fTetWild as a library, and run the same operation , I am getting an error:
Assertion failed: Delta4_sign != ZERO.
File: ../external/fTetWild/3rdparty/geogram/src/lib/geogram/numerics/predicates.cpp,
Line: 1184
my code , based on this comment: libigl/libigl#1535 :
floatTetWild::Parameters tetwild_par;
GEO::Mesh sf_mesh;
std::vector<Eigen::Vector3d> points;
std::vector<Eigen::Vector3i> faces;
std::vector<int> input_tags;
floatTetWild::MeshIO::load_mesh("test_surface.ply",points, faces, sf_mesh, input_tags);
Eigen::MatrixXd X;
Eigen::MatrixXi Tet;
floatTetWild::tetrahedralization(sf_mesh, tetwild_par, X ,Tet);
Hello,
Is it possible to map from input triangles to output surface triangles using either fTetWild or TetWild? In other words, given a face on the input mesh, can I obtain all the corresponding output surface triangles?
Thanks!
Hi,
Would it be possible to add this functionality to the python wrappers?
Best
Kenny
I have built on both Windows 10 and Ubuntu 18.04. I have tried a few meshes and they all end with abnormal termination. For example, for this STL mesh: https://www.thingiverse.com/thing:11747
On Windows:
...
//////////////// postprocessing ////////////////
edge collapsing...
fixed 0 tangled element
success(env) = 17
success = 94(75311)
success(env) = 0
success = 2(9010)
success(env) = 0
success = 3(276)
success(env) = 0
success = 0(167)
edge collapsing done!
time = 16.3926s
#v = 6292
#t = 33571
max_energy = 7.924
avg_energy = 4.05864
[2020-08-01 10:38:55.925] [float-tetwild] [info] mesh optimization 302.945s
[2020-08-01 10:38:55.925] [float-tetwild] [info]
[2020-08-01 10:38:56.450] [float-tetwild] [info] correct_tracked_surface_orientation done
[2020-08-01 10:39:19.279] [float-tetwild] [info] after winding number
[2020-08-01 10:39:19.281] [float-tetwild] [info] #v = 2925
[2020-08-01 10:39:19.290] [float-tetwild] [info] #t = 8161
Abnormal program termination: [2020-08-01 10:39:19.290] [float-tetwild] [function terminate() was called
info
On Linux:
...
//////////////// postprocessing ////////////////
edge collapsing...
fixed 0 tangled element
success(env) = 12
success = 83(77850)
success(env) = 4
success = 7(7278)
success(env) = 0
success = 5(930)
success(env) = 1
success = 1(511)
success(env) = 0
success = 0(127)
edge collapsing done!
time = 0.315616s
#v = 6463
#t = 34688
max_energy = 7.8915
avg_energy = 4.03743
[2020-08-01 15:34:15.472] [float-tetwild] [info] mesh optimization 5.74474s
[2020-08-01 15:34:15.472] [float-tetwild] [info]
[2020-08-01 15:34:15.491] [float-tetwild] [info] correct_tracked_surface_orientation done
[2020-08-01 15:34:15.565] [float-tetwild] [info] after winding number
terminate called after throwing an instance of '[2020-08-01 15:34:15.565] [float-tetwild] [info] #v = 3004
std::length_error[2020-08-01 15:34:15.565] [float-tetwild] [info] #t = 8433
'
[2020-08-01 15:34:15.565] [float-tetwild] [info] winding number 0.092569s
what(): [2020-08-01 15:34:15.565] [float-tetwild] [info]
vector::_M_default_append
Aborted (core dumped)
I also noticed how much longer it takes on Windows, and that the number of vertices and such are different. I'm chalking that up to different precision or the GMP library, but I would like to find out the reason as well.
EDIT: FloatTetwild_bin -i beam-9x1.stl
was the command used, defaults only
Thanks for the great work.
I was receiving the error when running the program:
libc++abi.dylib: terminating with uncaught exception of type std::length_error: vector
Do you have any idea what should I do?
Best,
Hello, professor!
I recently found an issue when using this code, the code doesn't seem to remove the mesh outside the geometry in advance before optimizing the mesh. This leads to a huge increase in the time cost and space cost of mesh optimization, after all, most people only want the mesh inside the geometry. I counted the changes in the number of grids before and after filter_outside, which further confirmed my judgment.
I would like to ask if my problem is real, and if so, I would like to optimize this problem to improve the efficiency of the code.
I really hope you can give me some information about this.
hello,I got a problem when I try to run the order "cmake .."
(It seems like the same problem metioned in TetWild's Issuues which helped me inrunning TetWild but not the same in ftetwild)
here it is
[root@localhost build]# cmake ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test IS_SUPPORTED_-Wall
-- Performing Test IS_SUPPORTED_-Wall - Success
-- Performing Test IS_SUPPORTED_-Wextra
-- Performing Test IS_SUPPORTED_-Wextra - Success
-- Performing Test IS_SUPPORTED_-pedantic
-- Performing Test IS_SUPPORTED_-pedantic - Success
-- Performing Test IS_SUPPORTED_-Wunused
-- Performing Test IS_SUPPORTED_-Wunused - Success
-- Performing Test IS_SUPPORTED_-Wno-long-long
-- Performing Test IS_SUPPORTED_-Wno-long-long - Success
-- Performing Test IS_SUPPORTED_-Wpointer-arith
-- Performing Test IS_SUPPORTED_-Wpointer-arith - Success
-- Performing Test IS_SUPPORTED_-Wformat-2
-- Performing Test IS_SUPPORTED_-Wformat-2 - Success
-- Performing Test IS_SUPPORTED_-Wuninitialized
-- Performing Test IS_SUPPORTED_-Wuninitialized - Success
-- Performing Test IS_SUPPORTED_-Wcast-qual
-- Performing Test IS_SUPPORTED_-Wcast-qual - Success
-- Performing Test IS_SUPPORTED_-Wmissing-noreturn
-- Performing Test IS_SUPPORTED_-Wmissing-noreturn - Success
-- Performing Test IS_SUPPORTED_-Wmissing-format-attribute
-- Performing Test IS_SUPPORTED_-Wmissing-format-attribute - Success
-- Performing Test IS_SUPPORTED_-Wredundant-decls
-- Performing Test IS_SUPPORTED_-Wredundant-decls - Success
-- Performing Test IS_SUPPORTED_-Werror-implicit
-- Performing Test IS_SUPPORTED_-Werror-implicit - Success
-- Performing Test IS_SUPPORTED_-Werror-nonnull
-- Performing Test IS_SUPPORTED_-Werror-nonnull - Success
-- Performing Test IS_SUPPORTED_-Werror-init-self
-- Performing Test IS_SUPPORTED_-Werror-init-self - Success
-- Performing Test IS_SUPPORTED_-Werror-main
-- Performing Test IS_SUPPORTED_-Werror-main - Success
-- Performing Test IS_SUPPORTED_-Werror-missing-braces
-- Performing Test IS_SUPPORTED_-Werror-missing-braces - Success
-- Performing Test IS_SUPPORTED_-Werror-sequence-point
-- Performing Test IS_SUPPORTED_-Werror-sequence-point - Success
-- Performing Test IS_SUPPORTED_-Werror-return-type
-- Performing Test IS_SUPPORTED_-Werror-return-type - Success
-- Performing Test IS_SUPPORTED_-Werror-trigraphs
-- Performing Test IS_SUPPORTED_-Werror-trigraphs - Success
-- Performing Test IS_SUPPORTED_-Werror-array-bounds
-- Performing Test IS_SUPPORTED_-Werror-array-bounds - Success
-- Performing Test IS_SUPPORTED_-Werror-write-strings
-- Performing Test IS_SUPPORTED_-Werror-write-strings - Success
-- Performing Test IS_SUPPORTED_-Werror-address
-- Performing Test IS_SUPPORTED_-Werror-address - Success
-- Performing Test IS_SUPPORTED_-Werror-int-to-pointer-cast
-- Performing Test IS_SUPPORTED_-Werror-int-to-pointer-cast - Success
-- Performing Test IS_SUPPORTED_-Werror-pointer-to-int-cast
-- Performing Test IS_SUPPORTED_-Werror-pointer-to-int-cast - Success
-- Performing Test IS_SUPPORTED_-Wno-unused-variable
-- Performing Test IS_SUPPORTED_-Wno-unused-variable - Success
-- Performing Test IS_SUPPORTED_-Wunused-but-set-variable
-- Performing Test IS_SUPPORTED_-Wunused-but-set-variable - Success
-- Performing Test IS_SUPPORTED_-Wno-unused-parameter
-- Performing Test IS_SUPPORTED_-Wno-unused-parameter - Success
-- Performing Test IS_SUPPORTED_-Wno-old-style-cast
-- Performing Test IS_SUPPORTED_-Wno-old-style-cast - Success
-- Performing Test IS_SUPPORTED_-Wshadow
-- Performing Test IS_SUPPORTED_-Wshadow - Success
-- Performing Test IS_SUPPORTED_-Wstrict-null-sentinel
-- Performing Test IS_SUPPORTED_-Wstrict-null-sentinel - Success
-- Performing Test IS_SUPPORTED_-Woverloaded-virtual
-- Performing Test IS_SUPPORTED_-Woverloaded-virtual - Success
-- Performing Test IS_SUPPORTED_-Wsign-promo
-- Performing Test IS_SUPPORTED_-Wsign-promo - Success
-- Performing Test IS_SUPPORTED_-Wstack-protector
-- Performing Test IS_SUPPORTED_-Wstack-protector - Success
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing - Success
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing-2
-- Performing Test IS_SUPPORTED_-Wstrict-aliasing-2 - Success
-- Performing Test IS_SUPPORTED_-Wswitch-default
-- Performing Test IS_SUPPORTED_-Wswitch-default - Success
-- Performing Test IS_SUPPORTED_-Wswitch-enum
-- Performing Test IS_SUPPORTED_-Wswitch-enum - Success
-- Performing Test IS_SUPPORTED_-Wswitch-unreachable
-- Performing Test IS_SUPPORTED_-Wswitch-unreachable - Failed
-- Performing Test IS_SUPPORTED_-Wcast-align
-- Performing Test IS_SUPPORTED_-Wcast-align - Success
-- Performing Test IS_SUPPORTED_-Wdisabled-optimization
-- Performing Test IS_SUPPORTED_-Wdisabled-optimization - Success
-- Performing Test IS_SUPPORTED_-Winvalid-pch
-- Performing Test IS_SUPPORTED_-Winvalid-pch - Success
-- Performing Test IS_SUPPORTED_-Wpacked
-- Performing Test IS_SUPPORTED_-Wpacked - Success
-- Performing Test IS_SUPPORTED_-Wno-padded
-- Performing Test IS_SUPPORTED_-Wno-padded - Success
-- Performing Test IS_SUPPORTED_-Wstrict-overflow
-- Performing Test IS_SUPPORTED_-Wstrict-overflow - Success
-- Performing Test IS_SUPPORTED_-Wstrict-overflow-2
-- Performing Test IS_SUPPORTED_-Wstrict-overflow-2 - Success
-- Performing Test IS_SUPPORTED_-Wctor-dtor-privacy
-- Performing Test IS_SUPPORTED_-Wctor-dtor-privacy - Success
-- Performing Test IS_SUPPORTED_-Wlogical-op
-- Performing Test IS_SUPPORTED_-Wlogical-op - Success
-- Performing Test IS_SUPPORTED_-Wnoexcept
-- Performing Test IS_SUPPORTED_-Wnoexcept - Success
-- Performing Test IS_SUPPORTED_-Wnon-virtual-dtor
-- Performing Test IS_SUPPORTED_-Wnon-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Wdelete-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Wdelete-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Werror-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Werror-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Werror-delete-non-virtual-dtor
-- Performing Test IS_SUPPORTED_-Werror-delete-non-virtual-dtor - Success
-- Performing Test IS_SUPPORTED_-Wno-sign-compare
-- Performing Test IS_SUPPORTED_-Wno-sign-compare - Success
-- Performing Test IS_SUPPORTED_-Wnull-dereference
-- Performing Test IS_SUPPORTED_-Wnull-dereference - Failed
-- Performing Test IS_SUPPORTED_-fdelete-null-pointer-checks
-- Performing Test IS_SUPPORTED_-fdelete-null-pointer-checks - Success
-- Performing Test IS_SUPPORTED_-Wduplicated-cond
-- Performing Test IS_SUPPORTED_-Wduplicated-cond - Failed
-- Performing Test IS_SUPPORTED_-Wmisleading-indentation
-- Performing Test IS_SUPPORTED_-Wmisleading-indentation - Failed
-- Performing Test IS_SUPPORTED_-fno-omit-frame-pointer
-- Performing Test IS_SUPPORTED_-fno-omit-frame-pointer - Success
-- Performing Test IS_SUPPORTED_-fno-optimize-sibling-calls
-- Performing Test IS_SUPPORTED_-fno-optimize-sibling-calls - Success
CMake Error at .cache/cli11/cli11-download-prefix/src/cli11-download-stamp/downl oad-cli11-download.cmake:159 (message):
Each download failed!
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.tar.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.ta r.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.ta r.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.ta r.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.ta r.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
error: downloading 'https://github.com/CLIUtils/CLI11/archive/v1.8.0.ta r.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log:
--- LOG BEGIN ---
Protocol "https" not supported or disabled in libcurl
Closing connection -1
--- LOG END ---
gmake[2]: *** [cli11-download-prefix/src/cli11-download-stamp/cli11-download-dow nload] 错误 1
gmake[1]: *** [CMakeFiles/cli11-download.dir/all] 错误 2
gmake: *** [all] 错误 2
CMake Error at cmake/DownloadProject.cmake:179 (message):
Build step for cli11 failed: 2
Call Stack (most recent call first):
cmake/FloatTetwildDownloadExternal.cmake:15 (download_project)
cmake/FloatTetwildDownloadExternal.cmake:53 (float_tetwild_download_project)
cmake/FloatTetwildDependencies.cmake:20 (float_tetwild_download_cli11)
CMakeLists.txt:73 (include)
-- Configuring incomplete, errors occurred!
See also "/root/fTetWild/build/CMakeFiles/CMakeOutput.log".
See also "/root/fTetWild/build/CMakeFiles/CMakeError.log".
I'd be appreciated if i can get some advice. THANKS!!
Hello,
a simple question: a cube and a cylinder touch.
Is it possible to: compute the mesh of the (non manifold) union using the triangulation of the non manifold union
and distinguish the tehreahedra of the two volume grids?
The mesh should be conformal at the interfacece.
How to using a fTetwild command line? (Or C++ code)
I attached some pictures.
Ciao
Grazie mille
Giovanni
geometry
Hi, I'm having trouble compiling on windows - I have installed conda and mpir, but I keep getting linker errors such as
FloatTetwild.lib(LocalOperations.obj) : error LNK2001: unresolved external symbol ___gmpq_add [D:\ftet\build\FloatTetwild_bin.vcxproj]
is there something I should try?
Best,
Libor Vasa
Hello,
When I try to install gmp on Ubuntu by using this command:
sudo apt-get install gmp
it says:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gmp
Does anyone know what's wrong here?
Thanks!
Where can I find an example of how to do CSG operations with fTetWild?
The code has no license and therefore can't be used for anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.