graphics/meshlab: Updated for version 2016.12.

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
This commit is contained in:
David Spencer 2017-04-19 22:52:08 +01:00 committed by Willy Sudiarto Raharjo
parent b1944c22f3
commit 655aa63537
10 changed files with 347 additions and 42 deletions

View File

@ -23,16 +23,14 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=meshlab
VERSION=${VERSION:-1.3.3}
BUILD=${BUILD:-2}
VERSION=${VERSION:-2016.12}
VCGLIBVER=${VCGLIBVER:-1.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
SRCNAM=MeshLabSrc_AllInc
SRCVER=$(echo $VERSION | sed 's/\.//g')
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@ -43,8 +41,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@ -62,38 +60,57 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
tar xvf $CWD/${SRCNAM}_v${SRCVER}.tgz
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# see http://sourceforge.net/p/meshlab/bugs/342/
patch -p1 < $CWD/plystuff.diff
# fix silly lapack error in ancient levmar (thanks to net147 over at Arch)
patch -p1 -d meshlab < $CWD/lapack.patch
# use external mpir -- meshlab ships x86_64 static libs, but no src or libs for i486
sed -i -e '/mpir/d' meshlab/src/meshlabplugins/filter_csg/filter_csg.pro
rm -rf meshlab
tar xvf $CWD/meshlab-$VERSION.tar.gz --transform="s#^meshlab-$VERSION/#meshlab/#"
# Build all the dependencies. These will be statically linked into meshlab.
# (Horrible duplication and many out of date, but avoids version clashes)
cd meshlab/src/external
qmake -recursive external.pro
make \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
rm -rf vcglib
tar xvf $CWD/vcglib-$VCGLIBVER.tar.gz --transform="s#^vcglib-$VCGLIBVER/#vcglib/#"
chown -R root:root meshlab vcglib
find -L meshlab vcglib \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
cd meshlab
# patches from or via Arch
patch -p1 < $CWD/patches/mpir.patch # use external library, see also below
patch -p1 < $CWD/patches/bzip2.patch # use external library, see also below
patch -p1 < $CWD/patches/muparser.patch # use external library, see also below
patch -p1 < $CWD/patches/levmar.patch # use external library, see also below
patch -p1 < $CWD/patches/lapack.patch # enable lapack
# fix derpy filename
mv src/plugins_experimental/io_TXT/io_txt.pro src/plugins_experimental/io_TXT/io_TXT.pro
# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/1e2a54c
patch -p1 < $CWD/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch
# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/612388c
patch -p1 < $CWD/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch
# Build the supplied dependencies (they will be statically linked into meshlab)
cd src/external
# don't use meshlab's ancient mpir
rm -rf inc/ lib/ # <-- mpir in these dirs
# and don't use meshlab's ancient bzip2, muParser, levmar
sed -i \
-e 's/bzip2.*pro//' -e '/muparser/d' -e '/levmar/d' \
external.pro
qmake-qt5 -recursive external.pro \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -std=c++11"
make
# Build meshlab
cd ..
qmake -recursive meshlab_full.pro
make \
# Build meshlab itself
qmake-qt5 -recursive meshlab_mini.pro \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -fpermissive"
CXXFLAGS="$SLKCFLAGS -std=c++11"
make
mkdir -p $PKG/opt
cp -a distrib/ $PKG/opt/meshlab
@ -118,7 +135,7 @@ cp \
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
README.txt \
$TMP/$PRGNAM/LICENSE.txt $TMP/$PRGNAM/README.md \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

View File

@ -1,10 +1,12 @@
PRGNAM="meshlab"
VERSION="1.3.3"
HOMEPAGE="http://meshlab.sourceforge.net/"
DOWNLOAD="http://downloads.sourceforge.net/meshlab/MeshLabSrc_AllInc_v133.tgz"
MD5SUM="cbdd83d4f3ed69e7a9837c34ebae307a"
VERSION="2016.12"
HOMEPAGE="http://www.meshlab.net/"
DOWNLOAD="https://github.com/cnr-isti-vclab/meshlab/archive/v2016.12/meshlab-2016.12.tar.gz \
https://github.com/cnr-isti-vclab/vcglib/archive/v1.0.1/vcglib-1.0.1.tar.gz"
MD5SUM="a7f371fb142b9b1c2ff7ae5381900d42 \
4fee598c1b3c4f8ceca7086fd68cf75d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="lapack mpir"
REQUIRES="levmar muParser mpir qt5"
MAINTAINER="David Spencer"
EMAIL="baildon.research@googlemail.com"

View File

@ -0,0 +1,79 @@
From 1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df Mon Sep 17 00:00:00 2001
From: Guido Ranzuglia <guido.ranzuglia@isti.cnr.it>
Date: Mon, 9 Jan 2017 17:51:01 +0100
Subject: [PATCH] - added locale support to MeshLab&MeshLabServer -fixed "not
enough memory" bug in MeshLabServer
---
src/meshlab/main.cpp | 2 ++
src/meshlabserver/mainserver.cpp | 21 ++++++++++++++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/meshlab/main.cpp b/src/meshlab/main.cpp
index eee69b9..068e8ab 100644
--- a/src/meshlab/main.cpp
+++ b/src/meshlab/main.cpp
@@ -24,11 +24,13 @@
#include <QMessageBox>
#include "mainwindow.h"
#include <QString>
+#include <clocale>
int main(int argc, char *argv[])
{
MeshLabApplication app(argc, argv);
+ std::setlocale(LC_ALL, "C");
QLocale::setDefault(QLocale::C);
QCoreApplication::setOrganizationName(MeshLabApplication::organization());
#if QT_VERSION >= 0x050100
diff --git a/src/meshlabserver/mainserver.cpp b/src/meshlabserver/mainserver.cpp
index ab9a7c0..28b86c3 100644
--- a/src/meshlabserver/mainserver.cpp
+++ b/src/meshlabserver/mainserver.cpp
@@ -29,7 +29,10 @@
#include <common/filterscript.h>
#include <common/meshlabdocumentxml.h>
#include <common/mlexception.h>
+#include <common/filterparameter.h>
#include <wrap/qt/qt_thread_safe_memory_info.h>
+#include "../meshlab/mainwindow.h"
+#include <clocale>
#include <QFileInfo>
@@ -619,11 +622,11 @@ struct OutProject
int main(int argc, char *argv[])
{
-
-
FILE* logfp = stdout;
FILE* dumpfp = NULL;
MeshLabApplication app(argc, argv);
+ std::setlocale(LC_ALL, "C");
+ QLocale::setDefault(QLocale::C);
if(argc == 1)
{
commandline::usage();
@@ -645,9 +648,17 @@ int main(int argc, char *argv[])
exit(-1);
}
- QSettings st;
- QVariant mbvar = st.value("MeshLab::System::maxGPUMemDedicatedToGeometry");
- std::ptrdiff_t maxgpumem = (std::ptrdiff_t)mbvar.toInt() * (float)(1024 * 1024);
+ QSettings settings(MeshLabApplication::organization(),MeshLabApplication::appArchitecturalName(MeshLabApplication::HW_64BIT));
+
+ QVariant xmlgpupar = settings.value(MainWindowSetting::maximumDedicatedGPUMem());
+
+ QDomDocument doc;
+ doc.setContent(xmlgpupar.toString(), false);
+
+ QDomElement paramelem = doc.firstChild().toElement();
+ int gpumemmb = paramelem.attribute("value").toInt();
+
+ std::ptrdiff_t maxgpumem = (std::ptrdiff_t) gpumemmb * (float)(1024 * 1024);
vcg::QtThreadSafeMemoryInfo gpumeminfo(maxgpumem);
MeshDocument meshDocument;

View File

@ -0,0 +1,28 @@
From 612388c42d00ab8eba1d9626a7da33a18c724d76 Mon Sep 17 00:00:00 2001
From: bartoszek <bartus@yopmail.com>
Date: Sun, 15 Jan 2017 22:19:18 +0100
Subject: [PATCH] add missing linker flag for linux
also extend post link file copying to include linux build ( linking is somewhat strange but wont work without )
---
src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
index 814bd31..a93f67a 100644
--- a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
+++ b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
@@ -2,6 +2,7 @@ include (../../shared.pri)
macx:QMAKE_CXX = clang++-mp-3.9
macx:QMAKE_LFLAGS += -L/opt/local/lib/libomp -lomp
+linux:QMAKE_LFLAGS += -lgomp
macx:QMAKE_CXXFLAGS_RELEASE+= -O3 -DRELEASE -funroll-loops -ffast-math -Wno-sign-compare -Wno-unused-parameter
QMAKE_CXXFLAGS+=-fopenmp
@@ -22,4 +23,4 @@ DEFINES += FOR_RELEASE
#PRE_TARGETDEPS += ./filter_screened_poisson.xml
macx:QMAKE_POST_LINK = "cp "$$_PRO_FILE_PWD_/$$TARGET".xml ../../distrib/plugins/"$$TARGET".xml"
-
+linux:QMAKE_POST_LINK = "cp "$$_PRO_FILE_PWD_/$$TARGET".xml ../../distrib/plugins/"$$TARGET".xml; cd ../../distrib/plugins/ ; ln -s "$$TARGET".xml lib"$$TARGET".xml"

View File

@ -0,0 +1,26 @@
diff -Naur -r meshlab.orig/src/meshlabplugins/edit_arc3D/edit_arc3D.pro meshlab/src/meshlabplugins/edit_arc3D/edit_arc3D.pro
--- meshlab.orig/src/meshlabplugins/edit_arc3D/edit_arc3D.pro 2016-10-31 21:31:43.301625217 +0100
+++ meshlab/src/meshlabplugins/edit_arc3D/edit_arc3D.pro 2016-10-31 21:36:46.694965117 +0100
@@ -35,9 +35,9 @@
win32-msvc2013:LIBS += ../../external/lib/win32-msvc2013/bz2.lib
win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/bz2.lib
win32-g++:LIBS += ../../external/lib/win32-gcc/libbz2.a
-linux-g++:LIBS += ../../external/lib/linux-g++/libbz2.a
-linux-g++-32:LIBS += ../../external/lib/linux-g++-32/libbz2.a
-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libbz2.a
+linux-g++:LIBS += -lbz2
+linux-g++-32:LIBS += -lbz2
+linux-g++-64:LIBS += -lbz2
mac:LIBS += -lbz2
win32-msvc2005:INCLUDEPATH += ../../external/bzip2-1.0.5
@@ -48,9 +48,6 @@
win32-msvc2015:INCLUDEPATH += ../../external/bzip2-1.0.5
win32-g++:INCLUDEPATH += ../../external/bzip2-1.0.5
-linux-g++:INCLUDEPATH += ../../external/bzip2-1.0.5
-linux-g++-32:INCLUDEPATH += ../../external/bzip2-1.0.5
-linux-g++-64:INCLUDEPATH += ../../external/bzip2-1.0.5
CONFIG(release, debug|release) {

View File

@ -0,0 +1,11 @@
diff -Nur meshlab.orig/src/external/levmar-2.3/lm.h meshlab/src/external/levmar-2.3/lm.h
--- meshlab.orig/src/external/levmar-2.3/lm.h 2010-04-28 17:30:47.000000000 +1000
+++ meshlab/src/external/levmar-2.3/lm.h 2010-05-13 20:17:35.488505907 +1000
@@ -27,7 +27,6 @@
/* specify whether to use LAPACK or not. The first option is strongly recommended */
#define HAVE_LAPACK /* use LAPACK */
- #undef HAVE_LAPACK /* uncomment this to force not using LAPACK */
/* to avoid the overhead of repeated mallocs(), routines in Axb.c can be instructed to
* retain working memory between calls. Such a choice, however, renders these routines

View File

@ -0,0 +1,112 @@
--- ../meshlab/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.pro 2016-10-31 00:00:30.266005497 +0100
+++ meshlab/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.pro 2016-10-31 21:55:34.158322851 +0100
@@ -51,9 +51,9 @@
win32-msvc2012:LIBS += ../../external/lib/win32-msvc2012/levmar.lib
win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/levmar.lib
win32-g++:LIBS += -L../../external/lib/win32-gcc -llevmar
-linux-g++:LIBS += -L../../external/lib/linux-g++ -llevmar
-linux-g++-32:LIBS += -L../../external/lib/linux-g++-32 -llevmar
-linux-g++-64:LIBS += -L../../external/lib/linux-g++-64 -llevmar
+linux-g++:LIBS += -llevmar
+linux-g++-32:LIBS += -llevmar
+linux-g++-64:LIBS += -llevmar
macx:LIBS += $$MACLIBDIR/liblevmar.a
# Please never ever uncomment this...
diff -Naur -r ../meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h
--- ../meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h 2016-10-31 00:00:30.692667284 +0100
+++ meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h 2016-10-31 22:10:49.158342653 +0100
@@ -12,7 +12,7 @@
#include <list>
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
struct LevmarCorrelation {
diff -Naur -r ../meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h
--- ../meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h 2016-10-31 00:00:30.692667284 +0100
+++ meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h 2016-10-31 22:11:16.808343251 +0100
@@ -5,7 +5,7 @@
#include "alignset.h"
#include "parameters.h"
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
#include <iostream>
#include <fstream>
diff -Naur -r ../meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h
--- ../meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h 2016-10-31 00:00:08.816250885 +0100
+++ meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h 2016-10-31 22:23:35.671692575 +0100
@@ -12,7 +12,7 @@
#include <list>
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
struct LevmarCorrelation {
diff -Naur -r ../meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h
--- ../meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h 2016-10-31 00:00:08.816250885 +0100
+++ meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h 2016-10-31 22:24:05.935026562 +0100
@@ -5,7 +5,7 @@
#include "alignset.h"
#include "parameters.h"
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
#include <iostream>
#include <fstream>
diff -Naur -r ../meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h
--- ../meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h 2016-10-31 00:00:09.476243333 +0100
+++ meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h 2016-10-31 22:30:06.391701030 +0100
@@ -12,7 +12,7 @@
#include <list>
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
struct LevmarCorrelation {
diff -Naur -r ../meshlab/src/plugins_experimental/filter_mutualglobal/solver.h meshlab/src/plugins_experimental/filter_mutualglobal/solver.h
--- ../meshlab/src/plugins_experimental/filter_mutualglobal/solver.h 2016-10-31 00:00:09.476243333 +0100
+++ meshlab/src/plugins_experimental/filter_mutualglobal/solver.h 2016-10-31 22:29:02.815032988 +0100
@@ -5,7 +5,7 @@
#include "alignset.h"
#include "parameters.h"
-#include "../../external/levmar-2.3/lm.h"
+#include <levmar/levmar.h>
#include <iostream>
#include <fstream>
diff --git a/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro b/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
index 049bec6..84f6ca9 100644
--- a/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
+++ meshlab/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
@@ -1,7 +1,7 @@
include (../../shared.pri)
-HEADERS = += ./alignset.h \
+HEADERS += ./alignset.h \
./levmarmethods.h \
./mutual.h \
./parameters.h \
@@ -29,8 +29,8 @@ FORMS = edit_mutualcorrsDialog.ui
win32-msvc2013: LIBS += ../../external/lib/win32-msvc2013/levmar.lib
win32-msvc2015: LIBS += ../../external/lib/win32-msvc2015/levmar.lib
win32-g++:LIBS += -L../../external -llevmar
-linux-g++:LIBS += -L../../external/lib/linux-g++ -llevmar
-linux-g++-32:LIBS += -L../../external/lib/linux-g++-32 -llevmar
-linux-g++-64:LIBS += -L../../external/lib/linux-g++-64 -llevmar
+linux-g++:LIBS += -llevmar
+linux-g++-32:LIBS += -llevmar
+linux-g++-64:LIBS += -llevmar
macx:LIBS += $$MACLIBDIR/liblevmar.a

View File

@ -0,0 +1,16 @@
diff --git a/src/meshlabplugins/filter_csg/filter_csg.pro b/src/meshlabplugins/filter_csg/filter_csg.pro
index 52147b1..f41385d 100644
--- meshlab.orig/src/meshlabplugins/filter_csg/filter_csg.pro
+++ meshlab/src/meshlabplugins/filter_csg/filter_csg.pro
@@ -20,7 +20,7 @@ win32-msvc2008:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../exte
win32-msvc2010:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../external/lib/win32-msvc2008/mpir.lib
win32-msvc2012:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../external/lib/win32-msvc2008/mpir.lib
win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/mpirxx.lib ../../external/lib/win32-msvc2015/mpir.lib
-linux-g++:INCLUDEPATH += ../../external/inc/linux-g++/mpir-2.4.0
-linux-g++:LIBS += ../../external/lib/linux-g++/libmpirxx.a ../../external/lib/linux-g++/libmpir.a
-linux-g++-64:INCLUDEPATH += ../../external/inc/linux-g++/mpir-2.4.0
-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libmpirxx.a ../../external/lib/linux-g++-64/libmpir.a
+unix:LIBS += -lmpirxx -lmpir
+linux-g++-:LIBS += -lmpirxx -lmpir
+linux-g++-32:LIBS += -lmpirxx -lmpir
+linux-g++-64:LIBS += -lmpirxx -lmpir

View File

@ -0,0 +1,14 @@
diff -Naur ../meshlab/src/meshlabplugins/filter_func/filter_func.pro meshlab/src/meshlabplugins/filter_func/filter_func.pro
--- ../meshlab/src/meshlabplugins/filter_func/filter_func.pro 2016-10-31 00:00:30.459336619 +0100
+++ meshlab/src/meshlabplugins/filter_func/filter_func.pro 2016-10-31 21:42:47.134972919 +0100
@@ -19,7 +19,7 @@
win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/muparser.lib
macx:LIBS += $$MACLIBDIR/libmuparser.a
-linux-g++:LIBS += ../../external/lib/linux-g++/libmuparser.a
-linux-g++-32:LIBS += ../../external/lib/linux-g++-32/libmuparser.a
-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libmuparser.a
+linux-g++:LIBS += -lmuparser
+linux-g++-32:LIBS += -lmuparser
+linux-g++-64:LIBS += -lmuparser
win32-g++:LIBS += ../../external/lib/win32-gcc/libmuparser.a

View File

@ -15,5 +15,5 @@ meshlab: unstructured models arising in 3D scanning, providing a set of tools
meshlab: for editing, cleaning, healing, inspecting, rendering and converting
meshlab: this kind of mesh.
meshlab:
meshlab: Homepage: http://meshlab.sourceforge.net/
meshlab: Homepage: http://www.meshlab.net/
meshlab: