diff --git a/.travis.yml b/.travis.yml
index 89c5a7f2..04dff73b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -54,28 +54,13 @@ install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install qt59base qt59tools --force-yes; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then source /opt/qt59/bin/qt59-env.sh; fi
- # Install Rust
- - wget -O installrust.sh https://sh.rustup.rs
- - sh installrust.sh -y
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH="$HOME/.cargo/bin:/usr/local/opt/qt/bin:$(brew --prefix)/bin:$PATH"; fi
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PATH="~/.cargo/bin:$PATH"; fi
-
script:
- # Build Meshlite
- - git clone https://github.com/huxingyi/meshlite.git || travis_terminate 1
- - cd meshlite/ffi
- - cargo build --release
- - cd ../../
- - cp meshlite/ffi/include/meshlite.h thirdparty/meshlite/meshlite.h || travis_terminate 1
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp meshlite/ffi/target/release/libmeshlite_ffi.dylib thirdparty/meshlite/libmeshlite_ffi.dylib || travis_terminate 1; fi
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp meshlite/ffi/target/release/libmeshlite_ffi.so thirdparty/meshlite/libmeshlite_ffi.so || travis_terminate 1; fi
# Build Dust3D
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then qmake -config release || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then qmake -config release || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make CXX="g++ -fext-numeric-literals" || travis_terminate 1; fi
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/thirdparty/meshlite || travis_terminate 1; fi
# Prepare tag name
- export TAG="$TRAVIS_TAG"
@@ -109,7 +94,7 @@ script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp ./dust3d appdir/usr/bin/dust3d || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp ./ci/dust3d.desktop appdir/usr/share/applications/dust3d.desktop || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then chmod a+x ./ci/linuxdeployqt.AppImage || travis_terminate 1; fi
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then unset QTDIR; unset QT_PLUGIN_PATH ; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/thirdparty/meshlite; fi
+ - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then unset QTDIR; unset QT_PLUGIN_PATH ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./ci/linuxdeployqt.AppImage appdir/usr/share/applications/dust3d.desktop -bundle-non-qt-libs -verbose=2 || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then rm appdir/AppRun || travis_terminate 1; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp ./ci/AppRun-patched-x86_64 appdir/AppRun || travis_terminate 1; fi
diff --git a/ACKNOWLEDGEMENTS.html b/ACKNOWLEDGEMENTS.html
index 0ed40bfb..a68eb600 100644
--- a/ACKNOWLEDGEMENTS.html
+++ b/ACKNOWLEDGEMENTS.html
@@ -1138,3 +1138,8 @@ https://www.reddit.com/r/gamedev/comments/5iuf3h/i_am_writting_a_3d_monster_mode
https://en.wikipedia.org/wiki/Eadweard_Muybridge
+
+nodemesh
+
+ https://github.com/huxingyi/nodemesh
+
diff --git a/appveyor.yml b/appveyor.yml
index 8cc6ca63..4dff0565 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -49,7 +49,6 @@ after_test:
- if "%TAG%" == ""
set TAG=unstable
- 7z a dust3d-%TAG%-%PLATFORM%.zip %APPVEYOR_BUILD_FOLDER%\release\dust3d.exe
- - 7z a dust3d-%TAG%-%PLATFORM%.zip %APPVEYOR_BUILD_FOLDER%\thirdparty\meshlite\meshlite_unstable_vc14_%PLATFORM%\meshlite_ffi.dll
- 7z a dust3d-%TAG%-%PLATFORM%.zip %APPVEYOR_BUILD_FOLDER%\CGAL-4.11.1\build\bin\Release\CGAL-vc140-mt-4.11.1.dll
- 7z a dust3d-%TAG%-%PLATFORM%.zip %APPVEYOR_BUILD_FOLDER%\CGAL-4.11.1\auxiliary\gmp\lib\libgmp-10.dll
- 7z a dust3d-%TAG%-%PLATFORM%.zip %APPVEYOR_BUILD_FOLDER%\CGAL-4.11.1\auxiliary\gmp\lib\libmpfr-4.dll
diff --git a/docs/builds.rst b/docs/builds.rst
index 28481b5d..ab87d3cf 100644
--- a/docs/builds.rst
+++ b/docs/builds.rst
@@ -3,11 +3,7 @@ Building Dust3D
Overview
==========
-The core mesh algorithms of Dust3D written in Rust language, located in meshlite repository,
-
- https://github.com/huxingyi/meshlite
-
-The UI of Dust3D built in Qt5, the only thirdparty dependency which should been compiled separately is the CGAL library, however, CGAL will introduce some new dependencies, such as boost and gmp library.
+The UI of Dust3D built in Qt5, the only third party dependency which should be compiled separately is the CGAL library, however, CGAL will introduce some new dependencies, such as boost and gmp library.
Prerequisites
===============
@@ -15,10 +11,6 @@ Prerequisites
https://www.cgal.org/
-* Rust
-
- https://www.rust-lang.org/en-US/install.html
-
Building
==========
@@ -40,13 +32,6 @@ Here is the snapshot of the command line of one build, you may use different def
.. code-block:: sh
- $ cd /Users/jeremy/Desktop
- $ git clone https://github.com/huxingyi/meshlite.git
- $ cd meshlite/ffi
- $ cargo build --release
- $ cp include/meshlite.h /Users/jeremy/Repositories/dust3d/thirdparty/meshlite/meshlite.h
- $ cp target/release/libmeshlite_ffi.dylib /Users/jeremy/Repositories/dust3d/thirdparty/meshlite/libmeshlite_ffi.dylib
-
$ cd /Users/jeremy/Repositories/dust3d
$ qmake -spec macx-xcode
Open dust3d.xcodeproj in Xcode and build
@@ -55,9 +40,6 @@ Here is the snapshot of the command line of one build, you may use different def
.. code-block:: sh
- ;Install Rust
- $ curl https://sh.rustup.rs -sSf | sh ;Add ~/.cargo/bin to PATH after finishing install
-
;Install Qt5
$ sudo apt-get install --reinstall qtchooser
$ sudo apt-get install qtbase5-dev
@@ -80,17 +62,8 @@ Here is the snapshot of the command line of one build, you may use different def
$ cd ~/Documents
$ git clone https://github.com/huxingyi/dust3d.git
- ;Compile the internal dependency
- $ cd ~/Desktop
- $ git clone https://github.com/huxingyi/meshlite.git
- $ cd meshlite/ffi
- $ cargo build --release
- $ cp ~/Desktop/meshlite/ffi/include/meshlite.h ~/Documents/dust3d/thirdparty/meshlite/meshlite.h
- $ cp ~/Desktop/meshlite/ffi/target/release/libmeshlite_ffi.so ~/Documents/dust3d/thirdparty/meshlite/libmeshlite_ffi.so
-
;Compile Dust3D
$ cd ~/Documents/dust3d
$ qmake -qt=5 -makefile
$ make
- $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/Documents/dust3d/thirdparty/meshlite
$ ./dust3d
diff --git a/dust3d.pro b/dust3d.pro
index 36190fca..061dc948 100644
--- a/dust3d.pro
+++ b/dust3d.pro
@@ -101,9 +101,6 @@ HEADERS += src/theme.h
SOURCES += src/meshloader.cpp
HEADERS += src/meshloader.h
-SOURCES += src/meshutil.cpp
-HEADERS += src/meshutil.h
-
SOURCES += src/texturegenerator.cpp
HEADERS += src/texturegenerator.h
@@ -113,9 +110,6 @@ HEADERS += src/outcome.h
SOURCES += src/meshresultpostprocessor.cpp
HEADERS += src/meshresultpostprocessor.h
-SOURCES += src/positionmap.cpp
-HEADERS += src/positionmap.h
-
SOURCES += src/logbrowser.cpp
HEADERS += src/logbrowser.h
@@ -167,9 +161,6 @@ HEADERS += src/rigtype.h
SOURCES += src/riggenerator.cpp
HEADERS += src/riggenerator.h
-SOURCES += src/meshquadify.cpp
-HEADERS += src/meshquadify.h
-
SOURCES += src/skinnedmeshcreator.cpp
HEADERS += src/skinnedmeshcreator.h
@@ -200,9 +191,6 @@ HEADERS += src/posepreviewsgenerator.h
SOURCES += src/posewidget.cpp
HEADERS += src/posewidget.h
-SOURCES += src/meshweldseam.cpp
-HEADERS += src/meshweldseam.h
-
SOURCES += src/advancesettingwidget.cpp
HEADERS += src/advancesettingwidget.h
@@ -251,9 +239,6 @@ HEADERS += src/material.h
SOURCES += src/fbxfile.cpp
HEADERS += src/fbxfile.h
-SOURCES += src/anglesmooth.cpp
-HEADERS += src/anglesmooth.h
-
SOURCES += src/motiontimelinewidget.cpp
HEADERS += src/motiontimelinewidget.h
@@ -302,13 +287,41 @@ HEADERS += src/posedocument.h
SOURCES += src/combinemode.cpp
HEADERS += src/combinemode.h
-SOURCES += src/meshinflate.cpp
-HEADERS += src/meshinflate.h
-
SOURCES += src/main.cpp
HEADERS += src/version.h
+INCLUDEPATH += thirdparty/nodemesh
+
+SOURCES += thirdparty/nodemesh/nodemesh/wrapper.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/wrapper.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/stitcher.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/stitcher.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/builder.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/builder.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/combiner.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/combiner.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/util.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/util.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/positionkey.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/positionkey.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/modifier.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/modifier.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/box.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/box.h
+
+SOURCES += thirdparty/nodemesh/nodemesh/recombiner.cpp
+HEADERS += thirdparty/nodemesh/nodemesh/recombiner.h
+
+HEADERS += thirdparty/nodemesh/nodemesh/cgalmesh.h
+
INCLUDEPATH += thirdparty/crc64
SOURCES += thirdparty/crc64/crc64.c
@@ -381,12 +394,6 @@ win32 {
error("No CGAL_DIR define found in enviroment variables")
}
- contains(QMAKE_TARGET.arch, x86_64) {
- MESHLITE_DIR = thirdparty/meshlite/meshlite_unstable_vc14_x64
- } else {
- MESHLITE_DIR = thirdparty/meshlite/meshlite_unstable_vc14_x86
- }
- MESHLITE_LIBNAME = meshlite_ffi.dll
GMP_LIBNAME = libgmp-10
MPFR_LIBNAME = libmpfr-4
CGAL_LIBNAME = CGAL-vc140-mt-4.11.1
@@ -400,8 +407,6 @@ win32 {
}
macx {
- MESHLITE_DIR = thirdparty/meshlite
- MESHLITE_LIBNAME = meshlite_ffi
GMP_LIBNAME = gmp
MPFR_LIBNAME = mpfr
CGAL_LIBNAME = cgal
@@ -416,8 +421,6 @@ macx {
}
unix:!macx {
- MESHLITE_DIR = thirdparty/meshlite
- MESHLITE_LIBNAME = meshlite_ffi
GMP_LIBNAME = gmp
MPFR_LIBNAME = mpfr
CGAL_LIBNAME = CGAL
@@ -431,9 +434,6 @@ unix:!macx {
MPFR_LIBDIR = /usr/local/lib
}
-INCLUDEPATH += $$MESHLITE_DIR
-LIBS += -L$$MESHLITE_DIR -l$$MESHLITE_LIBNAME
-
INCLUDEPATH += $$BOOST_INCLUDEDIR
INCLUDEPATH += $$GMP_INCLUDEDIR
diff --git a/src/anglesmooth.cpp b/src/anglesmooth.cpp
deleted file mode 100644
index 7c8367c5..00000000
--- a/src/anglesmooth.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#include
-#include