incldue README

disable MeshFix on windows 10
This commit is contained in:
PavelMikus 2022-06-06 15:05:51 +02:00 committed by Lukas Matena
parent 04ac99a54e
commit 52b80590c3
2 changed files with 116 additions and 0 deletions

114
src/mesh_fix/README.txt Normal file
View File

@ -0,0 +1,114 @@
This distribution of MeshFix-V2.1 library is only meant for interfacing MeshFix-V2.1 with Slic3rPE
(https://github.com/prusa3d/PrusaSlicer).
The MeshFix-V2.1 source file was acquired from https://github.com/MarcoAttene/MeshFix-V2.1 at revision
e9399efd6954f6f38e19852226241839a4e1cd53.
We did various changes and fixes to the original library:
- removed void pointers, substituted with pointers to Data struct (with virtual destructor)
- all structs stored previously in void ptr now inherit from the added Data struct
- created double and int wrapper which inherits from Data
- fixed detected unefined behaviours
- fixed detected buffer over/underflows
Many thanks to Marco Attene and other contributors.
Pavel Mikus (pavel.mikus@prusa3d.cz)
6.6.2022
See original contents of the README file below.
======================================================================================
======================================================================================
======================================================================================
----------------------------
MeshFIX - Version 2.1
----------------------------
by Marco Attene
Consiglio Nazionale delle Ricerche
Istituto di Matematica Applicata e Tecnologie Informatiche
Sezione di Genova
IMATI-GE / CNR
This software takes as input a polygon mesh and produces a copy of the input where all the occurrences of a specific set of "defects" are corrected. MeshFix has been designed to correct typical flaws present in RAW DIGITIZED mesh models, thus it might fail or produce coarse results if run on other sorts of input meshes (e.g. tessellated CAD models). When the software fails, it appends a textual description to the file "meshfix.log".
The input is assumed to represent a single CLOSED SOLID OBJECT, thus the output will be a SINGLE WATERTIGHT TRIANGLE MESH bounding a polyhedron. All the singularities, self-intersections and degenerate elements are removed from the input, while regions of the surface without defects are left unmodified. Accepted input file formats are:
STL (http://www.sdsc.edu/tmf/Stl-specs/stl.html)
OFF (http://shape.cs.princeton.edu/benchmark/documentation/off_format.html)
PLY (http://www.cs.unc.edu/~geom/Powerplant/Ply.doc)
and partially:
IV 2.1, VRML 1.0, VRML 2.0, OBJ.
-----------------------------
ALGORITHM AND CITATION POLICY
-----------------------------
To better understand how the algorithm works, please refer to the following paper:
M. Attene.
A lightweight approach to repairing digitized polygon meshes.
The Visual Computer, 2010. (c) Springer. DOI: 10.1007/s00371-010-0416-3
This software is based on ideas published therein. If you use MeshFix for research purposes you should cite the above paper in your published results. MeshFix cannot be used for commercial purposes without a proper licensing contract.
----------
PARAMETERS
----------
The user may want to force the software to join the connected components [-a] whose boundary loops are closer to each other. Otherwise, only the largest component is kept while the others are considered as "noise". By default, the output file is in OFF format. The user may change this to STL [-j]. If the software is run as part of a script that processes all the files in a directory, the parameter [-x] may be useful to avoid to re-run the repairing of a mesh if its result already exists as a file.
-------------------
COMMAND LINE SYNTAX
-------------------
Run MeshFix without parameters to get the synopsis.
---------------------
OTHER LAUNCHING MODES
---------------------
A mesh can also be fixed my simply dragging its icon on MeshFix's icon. In this case, only default parameters can be used.
MeshFix does not require any interaction, thus it can be inserted into a script to automatically repair all the models of a given repository (e.g. a folder). If some failure cases occur, they will be logged to "meshfix.log" and thus can be easily located and possibly processed is a second stage through interactive software tools such as ReMESH (http://remesh.sourceforge.net).
---------------------
SOURCE CODE
---------------------
From version 2.0 MeshFix is self-contained, that is, it does not depend on any other software.
To compile the source code on Windows you need Microsoft Visual C++ 2013 or newer.
Just click on vc12/MeshFix_All.sln and hit F7.
The executable will be saved in bin/.
Both 32bit and 64bit versions can be produced.
The source code is standard ANSI C++ and should be portable.
To compile on other configurations you may use CMake (thanks to Jeremie Dumas for having created the CMakeLists!).
---------
Copyright
---------
MeshFix is
Copyright(C) 2010: IMATI-GE / CNR
All rights reserved.
This program is dual-licensed as follows:
(1) You may use MeshFix as free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
In this case the program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
for more details.
(2) You may use MeshFix as part of a commercial software. In this case a
proper agreement must be reached with the Authors and with IMATI-GE/CNR
based on a proper licensing contract.

View File

@ -703,6 +703,8 @@ wxMenuItem* MenuFactory::append_menu_item_fix_through_netfabb(wxMenu* menu)
wxMenuItem* MenuFactory::append_menu_item_fix_through_meshfix(wxMenu* menu)
{
if (is_windows10())
return nullptr;
wxMenuItem* menu_item = append_menu_item(menu, wxID_ANY, _L("Fix through MeshFix (experimental)"), "",
[](wxCommandEvent&) { obj_list()->repair_mesh(ObjectList::rmaMeshfix); }, "", menu,
[]() {return plater()->can_repair_mesh(); }, m_parent);