├── .gitignore ├── LICENSE ├── README.md ├── UE4.24 └── IGLMeshProcessingProject │ ├── Config │ ├── DefaultEditor.ini │ ├── DefaultEngine.ini │ └── DefaultGame.ini │ ├── IGLMeshProcessing.uproject │ ├── Plugins │ └── MeshProcessingPlugin │ │ ├── MeshProcessingPlugin.uplugin │ │ ├── Resources │ │ └── Icon128.png │ │ ├── Source │ │ └── MeshProcessingPlugin │ │ │ ├── MeshProcessingPlugin.Build.cs │ │ │ ├── Private │ │ │ ├── MeshProcessingPlugin.cpp │ │ │ ├── MeshProcessingPluginCommands.cpp │ │ │ ├── MeshProcessingPluginEdMode.cpp │ │ │ ├── MeshProcessingPluginEdModeToolkit.cpp │ │ │ ├── MeshProcessingPluginStyle.cpp │ │ │ └── Tools │ │ │ │ ├── IGLIncludes.h │ │ │ │ ├── IGLSmoothingTool.cpp │ │ │ │ ├── IGLUtil.h │ │ │ │ ├── MeshExportTool.cpp │ │ │ │ └── MeshProcessingTool.cpp │ │ │ └── Public │ │ │ ├── MeshProcessingPlugin.h │ │ │ ├── MeshProcessingPluginCommands.h │ │ │ ├── MeshProcessingPluginEdMode.h │ │ │ ├── MeshProcessingPluginEdModeToolkit.h │ │ │ ├── MeshProcessingPluginStyle.h │ │ │ └── Tools │ │ │ ├── IGLSmoothingTool.h │ │ │ ├── MeshExportTool.h │ │ │ ├── MeshProcessingTool.h │ │ │ └── OBJWriter.h │ │ └── ThirdParty │ │ ├── eigen │ │ ├── .gitignore │ │ ├── .hgeol │ │ ├── CMakeLists.txt │ │ ├── COPYING.BSD │ │ ├── COPYING.GPL │ │ ├── COPYING.LGPL │ │ ├── COPYING.MINPACK │ │ ├── COPYING.MPL2 │ │ ├── COPYING.README │ │ ├── CTestConfig.cmake │ │ ├── CTestCustom.cmake.in │ │ ├── Eigen │ │ │ ├── Cholesky │ │ │ ├── CholmodSupport │ │ │ ├── Core │ │ │ ├── Dense │ │ │ ├── Eigen │ │ │ ├── Eigenvalues │ │ │ ├── Geometry │ │ │ ├── Householder │ │ │ ├── IterativeLinearSolvers │ │ │ ├── Jacobi │ │ │ ├── KLUSupport │ │ │ ├── LU │ │ │ ├── MetisSupport │ │ │ ├── OrderingMethods │ │ │ ├── PaStiXSupport │ │ │ ├── PardisoSupport │ │ │ ├── QR │ │ │ ├── QtAlignedMalloc │ │ │ ├── SPQRSupport │ │ │ ├── SVD │ │ │ ├── Sparse │ │ │ ├── SparseCholesky │ │ │ ├── SparseCore │ │ │ ├── SparseLU │ │ │ ├── SparseQR │ │ │ ├── StdDeque │ │ │ ├── StdList │ │ │ ├── StdVector │ │ │ ├── SuperLUSupport │ │ │ ├── UmfPackSupport │ │ │ └── src │ │ │ │ ├── Cholesky │ │ │ │ ├── LDLT.h │ │ │ │ ├── LLT.h │ │ │ │ └── LLT_LAPACKE.h │ │ │ │ ├── CholmodSupport │ │ │ │ └── CholmodSupport.h │ │ │ │ ├── Core │ │ │ │ ├── ArithmeticSequence.h │ │ │ │ ├── Array.h │ │ │ │ ├── ArrayBase.h │ │ │ │ ├── ArrayWrapper.h │ │ │ │ ├── Assign.h │ │ │ │ ├── AssignEvaluator.h │ │ │ │ ├── Assign_MKL.h │ │ │ │ ├── BandMatrix.h │ │ │ │ ├── Block.h │ │ │ │ ├── BooleanRedux.h │ │ │ │ ├── CommaInitializer.h │ │ │ │ ├── ConditionEstimator.h │ │ │ │ ├── CoreEvaluators.h │ │ │ │ ├── CoreIterators.h │ │ │ │ ├── CwiseBinaryOp.h │ │ │ │ ├── CwiseNullaryOp.h │ │ │ │ ├── CwiseTernaryOp.h │ │ │ │ ├── CwiseUnaryOp.h │ │ │ │ ├── CwiseUnaryView.h │ │ │ │ ├── DenseBase.h │ │ │ │ ├── DenseCoeffsBase.h │ │ │ │ ├── DenseStorage.h │ │ │ │ ├── Diagonal.h │ │ │ │ ├── DiagonalMatrix.h │ │ │ │ ├── DiagonalProduct.h │ │ │ │ ├── Dot.h │ │ │ │ ├── EigenBase.h │ │ │ │ ├── ForceAlignedAccess.h │ │ │ │ ├── Fuzzy.h │ │ │ │ ├── GeneralProduct.h │ │ │ │ ├── GenericPacketMath.h │ │ │ │ ├── GlobalFunctions.h │ │ │ │ ├── IO.h │ │ │ │ ├── IndexedView.h │ │ │ │ ├── Inverse.h │ │ │ │ ├── Map.h │ │ │ │ ├── MapBase.h │ │ │ │ ├── MathFunctions.h │ │ │ │ ├── MathFunctionsImpl.h │ │ │ │ ├── Matrix.h │ │ │ │ ├── MatrixBase.h │ │ │ │ ├── NestByValue.h │ │ │ │ ├── NoAlias.h │ │ │ │ ├── NumTraits.h │ │ │ │ ├── PartialReduxEvaluator.h │ │ │ │ ├── PermutationMatrix.h │ │ │ │ ├── PlainObjectBase.h │ │ │ │ ├── Product.h │ │ │ │ ├── ProductEvaluators.h │ │ │ │ ├── Random.h │ │ │ │ ├── Redux.h │ │ │ │ ├── Ref.h │ │ │ │ ├── Replicate.h │ │ │ │ ├── Reshaped.h │ │ │ │ ├── ReturnByValue.h │ │ │ │ ├── Reverse.h │ │ │ │ ├── Select.h │ │ │ │ ├── SelfAdjointView.h │ │ │ │ ├── SelfCwiseBinaryOp.h │ │ │ │ ├── Solve.h │ │ │ │ ├── SolveTriangular.h │ │ │ │ ├── SolverBase.h │ │ │ │ ├── StableNorm.h │ │ │ │ ├── StlIterators.h │ │ │ │ ├── Stride.h │ │ │ │ ├── Swap.h │ │ │ │ ├── Transpose.h │ │ │ │ ├── Transpositions.h │ │ │ │ ├── TriangularMatrix.h │ │ │ │ ├── VectorBlock.h │ │ │ │ ├── VectorwiseOp.h │ │ │ │ ├── Visitor.h │ │ │ │ ├── arch │ │ │ │ │ ├── AVX │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AVX512 │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AltiVec │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── CUDA │ │ │ │ │ │ └── Complex.h │ │ │ │ │ ├── Default │ │ │ │ │ │ ├── ConjHelper.h │ │ │ │ │ │ ├── GenericPacketMathFunctions.h │ │ │ │ │ │ ├── GenericPacketMathFunctionsFwd.h │ │ │ │ │ │ ├── Half.h │ │ │ │ │ │ ├── Settings.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── GPU │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── HIP │ │ │ │ │ │ └── hcc │ │ │ │ │ │ │ └── math_constants.h │ │ │ │ │ ├── MSA │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── NEON │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SSE │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SYCL │ │ │ │ │ │ ├── InteropHeaders.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ ├── SyclMemoryModel.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ └── ZVector │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ ├── functors │ │ │ │ │ ├── AssignmentFunctors.h │ │ │ │ │ ├── BinaryFunctors.h │ │ │ │ │ ├── NullaryFunctors.h │ │ │ │ │ ├── StlFunctors.h │ │ │ │ │ ├── TernaryFunctors.h │ │ │ │ │ └── UnaryFunctors.h │ │ │ │ ├── products │ │ │ │ │ ├── GeneralBlockPanelKernel.h │ │ │ │ │ ├── GeneralMatrixMatrix.h │ │ │ │ │ ├── GeneralMatrixMatrixTriangular.h │ │ │ │ │ ├── GeneralMatrixMatrixTriangular_BLAS.h │ │ │ │ │ ├── GeneralMatrixMatrix_BLAS.h │ │ │ │ │ ├── GeneralMatrixVector.h │ │ │ │ │ ├── GeneralMatrixVector_BLAS.h │ │ │ │ │ ├── Parallelizer.h │ │ │ │ │ ├── SelfadjointMatrixMatrix.h │ │ │ │ │ ├── SelfadjointMatrixMatrix_BLAS.h │ │ │ │ │ ├── SelfadjointMatrixVector.h │ │ │ │ │ ├── SelfadjointMatrixVector_BLAS.h │ │ │ │ │ ├── SelfadjointProduct.h │ │ │ │ │ ├── SelfadjointRank2Update.h │ │ │ │ │ ├── TriangularMatrixMatrix.h │ │ │ │ │ ├── TriangularMatrixMatrix_BLAS.h │ │ │ │ │ ├── TriangularMatrixVector.h │ │ │ │ │ ├── TriangularMatrixVector_BLAS.h │ │ │ │ │ ├── TriangularSolverMatrix.h │ │ │ │ │ ├── TriangularSolverMatrix_BLAS.h │ │ │ │ │ └── TriangularSolverVector.h │ │ │ │ └── util │ │ │ │ │ ├── BlasUtil.h │ │ │ │ │ ├── ConfigureVectorization.h │ │ │ │ │ ├── Constants.h │ │ │ │ │ ├── DisableStupidWarnings.h │ │ │ │ │ ├── ForwardDeclarations.h │ │ │ │ │ ├── IndexedViewHelper.h │ │ │ │ │ ├── IntegralConstant.h │ │ │ │ │ ├── MKL_support.h │ │ │ │ │ ├── Macros.h │ │ │ │ │ ├── Memory.h │ │ │ │ │ ├── Meta.h │ │ │ │ │ ├── NonMPL2.h │ │ │ │ │ ├── ReenableStupidWarnings.h │ │ │ │ │ ├── ReshapedHelper.h │ │ │ │ │ ├── StaticAssert.h │ │ │ │ │ ├── SymbolicIndex.h │ │ │ │ │ └── XprHelper.h │ │ │ │ ├── Eigenvalues │ │ │ │ ├── ComplexEigenSolver.h │ │ │ │ ├── ComplexSchur.h │ │ │ │ ├── ComplexSchur_LAPACKE.h │ │ │ │ ├── EigenSolver.h │ │ │ │ ├── GeneralizedEigenSolver.h │ │ │ │ ├── GeneralizedSelfAdjointEigenSolver.h │ │ │ │ ├── HessenbergDecomposition.h │ │ │ │ ├── MatrixBaseEigenvalues.h │ │ │ │ ├── RealQZ.h │ │ │ │ ├── RealSchur.h │ │ │ │ ├── RealSchur_LAPACKE.h │ │ │ │ ├── SelfAdjointEigenSolver.h │ │ │ │ ├── SelfAdjointEigenSolver_LAPACKE.h │ │ │ │ └── Tridiagonalization.h │ │ │ │ ├── Geometry │ │ │ │ ├── AlignedBox.h │ │ │ │ ├── AngleAxis.h │ │ │ │ ├── EulerAngles.h │ │ │ │ ├── Homogeneous.h │ │ │ │ ├── Hyperplane.h │ │ │ │ ├── OrthoMethods.h │ │ │ │ ├── ParametrizedLine.h │ │ │ │ ├── Quaternion.h │ │ │ │ ├── Rotation2D.h │ │ │ │ ├── RotationBase.h │ │ │ │ ├── Scaling.h │ │ │ │ ├── Transform.h │ │ │ │ ├── Translation.h │ │ │ │ ├── Umeyama.h │ │ │ │ └── arch │ │ │ │ │ └── Geometry_SSE.h │ │ │ │ ├── Householder │ │ │ │ ├── BlockHouseholder.h │ │ │ │ ├── Householder.h │ │ │ │ └── HouseholderSequence.h │ │ │ │ ├── IterativeLinearSolvers │ │ │ │ ├── BasicPreconditioners.h │ │ │ │ ├── BiCGSTAB.h │ │ │ │ ├── ConjugateGradient.h │ │ │ │ ├── IncompleteCholesky.h │ │ │ │ ├── IncompleteLUT.h │ │ │ │ ├── IterativeSolverBase.h │ │ │ │ ├── LeastSquareConjugateGradient.h │ │ │ │ └── SolveWithGuess.h │ │ │ │ ├── Jacobi │ │ │ │ └── Jacobi.h │ │ │ │ ├── KLUSupport │ │ │ │ └── KLUSupport.h │ │ │ │ ├── LU │ │ │ │ ├── Determinant.h │ │ │ │ ├── FullPivLU.h │ │ │ │ ├── InverseImpl.h │ │ │ │ ├── PartialPivLU.h │ │ │ │ ├── PartialPivLU_LAPACKE.h │ │ │ │ └── arch │ │ │ │ │ └── Inverse_SSE.h │ │ │ │ ├── MetisSupport │ │ │ │ └── MetisSupport.h │ │ │ │ ├── OrderingMethods │ │ │ │ ├── Amd.h │ │ │ │ ├── Eigen_Colamd.h │ │ │ │ └── Ordering.h │ │ │ │ ├── PaStiXSupport │ │ │ │ └── PaStiXSupport.h │ │ │ │ ├── PardisoSupport │ │ │ │ └── PardisoSupport.h │ │ │ │ ├── QR │ │ │ │ ├── ColPivHouseholderQR.h │ │ │ │ ├── ColPivHouseholderQR_LAPACKE.h │ │ │ │ ├── CompleteOrthogonalDecomposition.h │ │ │ │ ├── FullPivHouseholderQR.h │ │ │ │ ├── HouseholderQR.h │ │ │ │ └── HouseholderQR_LAPACKE.h │ │ │ │ ├── SPQRSupport │ │ │ │ └── SuiteSparseQRSupport.h │ │ │ │ ├── SVD │ │ │ │ ├── BDCSVD.h │ │ │ │ ├── JacobiSVD.h │ │ │ │ ├── JacobiSVD_LAPACKE.h │ │ │ │ ├── SVDBase.h │ │ │ │ └── UpperBidiagonalization.h │ │ │ │ ├── SparseCholesky │ │ │ │ ├── SimplicialCholesky.h │ │ │ │ └── SimplicialCholesky_impl.h │ │ │ │ ├── SparseCore │ │ │ │ ├── AmbiVector.h │ │ │ │ ├── CompressedStorage.h │ │ │ │ ├── ConservativeSparseSparseProduct.h │ │ │ │ ├── MappedSparseMatrix.h │ │ │ │ ├── SparseAssign.h │ │ │ │ ├── SparseBlock.h │ │ │ │ ├── SparseColEtree.h │ │ │ │ ├── SparseCompressedBase.h │ │ │ │ ├── SparseCwiseBinaryOp.h │ │ │ │ ├── SparseCwiseUnaryOp.h │ │ │ │ ├── SparseDenseProduct.h │ │ │ │ ├── SparseDiagonalProduct.h │ │ │ │ ├── SparseDot.h │ │ │ │ ├── SparseFuzzy.h │ │ │ │ ├── SparseMap.h │ │ │ │ ├── SparseMatrix.h │ │ │ │ ├── SparseMatrixBase.h │ │ │ │ ├── SparsePermutation.h │ │ │ │ ├── SparseProduct.h │ │ │ │ ├── SparseRedux.h │ │ │ │ ├── SparseRef.h │ │ │ │ ├── SparseSelfAdjointView.h │ │ │ │ ├── SparseSolverBase.h │ │ │ │ ├── SparseSparseProductWithPruning.h │ │ │ │ ├── SparseTranspose.h │ │ │ │ ├── SparseTriangularView.h │ │ │ │ ├── SparseUtil.h │ │ │ │ ├── SparseVector.h │ │ │ │ ├── SparseView.h │ │ │ │ └── TriangularSolver.h │ │ │ │ ├── SparseLU │ │ │ │ ├── SparseLU.h │ │ │ │ ├── SparseLUImpl.h │ │ │ │ ├── SparseLU_Memory.h │ │ │ │ ├── SparseLU_Structs.h │ │ │ │ ├── SparseLU_SupernodalMatrix.h │ │ │ │ ├── SparseLU_Utils.h │ │ │ │ ├── SparseLU_column_bmod.h │ │ │ │ ├── SparseLU_column_dfs.h │ │ │ │ ├── SparseLU_copy_to_ucol.h │ │ │ │ ├── SparseLU_gemm_kernel.h │ │ │ │ ├── SparseLU_heap_relax_snode.h │ │ │ │ ├── SparseLU_kernel_bmod.h │ │ │ │ ├── SparseLU_panel_bmod.h │ │ │ │ ├── SparseLU_panel_dfs.h │ │ │ │ ├── SparseLU_pivotL.h │ │ │ │ ├── SparseLU_pruneL.h │ │ │ │ └── SparseLU_relax_snode.h │ │ │ │ ├── SparseQR │ │ │ │ └── SparseQR.h │ │ │ │ ├── StlSupport │ │ │ │ ├── StdDeque.h │ │ │ │ ├── StdList.h │ │ │ │ ├── StdVector.h │ │ │ │ └── details.h │ │ │ │ ├── SuperLUSupport │ │ │ │ └── SuperLUSupport.h │ │ │ │ ├── UmfPackSupport │ │ │ │ └── UmfPackSupport.h │ │ │ │ ├── misc │ │ │ │ ├── Image.h │ │ │ │ ├── Kernel.h │ │ │ │ ├── RealSvd2x2.h │ │ │ │ ├── blas.h │ │ │ │ ├── lapack.h │ │ │ │ ├── lapacke.h │ │ │ │ └── lapacke_mangling.h │ │ │ │ └── plugins │ │ │ │ ├── ArrayCwiseBinaryOps.h │ │ │ │ ├── ArrayCwiseUnaryOps.h │ │ │ │ ├── BlockMethods.h │ │ │ │ ├── CommonCwiseBinaryOps.h │ │ │ │ ├── CommonCwiseUnaryOps.h │ │ │ │ ├── IndexedViewMethods.h │ │ │ │ ├── MatrixCwiseBinaryOps.h │ │ │ │ ├── MatrixCwiseUnaryOps.h │ │ │ │ └── ReshapedMethods.h │ │ ├── INSTALL │ │ ├── README.md │ │ ├── eigen3.pc.in │ │ └── signature_of_eigen3_matrix_library │ │ └── libigl │ │ ├── LICENSE.GPL │ │ ├── LICENSE.MPL2 │ │ ├── README.md │ │ └── include │ │ └── igl │ │ ├── AABB.cpp │ │ ├── AABB.h │ │ ├── ARAPEnergyType.h │ │ ├── AtA_cached.cpp │ │ ├── AtA_cached.h │ │ ├── C_STR.h │ │ ├── Camera.h │ │ ├── EPS.cpp │ │ ├── EPS.h │ │ ├── HalfEdgeIterator.cpp │ │ ├── HalfEdgeIterator.h │ │ ├── Hit.h │ │ ├── IO │ │ ├── IndexComparison.h │ │ ├── LinSpaced.h │ │ ├── MappingEnergyType.h │ │ ├── MeshBooleanType.h │ │ ├── NormalType.h │ │ ├── ONE.h │ │ ├── PI.h │ │ ├── REDRUM.h │ │ ├── STR.h │ │ ├── Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp │ │ ├── Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp │ │ ├── Singular_Value_Decomposition_Kernel_Declarations.hpp │ │ ├── Singular_Value_Decomposition_Main_Kernel_Body.hpp │ │ ├── Singular_Value_Decomposition_Preamble.hpp │ │ ├── SolverStatus.h │ │ ├── SortableRow.h │ │ ├── Timer.h │ │ ├── Viewport.h │ │ ├── WindingNumberAABB.h │ │ ├── WindingNumberMethod.h │ │ ├── WindingNumberTree.h │ │ ├── ZERO.h │ │ ├── accumarray.cpp │ │ ├── accumarray.h │ │ ├── active_set.cpp │ │ ├── active_set.h │ │ ├── adjacency_list.cpp │ │ ├── adjacency_list.h │ │ ├── adjacency_matrix.cpp │ │ ├── adjacency_matrix.h │ │ ├── all.cpp │ │ ├── all.h │ │ ├── all_edges.cpp │ │ ├── all_edges.h │ │ ├── all_pairs_distances.cpp │ │ ├── all_pairs_distances.h │ │ ├── ambient_occlusion.cpp │ │ ├── ambient_occlusion.h │ │ ├── angular_distance.cpp │ │ ├── angular_distance.h │ │ ├── any.cpp │ │ ├── any.h │ │ ├── any_of.cpp │ │ ├── any_of.h │ │ ├── arap.cpp │ │ ├── arap.h │ │ ├── arap_dof.cpp │ │ ├── arap_dof.h │ │ ├── arap_linear_block.cpp │ │ ├── arap_linear_block.h │ │ ├── arap_rhs.cpp │ │ ├── arap_rhs.h │ │ ├── average_onto_faces.cpp │ │ ├── average_onto_faces.h │ │ ├── average_onto_vertices.cpp │ │ ├── average_onto_vertices.h │ │ ├── avg_edge_length.cpp │ │ ├── avg_edge_length.h │ │ ├── axis_angle_to_quat.cpp │ │ ├── axis_angle_to_quat.h │ │ ├── barycenter.cpp │ │ ├── barycenter.h │ │ ├── barycentric_coordinates.cpp │ │ ├── barycentric_coordinates.h │ │ ├── barycentric_to_global.cpp │ │ ├── barycentric_to_global.h │ │ ├── basename.cpp │ │ ├── basename.h │ │ ├── bbw.cpp │ │ ├── bbw.h │ │ ├── bfs.cpp │ │ ├── bfs.h │ │ ├── bfs_orient.cpp │ │ ├── bfs_orient.h │ │ ├── biharmonic_coordinates.cpp │ │ ├── biharmonic_coordinates.h │ │ ├── bijective_composite_harmonic_mapping.cpp │ │ ├── bijective_composite_harmonic_mapping.h │ │ ├── bone_parents.cpp │ │ ├── bone_parents.h │ │ ├── boundary_conditions.cpp │ │ ├── boundary_conditions.h │ │ ├── boundary_facets.cpp │ │ ├── boundary_facets.h │ │ ├── boundary_loop.cpp │ │ ├── boundary_loop.h │ │ ├── bounding_box.cpp │ │ ├── bounding_box.h │ │ ├── bounding_box_diagonal.cpp │ │ ├── bounding_box_diagonal.h │ │ ├── canonical_quaternions.cpp │ │ ├── canonical_quaternions.h │ │ ├── cat.cpp │ │ ├── cat.h │ │ ├── ceil.cpp │ │ ├── ceil.h │ │ ├── centroid.cpp │ │ ├── centroid.h │ │ ├── circulation.cpp │ │ ├── circulation.h │ │ ├── circumradius.cpp │ │ ├── circumradius.h │ │ ├── collapse_edge.cpp │ │ ├── collapse_edge.h │ │ ├── collapse_small_triangles.cpp │ │ ├── collapse_small_triangles.h │ │ ├── colon.cpp │ │ ├── colon.h │ │ ├── colormap.cpp │ │ ├── colormap.h │ │ ├── column_to_quats.cpp │ │ ├── column_to_quats.h │ │ ├── columnize.cpp │ │ ├── columnize.h │ │ ├── comb_cross_field.cpp │ │ ├── comb_cross_field.h │ │ ├── comb_frame_field.cpp │ │ ├── comb_frame_field.h │ │ ├── comb_line_field.cpp │ │ ├── comb_line_field.h │ │ ├── combine.cpp │ │ ├── combine.h │ │ ├── compute_frame_field_bisectors.cpp │ │ ├── compute_frame_field_bisectors.h │ │ ├── connect_boundary_to_infinity.cpp │ │ ├── connect_boundary_to_infinity.h │ │ ├── copyleft │ │ ├── README.md │ │ ├── cgal │ │ │ ├── BinaryWindingNumberOperations.h │ │ │ ├── CGAL_includes.hpp │ │ │ ├── CSGTree.h │ │ │ ├── RemeshSelfIntersectionsParam.h │ │ │ ├── SelfIntersectMesh.h │ │ │ ├── assign.cpp │ │ │ ├── assign.h │ │ │ ├── assign_scalar.cpp │ │ │ ├── assign_scalar.h │ │ │ ├── barycenter.cpp │ │ │ ├── cell_adjacency.cpp │ │ │ ├── cell_adjacency.h │ │ │ ├── closest_facet.cpp │ │ │ ├── closest_facet.h │ │ │ ├── complex_to_mesh.cpp │ │ │ ├── complex_to_mesh.h │ │ │ ├── component_inside_component.cpp │ │ │ ├── component_inside_component.h │ │ │ ├── convex_hull.cpp │ │ │ ├── convex_hull.h │ │ │ ├── delaunay_triangulation.cpp │ │ │ ├── delaunay_triangulation.h │ │ │ ├── extract_cells.cpp │ │ │ ├── extract_cells.h │ │ │ ├── extract_feature.cpp │ │ │ ├── extract_feature.h │ │ │ ├── fast_winding_number.cpp │ │ │ ├── fast_winding_number.h │ │ │ ├── half_space_box.cpp │ │ │ ├── half_space_box.h │ │ │ ├── hausdorff.cpp │ │ │ ├── hausdorff.h │ │ │ ├── incircle.cpp │ │ │ ├── incircle.h │ │ │ ├── insert_into_cdt.cpp │ │ │ ├── insert_into_cdt.h │ │ │ ├── insphere.cpp │ │ │ ├── insphere.h │ │ │ ├── intersect_other.cpp │ │ │ ├── intersect_other.h │ │ │ ├── intersect_with_half_space.cpp │ │ │ ├── intersect_with_half_space.h │ │ │ ├── lexicographic_triangulation.cpp │ │ │ ├── lexicographic_triangulation.h │ │ │ ├── list_to_matrix.cpp │ │ │ ├── mesh_boolean.cpp │ │ │ ├── mesh_boolean.h │ │ │ ├── mesh_boolean_type_to_funcs.cpp │ │ │ ├── mesh_boolean_type_to_funcs.h │ │ │ ├── mesh_to_cgal_triangle_list.cpp │ │ │ ├── mesh_to_cgal_triangle_list.h │ │ │ ├── mesh_to_polyhedron.cpp │ │ │ ├── mesh_to_polyhedron.h │ │ │ ├── minkowski_sum.cpp │ │ │ ├── minkowski_sum.h │ │ │ ├── order_facets_around_edge.cpp │ │ │ ├── order_facets_around_edge.h │ │ │ ├── order_facets_around_edges.cpp │ │ │ ├── order_facets_around_edges.h │ │ │ ├── orient2D.cpp │ │ │ ├── orient2D.h │ │ │ ├── orient3D.cpp │ │ │ ├── orient3D.h │ │ │ ├── outer_element.cpp │ │ │ ├── outer_element.h │ │ │ ├── outer_facet.cpp │ │ │ ├── outer_facet.h │ │ │ ├── outer_hull.cpp │ │ │ ├── outer_hull.h │ │ │ ├── peel_outer_hull_layers.cpp │ │ │ ├── peel_outer_hull_layers.h │ │ │ ├── peel_winding_number_layers.cpp │ │ │ ├── peel_winding_number_layers.h │ │ │ ├── piecewise_constant_winding_number.cpp │ │ │ ├── piecewise_constant_winding_number.h │ │ │ ├── point_areas.cpp │ │ │ ├── point_areas.h │ │ │ ├── point_mesh_squared_distance.cpp │ │ │ ├── point_mesh_squared_distance.h │ │ │ ├── point_segment_squared_distance.cpp │ │ │ ├── point_segment_squared_distance.h │ │ │ ├── point_solid_signed_squared_distance.cpp │ │ │ ├── point_solid_signed_squared_distance.h │ │ │ ├── point_triangle_squared_distance.cpp │ │ │ ├── point_triangle_squared_distance.h │ │ │ ├── points_inside_component.cpp │ │ │ ├── points_inside_component.h │ │ │ ├── polyhedron_to_mesh.cpp │ │ │ ├── polyhedron_to_mesh.h │ │ │ ├── projected_cdt.cpp │ │ │ ├── projected_cdt.h │ │ │ ├── projected_delaunay.cpp │ │ │ ├── projected_delaunay.h │ │ │ ├── propagate_winding_numbers.cpp │ │ │ ├── propagate_winding_numbers.h │ │ │ ├── read_triangle_mesh.cpp │ │ │ ├── read_triangle_mesh.h │ │ │ ├── relabel_small_immersed_cells.cpp │ │ │ ├── relabel_small_immersed_cells.h │ │ │ ├── remesh_intersections.cpp │ │ │ ├── remesh_intersections.h │ │ │ ├── remesh_self_intersections.cpp │ │ │ ├── remesh_self_intersections.h │ │ │ ├── remove_unreferenced.cpp │ │ │ ├── resolve_intersections.cpp │ │ │ ├── resolve_intersections.h │ │ │ ├── row_to_point.cpp │ │ │ ├── row_to_point.h │ │ │ ├── segment_segment_squared_distance.cpp │ │ │ ├── segment_segment_squared_distance.h │ │ │ ├── signed_distance_isosurface.cpp │ │ │ ├── signed_distance_isosurface.h │ │ │ ├── slice.cpp │ │ │ ├── slice_mask.cpp │ │ │ ├── snap_rounding.cpp │ │ │ ├── snap_rounding.h │ │ │ ├── string_to_mesh_boolean_type.cpp │ │ │ ├── string_to_mesh_boolean_type.h │ │ │ ├── subdivide_segments.cpp │ │ │ ├── subdivide_segments.h │ │ │ ├── submesh_aabb_tree.cpp │ │ │ ├── submesh_aabb_tree.h │ │ │ ├── triangle_triangle_squared_distance.cpp │ │ │ ├── triangle_triangle_squared_distance.h │ │ │ ├── trim_with_solid.cpp │ │ │ ├── trim_with_solid.h │ │ │ ├── unique.cpp │ │ │ ├── unique_rows.cpp │ │ │ ├── wire_mesh.cpp │ │ │ └── wire_mesh.h │ │ ├── comiso │ │ │ ├── frame_field.cpp │ │ │ ├── frame_field.h │ │ │ ├── miq.cpp │ │ │ ├── miq.h │ │ │ ├── nrosy.cpp │ │ │ └── nrosy.h │ │ ├── cork │ │ │ ├── from_cork_mesh.cpp │ │ │ ├── from_cork_mesh.h │ │ │ ├── mesh_boolean.cpp │ │ │ ├── mesh_boolean.h │ │ │ ├── to_cork_mesh.cpp │ │ │ └── to_cork_mesh.h │ │ ├── marching_cubes.cpp │ │ ├── marching_cubes.h │ │ ├── marching_cubes_tables.h │ │ ├── offset_surface.cpp │ │ ├── offset_surface.h │ │ ├── opengl2 │ │ │ ├── render_to_tga.cpp │ │ │ ├── render_to_tga.h │ │ │ ├── texture_from_tga.cpp │ │ │ ├── texture_from_tga.h │ │ │ ├── tga.cpp │ │ │ └── tga.h │ │ ├── progressive_hulls.cpp │ │ ├── progressive_hulls.h │ │ ├── progressive_hulls_cost_and_placement.cpp │ │ ├── progressive_hulls_cost_and_placement.h │ │ ├── quadprog.cpp │ │ ├── quadprog.h │ │ ├── swept_volume.cpp │ │ ├── swept_volume.h │ │ └── tetgen │ │ │ ├── README │ │ │ ├── cdt.cpp │ │ │ ├── cdt.h │ │ │ ├── mesh_to_tetgenio.cpp │ │ │ ├── mesh_to_tetgenio.h │ │ │ ├── mesh_with_skeleton.cpp │ │ │ ├── mesh_with_skeleton.h │ │ │ ├── read_into_tetgenio.cpp │ │ │ ├── read_into_tetgenio.h │ │ │ ├── tetgenio_to_tetmesh.cpp │ │ │ ├── tetgenio_to_tetmesh.h │ │ │ ├── tetrahedralize.cpp │ │ │ └── tetrahedralize.h │ │ ├── cotmatrix.cpp │ │ ├── cotmatrix.h │ │ ├── cotmatrix_entries.cpp │ │ ├── cotmatrix_entries.h │ │ ├── cotmatrix_intrinsic.cpp │ │ ├── cotmatrix_intrinsic.h │ │ ├── count.cpp │ │ ├── count.h │ │ ├── covariance_scatter_matrix.cpp │ │ ├── covariance_scatter_matrix.h │ │ ├── cross.cpp │ │ ├── cross.h │ │ ├── cross_field_mismatch.cpp │ │ ├── cross_field_mismatch.h │ │ ├── crouzeix_raviart_cotmatrix.cpp │ │ ├── crouzeix_raviart_cotmatrix.h │ │ ├── crouzeix_raviart_massmatrix.cpp │ │ ├── crouzeix_raviart_massmatrix.h │ │ ├── cumprod.cpp │ │ ├── cumprod.h │ │ ├── cumsum.cpp │ │ ├── cumsum.h │ │ ├── cut_mesh.cpp │ │ ├── cut_mesh.h │ │ ├── cut_mesh_from_singularities.cpp │ │ ├── cut_mesh_from_singularities.h │ │ ├── cut_to_disk.cpp │ │ ├── cut_to_disk.h │ │ ├── cylinder.cpp │ │ ├── cylinder.h │ │ ├── dated_copy.cpp │ │ ├── dated_copy.h │ │ ├── decimate.cpp │ │ ├── decimate.h │ │ ├── deform_skeleton.cpp │ │ ├── deform_skeleton.h │ │ ├── delaunay_triangulation.cpp │ │ ├── delaunay_triangulation.h │ │ ├── deprecated.h │ │ ├── dfs.cpp │ │ ├── dfs.h │ │ ├── diag.cpp │ │ ├── diag.h │ │ ├── dihedral_angles.cpp │ │ ├── dihedral_angles.h │ │ ├── dijkstra.cpp │ │ ├── dijkstra.h │ │ ├── directed_edge_orientations.cpp │ │ ├── directed_edge_orientations.h │ │ ├── directed_edge_parents.cpp │ │ ├── directed_edge_parents.h │ │ ├── dirname.cpp │ │ ├── dirname.h │ │ ├── dot.cpp │ │ ├── dot.h │ │ ├── dot_row.cpp │ │ ├── dot_row.h │ │ ├── doublearea.cpp │ │ ├── doublearea.h │ │ ├── dqs.cpp │ │ ├── dqs.h │ │ ├── ears.cpp │ │ ├── ears.h │ │ ├── edge_collapse_is_valid.cpp │ │ ├── edge_collapse_is_valid.h │ │ ├── edge_exists_near.cpp │ │ ├── edge_exists_near.h │ │ ├── edge_flaps.cpp │ │ ├── edge_flaps.h │ │ ├── edge_lengths.cpp │ │ ├── edge_lengths.h │ │ ├── edge_topology.cpp │ │ ├── edge_topology.h │ │ ├── edges.cpp │ │ ├── edges.h │ │ ├── edges_to_path.cpp │ │ ├── edges_to_path.h │ │ ├── eigs.cpp │ │ ├── eigs.h │ │ ├── embree │ │ ├── EmbreeIntersector.h │ │ ├── Embree_convenience.h │ │ ├── ambient_occlusion.cpp │ │ ├── ambient_occlusion.h │ │ ├── bone_heat.cpp │ │ ├── bone_heat.h │ │ ├── bone_visible.cpp │ │ ├── bone_visible.h │ │ ├── line_mesh_intersection.cpp │ │ ├── line_mesh_intersection.h │ │ ├── reorient_facets_raycast.cpp │ │ ├── reorient_facets_raycast.h │ │ ├── shape_diameter_function.cpp │ │ ├── shape_diameter_function.h │ │ ├── unproject_in_mesh.cpp │ │ ├── unproject_in_mesh.h │ │ ├── unproject_onto_mesh.cpp │ │ └── unproject_onto_mesh.h │ │ ├── euler_characteristic.cpp │ │ ├── euler_characteristic.h │ │ ├── exact_geodesic.cpp │ │ ├── exact_geodesic.h │ │ ├── example_fun.cpp │ │ ├── example_fun.h │ │ ├── exterior_edges.cpp │ │ ├── exterior_edges.h │ │ ├── extract_manifold_patches.cpp │ │ ├── extract_manifold_patches.h │ │ ├── extract_non_manifold_edge_curves.cpp │ │ ├── extract_non_manifold_edge_curves.h │ │ ├── face_areas.cpp │ │ ├── face_areas.h │ │ ├── face_occurrences.cpp │ │ ├── face_occurrences.h │ │ ├── faces_first.cpp │ │ ├── faces_first.h │ │ ├── facet_components.cpp │ │ ├── facet_components.h │ │ ├── false_barycentric_subdivision.cpp │ │ ├── false_barycentric_subdivision.h │ │ ├── fast_winding_number.cpp │ │ ├── fast_winding_number.h │ │ ├── file_contents_as_string.cpp │ │ ├── file_contents_as_string.h │ │ ├── file_dialog_open.cpp │ │ ├── file_dialog_open.h │ │ ├── file_dialog_save.cpp │ │ ├── file_dialog_save.h │ │ ├── file_exists.cpp │ │ ├── file_exists.h │ │ ├── find.cpp │ │ ├── find.h │ │ ├── find_cross_field_singularities.cpp │ │ ├── find_cross_field_singularities.h │ │ ├── find_zero.cpp │ │ ├── find_zero.h │ │ ├── fit_plane.cpp │ │ ├── fit_plane.h │ │ ├── fit_rotations.cpp │ │ ├── fit_rotations.h │ │ ├── flip_avoiding_line_search.cpp │ │ ├── flip_avoiding_line_search.h │ │ ├── flip_edge.cpp │ │ ├── flip_edge.h │ │ ├── flipped_triangles.cpp │ │ ├── flipped_triangles.h │ │ ├── flood_fill.cpp │ │ ├── flood_fill.h │ │ ├── floor.cpp │ │ ├── floor.h │ │ ├── for_each.h │ │ ├── forward_kinematics.cpp │ │ ├── forward_kinematics.h │ │ ├── frame_field_deformer.cpp │ │ ├── frame_field_deformer.h │ │ ├── frame_to_cross_field.cpp │ │ ├── frame_to_cross_field.h │ │ ├── frustum.cpp │ │ ├── frustum.h │ │ ├── gaussian_curvature.cpp │ │ ├── gaussian_curvature.h │ │ ├── get_seconds.cpp │ │ ├── get_seconds.h │ │ ├── get_seconds_hires.cpp │ │ ├── get_seconds_hires.h │ │ ├── grad.cpp │ │ ├── grad.h │ │ ├── grad_intrinsic.cpp │ │ ├── grad_intrinsic.h │ │ ├── grid.cpp │ │ ├── grid.h │ │ ├── grid_search.cpp │ │ ├── grid_search.h │ │ ├── group_sum_matrix.cpp │ │ ├── group_sum_matrix.h │ │ ├── guess_extension.cpp │ │ ├── guess_extension.h │ │ ├── harmonic.cpp │ │ ├── harmonic.h │ │ ├── harwell_boeing.cpp │ │ ├── harwell_boeing.h │ │ ├── hausdorff.cpp │ │ ├── hausdorff.h │ │ ├── heat_geodesics.cpp │ │ ├── heat_geodesics.h │ │ ├── hessian.cpp │ │ ├── hessian.h │ │ ├── hessian_energy.cpp │ │ ├── hessian_energy.h │ │ ├── histc.cpp │ │ ├── histc.h │ │ ├── hsv_to_rgb.cpp │ │ ├── hsv_to_rgb.h │ │ ├── igl_inline.h │ │ ├── in_element.cpp │ │ ├── in_element.h │ │ ├── infinite_cost_stopping_condition.cpp │ │ ├── infinite_cost_stopping_condition.h │ │ ├── inradius.cpp │ │ ├── inradius.h │ │ ├── internal_angles.cpp │ │ ├── internal_angles.h │ │ ├── intersect.cpp │ │ ├── intersect.h │ │ ├── intrinsic_delaunay_cotmatrix.cpp │ │ ├── intrinsic_delaunay_cotmatrix.h │ │ ├── intrinsic_delaunay_triangulation.cpp │ │ ├── intrinsic_delaunay_triangulation.h │ │ ├── invert_diag.cpp │ │ ├── invert_diag.h │ │ ├── is_border_vertex.cpp │ │ ├── is_border_vertex.h │ │ ├── is_boundary_edge.cpp │ │ ├── is_boundary_edge.h │ │ ├── is_delaunay.cpp │ │ ├── is_delaunay.h │ │ ├── is_dir.cpp │ │ ├── is_dir.h │ │ ├── is_edge_manifold.cpp │ │ ├── is_edge_manifold.h │ │ ├── is_file.cpp │ │ ├── is_file.h │ │ ├── is_intrinsic_delaunay.cpp │ │ ├── is_intrinsic_delaunay.h │ │ ├── is_irregular_vertex.cpp │ │ ├── is_irregular_vertex.h │ │ ├── is_planar.cpp │ │ ├── is_planar.h │ │ ├── is_readable.cpp │ │ ├── is_readable.h │ │ ├── is_sparse.cpp │ │ ├── is_sparse.h │ │ ├── is_stl.cpp │ │ ├── is_stl.h │ │ ├── is_symmetric.cpp │ │ ├── is_symmetric.h │ │ ├── is_vertex_manifold.cpp │ │ ├── is_vertex_manifold.h │ │ ├── is_writable.cpp │ │ ├── is_writable.h │ │ ├── isdiag.cpp │ │ ├── isdiag.h │ │ ├── ismember.cpp │ │ ├── ismember.h │ │ ├── isolines.cpp │ │ ├── isolines.h │ │ ├── jet.cpp │ │ ├── jet.h │ │ ├── knn.cpp │ │ ├── knn.h │ │ ├── launch_medit.cpp │ │ ├── launch_medit.h │ │ ├── lbs_matrix.cpp │ │ ├── lbs_matrix.h │ │ ├── lexicographic_triangulation.cpp │ │ ├── lexicographic_triangulation.h │ │ ├── limit_faces.cpp │ │ ├── limit_faces.h │ │ ├── line_field_mismatch.cpp │ │ ├── line_field_mismatch.h │ │ ├── line_search.cpp │ │ ├── line_search.h │ │ ├── line_segment_in_rectangle.cpp │ │ ├── line_segment_in_rectangle.h │ │ ├── linprog.cpp │ │ ├── linprog.h │ │ ├── list_to_matrix.cpp │ │ ├── list_to_matrix.h │ │ ├── local_basis.cpp │ │ ├── local_basis.h │ │ ├── look_at.cpp │ │ ├── look_at.h │ │ ├── loop.cpp │ │ ├── loop.h │ │ ├── lscm.cpp │ │ ├── lscm.h │ │ ├── map_vertices_to_circle.cpp │ │ ├── map_vertices_to_circle.h │ │ ├── mapping_energy_with_jacobians.cpp │ │ ├── mapping_energy_with_jacobians.h │ │ ├── marching_tets.cpp │ │ ├── marching_tets.h │ │ ├── massmatrix.cpp │ │ ├── massmatrix.h │ │ ├── massmatrix_intrinsic.cpp │ │ ├── massmatrix_intrinsic.h │ │ ├── mat_max.cpp │ │ ├── mat_max.h │ │ ├── mat_min.cpp │ │ ├── mat_min.h │ │ ├── mat_to_quat.cpp │ │ ├── mat_to_quat.h │ │ ├── material_colors.h │ │ ├── matlab │ │ ├── MatlabWorkspace.h │ │ ├── MexStream.h │ │ ├── matlabinterface.cpp │ │ ├── matlabinterface.h │ │ ├── mexErrMsgTxt.cpp │ │ ├── mexErrMsgTxt.h │ │ ├── parse_rhs.cpp │ │ ├── parse_rhs.h │ │ ├── prepare_lhs.cpp │ │ ├── prepare_lhs.h │ │ ├── requires_arg.cpp │ │ ├── requires_arg.h │ │ ├── validate_arg.cpp │ │ └── validate_arg.h │ │ ├── matlab_format.cpp │ │ ├── matlab_format.h │ │ ├── matrix_to_list.cpp │ │ ├── matrix_to_list.h │ │ ├── max.cpp │ │ ├── max.h │ │ ├── max_faces_stopping_condition.cpp │ │ ├── max_faces_stopping_condition.h │ │ ├── max_size.cpp │ │ ├── max_size.h │ │ ├── median.cpp │ │ ├── median.h │ │ ├── min.cpp │ │ ├── min.h │ │ ├── min_quad_dense.cpp │ │ ├── min_quad_dense.h │ │ ├── min_quad_with_fixed.cpp │ │ ├── min_quad_with_fixed.h │ │ ├── min_size.cpp │ │ ├── min_size.h │ │ ├── mod.cpp │ │ ├── mod.h │ │ ├── mode.cpp │ │ ├── mode.h │ │ ├── mosek │ │ ├── bbw.cpp │ │ ├── bbw.h │ │ ├── mosek_guarded.cpp │ │ ├── mosek_guarded.h │ │ ├── mosek_linprog.cpp │ │ ├── mosek_linprog.h │ │ ├── mosek_quadprog.cpp │ │ └── mosek_quadprog.h │ │ ├── mvc.cpp │ │ ├── mvc.h │ │ ├── nchoosek.cpp │ │ ├── nchoosek.h │ │ ├── next_filename.cpp │ │ ├── next_filename.h │ │ ├── normal_derivative.cpp │ │ ├── normal_derivative.h │ │ ├── normalize_quat.cpp │ │ ├── normalize_quat.h │ │ ├── normalize_row_lengths.cpp │ │ ├── normalize_row_lengths.h │ │ ├── normalize_row_sums.cpp │ │ ├── normalize_row_sums.h │ │ ├── null.cpp │ │ ├── null.h │ │ ├── octree.cpp │ │ ├── octree.h │ │ ├── on_boundary.cpp │ │ ├── on_boundary.h │ │ ├── opengl │ │ ├── MeshGL.cpp │ │ ├── MeshGL.h │ │ ├── ViewerCore.cpp │ │ ├── ViewerCore.h │ │ ├── ViewerData.cpp │ │ ├── ViewerData.h │ │ ├── bind_vertex_attrib_array.cpp │ │ ├── bind_vertex_attrib_array.h │ │ ├── create_index_vbo.cpp │ │ ├── create_index_vbo.h │ │ ├── create_mesh_vbo.cpp │ │ ├── create_mesh_vbo.h │ │ ├── create_shader_program.cpp │ │ ├── create_shader_program.h │ │ ├── create_vector_vbo.cpp │ │ ├── create_vector_vbo.h │ │ ├── destroy_shader_program.cpp │ │ ├── destroy_shader_program.h │ │ ├── gl.h │ │ ├── gl_type_size.cpp │ │ ├── gl_type_size.h │ │ ├── glfw │ │ │ ├── Viewer.cpp │ │ │ ├── Viewer.h │ │ │ ├── ViewerPlugin.h │ │ │ ├── background_window.cpp │ │ │ ├── background_window.h │ │ │ ├── imgui │ │ │ │ ├── ImGuiHelpers.h │ │ │ │ ├── ImGuiMenu.cpp │ │ │ │ ├── ImGuiMenu.h │ │ │ │ └── ImGuiTraits.h │ │ │ ├── map_texture.cpp │ │ │ └── map_texture.h │ │ ├── init_render_to_texture.cpp │ │ ├── init_render_to_texture.h │ │ ├── load_shader.cpp │ │ ├── load_shader.h │ │ ├── print_program_info_log.cpp │ │ ├── print_program_info_log.h │ │ ├── print_shader_info_log.cpp │ │ ├── print_shader_info_log.h │ │ ├── report_gl_error.cpp │ │ ├── report_gl_error.h │ │ ├── uniform_type_to_string.cpp │ │ ├── uniform_type_to_string.h │ │ ├── vertex_array.cpp │ │ └── vertex_array.h │ │ ├── orient_outward.cpp │ │ ├── orient_outward.h │ │ ├── orientable_patches.cpp │ │ ├── orientable_patches.h │ │ ├── oriented_facets.cpp │ │ ├── oriented_facets.h │ │ ├── orth.cpp │ │ ├── orth.h │ │ ├── ortho.cpp │ │ ├── ortho.h │ │ ├── outer_element.cpp │ │ ├── outer_element.h │ │ ├── parallel_for.h │ │ ├── parallel_transport_angles.cpp │ │ ├── parallel_transport_angles.h │ │ ├── partition.cpp │ │ ├── partition.h │ │ ├── parula.cpp │ │ ├── parula.h │ │ ├── path_to_executable.cpp │ │ ├── path_to_executable.h │ │ ├── pathinfo.cpp │ │ ├── pathinfo.h │ │ ├── per_corner_normals.cpp │ │ ├── per_corner_normals.h │ │ ├── per_edge_normals.cpp │ │ ├── per_edge_normals.h │ │ ├── per_face_normals.cpp │ │ ├── per_face_normals.h │ │ ├── per_vertex_attribute_smoothing.cpp │ │ ├── per_vertex_attribute_smoothing.h │ │ ├── per_vertex_normals.cpp │ │ ├── per_vertex_normals.h │ │ ├── per_vertex_point_to_plane_quadrics.cpp │ │ ├── per_vertex_point_to_plane_quadrics.h │ │ ├── piecewise_constant_winding_number.cpp │ │ ├── piecewise_constant_winding_number.h │ │ ├── pinv.cpp │ │ ├── pinv.h │ │ ├── planarize_quad_mesh.cpp │ │ ├── planarize_quad_mesh.h │ │ ├── ply.h │ │ ├── png │ │ ├── readPNG.cpp │ │ ├── readPNG.h │ │ ├── render_to_png.cpp │ │ ├── render_to_png.h │ │ ├── render_to_png_async.cpp │ │ ├── render_to_png_async.h │ │ ├── texture_from_file.cpp │ │ ├── texture_from_file.h │ │ ├── texture_from_png.cpp │ │ ├── texture_from_png.h │ │ ├── writePNG.cpp │ │ └── writePNG.h │ │ ├── point_in_circle.cpp │ │ ├── point_in_circle.h │ │ ├── point_in_poly.cpp │ │ ├── point_in_poly.h │ │ ├── point_mesh_squared_distance.cpp │ │ ├── point_mesh_squared_distance.h │ │ ├── point_simplex_squared_distance.cpp │ │ ├── point_simplex_squared_distance.h │ │ ├── polar_dec.cpp │ │ ├── polar_dec.h │ │ ├── polar_svd.cpp │ │ ├── polar_svd.h │ │ ├── polar_svd3x3.cpp │ │ ├── polar_svd3x3.h │ │ ├── polygon_mesh_to_triangle_mesh.cpp │ │ ├── polygon_mesh_to_triangle_mesh.h │ │ ├── predicates │ │ ├── predicates.cpp │ │ └── predicates.h │ │ ├── principal_curvature.cpp │ │ ├── principal_curvature.h │ │ ├── print_ijv.cpp │ │ ├── print_ijv.h │ │ ├── print_vector.cpp │ │ ├── print_vector.h │ │ ├── procrustes.cpp │ │ ├── procrustes.h │ │ ├── project.cpp │ │ ├── project.h │ │ ├── project_isometrically_to_plane.cpp │ │ ├── project_isometrically_to_plane.h │ │ ├── project_to_line.cpp │ │ ├── project_to_line.h │ │ ├── project_to_line_segment.cpp │ │ ├── project_to_line_segment.h │ │ ├── pseudonormal_test.cpp │ │ ├── pseudonormal_test.h │ │ ├── pso.cpp │ │ ├── pso.h │ │ ├── qslim.cpp │ │ ├── qslim.h │ │ ├── qslim_optimal_collapse_edge_callbacks.cpp │ │ ├── qslim_optimal_collapse_edge_callbacks.h │ │ ├── quad_planarity.cpp │ │ ├── quad_planarity.h │ │ ├── quadric_binary_plus_operator.cpp │ │ ├── quadric_binary_plus_operator.h │ │ ├── quat_conjugate.cpp │ │ ├── quat_conjugate.h │ │ ├── quat_mult.cpp │ │ ├── quat_mult.h │ │ ├── quat_to_axis_angle.cpp │ │ ├── quat_to_axis_angle.h │ │ ├── quat_to_mat.cpp │ │ ├── quat_to_mat.h │ │ ├── quats_to_column.cpp │ │ ├── quats_to_column.h │ │ ├── ramer_douglas_peucker.cpp │ │ ├── ramer_douglas_peucker.h │ │ ├── random_dir.cpp │ │ ├── random_dir.h │ │ ├── random_points_on_mesh.cpp │ │ ├── random_points_on_mesh.h │ │ ├── random_quaternion.cpp │ │ ├── random_quaternion.h │ │ ├── random_search.cpp │ │ ├── random_search.h │ │ ├── randperm.cpp │ │ ├── randperm.h │ │ ├── ray_box_intersect.cpp │ │ ├── ray_box_intersect.h │ │ ├── ray_mesh_intersect.cpp │ │ ├── ray_mesh_intersect.h │ │ ├── ray_sphere_intersect.cpp │ │ ├── ray_sphere_intersect.h │ │ ├── raytri.c │ │ ├── readBF.cpp │ │ ├── readBF.h │ │ ├── readCSV.cpp │ │ ├── readCSV.h │ │ ├── readDMAT.cpp │ │ ├── readDMAT.h │ │ ├── readMESH.cpp │ │ ├── readMESH.h │ │ ├── readMSH.cpp │ │ ├── readMSH.h │ │ ├── readNODE.cpp │ │ ├── readNODE.h │ │ ├── readOBJ.cpp │ │ ├── readOBJ.h │ │ ├── readOFF.cpp │ │ ├── readOFF.h │ │ ├── readPLY.cpp │ │ ├── readPLY.h │ │ ├── readSTL.cpp │ │ ├── readSTL.h │ │ ├── readTGF.cpp │ │ ├── readTGF.h │ │ ├── readWRL.cpp │ │ ├── readWRL.h │ │ ├── read_triangle_mesh.cpp │ │ ├── read_triangle_mesh.h │ │ ├── redux.h │ │ ├── remesh_along_isoline.cpp │ │ ├── remesh_along_isoline.h │ │ ├── remove_duplicate_vertices.cpp │ │ ├── remove_duplicate_vertices.h │ │ ├── remove_duplicates.cpp │ │ ├── remove_duplicates.h │ │ ├── remove_unreferenced.cpp │ │ ├── remove_unreferenced.h │ │ ├── reorder.cpp │ │ ├── reorder.h │ │ ├── repdiag.cpp │ │ ├── repdiag.h │ │ ├── repmat.cpp │ │ ├── repmat.h │ │ ├── resolve_duplicated_faces.cpp │ │ ├── resolve_duplicated_faces.h │ │ ├── rgb_to_hsv.cpp │ │ ├── rgb_to_hsv.h │ │ ├── rotate_by_quat.cpp │ │ ├── rotate_by_quat.h │ │ ├── rotate_vectors.cpp │ │ ├── rotate_vectors.h │ │ ├── rotation_matrix_from_directions.cpp │ │ ├── rotation_matrix_from_directions.h │ │ ├── round.cpp │ │ ├── round.h │ │ ├── rows_to_matrix.cpp │ │ ├── rows_to_matrix.h │ │ ├── sample_edges.cpp │ │ ├── sample_edges.h │ │ ├── scaf.cpp │ │ ├── scaf.h │ │ ├── seam_edges.cpp │ │ ├── seam_edges.h │ │ ├── segment_segment_intersect.cpp │ │ ├── segment_segment_intersect.h │ │ ├── serialize.h │ │ ├── setdiff.cpp │ │ ├── setdiff.h │ │ ├── setunion.cpp │ │ ├── setunion.h │ │ ├── setxor.cpp │ │ ├── setxor.h │ │ ├── shape_diameter_function.cpp │ │ ├── shape_diameter_function.h │ │ ├── shapeup.cpp │ │ ├── shapeup.h │ │ ├── shortest_edge_and_midpoint.cpp │ │ ├── shortest_edge_and_midpoint.h │ │ ├── signed_angle.cpp │ │ ├── signed_angle.h │ │ ├── signed_distance.cpp │ │ ├── signed_distance.h │ │ ├── simplify_polyhedron.cpp │ │ ├── simplify_polyhedron.h │ │ ├── slice.cpp │ │ ├── slice.h │ │ ├── slice_cached.cpp │ │ ├── slice_cached.h │ │ ├── slice_into.cpp │ │ ├── slice_into.h │ │ ├── slice_mask.cpp │ │ ├── slice_mask.h │ │ ├── slim.cpp │ │ ├── slim.h │ │ ├── snap_points.cpp │ │ ├── snap_points.h │ │ ├── snap_to_canonical_view_quat.cpp │ │ ├── snap_to_canonical_view_quat.h │ │ ├── snap_to_fixed_up.cpp │ │ ├── snap_to_fixed_up.h │ │ ├── solid_angle.cpp │ │ ├── solid_angle.h │ │ ├── sort.cpp │ │ ├── sort.h │ │ ├── sort_angles.cpp │ │ ├── sort_angles.h │ │ ├── sort_triangles.cpp │ │ ├── sort_triangles.h │ │ ├── sort_vectors_ccw.cpp │ │ ├── sort_vectors_ccw.h │ │ ├── sortrows.cpp │ │ ├── sortrows.h │ │ ├── sparse.cpp │ │ ├── sparse.h │ │ ├── sparse_cached.cpp │ │ ├── sparse_cached.h │ │ ├── sparse_voxel_grid.cpp │ │ ├── sparse_voxel_grid.h │ │ ├── speye.cpp │ │ ├── speye.h │ │ ├── squared_edge_lengths.cpp │ │ ├── squared_edge_lengths.h │ │ ├── stdin_to_temp.cpp │ │ ├── stdin_to_temp.h │ │ ├── straighten_seams.cpp │ │ ├── straighten_seams.h │ │ ├── sum.cpp │ │ ├── sum.h │ │ ├── svd3x3.cpp │ │ ├── svd3x3.h │ │ ├── svd3x3_avx.cpp │ │ ├── svd3x3_avx.h │ │ ├── svd3x3_sse.cpp │ │ ├── svd3x3_sse.h │ │ ├── swept_volume_bounding_box.cpp │ │ ├── swept_volume_bounding_box.h │ │ ├── swept_volume_signed_distance.cpp │ │ ├── swept_volume_signed_distance.h │ │ ├── tan_half_angle.cpp │ │ ├── tan_half_angle.h │ │ ├── tet_tet_adjacency.cpp │ │ ├── tet_tet_adjacency.h │ │ ├── topological_hole_fill.cpp │ │ ├── topological_hole_fill.h │ │ ├── trackball.cpp │ │ ├── trackball.h │ │ ├── transpose_blocks.cpp │ │ ├── transpose_blocks.h │ │ ├── triangle │ │ ├── cdt.cpp │ │ ├── cdt.h │ │ ├── triangulate.cpp │ │ └── triangulate.h │ │ ├── triangle_fan.cpp │ │ ├── triangle_fan.h │ │ ├── triangle_triangle_adjacency.cpp │ │ ├── triangle_triangle_adjacency.h │ │ ├── triangles_from_strip.cpp │ │ ├── triangles_from_strip.h │ │ ├── triangulated_grid.cpp │ │ ├── triangulated_grid.h │ │ ├── two_axis_valuator_fixed_up.cpp │ │ ├── two_axis_valuator_fixed_up.h │ │ ├── uniformly_sample_two_manifold.cpp │ │ ├── uniformly_sample_two_manifold.h │ │ ├── unique.cpp │ │ ├── unique.h │ │ ├── unique_edge_map.cpp │ │ ├── unique_edge_map.h │ │ ├── unique_rows.cpp │ │ ├── unique_rows.h │ │ ├── unique_simplices.cpp │ │ ├── unique_simplices.h │ │ ├── unproject.cpp │ │ ├── unproject.h │ │ ├── unproject_in_mesh.cpp │ │ ├── unproject_in_mesh.h │ │ ├── unproject_onto_mesh.cpp │ │ ├── unproject_onto_mesh.h │ │ ├── unproject_ray.cpp │ │ ├── unproject_ray.h │ │ ├── unzip_corners.cpp │ │ ├── unzip_corners.h │ │ ├── upsample.cpp │ │ ├── upsample.h │ │ ├── vector_area_matrix.cpp │ │ ├── vector_area_matrix.h │ │ ├── verbose.h │ │ ├── vertex_components.cpp │ │ ├── vertex_components.h │ │ ├── vertex_triangle_adjacency.cpp │ │ ├── vertex_triangle_adjacency.h │ │ ├── volume.cpp │ │ ├── volume.h │ │ ├── voxel_grid.cpp │ │ ├── voxel_grid.h │ │ ├── winding_number.cpp │ │ ├── winding_number.h │ │ ├── writeBF.cpp │ │ ├── writeBF.h │ │ ├── writeDMAT.cpp │ │ ├── writeDMAT.h │ │ ├── writeMESH.cpp │ │ ├── writeMESH.h │ │ ├── writeOBJ.cpp │ │ ├── writeOBJ.h │ │ ├── writeOFF.cpp │ │ ├── writeOFF.h │ │ ├── writePLY.cpp │ │ ├── writePLY.h │ │ ├── writeSTL.cpp │ │ ├── writeSTL.h │ │ ├── writeTGF.cpp │ │ ├── writeTGF.h │ │ ├── writeWRL.cpp │ │ ├── writeWRL.h │ │ ├── write_triangle_mesh.cpp │ │ ├── write_triangle_mesh.h │ │ └── xml │ │ ├── ReAntTweakBarXMLSerialization.h │ │ ├── XMLSerializable.h │ │ ├── serialization_test.skip │ │ ├── serialize_xml.cpp │ │ ├── serialize_xml.h │ │ ├── writeDAE.cpp │ │ ├── writeDAE.h │ │ ├── write_triangle_mesh.cpp │ │ └── write_triangle_mesh.h │ └── Source │ ├── IGLDemo.Target.cs │ ├── IGLDemo │ ├── IGLDemo.Build.cs │ ├── IGLDemo.cpp │ ├── IGLDemo.h │ ├── IGLDemoGameModeBase.cpp │ └── IGLDemoGameModeBase.h │ └── IGLDemoEditor.Target.cs └── UE4.26 ├── CommandLineGeometryTest ├── CommandLineGeometryTest.Build.cs ├── CommandLineGeometryTest.Target.cs └── Private │ ├── CommandLineGeometryTest.cpp │ ├── CommandLineGeometryTest.h │ ├── DynamicMeshOBJReader.h │ ├── DynamicMeshOBJWriter.h │ └── tinyobj │ ├── LICENSE │ ├── README.md │ ├── tiny_obj_loader.cpp │ └── tiny_obj_loader.h ├── IGLMeshProcessingProject ├── Config │ ├── DefaultEditor.ini │ ├── DefaultEngine.ini │ └── DefaultGame.ini ├── IGLMeshProcessing.uproject ├── Plugins │ └── MeshProcessingPlugin │ │ ├── MeshProcessingPlugin.uplugin │ │ ├── Resources │ │ └── Icon128.png │ │ ├── Source │ │ └── MeshProcessingPlugin │ │ │ ├── MeshProcessingPlugin.Build.cs │ │ │ ├── Private │ │ │ ├── MeshProcessingPlugin.cpp │ │ │ ├── MeshProcessingPluginCommands.cpp │ │ │ ├── MeshProcessingPluginEdMode.cpp │ │ │ ├── MeshProcessingPluginEdModeToolkit.cpp │ │ │ ├── MeshProcessingPluginStyle.cpp │ │ │ └── Tools │ │ │ │ ├── IGLIncludes.h │ │ │ │ ├── IGLSmoothingTool.cpp │ │ │ │ ├── IGLUtil.h │ │ │ │ ├── MeshExportTool.cpp │ │ │ │ └── MeshProcessingTool.cpp │ │ │ └── Public │ │ │ ├── MeshProcessingPlugin.h │ │ │ ├── MeshProcessingPluginCommands.h │ │ │ ├── MeshProcessingPluginEdMode.h │ │ │ ├── MeshProcessingPluginEdModeToolkit.h │ │ │ ├── MeshProcessingPluginStyle.h │ │ │ └── Tools │ │ │ ├── IGLSmoothingTool.h │ │ │ ├── MeshExportTool.h │ │ │ ├── MeshProcessingTool.h │ │ │ └── OBJWriter.h │ │ └── ThirdParty │ │ ├── eigen │ │ ├── .gitignore │ │ ├── .hgeol │ │ ├── CMakeLists.txt │ │ ├── COPYING.BSD │ │ ├── COPYING.GPL │ │ ├── COPYING.LGPL │ │ ├── COPYING.MINPACK │ │ ├── COPYING.MPL2 │ │ ├── COPYING.README │ │ ├── CTestConfig.cmake │ │ ├── CTestCustom.cmake.in │ │ ├── Eigen │ │ │ ├── Cholesky │ │ │ ├── CholmodSupport │ │ │ ├── Core │ │ │ ├── Dense │ │ │ ├── Eigen │ │ │ ├── Eigenvalues │ │ │ ├── Geometry │ │ │ ├── Householder │ │ │ ├── IterativeLinearSolvers │ │ │ ├── Jacobi │ │ │ ├── KLUSupport │ │ │ ├── LU │ │ │ ├── MetisSupport │ │ │ ├── OrderingMethods │ │ │ ├── PaStiXSupport │ │ │ ├── PardisoSupport │ │ │ ├── QR │ │ │ ├── QtAlignedMalloc │ │ │ ├── SPQRSupport │ │ │ ├── SVD │ │ │ ├── Sparse │ │ │ ├── SparseCholesky │ │ │ ├── SparseCore │ │ │ ├── SparseLU │ │ │ ├── SparseQR │ │ │ ├── StdDeque │ │ │ ├── StdList │ │ │ ├── StdVector │ │ │ ├── SuperLUSupport │ │ │ ├── UmfPackSupport │ │ │ └── src │ │ │ │ ├── Cholesky │ │ │ │ ├── LDLT.h │ │ │ │ ├── LLT.h │ │ │ │ └── LLT_LAPACKE.h │ │ │ │ ├── CholmodSupport │ │ │ │ └── CholmodSupport.h │ │ │ │ ├── Core │ │ │ │ ├── ArithmeticSequence.h │ │ │ │ ├── Array.h │ │ │ │ ├── ArrayBase.h │ │ │ │ ├── ArrayWrapper.h │ │ │ │ ├── Assign.h │ │ │ │ ├── AssignEvaluator.h │ │ │ │ ├── Assign_MKL.h │ │ │ │ ├── BandMatrix.h │ │ │ │ ├── Block.h │ │ │ │ ├── BooleanRedux.h │ │ │ │ ├── CommaInitializer.h │ │ │ │ ├── ConditionEstimator.h │ │ │ │ ├── CoreEvaluators.h │ │ │ │ ├── CoreIterators.h │ │ │ │ ├── CwiseBinaryOp.h │ │ │ │ ├── CwiseNullaryOp.h │ │ │ │ ├── CwiseTernaryOp.h │ │ │ │ ├── CwiseUnaryOp.h │ │ │ │ ├── CwiseUnaryView.h │ │ │ │ ├── DenseBase.h │ │ │ │ ├── DenseCoeffsBase.h │ │ │ │ ├── DenseStorage.h │ │ │ │ ├── Diagonal.h │ │ │ │ ├── DiagonalMatrix.h │ │ │ │ ├── DiagonalProduct.h │ │ │ │ ├── Dot.h │ │ │ │ ├── EigenBase.h │ │ │ │ ├── ForceAlignedAccess.h │ │ │ │ ├── Fuzzy.h │ │ │ │ ├── GeneralProduct.h │ │ │ │ ├── GenericPacketMath.h │ │ │ │ ├── GlobalFunctions.h │ │ │ │ ├── IO.h │ │ │ │ ├── IndexedView.h │ │ │ │ ├── Inverse.h │ │ │ │ ├── Map.h │ │ │ │ ├── MapBase.h │ │ │ │ ├── MathFunctions.h │ │ │ │ ├── MathFunctionsImpl.h │ │ │ │ ├── Matrix.h │ │ │ │ ├── MatrixBase.h │ │ │ │ ├── NestByValue.h │ │ │ │ ├── NoAlias.h │ │ │ │ ├── NumTraits.h │ │ │ │ ├── PartialReduxEvaluator.h │ │ │ │ ├── PermutationMatrix.h │ │ │ │ ├── PlainObjectBase.h │ │ │ │ ├── Product.h │ │ │ │ ├── ProductEvaluators.h │ │ │ │ ├── Random.h │ │ │ │ ├── Redux.h │ │ │ │ ├── Ref.h │ │ │ │ ├── Replicate.h │ │ │ │ ├── Reshaped.h │ │ │ │ ├── ReturnByValue.h │ │ │ │ ├── Reverse.h │ │ │ │ ├── Select.h │ │ │ │ ├── SelfAdjointView.h │ │ │ │ ├── SelfCwiseBinaryOp.h │ │ │ │ ├── Solve.h │ │ │ │ ├── SolveTriangular.h │ │ │ │ ├── SolverBase.h │ │ │ │ ├── StableNorm.h │ │ │ │ ├── StlIterators.h │ │ │ │ ├── Stride.h │ │ │ │ ├── Swap.h │ │ │ │ ├── Transpose.h │ │ │ │ ├── Transpositions.h │ │ │ │ ├── TriangularMatrix.h │ │ │ │ ├── VectorBlock.h │ │ │ │ ├── VectorwiseOp.h │ │ │ │ ├── Visitor.h │ │ │ │ ├── arch │ │ │ │ │ ├── AVX │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AVX512 │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AltiVec │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── CUDA │ │ │ │ │ │ └── Complex.h │ │ │ │ │ ├── Default │ │ │ │ │ │ ├── ConjHelper.h │ │ │ │ │ │ ├── GenericPacketMathFunctions.h │ │ │ │ │ │ ├── GenericPacketMathFunctionsFwd.h │ │ │ │ │ │ ├── Half.h │ │ │ │ │ │ ├── Settings.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── GPU │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── HIP │ │ │ │ │ │ └── hcc │ │ │ │ │ │ │ └── math_constants.h │ │ │ │ │ ├── MSA │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── NEON │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SSE │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SYCL │ │ │ │ │ │ ├── InteropHeaders.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ ├── SyclMemoryModel.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ └── ZVector │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ ├── functors │ │ │ │ │ ├── AssignmentFunctors.h │ │ │ │ │ ├── BinaryFunctors.h │ │ │ │ │ ├── NullaryFunctors.h │ │ │ │ │ ├── StlFunctors.h │ │ │ │ │ ├── TernaryFunctors.h │ │ │ │ │ └── UnaryFunctors.h │ │ │ │ ├── products │ │ │ │ │ ├── GeneralBlockPanelKernel.h │ │ │ │ │ ├── GeneralMatrixMatrix.h │ │ │ │ │ ├── GeneralMatrixMatrixTriangular.h │ │ │ │ │ ├── GeneralMatrixMatrixTriangular_BLAS.h │ │ │ │ │ ├── GeneralMatrixMatrix_BLAS.h │ │ │ │ │ ├── GeneralMatrixVector.h │ │ │ │ │ ├── GeneralMatrixVector_BLAS.h │ │ │ │ │ ├── Parallelizer.h │ │ │ │ │ ├── SelfadjointMatrixMatrix.h │ │ │ │ │ ├── SelfadjointMatrixMatrix_BLAS.h │ │ │ │ │ ├── SelfadjointMatrixVector.h │ │ │ │ │ ├── SelfadjointMatrixVector_BLAS.h │ │ │ │ │ ├── SelfadjointProduct.h │ │ │ │ │ ├── SelfadjointRank2Update.h │ │ │ │ │ ├── TriangularMatrixMatrix.h │ │ │ │ │ ├── TriangularMatrixMatrix_BLAS.h │ │ │ │ │ ├── TriangularMatrixVector.h │ │ │ │ │ ├── TriangularMatrixVector_BLAS.h │ │ │ │ │ ├── TriangularSolverMatrix.h │ │ │ │ │ ├── TriangularSolverMatrix_BLAS.h │ │ │ │ │ └── TriangularSolverVector.h │ │ │ │ └── util │ │ │ │ │ ├── BlasUtil.h │ │ │ │ │ ├── ConfigureVectorization.h │ │ │ │ │ ├── Constants.h │ │ │ │ │ ├── DisableStupidWarnings.h │ │ │ │ │ ├── ForwardDeclarations.h │ │ │ │ │ ├── IndexedViewHelper.h │ │ │ │ │ ├── IntegralConstant.h │ │ │ │ │ ├── MKL_support.h │ │ │ │ │ ├── Macros.h │ │ │ │ │ ├── Memory.h │ │ │ │ │ ├── Meta.h │ │ │ │ │ ├── NonMPL2.h │ │ │ │ │ ├── ReenableStupidWarnings.h │ │ │ │ │ ├── ReshapedHelper.h │ │ │ │ │ ├── StaticAssert.h │ │ │ │ │ ├── SymbolicIndex.h │ │ │ │ │ └── XprHelper.h │ │ │ │ ├── Eigenvalues │ │ │ │ ├── ComplexEigenSolver.h │ │ │ │ ├── ComplexSchur.h │ │ │ │ ├── ComplexSchur_LAPACKE.h │ │ │ │ ├── EigenSolver.h │ │ │ │ ├── GeneralizedEigenSolver.h │ │ │ │ ├── GeneralizedSelfAdjointEigenSolver.h │ │ │ │ ├── HessenbergDecomposition.h │ │ │ │ ├── MatrixBaseEigenvalues.h │ │ │ │ ├── RealQZ.h │ │ │ │ ├── RealSchur.h │ │ │ │ ├── RealSchur_LAPACKE.h │ │ │ │ ├── SelfAdjointEigenSolver.h │ │ │ │ ├── SelfAdjointEigenSolver_LAPACKE.h │ │ │ │ └── Tridiagonalization.h │ │ │ │ ├── Geometry │ │ │ │ ├── AlignedBox.h │ │ │ │ ├── AngleAxis.h │ │ │ │ ├── EulerAngles.h │ │ │ │ ├── Homogeneous.h │ │ │ │ ├── Hyperplane.h │ │ │ │ ├── OrthoMethods.h │ │ │ │ ├── ParametrizedLine.h │ │ │ │ ├── Quaternion.h │ │ │ │ ├── Rotation2D.h │ │ │ │ ├── RotationBase.h │ │ │ │ ├── Scaling.h │ │ │ │ ├── Transform.h │ │ │ │ ├── Translation.h │ │ │ │ ├── Umeyama.h │ │ │ │ └── arch │ │ │ │ │ └── Geometry_SSE.h │ │ │ │ ├── Householder │ │ │ │ ├── BlockHouseholder.h │ │ │ │ ├── Householder.h │ │ │ │ └── HouseholderSequence.h │ │ │ │ ├── IterativeLinearSolvers │ │ │ │ ├── BasicPreconditioners.h │ │ │ │ ├── BiCGSTAB.h │ │ │ │ ├── ConjugateGradient.h │ │ │ │ ├── IncompleteCholesky.h │ │ │ │ ├── IncompleteLUT.h │ │ │ │ ├── IterativeSolverBase.h │ │ │ │ ├── LeastSquareConjugateGradient.h │ │ │ │ └── SolveWithGuess.h │ │ │ │ ├── Jacobi │ │ │ │ └── Jacobi.h │ │ │ │ ├── KLUSupport │ │ │ │ └── KLUSupport.h │ │ │ │ ├── LU │ │ │ │ ├── Determinant.h │ │ │ │ ├── FullPivLU.h │ │ │ │ ├── InverseImpl.h │ │ │ │ ├── PartialPivLU.h │ │ │ │ ├── PartialPivLU_LAPACKE.h │ │ │ │ └── arch │ │ │ │ │ └── Inverse_SSE.h │ │ │ │ ├── MetisSupport │ │ │ │ └── MetisSupport.h │ │ │ │ ├── OrderingMethods │ │ │ │ ├── Amd.h │ │ │ │ ├── Eigen_Colamd.h │ │ │ │ └── Ordering.h │ │ │ │ ├── PaStiXSupport │ │ │ │ └── PaStiXSupport.h │ │ │ │ ├── PardisoSupport │ │ │ │ └── PardisoSupport.h │ │ │ │ ├── QR │ │ │ │ ├── ColPivHouseholderQR.h │ │ │ │ ├── ColPivHouseholderQR_LAPACKE.h │ │ │ │ ├── CompleteOrthogonalDecomposition.h │ │ │ │ ├── FullPivHouseholderQR.h │ │ │ │ ├── HouseholderQR.h │ │ │ │ └── HouseholderQR_LAPACKE.h │ │ │ │ ├── SPQRSupport │ │ │ │ └── SuiteSparseQRSupport.h │ │ │ │ ├── SVD │ │ │ │ ├── BDCSVD.h │ │ │ │ ├── JacobiSVD.h │ │ │ │ ├── JacobiSVD_LAPACKE.h │ │ │ │ ├── SVDBase.h │ │ │ │ └── UpperBidiagonalization.h │ │ │ │ ├── SparseCholesky │ │ │ │ ├── SimplicialCholesky.h │ │ │ │ └── SimplicialCholesky_impl.h │ │ │ │ ├── SparseCore │ │ │ │ ├── AmbiVector.h │ │ │ │ ├── CompressedStorage.h │ │ │ │ ├── ConservativeSparseSparseProduct.h │ │ │ │ ├── MappedSparseMatrix.h │ │ │ │ ├── SparseAssign.h │ │ │ │ ├── SparseBlock.h │ │ │ │ ├── SparseColEtree.h │ │ │ │ ├── SparseCompressedBase.h │ │ │ │ ├── SparseCwiseBinaryOp.h │ │ │ │ ├── SparseCwiseUnaryOp.h │ │ │ │ ├── SparseDenseProduct.h │ │ │ │ ├── SparseDiagonalProduct.h │ │ │ │ ├── SparseDot.h │ │ │ │ ├── SparseFuzzy.h │ │ │ │ ├── SparseMap.h │ │ │ │ ├── SparseMatrix.h │ │ │ │ ├── SparseMatrixBase.h │ │ │ │ ├── SparsePermutation.h │ │ │ │ ├── SparseProduct.h │ │ │ │ ├── SparseRedux.h │ │ │ │ ├── SparseRef.h │ │ │ │ ├── SparseSelfAdjointView.h │ │ │ │ ├── SparseSolverBase.h │ │ │ │ ├── SparseSparseProductWithPruning.h │ │ │ │ ├── SparseTranspose.h │ │ │ │ ├── SparseTriangularView.h │ │ │ │ ├── SparseUtil.h │ │ │ │ ├── SparseVector.h │ │ │ │ ├── SparseView.h │ │ │ │ └── TriangularSolver.h │ │ │ │ ├── SparseLU │ │ │ │ ├── SparseLU.h │ │ │ │ ├── SparseLUImpl.h │ │ │ │ ├── SparseLU_Memory.h │ │ │ │ ├── SparseLU_Structs.h │ │ │ │ ├── SparseLU_SupernodalMatrix.h │ │ │ │ ├── SparseLU_Utils.h │ │ │ │ ├── SparseLU_column_bmod.h │ │ │ │ ├── SparseLU_column_dfs.h │ │ │ │ ├── SparseLU_copy_to_ucol.h │ │ │ │ ├── SparseLU_gemm_kernel.h │ │ │ │ ├── SparseLU_heap_relax_snode.h │ │ │ │ ├── SparseLU_kernel_bmod.h │ │ │ │ ├── SparseLU_panel_bmod.h │ │ │ │ ├── SparseLU_panel_dfs.h │ │ │ │ ├── SparseLU_pivotL.h │ │ │ │ ├── SparseLU_pruneL.h │ │ │ │ └── SparseLU_relax_snode.h │ │ │ │ ├── SparseQR │ │ │ │ └── SparseQR.h │ │ │ │ ├── StlSupport │ │ │ │ ├── StdDeque.h │ │ │ │ ├── StdList.h │ │ │ │ ├── StdVector.h │ │ │ │ └── details.h │ │ │ │ ├── SuperLUSupport │ │ │ │ └── SuperLUSupport.h │ │ │ │ ├── UmfPackSupport │ │ │ │ └── UmfPackSupport.h │ │ │ │ ├── misc │ │ │ │ ├── Image.h │ │ │ │ ├── Kernel.h │ │ │ │ ├── RealSvd2x2.h │ │ │ │ ├── blas.h │ │ │ │ ├── lapack.h │ │ │ │ ├── lapacke.h │ │ │ │ └── lapacke_mangling.h │ │ │ │ └── plugins │ │ │ │ ├── ArrayCwiseBinaryOps.h │ │ │ │ ├── ArrayCwiseUnaryOps.h │ │ │ │ ├── BlockMethods.h │ │ │ │ ├── CommonCwiseBinaryOps.h │ │ │ │ ├── CommonCwiseUnaryOps.h │ │ │ │ ├── IndexedViewMethods.h │ │ │ │ ├── MatrixCwiseBinaryOps.h │ │ │ │ ├── MatrixCwiseUnaryOps.h │ │ │ │ └── ReshapedMethods.h │ │ ├── INSTALL │ │ ├── README.md │ │ ├── eigen3.pc.in │ │ └── signature_of_eigen3_matrix_library │ │ └── libigl │ │ ├── LICENSE.GPL │ │ ├── LICENSE.MPL2 │ │ ├── README.md │ │ └── include │ │ └── igl │ │ ├── AABB.cpp │ │ ├── AABB.h │ │ ├── ARAPEnergyType.h │ │ ├── AtA_cached.cpp │ │ ├── AtA_cached.h │ │ ├── C_STR.h │ │ ├── Camera.h │ │ ├── EPS.cpp │ │ ├── EPS.h │ │ ├── HalfEdgeIterator.cpp │ │ ├── HalfEdgeIterator.h │ │ ├── Hit.h │ │ ├── IO │ │ ├── IndexComparison.h │ │ ├── LinSpaced.h │ │ ├── MappingEnergyType.h │ │ ├── MeshBooleanType.h │ │ ├── NormalType.h │ │ ├── ONE.h │ │ ├── PI.h │ │ ├── REDRUM.h │ │ ├── STR.h │ │ ├── Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp │ │ ├── Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp │ │ ├── Singular_Value_Decomposition_Kernel_Declarations.hpp │ │ ├── Singular_Value_Decomposition_Main_Kernel_Body.hpp │ │ ├── Singular_Value_Decomposition_Preamble.hpp │ │ ├── SolverStatus.h │ │ ├── SortableRow.h │ │ ├── Timer.h │ │ ├── Viewport.h │ │ ├── WindingNumberAABB.h │ │ ├── WindingNumberMethod.h │ │ ├── WindingNumberTree.h │ │ ├── ZERO.h │ │ ├── accumarray.cpp │ │ ├── accumarray.h │ │ ├── active_set.cpp │ │ ├── active_set.h │ │ ├── adjacency_list.cpp │ │ ├── adjacency_list.h │ │ ├── adjacency_matrix.cpp │ │ ├── adjacency_matrix.h │ │ ├── all.cpp │ │ ├── all.h │ │ ├── all_edges.cpp │ │ ├── all_edges.h │ │ ├── all_pairs_distances.cpp │ │ ├── all_pairs_distances.h │ │ ├── ambient_occlusion.cpp │ │ ├── ambient_occlusion.h │ │ ├── angular_distance.cpp │ │ ├── angular_distance.h │ │ ├── any.cpp │ │ ├── any.h │ │ ├── any_of.cpp │ │ ├── any_of.h │ │ ├── arap.cpp │ │ ├── arap.h │ │ ├── arap_dof.cpp │ │ ├── arap_dof.h │ │ ├── arap_linear_block.cpp │ │ ├── arap_linear_block.h │ │ ├── arap_rhs.cpp │ │ ├── arap_rhs.h │ │ ├── average_onto_faces.cpp │ │ ├── average_onto_faces.h │ │ ├── average_onto_vertices.cpp │ │ ├── average_onto_vertices.h │ │ ├── avg_edge_length.cpp │ │ ├── avg_edge_length.h │ │ ├── axis_angle_to_quat.cpp │ │ ├── axis_angle_to_quat.h │ │ ├── barycenter.cpp │ │ ├── barycenter.h │ │ ├── barycentric_coordinates.cpp │ │ ├── barycentric_coordinates.h │ │ ├── barycentric_to_global.cpp │ │ ├── barycentric_to_global.h │ │ ├── basename.cpp │ │ ├── basename.h │ │ ├── bbw.cpp │ │ ├── bbw.h │ │ ├── bfs.cpp │ │ ├── bfs.h │ │ ├── bfs_orient.cpp │ │ ├── bfs_orient.h │ │ ├── biharmonic_coordinates.cpp │ │ ├── biharmonic_coordinates.h │ │ ├── bijective_composite_harmonic_mapping.cpp │ │ ├── bijective_composite_harmonic_mapping.h │ │ ├── bone_parents.cpp │ │ ├── bone_parents.h │ │ ├── boundary_conditions.cpp │ │ ├── boundary_conditions.h │ │ ├── boundary_facets.cpp │ │ ├── boundary_facets.h │ │ ├── boundary_loop.cpp │ │ ├── boundary_loop.h │ │ ├── bounding_box.cpp │ │ ├── bounding_box.h │ │ ├── bounding_box_diagonal.cpp │ │ ├── bounding_box_diagonal.h │ │ ├── canonical_quaternions.cpp │ │ ├── canonical_quaternions.h │ │ ├── cat.cpp │ │ ├── cat.h │ │ ├── ceil.cpp │ │ ├── ceil.h │ │ ├── centroid.cpp │ │ ├── centroid.h │ │ ├── circulation.cpp │ │ ├── circulation.h │ │ ├── circumradius.cpp │ │ ├── circumradius.h │ │ ├── collapse_edge.cpp │ │ ├── collapse_edge.h │ │ ├── collapse_small_triangles.cpp │ │ ├── collapse_small_triangles.h │ │ ├── colon.cpp │ │ ├── colon.h │ │ ├── colormap.cpp │ │ ├── colormap.h │ │ ├── column_to_quats.cpp │ │ ├── column_to_quats.h │ │ ├── columnize.cpp │ │ ├── columnize.h │ │ ├── comb_cross_field.cpp │ │ ├── comb_cross_field.h │ │ ├── comb_frame_field.cpp │ │ ├── comb_frame_field.h │ │ ├── comb_line_field.cpp │ │ ├── comb_line_field.h │ │ ├── combine.cpp │ │ ├── combine.h │ │ ├── compute_frame_field_bisectors.cpp │ │ ├── compute_frame_field_bisectors.h │ │ ├── connect_boundary_to_infinity.cpp │ │ ├── connect_boundary_to_infinity.h │ │ ├── copyleft │ │ ├── README.md │ │ ├── cgal │ │ │ ├── BinaryWindingNumberOperations.h │ │ │ ├── CGAL_includes.hpp │ │ │ ├── CSGTree.h │ │ │ ├── RemeshSelfIntersectionsParam.h │ │ │ ├── SelfIntersectMesh.h │ │ │ ├── assign.cpp │ │ │ ├── assign.h │ │ │ ├── assign_scalar.cpp │ │ │ ├── assign_scalar.h │ │ │ ├── barycenter.cpp │ │ │ ├── cell_adjacency.cpp │ │ │ ├── cell_adjacency.h │ │ │ ├── closest_facet.cpp │ │ │ ├── closest_facet.h │ │ │ ├── complex_to_mesh.cpp │ │ │ ├── complex_to_mesh.h │ │ │ ├── component_inside_component.cpp │ │ │ ├── component_inside_component.h │ │ │ ├── convex_hull.cpp │ │ │ ├── convex_hull.h │ │ │ ├── delaunay_triangulation.cpp │ │ │ ├── delaunay_triangulation.h │ │ │ ├── extract_cells.cpp │ │ │ ├── extract_cells.h │ │ │ ├── extract_feature.cpp │ │ │ ├── extract_feature.h │ │ │ ├── fast_winding_number.cpp │ │ │ ├── fast_winding_number.h │ │ │ ├── half_space_box.cpp │ │ │ ├── half_space_box.h │ │ │ ├── hausdorff.cpp │ │ │ ├── hausdorff.h │ │ │ ├── incircle.cpp │ │ │ ├── incircle.h │ │ │ ├── insert_into_cdt.cpp │ │ │ ├── insert_into_cdt.h │ │ │ ├── insphere.cpp │ │ │ ├── insphere.h │ │ │ ├── intersect_other.cpp │ │ │ ├── intersect_other.h │ │ │ ├── intersect_with_half_space.cpp │ │ │ ├── intersect_with_half_space.h │ │ │ ├── lexicographic_triangulation.cpp │ │ │ ├── lexicographic_triangulation.h │ │ │ ├── list_to_matrix.cpp │ │ │ ├── mesh_boolean.cpp │ │ │ ├── mesh_boolean.h │ │ │ ├── mesh_boolean_type_to_funcs.cpp │ │ │ ├── mesh_boolean_type_to_funcs.h │ │ │ ├── mesh_to_cgal_triangle_list.cpp │ │ │ ├── mesh_to_cgal_triangle_list.h │ │ │ ├── mesh_to_polyhedron.cpp │ │ │ ├── mesh_to_polyhedron.h │ │ │ ├── minkowski_sum.cpp │ │ │ ├── minkowski_sum.h │ │ │ ├── order_facets_around_edge.cpp │ │ │ ├── order_facets_around_edge.h │ │ │ ├── order_facets_around_edges.cpp │ │ │ ├── order_facets_around_edges.h │ │ │ ├── orient2D.cpp │ │ │ ├── orient2D.h │ │ │ ├── orient3D.cpp │ │ │ ├── orient3D.h │ │ │ ├── outer_element.cpp │ │ │ ├── outer_element.h │ │ │ ├── outer_facet.cpp │ │ │ ├── outer_facet.h │ │ │ ├── outer_hull.cpp │ │ │ ├── outer_hull.h │ │ │ ├── peel_outer_hull_layers.cpp │ │ │ ├── peel_outer_hull_layers.h │ │ │ ├── peel_winding_number_layers.cpp │ │ │ ├── peel_winding_number_layers.h │ │ │ ├── piecewise_constant_winding_number.cpp │ │ │ ├── piecewise_constant_winding_number.h │ │ │ ├── point_areas.cpp │ │ │ ├── point_areas.h │ │ │ ├── point_mesh_squared_distance.cpp │ │ │ ├── point_mesh_squared_distance.h │ │ │ ├── point_segment_squared_distance.cpp │ │ │ ├── point_segment_squared_distance.h │ │ │ ├── point_solid_signed_squared_distance.cpp │ │ │ ├── point_solid_signed_squared_distance.h │ │ │ ├── point_triangle_squared_distance.cpp │ │ │ ├── point_triangle_squared_distance.h │ │ │ ├── points_inside_component.cpp │ │ │ ├── points_inside_component.h │ │ │ ├── polyhedron_to_mesh.cpp │ │ │ ├── polyhedron_to_mesh.h │ │ │ ├── projected_cdt.cpp │ │ │ ├── projected_cdt.h │ │ │ ├── projected_delaunay.cpp │ │ │ ├── projected_delaunay.h │ │ │ ├── propagate_winding_numbers.cpp │ │ │ ├── propagate_winding_numbers.h │ │ │ ├── read_triangle_mesh.cpp │ │ │ ├── read_triangle_mesh.h │ │ │ ├── relabel_small_immersed_cells.cpp │ │ │ ├── relabel_small_immersed_cells.h │ │ │ ├── remesh_intersections.cpp │ │ │ ├── remesh_intersections.h │ │ │ ├── remesh_self_intersections.cpp │ │ │ ├── remesh_self_intersections.h │ │ │ ├── remove_unreferenced.cpp │ │ │ ├── resolve_intersections.cpp │ │ │ ├── resolve_intersections.h │ │ │ ├── row_to_point.cpp │ │ │ ├── row_to_point.h │ │ │ ├── segment_segment_squared_distance.cpp │ │ │ ├── segment_segment_squared_distance.h │ │ │ ├── signed_distance_isosurface.cpp │ │ │ ├── signed_distance_isosurface.h │ │ │ ├── slice.cpp │ │ │ ├── slice_mask.cpp │ │ │ ├── snap_rounding.cpp │ │ │ ├── snap_rounding.h │ │ │ ├── string_to_mesh_boolean_type.cpp │ │ │ ├── string_to_mesh_boolean_type.h │ │ │ ├── subdivide_segments.cpp │ │ │ ├── subdivide_segments.h │ │ │ ├── submesh_aabb_tree.cpp │ │ │ ├── submesh_aabb_tree.h │ │ │ ├── triangle_triangle_squared_distance.cpp │ │ │ ├── triangle_triangle_squared_distance.h │ │ │ ├── trim_with_solid.cpp │ │ │ ├── trim_with_solid.h │ │ │ ├── unique.cpp │ │ │ ├── unique_rows.cpp │ │ │ ├── wire_mesh.cpp │ │ │ └── wire_mesh.h │ │ ├── comiso │ │ │ ├── frame_field.cpp │ │ │ ├── frame_field.h │ │ │ ├── miq.cpp │ │ │ ├── miq.h │ │ │ ├── nrosy.cpp │ │ │ └── nrosy.h │ │ ├── cork │ │ │ ├── from_cork_mesh.cpp │ │ │ ├── from_cork_mesh.h │ │ │ ├── mesh_boolean.cpp │ │ │ ├── mesh_boolean.h │ │ │ ├── to_cork_mesh.cpp │ │ │ └── to_cork_mesh.h │ │ ├── marching_cubes.cpp │ │ ├── marching_cubes.h │ │ ├── marching_cubes_tables.h │ │ ├── offset_surface.cpp │ │ ├── offset_surface.h │ │ ├── opengl2 │ │ │ ├── render_to_tga.cpp │ │ │ ├── render_to_tga.h │ │ │ ├── texture_from_tga.cpp │ │ │ ├── texture_from_tga.h │ │ │ ├── tga.cpp │ │ │ └── tga.h │ │ ├── progressive_hulls.cpp │ │ ├── progressive_hulls.h │ │ ├── progressive_hulls_cost_and_placement.cpp │ │ ├── progressive_hulls_cost_and_placement.h │ │ ├── quadprog.cpp │ │ ├── quadprog.h │ │ ├── swept_volume.cpp │ │ ├── swept_volume.h │ │ └── tetgen │ │ │ ├── README │ │ │ ├── cdt.cpp │ │ │ ├── cdt.h │ │ │ ├── mesh_to_tetgenio.cpp │ │ │ ├── mesh_to_tetgenio.h │ │ │ ├── mesh_with_skeleton.cpp │ │ │ ├── mesh_with_skeleton.h │ │ │ ├── read_into_tetgenio.cpp │ │ │ ├── read_into_tetgenio.h │ │ │ ├── tetgenio_to_tetmesh.cpp │ │ │ ├── tetgenio_to_tetmesh.h │ │ │ ├── tetrahedralize.cpp │ │ │ └── tetrahedralize.h │ │ ├── cotmatrix.cpp │ │ ├── cotmatrix.h │ │ ├── cotmatrix_entries.cpp │ │ ├── cotmatrix_entries.h │ │ ├── cotmatrix_intrinsic.cpp │ │ ├── cotmatrix_intrinsic.h │ │ ├── count.cpp │ │ ├── count.h │ │ ├── covariance_scatter_matrix.cpp │ │ ├── covariance_scatter_matrix.h │ │ ├── cross.cpp │ │ ├── cross.h │ │ ├── cross_field_mismatch.cpp │ │ ├── cross_field_mismatch.h │ │ ├── crouzeix_raviart_cotmatrix.cpp │ │ ├── crouzeix_raviart_cotmatrix.h │ │ ├── crouzeix_raviart_massmatrix.cpp │ │ ├── crouzeix_raviart_massmatrix.h │ │ ├── cumprod.cpp │ │ ├── cumprod.h │ │ ├── cumsum.cpp │ │ ├── cumsum.h │ │ ├── cut_mesh.cpp │ │ ├── cut_mesh.h │ │ ├── cut_mesh_from_singularities.cpp │ │ ├── cut_mesh_from_singularities.h │ │ ├── cut_to_disk.cpp │ │ ├── cut_to_disk.h │ │ ├── cylinder.cpp │ │ ├── cylinder.h │ │ ├── dated_copy.cpp │ │ ├── dated_copy.h │ │ ├── decimate.cpp │ │ ├── decimate.h │ │ ├── deform_skeleton.cpp │ │ ├── deform_skeleton.h │ │ ├── delaunay_triangulation.cpp │ │ ├── delaunay_triangulation.h │ │ ├── deprecated.h │ │ ├── dfs.cpp │ │ ├── dfs.h │ │ ├── diag.cpp │ │ ├── diag.h │ │ ├── dihedral_angles.cpp │ │ ├── dihedral_angles.h │ │ ├── dijkstra.cpp │ │ ├── dijkstra.h │ │ ├── directed_edge_orientations.cpp │ │ ├── directed_edge_orientations.h │ │ ├── directed_edge_parents.cpp │ │ ├── directed_edge_parents.h │ │ ├── dirname.cpp │ │ ├── dirname.h │ │ ├── dot.cpp │ │ ├── dot.h │ │ ├── dot_row.cpp │ │ ├── dot_row.h │ │ ├── doublearea.cpp │ │ ├── doublearea.h │ │ ├── dqs.cpp │ │ ├── dqs.h │ │ ├── ears.cpp │ │ ├── ears.h │ │ ├── edge_collapse_is_valid.cpp │ │ ├── edge_collapse_is_valid.h │ │ ├── edge_exists_near.cpp │ │ ├── edge_exists_near.h │ │ ├── edge_flaps.cpp │ │ ├── edge_flaps.h │ │ ├── edge_lengths.cpp │ │ ├── edge_lengths.h │ │ ├── edge_topology.cpp │ │ ├── edge_topology.h │ │ ├── edges.cpp │ │ ├── edges.h │ │ ├── edges_to_path.cpp │ │ ├── edges_to_path.h │ │ ├── eigs.cpp │ │ ├── eigs.h │ │ ├── embree │ │ ├── EmbreeIntersector.h │ │ ├── Embree_convenience.h │ │ ├── ambient_occlusion.cpp │ │ ├── ambient_occlusion.h │ │ ├── bone_heat.cpp │ │ ├── bone_heat.h │ │ ├── bone_visible.cpp │ │ ├── bone_visible.h │ │ ├── line_mesh_intersection.cpp │ │ ├── line_mesh_intersection.h │ │ ├── reorient_facets_raycast.cpp │ │ ├── reorient_facets_raycast.h │ │ ├── shape_diameter_function.cpp │ │ ├── shape_diameter_function.h │ │ ├── unproject_in_mesh.cpp │ │ ├── unproject_in_mesh.h │ │ ├── unproject_onto_mesh.cpp │ │ └── unproject_onto_mesh.h │ │ ├── euler_characteristic.cpp │ │ ├── euler_characteristic.h │ │ ├── exact_geodesic.cpp │ │ ├── exact_geodesic.h │ │ ├── example_fun.cpp │ │ ├── example_fun.h │ │ ├── exterior_edges.cpp │ │ ├── exterior_edges.h │ │ ├── extract_manifold_patches.cpp │ │ ├── extract_manifold_patches.h │ │ ├── extract_non_manifold_edge_curves.cpp │ │ ├── extract_non_manifold_edge_curves.h │ │ ├── face_areas.cpp │ │ ├── face_areas.h │ │ ├── face_occurrences.cpp │ │ ├── face_occurrences.h │ │ ├── faces_first.cpp │ │ ├── faces_first.h │ │ ├── facet_components.cpp │ │ ├── facet_components.h │ │ ├── false_barycentric_subdivision.cpp │ │ ├── false_barycentric_subdivision.h │ │ ├── fast_winding_number.cpp │ │ ├── fast_winding_number.h │ │ ├── file_contents_as_string.cpp │ │ ├── file_contents_as_string.h │ │ ├── file_dialog_open.cpp │ │ ├── file_dialog_open.h │ │ ├── file_dialog_save.cpp │ │ ├── file_dialog_save.h │ │ ├── file_exists.cpp │ │ ├── file_exists.h │ │ ├── find.cpp │ │ ├── find.h │ │ ├── find_cross_field_singularities.cpp │ │ ├── find_cross_field_singularities.h │ │ ├── find_zero.cpp │ │ ├── find_zero.h │ │ ├── fit_plane.cpp │ │ ├── fit_plane.h │ │ ├── fit_rotations.cpp │ │ ├── fit_rotations.h │ │ ├── flip_avoiding_line_search.cpp │ │ ├── flip_avoiding_line_search.h │ │ ├── flip_edge.cpp │ │ ├── flip_edge.h │ │ ├── flipped_triangles.cpp │ │ ├── flipped_triangles.h │ │ ├── flood_fill.cpp │ │ ├── flood_fill.h │ │ ├── floor.cpp │ │ ├── floor.h │ │ ├── for_each.h │ │ ├── forward_kinematics.cpp │ │ ├── forward_kinematics.h │ │ ├── frame_field_deformer.cpp │ │ ├── frame_field_deformer.h │ │ ├── frame_to_cross_field.cpp │ │ ├── frame_to_cross_field.h │ │ ├── frustum.cpp │ │ ├── frustum.h │ │ ├── gaussian_curvature.cpp │ │ ├── gaussian_curvature.h │ │ ├── get_seconds.cpp │ │ ├── get_seconds.h │ │ ├── get_seconds_hires.cpp │ │ ├── get_seconds_hires.h │ │ ├── grad.cpp │ │ ├── grad.h │ │ ├── grad_intrinsic.cpp │ │ ├── grad_intrinsic.h │ │ ├── grid.cpp │ │ ├── grid.h │ │ ├── grid_search.cpp │ │ ├── grid_search.h │ │ ├── group_sum_matrix.cpp │ │ ├── group_sum_matrix.h │ │ ├── guess_extension.cpp │ │ ├── guess_extension.h │ │ ├── harmonic.cpp │ │ ├── harmonic.h │ │ ├── harwell_boeing.cpp │ │ ├── harwell_boeing.h │ │ ├── hausdorff.cpp │ │ ├── hausdorff.h │ │ ├── heat_geodesics.cpp │ │ ├── heat_geodesics.h │ │ ├── hessian.cpp │ │ ├── hessian.h │ │ ├── hessian_energy.cpp │ │ ├── hessian_energy.h │ │ ├── histc.cpp │ │ ├── histc.h │ │ ├── hsv_to_rgb.cpp │ │ ├── hsv_to_rgb.h │ │ ├── igl_inline.h │ │ ├── in_element.cpp │ │ ├── in_element.h │ │ ├── infinite_cost_stopping_condition.cpp │ │ ├── infinite_cost_stopping_condition.h │ │ ├── inradius.cpp │ │ ├── inradius.h │ │ ├── internal_angles.cpp │ │ ├── internal_angles.h │ │ ├── intersect.cpp │ │ ├── intersect.h │ │ ├── intrinsic_delaunay_cotmatrix.cpp │ │ ├── intrinsic_delaunay_cotmatrix.h │ │ ├── intrinsic_delaunay_triangulation.cpp │ │ ├── intrinsic_delaunay_triangulation.h │ │ ├── invert_diag.cpp │ │ ├── invert_diag.h │ │ ├── is_border_vertex.cpp │ │ ├── is_border_vertex.h │ │ ├── is_boundary_edge.cpp │ │ ├── is_boundary_edge.h │ │ ├── is_delaunay.cpp │ │ ├── is_delaunay.h │ │ ├── is_dir.cpp │ │ ├── is_dir.h │ │ ├── is_edge_manifold.cpp │ │ ├── is_edge_manifold.h │ │ ├── is_file.cpp │ │ ├── is_file.h │ │ ├── is_intrinsic_delaunay.cpp │ │ ├── is_intrinsic_delaunay.h │ │ ├── is_irregular_vertex.cpp │ │ ├── is_irregular_vertex.h │ │ ├── is_planar.cpp │ │ ├── is_planar.h │ │ ├── is_readable.cpp │ │ ├── is_readable.h │ │ ├── is_sparse.cpp │ │ ├── is_sparse.h │ │ ├── is_stl.cpp │ │ ├── is_stl.h │ │ ├── is_symmetric.cpp │ │ ├── is_symmetric.h │ │ ├── is_vertex_manifold.cpp │ │ ├── is_vertex_manifold.h │ │ ├── is_writable.cpp │ │ ├── is_writable.h │ │ ├── isdiag.cpp │ │ ├── isdiag.h │ │ ├── ismember.cpp │ │ ├── ismember.h │ │ ├── isolines.cpp │ │ ├── isolines.h │ │ ├── jet.cpp │ │ ├── jet.h │ │ ├── knn.cpp │ │ ├── knn.h │ │ ├── launch_medit.cpp │ │ ├── launch_medit.h │ │ ├── lbs_matrix.cpp │ │ ├── lbs_matrix.h │ │ ├── lexicographic_triangulation.cpp │ │ ├── lexicographic_triangulation.h │ │ ├── limit_faces.cpp │ │ ├── limit_faces.h │ │ ├── line_field_mismatch.cpp │ │ ├── line_field_mismatch.h │ │ ├── line_search.cpp │ │ ├── line_search.h │ │ ├── line_segment_in_rectangle.cpp │ │ ├── line_segment_in_rectangle.h │ │ ├── linprog.cpp │ │ ├── linprog.h │ │ ├── list_to_matrix.cpp │ │ ├── list_to_matrix.h │ │ ├── local_basis.cpp │ │ ├── local_basis.h │ │ ├── look_at.cpp │ │ ├── look_at.h │ │ ├── loop.cpp │ │ ├── loop.h │ │ ├── lscm.cpp │ │ ├── lscm.h │ │ ├── map_vertices_to_circle.cpp │ │ ├── map_vertices_to_circle.h │ │ ├── mapping_energy_with_jacobians.cpp │ │ ├── mapping_energy_with_jacobians.h │ │ ├── marching_tets.cpp │ │ ├── marching_tets.h │ │ ├── massmatrix.cpp │ │ ├── massmatrix.h │ │ ├── massmatrix_intrinsic.cpp │ │ ├── massmatrix_intrinsic.h │ │ ├── mat_max.cpp │ │ ├── mat_max.h │ │ ├── mat_min.cpp │ │ ├── mat_min.h │ │ ├── mat_to_quat.cpp │ │ ├── mat_to_quat.h │ │ ├── material_colors.h │ │ ├── matlab │ │ ├── MatlabWorkspace.h │ │ ├── MexStream.h │ │ ├── matlabinterface.cpp │ │ ├── matlabinterface.h │ │ ├── mexErrMsgTxt.cpp │ │ ├── mexErrMsgTxt.h │ │ ├── parse_rhs.cpp │ │ ├── parse_rhs.h │ │ ├── prepare_lhs.cpp │ │ ├── prepare_lhs.h │ │ ├── requires_arg.cpp │ │ ├── requires_arg.h │ │ ├── validate_arg.cpp │ │ └── validate_arg.h │ │ ├── matlab_format.cpp │ │ ├── matlab_format.h │ │ ├── matrix_to_list.cpp │ │ ├── matrix_to_list.h │ │ ├── max.cpp │ │ ├── max.h │ │ ├── max_faces_stopping_condition.cpp │ │ ├── max_faces_stopping_condition.h │ │ ├── max_size.cpp │ │ ├── max_size.h │ │ ├── median.cpp │ │ ├── median.h │ │ ├── min.cpp │ │ ├── min.h │ │ ├── min_quad_dense.cpp │ │ ├── min_quad_dense.h │ │ ├── min_quad_with_fixed.cpp │ │ ├── min_quad_with_fixed.h │ │ ├── min_size.cpp │ │ ├── min_size.h │ │ ├── mod.cpp │ │ ├── mod.h │ │ ├── mode.cpp │ │ ├── mode.h │ │ ├── mosek │ │ ├── bbw.cpp │ │ ├── bbw.h │ │ ├── mosek_guarded.cpp │ │ ├── mosek_guarded.h │ │ ├── mosek_linprog.cpp │ │ ├── mosek_linprog.h │ │ ├── mosek_quadprog.cpp │ │ └── mosek_quadprog.h │ │ ├── mvc.cpp │ │ ├── mvc.h │ │ ├── nchoosek.cpp │ │ ├── nchoosek.h │ │ ├── next_filename.cpp │ │ ├── next_filename.h │ │ ├── normal_derivative.cpp │ │ ├── normal_derivative.h │ │ ├── normalize_quat.cpp │ │ ├── normalize_quat.h │ │ ├── normalize_row_lengths.cpp │ │ ├── normalize_row_lengths.h │ │ ├── normalize_row_sums.cpp │ │ ├── normalize_row_sums.h │ │ ├── null.cpp │ │ ├── null.h │ │ ├── octree.cpp │ │ ├── octree.h │ │ ├── on_boundary.cpp │ │ ├── on_boundary.h │ │ ├── opengl │ │ ├── MeshGL.cpp │ │ ├── MeshGL.h │ │ ├── ViewerCore.cpp │ │ ├── ViewerCore.h │ │ ├── ViewerData.cpp │ │ ├── ViewerData.h │ │ ├── bind_vertex_attrib_array.cpp │ │ ├── bind_vertex_attrib_array.h │ │ ├── create_index_vbo.cpp │ │ ├── create_index_vbo.h │ │ ├── create_mesh_vbo.cpp │ │ ├── create_mesh_vbo.h │ │ ├── create_shader_program.cpp │ │ ├── create_shader_program.h │ │ ├── create_vector_vbo.cpp │ │ ├── create_vector_vbo.h │ │ ├── destroy_shader_program.cpp │ │ ├── destroy_shader_program.h │ │ ├── gl.h │ │ ├── gl_type_size.cpp │ │ ├── gl_type_size.h │ │ ├── glfw │ │ │ ├── Viewer.cpp │ │ │ ├── Viewer.h │ │ │ ├── ViewerPlugin.h │ │ │ ├── background_window.cpp │ │ │ ├── background_window.h │ │ │ ├── imgui │ │ │ │ ├── ImGuiHelpers.h │ │ │ │ ├── ImGuiMenu.cpp │ │ │ │ ├── ImGuiMenu.h │ │ │ │ └── ImGuiTraits.h │ │ │ ├── map_texture.cpp │ │ │ └── map_texture.h │ │ ├── init_render_to_texture.cpp │ │ ├── init_render_to_texture.h │ │ ├── load_shader.cpp │ │ ├── load_shader.h │ │ ├── print_program_info_log.cpp │ │ ├── print_program_info_log.h │ │ ├── print_shader_info_log.cpp │ │ ├── print_shader_info_log.h │ │ ├── report_gl_error.cpp │ │ ├── report_gl_error.h │ │ ├── uniform_type_to_string.cpp │ │ ├── uniform_type_to_string.h │ │ ├── vertex_array.cpp │ │ └── vertex_array.h │ │ ├── orient_outward.cpp │ │ ├── orient_outward.h │ │ ├── orientable_patches.cpp │ │ ├── orientable_patches.h │ │ ├── oriented_facets.cpp │ │ ├── oriented_facets.h │ │ ├── orth.cpp │ │ ├── orth.h │ │ ├── ortho.cpp │ │ ├── ortho.h │ │ ├── outer_element.cpp │ │ ├── outer_element.h │ │ ├── parallel_for.h │ │ ├── parallel_transport_angles.cpp │ │ ├── parallel_transport_angles.h │ │ ├── partition.cpp │ │ ├── partition.h │ │ ├── parula.cpp │ │ ├── parula.h │ │ ├── path_to_executable.cpp │ │ ├── path_to_executable.h │ │ ├── pathinfo.cpp │ │ ├── pathinfo.h │ │ ├── per_corner_normals.cpp │ │ ├── per_corner_normals.h │ │ ├── per_edge_normals.cpp │ │ ├── per_edge_normals.h │ │ ├── per_face_normals.cpp │ │ ├── per_face_normals.h │ │ ├── per_vertex_attribute_smoothing.cpp │ │ ├── per_vertex_attribute_smoothing.h │ │ ├── per_vertex_normals.cpp │ │ ├── per_vertex_normals.h │ │ ├── per_vertex_point_to_plane_quadrics.cpp │ │ ├── per_vertex_point_to_plane_quadrics.h │ │ ├── piecewise_constant_winding_number.cpp │ │ ├── piecewise_constant_winding_number.h │ │ ├── pinv.cpp │ │ ├── pinv.h │ │ ├── planarize_quad_mesh.cpp │ │ ├── planarize_quad_mesh.h │ │ ├── ply.h │ │ ├── png │ │ ├── readPNG.cpp │ │ ├── readPNG.h │ │ ├── render_to_png.cpp │ │ ├── render_to_png.h │ │ ├── render_to_png_async.cpp │ │ ├── render_to_png_async.h │ │ ├── texture_from_file.cpp │ │ ├── texture_from_file.h │ │ ├── texture_from_png.cpp │ │ ├── texture_from_png.h │ │ ├── writePNG.cpp │ │ └── writePNG.h │ │ ├── point_in_circle.cpp │ │ ├── point_in_circle.h │ │ ├── point_in_poly.cpp │ │ ├── point_in_poly.h │ │ ├── point_mesh_squared_distance.cpp │ │ ├── point_mesh_squared_distance.h │ │ ├── point_simplex_squared_distance.cpp │ │ ├── point_simplex_squared_distance.h │ │ ├── polar_dec.cpp │ │ ├── polar_dec.h │ │ ├── polar_svd.cpp │ │ ├── polar_svd.h │ │ ├── polar_svd3x3.cpp │ │ ├── polar_svd3x3.h │ │ ├── polygon_mesh_to_triangle_mesh.cpp │ │ ├── polygon_mesh_to_triangle_mesh.h │ │ ├── predicates │ │ ├── predicates.cpp │ │ └── predicates.h │ │ ├── principal_curvature.cpp │ │ ├── principal_curvature.h │ │ ├── print_ijv.cpp │ │ ├── print_ijv.h │ │ ├── print_vector.cpp │ │ ├── print_vector.h │ │ ├── procrustes.cpp │ │ ├── procrustes.h │ │ ├── project.cpp │ │ ├── project.h │ │ ├── project_isometrically_to_plane.cpp │ │ ├── project_isometrically_to_plane.h │ │ ├── project_to_line.cpp │ │ ├── project_to_line.h │ │ ├── project_to_line_segment.cpp │ │ ├── project_to_line_segment.h │ │ ├── pseudonormal_test.cpp │ │ ├── pseudonormal_test.h │ │ ├── pso.cpp │ │ ├── pso.h │ │ ├── qslim.cpp │ │ ├── qslim.h │ │ ├── qslim_optimal_collapse_edge_callbacks.cpp │ │ ├── qslim_optimal_collapse_edge_callbacks.h │ │ ├── quad_planarity.cpp │ │ ├── quad_planarity.h │ │ ├── quadric_binary_plus_operator.cpp │ │ ├── quadric_binary_plus_operator.h │ │ ├── quat_conjugate.cpp │ │ ├── quat_conjugate.h │ │ ├── quat_mult.cpp │ │ ├── quat_mult.h │ │ ├── quat_to_axis_angle.cpp │ │ ├── quat_to_axis_angle.h │ │ ├── quat_to_mat.cpp │ │ ├── quat_to_mat.h │ │ ├── quats_to_column.cpp │ │ ├── quats_to_column.h │ │ ├── ramer_douglas_peucker.cpp │ │ ├── ramer_douglas_peucker.h │ │ ├── random_dir.cpp │ │ ├── random_dir.h │ │ ├── random_points_on_mesh.cpp │ │ ├── random_points_on_mesh.h │ │ ├── random_quaternion.cpp │ │ ├── random_quaternion.h │ │ ├── random_search.cpp │ │ ├── random_search.h │ │ ├── randperm.cpp │ │ ├── randperm.h │ │ ├── ray_box_intersect.cpp │ │ ├── ray_box_intersect.h │ │ ├── ray_mesh_intersect.cpp │ │ ├── ray_mesh_intersect.h │ │ ├── ray_sphere_intersect.cpp │ │ ├── ray_sphere_intersect.h │ │ ├── raytri.c │ │ ├── readBF.cpp │ │ ├── readBF.h │ │ ├── readCSV.cpp │ │ ├── readCSV.h │ │ ├── readDMAT.cpp │ │ ├── readDMAT.h │ │ ├── readMESH.cpp │ │ ├── readMESH.h │ │ ├── readMSH.cpp │ │ ├── readMSH.h │ │ ├── readNODE.cpp │ │ ├── readNODE.h │ │ ├── readOBJ.cpp │ │ ├── readOBJ.h │ │ ├── readOFF.cpp │ │ ├── readOFF.h │ │ ├── readPLY.cpp │ │ ├── readPLY.h │ │ ├── readSTL.cpp │ │ ├── readSTL.h │ │ ├── readTGF.cpp │ │ ├── readTGF.h │ │ ├── readWRL.cpp │ │ ├── readWRL.h │ │ ├── read_triangle_mesh.cpp │ │ ├── read_triangle_mesh.h │ │ ├── redux.h │ │ ├── remesh_along_isoline.cpp │ │ ├── remesh_along_isoline.h │ │ ├── remove_duplicate_vertices.cpp │ │ ├── remove_duplicate_vertices.h │ │ ├── remove_duplicates.cpp │ │ ├── remove_duplicates.h │ │ ├── remove_unreferenced.cpp │ │ ├── remove_unreferenced.h │ │ ├── reorder.cpp │ │ ├── reorder.h │ │ ├── repdiag.cpp │ │ ├── repdiag.h │ │ ├── repmat.cpp │ │ ├── repmat.h │ │ ├── resolve_duplicated_faces.cpp │ │ ├── resolve_duplicated_faces.h │ │ ├── rgb_to_hsv.cpp │ │ ├── rgb_to_hsv.h │ │ ├── rotate_by_quat.cpp │ │ ├── rotate_by_quat.h │ │ ├── rotate_vectors.cpp │ │ ├── rotate_vectors.h │ │ ├── rotation_matrix_from_directions.cpp │ │ ├── rotation_matrix_from_directions.h │ │ ├── round.cpp │ │ ├── round.h │ │ ├── rows_to_matrix.cpp │ │ ├── rows_to_matrix.h │ │ ├── sample_edges.cpp │ │ ├── sample_edges.h │ │ ├── scaf.cpp │ │ ├── scaf.h │ │ ├── seam_edges.cpp │ │ ├── seam_edges.h │ │ ├── segment_segment_intersect.cpp │ │ ├── segment_segment_intersect.h │ │ ├── serialize.h │ │ ├── setdiff.cpp │ │ ├── setdiff.h │ │ ├── setunion.cpp │ │ ├── setunion.h │ │ ├── setxor.cpp │ │ ├── setxor.h │ │ ├── shape_diameter_function.cpp │ │ ├── shape_diameter_function.h │ │ ├── shapeup.cpp │ │ ├── shapeup.h │ │ ├── shortest_edge_and_midpoint.cpp │ │ ├── shortest_edge_and_midpoint.h │ │ ├── signed_angle.cpp │ │ ├── signed_angle.h │ │ ├── signed_distance.cpp │ │ ├── signed_distance.h │ │ ├── simplify_polyhedron.cpp │ │ ├── simplify_polyhedron.h │ │ ├── slice.cpp │ │ ├── slice.h │ │ ├── slice_cached.cpp │ │ ├── slice_cached.h │ │ ├── slice_into.cpp │ │ ├── slice_into.h │ │ ├── slice_mask.cpp │ │ ├── slice_mask.h │ │ ├── slim.cpp │ │ ├── slim.h │ │ ├── snap_points.cpp │ │ ├── snap_points.h │ │ ├── snap_to_canonical_view_quat.cpp │ │ ├── snap_to_canonical_view_quat.h │ │ ├── snap_to_fixed_up.cpp │ │ ├── snap_to_fixed_up.h │ │ ├── solid_angle.cpp │ │ ├── solid_angle.h │ │ ├── sort.cpp │ │ ├── sort.h │ │ ├── sort_angles.cpp │ │ ├── sort_angles.h │ │ ├── sort_triangles.cpp │ │ ├── sort_triangles.h │ │ ├── sort_vectors_ccw.cpp │ │ ├── sort_vectors_ccw.h │ │ ├── sortrows.cpp │ │ ├── sortrows.h │ │ ├── sparse.cpp │ │ ├── sparse.h │ │ ├── sparse_cached.cpp │ │ ├── sparse_cached.h │ │ ├── sparse_voxel_grid.cpp │ │ ├── sparse_voxel_grid.h │ │ ├── speye.cpp │ │ ├── speye.h │ │ ├── squared_edge_lengths.cpp │ │ ├── squared_edge_lengths.h │ │ ├── stdin_to_temp.cpp │ │ ├── stdin_to_temp.h │ │ ├── straighten_seams.cpp │ │ ├── straighten_seams.h │ │ ├── sum.cpp │ │ ├── sum.h │ │ ├── svd3x3.cpp │ │ ├── svd3x3.h │ │ ├── svd3x3_avx.cpp │ │ ├── svd3x3_avx.h │ │ ├── svd3x3_sse.cpp │ │ ├── svd3x3_sse.h │ │ ├── swept_volume_bounding_box.cpp │ │ ├── swept_volume_bounding_box.h │ │ ├── swept_volume_signed_distance.cpp │ │ ├── swept_volume_signed_distance.h │ │ ├── tan_half_angle.cpp │ │ ├── tan_half_angle.h │ │ ├── tet_tet_adjacency.cpp │ │ ├── tet_tet_adjacency.h │ │ ├── topological_hole_fill.cpp │ │ ├── topological_hole_fill.h │ │ ├── trackball.cpp │ │ ├── trackball.h │ │ ├── transpose_blocks.cpp │ │ ├── transpose_blocks.h │ │ ├── triangle │ │ ├── cdt.cpp │ │ ├── cdt.h │ │ ├── triangulate.cpp │ │ └── triangulate.h │ │ ├── triangle_fan.cpp │ │ ├── triangle_fan.h │ │ ├── triangle_triangle_adjacency.cpp │ │ ├── triangle_triangle_adjacency.h │ │ ├── triangles_from_strip.cpp │ │ ├── triangles_from_strip.h │ │ ├── triangulated_grid.cpp │ │ ├── triangulated_grid.h │ │ ├── two_axis_valuator_fixed_up.cpp │ │ ├── two_axis_valuator_fixed_up.h │ │ ├── uniformly_sample_two_manifold.cpp │ │ ├── uniformly_sample_two_manifold.h │ │ ├── unique.cpp │ │ ├── unique.h │ │ ├── unique_edge_map.cpp │ │ ├── unique_edge_map.h │ │ ├── unique_rows.cpp │ │ ├── unique_rows.h │ │ ├── unique_simplices.cpp │ │ ├── unique_simplices.h │ │ ├── unproject.cpp │ │ ├── unproject.h │ │ ├── unproject_in_mesh.cpp │ │ ├── unproject_in_mesh.h │ │ ├── unproject_onto_mesh.cpp │ │ ├── unproject_onto_mesh.h │ │ ├── unproject_ray.cpp │ │ ├── unproject_ray.h │ │ ├── unzip_corners.cpp │ │ ├── unzip_corners.h │ │ ├── upsample.cpp │ │ ├── upsample.h │ │ ├── vector_area_matrix.cpp │ │ ├── vector_area_matrix.h │ │ ├── verbose.h │ │ ├── vertex_components.cpp │ │ ├── vertex_components.h │ │ ├── vertex_triangle_adjacency.cpp │ │ ├── vertex_triangle_adjacency.h │ │ ├── volume.cpp │ │ ├── volume.h │ │ ├── voxel_grid.cpp │ │ ├── voxel_grid.h │ │ ├── winding_number.cpp │ │ ├── winding_number.h │ │ ├── writeBF.cpp │ │ ├── writeBF.h │ │ ├── writeDMAT.cpp │ │ ├── writeDMAT.h │ │ ├── writeMESH.cpp │ │ ├── writeMESH.h │ │ ├── writeOBJ.cpp │ │ ├── writeOBJ.h │ │ ├── writeOFF.cpp │ │ ├── writeOFF.h │ │ ├── writePLY.cpp │ │ ├── writePLY.h │ │ ├── writeSTL.cpp │ │ ├── writeSTL.h │ │ ├── writeTGF.cpp │ │ ├── writeTGF.h │ │ ├── writeWRL.cpp │ │ ├── writeWRL.h │ │ ├── write_triangle_mesh.cpp │ │ ├── write_triangle_mesh.h │ │ └── xml │ │ ├── ReAntTweakBarXMLSerialization.h │ │ ├── XMLSerializable.h │ │ ├── serialization_test.skip │ │ ├── serialize_xml.cpp │ │ ├── serialize_xml.h │ │ ├── writeDAE.cpp │ │ ├── writeDAE.h │ │ ├── write_triangle_mesh.cpp │ │ └── write_triangle_mesh.h └── Source │ ├── IGLDemo.Target.cs │ ├── IGLDemo │ ├── IGLDemo.Build.cs │ ├── IGLDemo.cpp │ ├── IGLDemo.h │ ├── IGLDemoGameModeBase.cpp │ └── IGLDemoGameModeBase.h │ └── IGLDemoEditor.Target.cs └── RuntimeGeometryDemo ├── Config ├── DefaultEditor.ini ├── DefaultEditorPerProjectUserSettings.ini ├── DefaultEngine.ini ├── DefaultGame.ini └── DefaultInput.ini ├── Content ├── AA_RuntimeGeometryTest.umap ├── BP_ApplyBooleanButton.uasset ├── BP_ApplySimplifyButton.uasset ├── BP_ApplySolidifyButton.uasset ├── BP_MagnaSphere.uasset ├── BP_Projectile.uasset ├── BP_RotatoSphere.uasset ├── BP_ShootableBlock_PMC.uasset ├── BP_ShootableBlock_SDMC.uasset ├── Mannequin │ ├── Animations │ │ ├── ThirdPersonIdle.uasset │ │ ├── ThirdPersonJump_End.uasset │ │ ├── ThirdPersonJump_Loop.uasset │ │ ├── ThirdPersonJump_Start.uasset │ │ ├── ThirdPersonRun.uasset │ │ ├── ThirdPersonWalk.uasset │ │ ├── ThirdPerson_AnimBP.uasset │ │ ├── ThirdPerson_IdleRun_2D.uasset │ │ └── ThirdPerson_Jump.uasset │ └── Character │ │ ├── Materials │ │ ├── M_UE4Man_Body.uasset │ │ ├── M_UE4Man_ChestLogo.uasset │ │ └── MaterialLayers │ │ │ ├── ML_GlossyBlack_Latex_UE4.uasset │ │ │ ├── ML_Plastic_Shiny_Beige.uasset │ │ │ ├── ML_Plastic_Shiny_Beige_LOGO.uasset │ │ │ ├── ML_SoftMetal_UE4.uasset │ │ │ ├── T_ML_Aluminum01.uasset │ │ │ ├── T_ML_Aluminum01_N.uasset │ │ │ ├── T_ML_Rubber_Blue_01_D.uasset │ │ │ └── T_ML_Rubber_Blue_01_N.uasset │ │ ├── Mesh │ │ ├── SK_Mannequin.uasset │ │ ├── SK_Mannequin_PhysicsAsset.uasset │ │ └── UE4_Mannequin_Skeleton.uasset │ │ └── Textures │ │ ├── UE4Man_Logo_N.uasset │ │ ├── UE4_LOGO_CARD.uasset │ │ ├── UE4_Mannequin_MAT_MASKA.uasset │ │ └── UE4_Mannequin__normals.uasset ├── Materials │ ├── M_BlueMaterial.uasset │ ├── M_FloorMaterial.uasset │ ├── M_GreenMaterial.uasset │ ├── M_RedMaterial.uasset │ ├── M_Translucent.uasset │ └── M_VertexColorMaterial.uasset ├── SM_Box.uasset ├── SM_ButtonBox.uasset ├── SM_Floor.uasset ├── SM_SmallSphere.uasset └── ThirdPersonCPP │ └── Blueprints │ └── ThirdPersonCharacter.uasset ├── Plugins └── RuntimeGeometryUtils │ ├── Content │ ├── BlueMaterial.uasset │ └── RedMaterial.uasset │ ├── Resources │ └── Icon128.png │ ├── RuntimeGeometryUtils.uplugin │ └── Source │ └── RuntimeGeometryUtils │ ├── Private │ ├── DynamicMeshBaseActor.cpp │ ├── DynamicMeshOBJReader.cpp │ ├── DynamicMeshOBJWriter.cpp │ ├── DynamicPMCActor.cpp │ ├── DynamicSDMCActor.cpp │ ├── DynamicSMCActor.cpp │ ├── MeshComponentRuntimeUtils.cpp │ ├── RuntimeGeometryUtilsModule.cpp │ └── tinyobj │ │ ├── LICENSE │ │ ├── README.md │ │ ├── tiny_obj_loader.cpp │ │ └── tiny_obj_loader.h │ ├── Public │ ├── DynamicMeshBaseActor.h │ ├── DynamicMeshOBJReader.h │ ├── DynamicMeshOBJWriter.h │ ├── DynamicPMCActor.h │ ├── DynamicSDMCActor.h │ ├── DynamicSMCActor.h │ ├── MeshComponentRuntimeUtils.h │ └── RuntimeGeometryUtilsModule.h │ └── RuntimeGeometryUtils.Build.cs ├── RuntimeGeometryDemo.uproject └── Source ├── RuntimeGeometryDemo.Target.cs ├── RuntimeGeometryDemo ├── RuntimeGeometryDemo.Build.cs ├── RuntimeGeometryDemo.cpp ├── RuntimeGeometryDemo.h ├── RuntimeGeometryDemoCharacter.cpp ├── RuntimeGeometryDemoCharacter.h ├── RuntimeGeometryDemoGameMode.cpp └── RuntimeGeometryDemoGameMode.h └── RuntimeGeometryDemoEditor.Target.cs /UE4.24/IGLMeshProcessingProject/Config/DefaultEditor.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.24/IGLMeshProcessingProject/Config/DefaultEditor.ini -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Config/DefaultEngine.ini: -------------------------------------------------------------------------------- 1 | [/Script/WindowsTargetPlatform.WindowsTargetSettings] 2 | DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 3 | 4 | [/Script/Engine.RendererSettings] 5 | r.SkinCache.CompileShaders=True 6 | r.RayTracing=False 7 | 8 | [/Script/EngineSettings.GameMapsSettings] 9 | EditorStartupMap=/Game/StarterContent/Maps/Minimal_Default 10 | 11 | [/Script/Engine.Engine] 12 | +ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/IGLDemo") 13 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/IGLDemo") 14 | +ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="IGLDemoGameModeBase") 15 | 16 | [/Script/HardwareTargeting.HardwareTargetingSettings] 17 | TargetedHardwareClass=Desktop 18 | AppliedTargetedHardwareClass=Desktop 19 | DefaultGraphicsPerformance=Maximum 20 | AppliedDefaultGraphicsPerformance=Maximum 21 | 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | 2 | [/Script/EngineSettings.GeneralProjectSettings] 3 | ProjectID=0EC623EE4E49241B41748BB1B069650A 4 | 5 | [StartupActions] 6 | bAddPacks=True 7 | InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent") 8 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/IGLMeshProcessing.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "4.24", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "IGLDemo", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default" 11 | } 12 | ], 13 | "Plugins": [ 14 | { 15 | "Name": "ModelingToolsEditorMode", 16 | "Enabled": true 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/MeshProcessingPlugin.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "1.0", 5 | "FriendlyName": "MeshProcessingPlugin", 6 | "Description": "Sample Mesh Processing Plugin for UE 4.24", 7 | "Category": "Other", 8 | "CreatedBy": "Ryan Schmidt", 9 | "CreatedByURL": "", 10 | "DocsURL": "", 11 | "MarketplaceURL": "", 12 | "SupportURL": "", 13 | "CanContainContent": false, 14 | "IsBetaVersion": false, 15 | "IsExperimentalVersion": false, 16 | "Installed": false, 17 | "Modules": [ 18 | { 19 | "Name": "MeshProcessingPlugin", 20 | "Type": "Editor", 21 | "LoadingPhase": "Default" 22 | } 23 | ], 24 | "Plugins": [ 25 | { 26 | "Name": "MeshModelingToolset", 27 | "Enabled": true 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Resources/Icon128.png -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Private/Tools/IGLIncludes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | // UnrealMathUtility.h #defines PI and Eigen doesn't like this 5 | #ifdef PI 6 | #undef PI 7 | #endif 8 | 9 | // disable some libigl warnings that UBT will consider errors 10 | #if defined(_MSC_VER) 11 | #pragma warning(push) 12 | #pragma warning(disable : 4018 4459) 13 | #endif 14 | 15 | // set of libigl includes (you can add others here. If you uncomment the warning(pop) below, you may *need* to add them here) 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | // un-disable the warnings 24 | // note: leaving them disabled is bad behavior but it means the igl headers can be included elsewhere w/o having to push/pop the warnings again 25 | 26 | //#if defined(_MSC_VER) 27 | //#pragma warning(pop) 28 | //#endif 29 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Public/MeshProcessingPlugin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | class FMeshProcessingPluginModule : public IModuleInterface 7 | { 8 | public: 9 | 10 | /** IModuleInterface implementation */ 11 | virtual void StartupModule() override; 12 | virtual void ShutdownModule() override; 13 | 14 | void OnPostEngineInit(); 15 | }; 16 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Public/MeshProcessingPluginStyle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Styling/ISlateStyle.h" 5 | #include "Styling/SlateStyle.h" 6 | 7 | //======================================= 8 | // EVERYTHING BELOW HERE IS BOILERPLATE! 9 | //======================================= 10 | 11 | class FMeshProcessingPluginStyle 12 | { 13 | public: 14 | static void Initialize(); 15 | 16 | static void Shutdown(); 17 | 18 | static TSharedPtr Get() { return StyleSet; } 19 | 20 | static FName GetStyleSetName(); 21 | private: 22 | static FString InContent(const FString& RelativePath, const ANSICHAR* Extension); 23 | 24 | private: 25 | static TSharedPtr< class FSlateStyleSet > StyleSet; 26 | }; 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/.gitignore: -------------------------------------------------------------------------------- 1 | qrc_*cxx 2 | *.orig 3 | *.pyc 4 | *.diff 5 | diff 6 | *.save 7 | save 8 | *.old 9 | *.gmo 10 | *.qm 11 | *.bak 12 | *~ 13 | *build* 14 | *.moc.* 15 | *.moc 16 | ui_* 17 | CMakeCache.txt 18 | tags 19 | .*.swp 20 | activity.png 21 | *.out 22 | *.php* 23 | *.log 24 | *.orig 25 | *.rej 26 | log 27 | patch 28 | *.patch 29 | a 30 | a.* 31 | lapack/testing 32 | lapack/reference 33 | .*project 34 | .settings 35 | Makefile 36 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/.hgeol: -------------------------------------------------------------------------------- 1 | [patterns] 2 | *.sh = LF 3 | *.MINPACK = CRLF 4 | scripts/*.in = LF 5 | debug/msvc/*.dat = CRLF 6 | debug/msvc/*.natvis = CRLF 7 | unsupported/test/mpreal/*.* = CRLF 8 | ** = native 9 | 10 | [repository] 11 | native = LF 12 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/COPYING.README: -------------------------------------------------------------------------------- 1 | Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links: 2 | http://www.mozilla.org/MPL/2.0/ 3 | http://www.mozilla.org/MPL/2.0/FAQ.html 4 | 5 | Some files contain third-party code under BSD or LGPL licenses, whence the other 6 | COPYING.* files here. 7 | 8 | All the LGPL code is either LGPL 2.1-only, or LGPL 2.1-or-later. 9 | For this reason, the COPYING.LGPL file contains the LGPL 2.1 text. 10 | 11 | If you want to guarantee that the Eigen code that you are #including is licensed 12 | under the MPL2 and possibly more permissive licenses (like BSD), #define this 13 | preprocessor symbol: 14 | EIGEN_MPL2_ONLY 15 | For example, with most compilers, you could add this to your project CXXFLAGS: 16 | -DEIGEN_MPL2_ONLY 17 | This will cause a compilation error to be generated if you #include any code that is 18 | LGPL licensed. 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/CTestConfig.cmake: -------------------------------------------------------------------------------- 1 | ## This file should be placed in the root directory of your project. 2 | ## Then modify the CMakeLists.txt file in the root directory of your 3 | ## project to incorporate the testing dashboard. 4 | ## # The following are required to uses Dart and the Cdash dashboard 5 | ## enable_testing() 6 | ## include(CTest) 7 | set(CTEST_PROJECT_NAME "Eigen") 8 | set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC") 9 | 10 | set(CTEST_DROP_METHOD "http") 11 | set(CTEST_DROP_SITE "my.cdash.org") 12 | set(CTEST_DROP_LOCATION "/submit.php?project=Eigen") 13 | set(CTEST_DROP_SITE_CDASH TRUE) 14 | #set(CTEST_PROJECT_SUBPROJECTS 15 | #Official 16 | #Unsupported 17 | #) 18 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/CTestCustom.cmake.in: -------------------------------------------------------------------------------- 1 | 2 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS "2000") 3 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS "2000") 4 | list(APPEND CTEST_CUSTOM_ERROR_EXCEPTION @EIGEN_CTEST_ERROR_EXCEPTION@) 5 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | #include "Sparse" 3 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdDeque: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDDEQUE_MODULE_H 12 | #define EIGEN_STDDEQUE_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdDeque.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDDEQUE_MODULE_H 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdList: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Hauke Heibel 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_STDLIST_MODULE_H 11 | #define EIGEN_STDLIST_MODULE_H 12 | 13 | #include "Core" 14 | #include 15 | 16 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 17 | 18 | #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) 19 | 20 | #else 21 | 22 | #include "src/StlSupport/StdList.h" 23 | 24 | #endif 25 | 26 | #endif // EIGEN_STDLIST_MODULE_H 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdVector: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDVECTOR_MODULE_H 12 | #define EIGEN_STDVECTOR_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdVector.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDVECTOR_MODULE_H 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * math_constants.h - 3 | * HIP equivalent of the CUDA header of the same name 4 | */ 5 | 6 | #ifndef __MATH_CONSTANTS_H__ 7 | #define __MATH_CONSTANTS_H__ 8 | 9 | /* single precision constants */ 10 | 11 | #define HIPRT_INF_F __int_as_float(0x7f800000) 12 | #define HIPRT_NAN_F __int_as_float(0x7fffffff) 13 | #define HIPRT_MIN_DENORM_F __int_as_float(0x00000001) 14 | #define HIPRT_MAX_NORMAL_F __int_as_float(0x7f7fffff) 15 | #define HIPRT_NEG_ZERO_F __int_as_float(0x80000000) 16 | #define HIPRT_ZERO_F 0.0f 17 | #define HIPRT_ONE_F 1.0f 18 | 19 | /* double precision constants */ 20 | #define HIPRT_INF __hiloint2double(0x7ff00000, 0x00000000) 21 | #define HIPRT_NAN __hiloint2double(0xfff80000, 0x00000000) 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/functors/TernaryFunctors.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2016 Eugene Brevdo 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_TERNARY_FUNCTORS_H 11 | #define EIGEN_TERNARY_FUNCTORS_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | 17 | //---------- associative ternary functors ---------- 18 | 19 | 20 | 21 | } // end namespace internal 22 | 23 | } // end namespace Eigen 24 | 25 | #endif // EIGEN_TERNARY_FUNCTORS_H 26 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/util/NonMPL2.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_MPL2_ONLY 2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode 3 | #endif 4 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/misc/lapacke_mangling.h: -------------------------------------------------------------------------------- 1 | #ifndef LAPACK_HEADER_INCLUDED 2 | #define LAPACK_HEADER_INCLUDED 3 | 4 | #ifndef LAPACK_GLOBAL 5 | #if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_) 6 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 7 | #elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER) 8 | #define LAPACK_GLOBAL(lcname,UCNAME) UCNAME 9 | #elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE) 10 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname 11 | #else 12 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 13 | #endif 14 | #endif 15 | 16 | #endif 17 | 18 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/README.md: -------------------------------------------------------------------------------- 1 | **Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.** 2 | 3 | For more information go to http://eigen.tuxfamily.org/. 4 | 5 | For ***pull request***, ***bug reports***, and ***feature requests***, go to https://gitlab.com/libeigen/eigen. 6 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/eigen3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | 4 | Name: Eigen3 5 | Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms 6 | Requires: 7 | Version: @EIGEN_VERSION_NUMBER@ 8 | Libs: 9 | Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@ 10 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/signature_of_eigen3_matrix_library: -------------------------------------------------------------------------------- 1 | This file is just there as a signature to help identify directories containing Eigen3. When writing a script looking for Eigen3, just look for this file. This is especially useful to help disambiguate with Eigen2... 2 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/README.md: -------------------------------------------------------------------------------- 1 | # libigl - A simple C++ geometry processing library 2 | [![Build Status](https://travis-ci.org/libigl/libigl.svg?branch=master)](https://travis-ci.org/libigl/libigl) 3 | [![Build status](https://ci.appveyor.com/api/projects/status/mf3t9rnhco0vhly8/branch/master?svg=true)](https://ci.appveyor.com/project/danielepanozzo/libigl-6hjk1/branch/master) 4 | ![](https://github.com/libigl/libigl-legacy/raw/5ff6387765fa85ca46f1a6222728e35e2b8b8961/libigl-teaser.png) 5 | 6 | Documentation, tutorial, and instructions at . 7 | 8 | :exclamation: **On October 15, 2018, a new, cleaned-up history was pushed onto the main libigl repository. To learn more about the consequences of this, and troubleshooting, please read [this page](https://libigl.github.io/rewritten-history/).** 9 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/C_STR.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_C_STR_H 9 | #define IGL_C_STR_H 10 | // http://stackoverflow.com/a/2433143/148668 11 | // Suppose you have a function: 12 | // void func(const char * c); 13 | // Then you can write: 14 | // func(C_STR("foo"<<1<<"bar")); 15 | #include 16 | #include 17 | #define C_STR(X) static_cast(std::ostringstream().flush() << X).str().c_str() 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/EPS.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "EPS.h" 9 | 10 | template <> IGL_INLINE float igl::EPS() 11 | { 12 | return igl::FLOAT_EPS; 13 | } 14 | template <> IGL_INLINE double igl::EPS() 15 | { 16 | return igl::DOUBLE_EPS; 17 | } 18 | 19 | template <> IGL_INLINE float igl::EPS_SQ() 20 | { 21 | return igl::FLOAT_EPS_SQ; 22 | } 23 | template <> IGL_INLINE double igl::EPS_SQ() 24 | { 25 | return igl::DOUBLE_EPS_SQ; 26 | } 27 | 28 | #ifdef IGL_STATIC_LIBRARY 29 | // Explicit template instantiation 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/Hit.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 2014 Christian Schüller 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla Public License 7 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 8 | // obtain one at http://mozilla.org/MPL/2.0/. 9 | #ifndef IGL_HIT_H 10 | #define IGL_HIT_H 11 | 12 | namespace igl 13 | { 14 | // Reimplementation of the embree::Hit struct from embree1.0 15 | // 16 | // TODO: template on floating point type 17 | struct Hit 18 | { 19 | int id; // primitive id 20 | int gid; // geometry id 21 | float u,v; // barycentric coordinates 22 | float t; // distance = direction*t to intersection 23 | }; 24 | } 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/IO: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_IO 9 | #define IGL_IO 10 | // Input and output functions 11 | #include "read_triangle_mesh.h" 12 | #include "readDMAT.h" 13 | #include "readMESH.h" 14 | #include "readNODE.h" 15 | #include "readOBJ.h" 16 | #include "readOFF.h" 17 | #include "readTGF.h" 18 | #include "readWRL.h" 19 | #include "readCSV.h" 20 | #include "file_contents_as_string.h" 21 | #include "write_triangle_mesh.h" 22 | #include "writeDMAT.h" 23 | #include "writeMESH.h" 24 | #include "writeOBJ.h" 25 | #include "writeOFF.h" 26 | #include "writeTGF.h" 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/MappingEnergyType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2018 Zhongshi Jiang 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MAPPINGENERGYTYPE_H 9 | #define IGL_MAPPINGENERGYTYPE_H 10 | namespace igl 11 | { 12 | // Energy Types used for Parameterization/Mapping. 13 | // Refer to SLIM [Rabinovich et al. 2017] for more details 14 | // Todo: Integrate with ARAPEnergyType 15 | 16 | enum MappingEnergyType 17 | { 18 | ARAP, 19 | LOG_ARAP, 20 | SYMMETRIC_DIRICHLET, 21 | CONFORMAL, 22 | EXP_CONFORMAL, 23 | EXP_SYMMETRIC_DIRICHLET 24 | }; 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/MeshBooleanType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MESH_BOOLEAN_TYPE_H 9 | #define IGL_MESH_BOOLEAN_TYPE_H 10 | namespace igl 11 | { 12 | enum MeshBooleanType 13 | { 14 | MESH_BOOLEAN_TYPE_UNION = 0, 15 | MESH_BOOLEAN_TYPE_INTERSECT = 1, 16 | MESH_BOOLEAN_TYPE_MINUS = 2, 17 | MESH_BOOLEAN_TYPE_XOR = 3, 18 | MESH_BOOLEAN_TYPE_RESOLVE = 4, 19 | NUM_MESH_BOOLEAN_TYPES = 5 20 | }; 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/NormalType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_NORMALTYPE_H 9 | #define IGL_NORMALTYPE_H 10 | 11 | namespace igl 12 | { 13 | // PER_VERTEX_NORMALS Normals computed per vertex based on incident faces 14 | // PER_FACE_NORMALS Normals computed per face 15 | // PER_CORNER_NORMALS Normals computed per corner (aka wedge) based on 16 | // incident faces without sharp edge 17 | enum NormalType 18 | { 19 | PER_VERTEX_NORMALS, 20 | PER_FACE_NORMALS, 21 | PER_CORNER_NORMALS 22 | }; 23 | # define NUM_NORMAL_TYPE 3 24 | } 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ONE.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ONE_H 9 | #define IGL_ONE_H 10 | namespace igl 11 | { 12 | // Often one needs a reference to a dummy variable containing one as its 13 | // value, for example when using AntTweakBar's 14 | // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ONE); 15 | const char CHAR_ONE = 1; 16 | const int INT_ONE = 1; 17 | const unsigned int UNSIGNED_INT_ONE = 1; 18 | const double DOUBLE_ONE = 1; 19 | const float FLOAT_ONE = 1; 20 | } 21 | #endif 22 | 23 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/PI.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_PI_H 9 | #define IGL_PI_H 10 | namespace igl 11 | { 12 | // Use standard mathematical constants' M_PI if available 13 | #ifdef M_PI 14 | const double PI = M_PI; 15 | #else 16 | const double PI = 3.1415926535897932384626433832795; 17 | #endif 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/STR.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_STR_H 9 | #define IGL_STR_H 10 | // http://stackoverflow.com/a/2433143/148668 11 | #include 12 | #include 13 | // Suppose you have a function: 14 | // void func(std::string c); 15 | // Then you can write: 16 | // func(STR("foo"<<1<<"bar")); 17 | #define STR(X) static_cast(std::ostringstream().flush() << X).str() 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/SolverStatus.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_SOLVER_STATUS_H 9 | #define IGL_SOLVER_STATUS_H 10 | namespace igl 11 | { 12 | enum SolverStatus 13 | { 14 | // Good 15 | SOLVER_STATUS_CONVERGED = 0, 16 | // OK 17 | SOLVER_STATUS_MAX_ITER = 1, 18 | // Bad 19 | SOLVER_STATUS_ERROR = 2, 20 | NUM_SOLVER_STATUSES = 3, 21 | }; 22 | }; 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/WindingNumberMethod.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_WINDINGNUMBERMETHOD_H 9 | #define IGL_WINDINGNUMBERMETHOD_H 10 | namespace igl 11 | { 12 | // EXACT_WINDING_NUMBER_METHOD exact hierarchical evaluation 13 | // APPROX_SIMPLE_WINDING_NUMBER_METHOD poor approximation 14 | // APPROX_CACHE_WINDING_NUMBER_METHOD another poor approximation 15 | enum WindingNumberMethod 16 | { 17 | EXACT_WINDING_NUMBER_METHOD = 0, 18 | APPROX_SIMPLE_WINDING_NUMBER_METHOD = 1, 19 | APPROX_CACHE_WINDING_NUMBER_METHOD = 2, 20 | NUM_WINDING_NUMBER_METHODS = 3 21 | }; 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ZERO.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ZERO_H 9 | #define IGL_ZERO_H 10 | namespace igl 11 | { 12 | // Often one needs a reference to a dummy variable containing zero as its 13 | // value, for example when using AntTweakBar's 14 | // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ZERO); 15 | const char CHAR_ZERO = 0; 16 | const int INT_ZERO = 0; 17 | const unsigned int UNSIGNED_INT_ZERO = 0; 18 | const double DOUBLE_ZERO = 0; 19 | const float FLOAT_ZERO = 0; 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/all.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "all.h" 9 | #include "redux.h" 10 | 11 | 12 | template 13 | IGL_INLINE void igl::all( 14 | const Eigen::SparseMatrix & A, 15 | const int dim, 16 | Eigen::PlainObjectBase& B) 17 | { 18 | typedef typename DerivedB::Scalar Scalar; 19 | igl::redux(A,dim,[](Scalar a, Scalar b){ return a && b!=0;},B); 20 | } 21 | 22 | #ifdef IGL_STATIC_LIBRARY 23 | // Explicit template instantiation 24 | #endif 25 | 26 | 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/angular_distance.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "angular_distance.h" 9 | #include 10 | #include 11 | IGL_INLINE double igl::angular_distance( 12 | const Eigen::Quaterniond & A, 13 | const Eigen::Quaterniond & B) 14 | { 15 | assert(fabs(A.norm()-1) 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "any_of.h" 9 | #include 10 | template 11 | IGL_INLINE bool igl::any_of(const Mat & S) 12 | { 13 | return std::any_of(S.data(),S.data()+S.size(),[](bool s){return s;}); 14 | } 15 | 16 | #ifdef IGL_STATIC_LIBRARY 17 | // Explicit template instantiation 18 | template bool igl::any_of >(Eigen::Matrix const&); 19 | #endif 20 | 21 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/any_of.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ANY_OF_H 9 | #define IGL_ANY_OF_H 10 | #include "igl_inline.h" 11 | namespace igl 12 | { 13 | // Wrapper for STL `any_of` for matrix types 14 | // 15 | // Inputs: 16 | // S matrix 17 | // Returns whether any entries are true 18 | // 19 | // Seems that Eigen (now) implements this for `Eigen::Array` 20 | template 21 | IGL_INLINE bool any_of(const Mat & S); 22 | } 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "any_of.cpp" 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/average_onto_faces.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "average_onto_faces.h" 9 | 10 | template 11 | IGL_INLINE void average_onto_faces( 12 | const Eigen::MatrixBase & F, 13 | const Eigen::MatrixBase & S, 14 | Eigen::PlainObjectBase & SF) 15 | { 16 | SF.setConstant(F.rows(),S.cols(),0); 17 | for (int i = 0; i 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_BASENAME_H 9 | #define IGL_BASENAME_H 10 | #include "igl_inline.h" 11 | 12 | #include 13 | 14 | namespace igl 15 | { 16 | // Function like PHP's basename: /etc/sudoers.d --> sudoers.d 17 | // Input: 18 | // path string containing input path 19 | // Returns string containing basename (see php's basename) 20 | // 21 | // See also: dirname, pathinfo 22 | IGL_INLINE std::string basename(const std::string & path); 23 | } 24 | 25 | #ifndef IGL_STATIC_LIBRARY 26 | # include "basename.cpp" 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/bounding_box_diagonal.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "bounding_box_diagonal.h" 9 | #include "mat_max.h" 10 | #include "mat_min.h" 11 | #include 12 | 13 | IGL_INLINE double igl::bounding_box_diagonal( 14 | const Eigen::MatrixXd & V) 15 | { 16 | using namespace Eigen; 17 | VectorXd maxV,minV; 18 | VectorXi maxVI,minVI; 19 | mat_max(V,1,maxV,maxVI); 20 | mat_min(V,1,minV,minVI); 21 | return sqrt((maxV-minV).array().square().sum()); 22 | } 23 | 24 | #ifdef IGL_STATIC_LIBRARY 25 | // Explicit template instantiation 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/canonical_quaternions.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "canonical_quaternions.h" 9 | 10 | template <> IGL_INLINE float igl::CANONICAL_VIEW_QUAT(int i, int j) 11 | { 12 | return (float)igl::CANONICAL_VIEW_QUAT_F[i][j]; 13 | } 14 | template <> IGL_INLINE double igl::CANONICAL_VIEW_QUAT(int i, int j) 15 | { 16 | return (double)igl::CANONICAL_VIEW_QUAT_D[i][j]; 17 | } 18 | 19 | #ifdef IGL_STATIC_LIBRARY 20 | // Explicit template instantiation 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ceil.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_CEIL_H 9 | #define IGL_CEIL_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Ceil a given matrix to nearest integers 15 | // 16 | // Inputs: 17 | // X m by n matrix of scalars 18 | // Outputs: 19 | // Y m by n matrix of ceiled integers 20 | template < typename DerivedX, typename DerivedY> 21 | IGL_INLINE void ceil( 22 | const Eigen::PlainObjectBase& X, 23 | Eigen::PlainObjectBase& Y); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "ceil.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/column_to_quats.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "column_to_quats.h" 9 | IGL_INLINE bool igl::column_to_quats( 10 | const Eigen::VectorXd & Q, 11 | std::vector< 12 | Eigen::Quaterniond,Eigen::aligned_allocator > & vQ) 13 | { 14 | using namespace Eigen; 15 | if(Q.size() % 4 != 0) 16 | { 17 | return false; 18 | } 19 | const int nQ = Q.size()/4; 20 | vQ.resize(nQ); 21 | for(int q=0;q 4 | // Qingan Zhou 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla Public License 7 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 8 | // obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #include "lexicographic_triangulation.h" 11 | #include "../../lexicographic_triangulation.h" 12 | #include "orient2D.h" 13 | 14 | template< 15 | typename DerivedP, 16 | typename DerivedF 17 | > 18 | IGL_INLINE void igl::copyleft::cgal::lexicographic_triangulation( 19 | const Eigen::PlainObjectBase& P, 20 | Eigen::PlainObjectBase& F) 21 | { 22 | typedef typename DerivedP::Scalar Scalar; 23 | igl::lexicographic_triangulation(P, orient2D, F); 24 | } 25 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/peel_winding_number_layers.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_COPYLEFT_CGAL_PEEL_WINDING_NUMBER_LAYERS_H 2 | #define IGL_COPYLEFT_CGAL_PEEL_WINDING_NUMBER_LAYERS_H 3 | #include "../../igl_inline.h" 4 | #include 5 | 6 | namespace igl { 7 | namespace copyleft { 8 | namespace cgal { 9 | template< 10 | typename DerivedV, 11 | typename DerivedF, 12 | typename DerivedW > 13 | IGL_INLINE size_t peel_winding_number_layers( 14 | const Eigen::PlainObjectBase & V, 15 | const Eigen::PlainObjectBase & F, 16 | Eigen::PlainObjectBase& W); 17 | } 18 | } 19 | } 20 | 21 | #ifndef IGL_STATIC_LIBRARY 22 | # include "peel_winding_number_layers.cpp" 23 | #endif 24 | #endif 25 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/read_triangle_mesh.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #include "read_triangle_mesh.h" 10 | #include "assign.h" 11 | #include "../../read_triangle_mesh.h" 12 | 13 | template 14 | IGL_INLINE bool igl::copyleft::cgal::read_triangle_mesh( 15 | const std::string str, 16 | Eigen::PlainObjectBase& V, 17 | Eigen::PlainObjectBase& F) 18 | { 19 | Eigen::MatrixXd Vd; 20 | bool ret = igl::read_triangle_mesh(str,Vd,F); 21 | if(ret) 22 | { 23 | assign(Vd,V); 24 | } 25 | return ret; 26 | } 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/row_to_point.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "row_to_point.h" 9 | 10 | template < 11 | typename Kernel, 12 | typename DerivedV> 13 | IGL_INLINE CGAL::Point_2 igl::copyleft::cgal::row_to_point( 14 | const Eigen::PlainObjectBase & V, 15 | const typename DerivedV::Index & i) 16 | { 17 | return CGAL::Point_2(V(i,0),V(i,1)); 18 | } 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/slice.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "../../slice.h" 9 | #ifdef IGL_STATIC_LIBRARY 10 | #undef IGL_STATIC_LIBRARY 11 | #include "../../slice.cpp" 12 | #endif 13 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/unique.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "../../unique.h" 9 | #include 10 | #include 11 | #ifdef IGL_STATIC_LIBRARY 12 | #undef IGL_STATIC_LIBRARY 13 | #include "../../unique.cpp" 14 | #endif 15 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/tetgen/README: -------------------------------------------------------------------------------- 1 | IGL interface to tetgen library 2 | 3 | Dependencies: 4 | tetgen 5 | 6 | Travel to $IGL/external/tetgen and issue: 7 | make -f Makefile.igl tetlib 8 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/dot.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "dot.h" 9 | 10 | // http://www.antisphere.com/Wiki/tools:anttweakbar 11 | IGL_INLINE double igl::dot( 12 | const double *a, 13 | const double *b) 14 | { 15 | return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; 16 | } 17 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/dot.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_DOT_H 9 | #define IGL_DOT_H 10 | #include "igl_inline.h" 11 | namespace igl 12 | { 13 | // Computes out = dot(a,b) 14 | // Inputs: 15 | // a left 3d vector 16 | // b right 3d vector 17 | // Returns scalar dot product 18 | IGL_INLINE double dot( 19 | const double *a, 20 | const double *b); 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "dot.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ears.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_EARS_H 2 | #define IGL_EARS_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // FIND_EARS Find all ears (faces with two boundary edges) in a given mesh 8 | // 9 | // [ears,ear_opp] = find_ears(F) 10 | // 11 | // Inputs: 12 | // F #F by 3 list of triangle mesh indices 13 | // Outputs: 14 | // ears #ears list of indices into F of ears 15 | // ear_opp #ears list of indices indicating which edge is non-boundary 16 | // (connecting to flops) 17 | // 18 | template < 19 | typename DerivedF, 20 | typename Derivedear, 21 | typename Derivedear_opp> 22 | IGL_INLINE void ears( 23 | const Eigen::MatrixBase & F, 24 | Eigen::PlainObjectBase & ear, 25 | Eigen::PlainObjectBase & ear_opp); 26 | } 27 | #ifndef IGL_STATIC_LIBRARY 28 | # include "ears.cpp" 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/example_fun.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "example_fun.h" 9 | #include 10 | 11 | template 12 | IGL_INLINE bool igl::example_fun(const Printable & input) 13 | { 14 | using namespace std; 15 | cout<<"example_fun: "<(const double& input); 22 | template bool igl::example_fun(const int& input); 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/file_exists.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "file_exists.h" 9 | 10 | #include 11 | 12 | IGL_INLINE bool igl::file_exists(const std::string filename) 13 | { 14 | struct stat status; 15 | return (stat(filename.c_str(),&status)==0); 16 | } 17 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/find_zero.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_FIND_ZERO_H 2 | #define IGL_FIND_ZERO_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Find the first zero (whether implicit or explicitly stored) in the 9 | // rows/columns of a matrix. 10 | // Inputs: 11 | // A m by n sparse matrix 12 | // dim dimension along which to check for any (1 or 2) 13 | // Output: 14 | // I n-long vector (if dim == 1) {m means no zeros found} 15 | // or 16 | // I m-long vector (if dim == 2) {n means no zeros found} 17 | // 18 | template 19 | IGL_INLINE void find_zero( 20 | const Eigen::SparseMatrix & A, 21 | const int dim, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "find_zero.cpp" 26 | #endif 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/floor.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_FLOOR_H 9 | #define IGL_FLOOR_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Floor a given matrix to nearest integers 15 | // 16 | // Inputs: 17 | // X m by n matrix of scalars 18 | // Outputs: 19 | // Y m by n matrix of floored integers 20 | template < typename DerivedX, typename DerivedY> 21 | IGL_INLINE void floor( 22 | const Eigen::PlainObjectBase& X, 23 | Eigen::PlainObjectBase& Y); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "floor.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/get_seconds.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "get_seconds.h" 9 | #include 10 | IGL_INLINE double igl::get_seconds() 11 | { 12 | return 13 | std::chrono::duration( 14 | std::chrono::system_clock::now().time_since_epoch()).count(); 15 | } 16 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/get_seconds_hires.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_GET_SECONDS_HIRES_H 9 | #define IGL_GET_SECONDS_HIRES_H 10 | #include "igl_inline.h" 11 | 12 | namespace igl 13 | { 14 | // Return the current time in seconds using performance counters 15 | IGL_INLINE double get_seconds_hires(); 16 | } 17 | 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "get_seconds_hires.cpp" 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/guess_extension.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_GUESS_EXTENSION_H 2 | #define IGL_GUESS_EXTENSION_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Given a file pointer at the beginning of a "mesh" file, try to guess the 9 | // extension of the file format it comes from. The file pointer is rewound on 10 | // return. 11 | // 12 | // Inputs: 13 | // fp file pointer (see output) 14 | // Outputs: 15 | // fp file pointer rewound 16 | // guess extension as string. One of "mesh",{"obj"},"off","ply","stl", or 17 | // "wrl" 18 | // 19 | IGL_INLINE void guess_extension(FILE * fp, std::string & guess); 20 | IGL_INLINE std::string guess_extension(FILE * fp); 21 | } 22 | #ifndef IGL_STATIC_LIBRARY 23 | # include "guess_extension.cpp" 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/igl_inline.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | // This should *NOT* be contained in a IGL_*_H ifdef, since it may be defined 9 | // differently based on when it is included 10 | #ifdef IGL_INLINE 11 | #undef IGL_INLINE 12 | #endif 13 | 14 | #ifndef IGL_STATIC_LIBRARY 15 | # define IGL_INLINE inline 16 | #else 17 | # define IGL_INLINE 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_dir.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_dir.h" 9 | 10 | #include 11 | 12 | #ifndef S_ISDIR 13 | #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) 14 | #endif 15 | 16 | #ifndef S_ISREG 17 | #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) 18 | #endif 19 | 20 | IGL_INLINE bool igl::is_dir(const char * filename) 21 | { 22 | struct stat status; 23 | if(stat(filename,&status)!=0) 24 | { 25 | // path does not exist 26 | return false; 27 | } 28 | // Tests whether existing path is a directory 29 | return S_ISDIR(status.st_mode); 30 | } 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_file.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_file.h" 9 | 10 | #include 11 | #ifdef _WIN32 12 | # ifndef S_ISREG 13 | # define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) 14 | # endif 15 | #endif 16 | IGL_INLINE bool igl::is_file(const char * filename) 17 | { 18 | struct stat status; 19 | if(stat(filename,&status)!=0) 20 | { 21 | // path does not exist 22 | return false; 23 | } 24 | // Tests whether existing path is a regular file 25 | return S_ISREG(status.st_mode); 26 | } 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_planar.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2014 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_planar.h" 9 | IGL_INLINE bool igl::is_planar(const Eigen::MatrixXd & V) 10 | { 11 | if(V.size() == 0) return false; 12 | if(V.cols() == 2) return true; 13 | for(int i = 0;i 5 | namespace igl 6 | { 7 | // Given a file pointer, determine if it contains an .stl file and then 8 | // rewind it. 9 | // 10 | // Inputs: 11 | // stl_file pointer to file 12 | // Outputs: 13 | // is_ascii flag whether stl is ascii 14 | // Returns whether stl_file is an .stl file 15 | IGL_INLINE bool is_stl(FILE * stl_file, bool & is_ascii); 16 | IGL_INLINE bool is_stl(FILE * stl_file); 17 | }; 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "is_stl.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/isdiag.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ISDIAG_H 9 | #define IGL_ISDIAG_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Determine if a given matrix is diagonal: all non-zeros lie on the 15 | // main diagonal. 16 | // 17 | // Inputs: 18 | // A m by n sparse matrix 19 | // Returns true iff and only if the matrix is diagonal. 20 | template 21 | IGL_INLINE bool isdiag(const Eigen::SparseMatrix & A); 22 | }; 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "isdiag.cpp" 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/mexErrMsgTxt.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "mexErrMsgTxt.h" 9 | 10 | IGL_INLINE void igl::matlab::mexErrMsgTxt(bool assertion, const char * text) 11 | { 12 | if(!assertion) 13 | { 14 | ::mexErrMsgTxt(text); 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/mexErrMsgTxt.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MATLAB_MEXERRMSGTXT_H 9 | #define IGL_MATLAB_MEXERRMSGTXT_H 10 | #include "../igl_inline.h" 11 | // Overload mexErrMsgTxt to check an assertion then print text only if 12 | // assertion fails 13 | #include "mex.h" 14 | namespace igl 15 | { 16 | namespace matlab 17 | { 18 | // Wrapper for mexErrMsgTxt that only calls error if test fails 19 | IGL_INLINE void mexErrMsgTxt(bool test, const char * message); 20 | } 21 | } 22 | #ifndef IGL_STATIC_LIBRARY 23 | # include "mexErrMsgTxt.cpp" 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/requires_arg.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "requires_arg.h" 9 | #include "mexErrMsgTxt.h" 10 | #include "../C_STR.h" 11 | 12 | IGL_INLINE void igl::matlab::requires_arg(const int i, const int nrhs, const char *name) 13 | { 14 | mexErrMsgTxt((i+1) 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_REQUIRES_ARG_H 9 | #define IGL_REQUIRES_ARG_H 10 | #include "../igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | namespace matlab 15 | { 16 | // Simply throw an error if (i+1) 5 | #include 6 | namespace igl 7 | { 8 | // Inputs: 9 | // X m by n matrix 10 | // dim dimension along which to take max 11 | // Outputs: 12 | // Y n-long vector (if dim == 1) 13 | // or 14 | // Y m-long vector (if dim == 2) 15 | // I vector the same size as Y containing the indices along dim of maximum 16 | // entries 17 | template 18 | IGL_INLINE void max( 19 | const Eigen::SparseMatrix & A, 20 | const int dim, 21 | Eigen::PlainObjectBase & B, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "max.cpp" 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/max_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MAX_SIZE_H 9 | #define IGL_MAX_SIZE_H 10 | #include "igl_inline.h" 11 | #include 12 | 13 | namespace igl 14 | { 15 | // Determine max size of lists in a vector 16 | // Template: 17 | // T some list type object that implements .size() 18 | // Inputs: 19 | // V vector of list types T 20 | // Returns max .size() found in V, returns -1 if V is empty 21 | template 22 | IGL_INLINE int max_size(const std::vector & V); 23 | } 24 | 25 | #ifndef IGL_STATIC_LIBRARY 26 | # include "max_size.cpp" 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/median.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MEDIAN_H 9 | #define IGL_MEDIAN_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Compute the median of an eigen vector 15 | // 16 | // Inputs: 17 | // V #V list of unsorted values 18 | // Outputs: 19 | // m median of those values 20 | // Returns true on success, false on failure 21 | template 22 | IGL_INLINE bool median( 23 | const Eigen::MatrixBase & V, mType & m); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "median.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/min.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_MIN_H 2 | #define IGL_MIN_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Inputs: 9 | // X m by n matrix 10 | // dim dimension along which to take min 11 | // Outputs: 12 | // Y n-long vector (if dim == 1) 13 | // or 14 | // Y m-long vector (if dim == 2) 15 | // I vector the same size as Y containing the indices along dim of minimum 16 | // entries 17 | template 18 | IGL_INLINE void min( 19 | const Eigen::SparseMatrix & A, 20 | const int dim, 21 | Eigen::PlainObjectBase & B, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "min.cpp" 26 | #endif 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/min_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MIN_SIZE_H 9 | #define IGL_MIN_SIZE_H 10 | #include "igl_inline.h" 11 | #include 12 | 13 | namespace igl 14 | { 15 | // Determine min size of lists in a vector 16 | // Template: 17 | // T some list type object that implements .size() 18 | // Inputs: 19 | // V vector of list types T 20 | // Returns min .size() found in V, returns -1 if V is empty 21 | template 22 | IGL_INLINE int min_size(const std::vector & V); 23 | } 24 | 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "min_size.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/mosek/mosek_guarded.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "mosek_guarded.h" 9 | #include 10 | 11 | IGL_INLINE MSKrescodee igl::mosek::mosek_guarded(const MSKrescodee r) 12 | { 13 | using namespace std; 14 | if(r != MSK_RES_OK) 15 | { 16 | /* In case of an error print error code and description. */ 17 | char symname[MSK_MAX_STR_LEN]; 18 | char desc[MSK_MAX_STR_LEN]; 19 | MSK_getcodedesc(r,symname,desc); 20 | cerr<<"MOSEK ERROR ("< 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MOSEK_MOSEK_GUARDED_H 9 | #define IGL_MOSEK_MOSEK_GUARDED_H 10 | #include "../igl_inline.h" 11 | 12 | #include "mosek.h" 13 | namespace igl 14 | { 15 | namespace mosek 16 | { 17 | // Little function to wrap around mosek call to handle errors 18 | // 19 | // Inputs: 20 | // r mosek error code returned from mosek call 21 | // Returns r untouched 22 | IGL_INLINE MSKrescodee mosek_guarded(const MSKrescodee r); 23 | } 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "mosek_guarded.cpp" 28 | #endif 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/null.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "null.h" 9 | #include "EPS.h" 10 | 11 | template 12 | IGL_INLINE void igl::null( 13 | const Eigen::PlainObjectBase & A, 14 | Eigen::PlainObjectBase & N) 15 | { 16 | using namespace Eigen; 17 | typedef typename DerivedA::Scalar Scalar; 18 | JacobiSVD svd(A, ComputeFullV); 19 | svd.setThreshold(A.cols() * svd.singularValues().maxCoeff() * EPS()); 20 | N = svd.matrixV().rightCols(A.cols()-svd.rank()); 21 | } 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/bind_vertex_attrib_array.cpp: -------------------------------------------------------------------------------- 1 | #include "bind_vertex_attrib_array.h" 2 | 3 | IGL_INLINE GLint igl::opengl::bind_vertex_attrib_array( 4 | const GLuint program_shader, 5 | const std::string &name, 6 | GLuint bufferID, 7 | const Eigen::Matrix &M, 8 | bool refresh) 9 | { 10 | GLint id = glGetAttribLocation(program_shader, name.c_str()); 11 | if (id < 0) 12 | return id; 13 | if (M.size() == 0) 14 | { 15 | glDisableVertexAttribArray(id); 16 | return id; 17 | } 18 | glBindBuffer(GL_ARRAY_BUFFER, bufferID); 19 | if (refresh) 20 | glBufferData(GL_ARRAY_BUFFER, sizeof(float)*M.size(), M.data(), GL_DYNAMIC_DRAW); 21 | glVertexAttribPointer(id, M.cols(), GL_FLOAT, GL_FALSE, 0, 0); 22 | glEnableVertexAttribArray(id); 23 | return id; 24 | } 25 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013, 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_GL_H 9 | #define IGL_OPENGL_GL_H 10 | 11 | #ifdef IGL_OPENGL2_GL_H 12 | # error "igl/opengl2/gl.h already included" 13 | #endif 14 | 15 | // Always use this: 16 | // #include "gl.h" 17 | // Instead of: 18 | // #include 19 | // or 20 | // #include 21 | // 22 | 23 | #include 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl_type_size.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "gl_type_size.h" 9 | #include 10 | 11 | IGL_INLINE int igl::opengl::gl_type_size(const GLenum type) 12 | { 13 | switch(type) 14 | { 15 | case GL_DOUBLE: 16 | return 8; 17 | break; 18 | case GL_FLOAT: 19 | return 4; 20 | break; 21 | case GL_INT: 22 | return 4; 23 | break; 24 | default: 25 | // should handle all other GL_[types] 26 | assert(false && "Implementation incomplete."); 27 | break; 28 | } 29 | return -1; 30 | } 31 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl_type_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_GL_TYPE_SIZE_H 9 | #define IGL_OPENGL_GL_TYPE_SIZE_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Return the number of bytes for a given OpenGL type // Inputs: 18 | // type enum value of opengl type 19 | // Returns size in bytes of type 20 | IGL_INLINE int gl_type_size(const GLenum type); 21 | } 22 | } 23 | 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "gl_type_size.cpp" 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/glfw/background_window.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_OPENGL_GLFW_BACKGROUND_WINDOW_H 2 | #define IGL_OPENGL_GLFW_BACKGROUND_WINDOW_H 3 | #include "../../igl_inline.h" 4 | 5 | #include "../gl.h" 6 | #include 7 | 8 | namespace igl 9 | { 10 | namespace opengl 11 | { 12 | namespace glfw 13 | { 14 | // Create a background window with a valid core profile opengl context 15 | // set to current. 16 | // 17 | // After you're finished with this window you may call 18 | // `glfwDestroyWindow(window)` 19 | // 20 | // After you're finished with glfw you should call `glfwTerminate()` 21 | // 22 | // Outputs: 23 | // window pointer to glfw window 24 | // Returns true iff success 25 | IGL_INLINE bool background_window(GLFWwindow* & window); 26 | } 27 | } 28 | } 29 | 30 | #ifndef IGL_STATIC_LIBRARY 31 | # include "background_window.cpp" 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/print_program_info_log.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_PRINT_PROGRAM_INFO_LOG_H 9 | #define IGL_OPENGL_PRINT_PROGRAM_INFO_LOG_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Inputs: 18 | // obj OpenGL index of program to print info log about 19 | IGL_INLINE void print_program_info_log(const GLuint obj); 20 | } 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "print_program_info_log.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/print_shader_info_log.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_PRINT_SHADER_INFO_LOG_H 9 | #define IGL_OPENGL_PRINT_SHADER_INFO_LOG_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Inputs: 18 | // obj OpenGL index of shader to print info log about 19 | IGL_INLINE void print_shader_info_log(const GLuint obj); 20 | } 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "print_shader_info_log.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/path_to_executable.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_PATH_TO_EXECUTABLE_H 9 | #define IGL_PATH_TO_EXECUTABLE_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Return the path of the current executable. 15 | // Note: Tested for Mac OS X 16 | IGL_INLINE std::string path_to_executable(); 17 | } 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "path_to_executable.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/pinv.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_PINV_H 2 | #define IGL_PINV_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the Moore-Penrose pseudoinverse 8 | // 9 | // Inputs: 10 | // A m by n matrix 11 | // tol tolerance (if negative then default is used) 12 | // Outputs: 13 | // X n by m matrix so that A*X*A = A and X*A*X = X and A*X = (A*X)' and 14 | // (X*A) = (X*A)' 15 | template 16 | void pinv( 17 | const Eigen::MatrixBase & A, 18 | typename DerivedA::Scalar tol, 19 | Eigen::PlainObjectBase & X); 20 | // Wrapper using default tol 21 | template 22 | void pinv( 23 | const Eigen::MatrixBase & A, 24 | Eigen::PlainObjectBase & X); 25 | } 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "pinv.cpp" 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/point_in_circle.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "point_in_circle.h" 9 | 10 | IGL_INLINE bool igl::point_in_circle( 11 | const double qx, 12 | const double qy, 13 | const double cx, 14 | const double cy, 15 | const double r) 16 | { 17 | return (qx-cx)*(qx-cx) + (qy-cy)*(qy-cy) - r*r < 0; 18 | } 19 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/quat_conjugate.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "quat_conjugate.h" 9 | 10 | template 11 | IGL_INLINE void igl::quat_conjugate( 12 | const Q_type *q1, 13 | Q_type *out) 14 | { 15 | out[0] = -q1[0]; 16 | out[1] = -q1[1]; 17 | out[2] = -q1[2]; 18 | out[3] = q1[3]; 19 | } 20 | 21 | #ifdef IGL_STATIC_LIBRARY 22 | // Explicit template instantiation 23 | // generated by autoexplicit.sh 24 | template void igl::quat_conjugate(double const*, double*); 25 | // generated by autoexplicit.sh 26 | template void igl::quat_conjugate(float const*, float*); 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/random_quaternion.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_RANDOM_QUATERNION_H 9 | #define IGL_RANDOM_QUATERNION_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Return a random quaternion via uniform sampling of the 4-sphere 15 | template 16 | IGL_INLINE Eigen::Quaternion random_quaternion(); 17 | } 18 | #ifndef IGL_STATIC_LIBRARY 19 | #include "random_quaternion.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/shortest_edge_and_midpoint.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "shortest_edge_and_midpoint.h" 9 | 10 | IGL_INLINE void igl::shortest_edge_and_midpoint( 11 | const int e, 12 | const Eigen::MatrixXd & V, 13 | const Eigen::MatrixXi & /*F*/, 14 | const Eigen::MatrixXi & E, 15 | const Eigen::VectorXi & /*EMAP*/, 16 | const Eigen::MatrixXi & /*EF*/, 17 | const Eigen::MatrixXi & /*EI*/, 18 | double & cost, 19 | Eigen::RowVectorXd & p) 20 | { 21 | cost = (V.row(E(e,0))-V.row(E(e,1))).norm(); 22 | p = 0.5*(V.row(E(e,0))+V.row(E(e,1))); 23 | } 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/signed_angle.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_SIGNED_ANGLE_H 2 | #define IGL_SIGNED_ANGLE_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the signed angle subtended by the oriented 3d triangle (A,B,C) at some point P 8 | // 9 | // Inputs: 10 | // A 2D position of corner 11 | // B 2D position of corner 12 | // P 2D position of query point 13 | // returns signed angle 14 | template < 15 | typename DerivedA, 16 | typename DerivedB, 17 | typename DerivedP> 18 | IGL_INLINE typename DerivedA::Scalar signed_angle( 19 | const Eigen::MatrixBase & A, 20 | const Eigen::MatrixBase & B, 21 | const Eigen::MatrixBase & P); 22 | } 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "signed_angle.cpp" 25 | #endif 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/solid_angle.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_SOLID_ANGLE_H 2 | #define IGL_SOLID_ANGLE_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the signed solid angle subtended by the oriented 3d triangle (A,B,C) at some point P 8 | // 9 | // Inputs: 10 | // A 3D position of corner 11 | // B 3D position of corner 12 | // C 3D position of corner 13 | // P 3D position of query point 14 | // Returns signed solid angle 15 | template < 16 | typename DerivedA, 17 | typename DerivedB, 18 | typename DerivedC, 19 | typename DerivedP> 20 | IGL_INLINE typename DerivedA::Scalar solid_angle( 21 | const Eigen::MatrixBase & A, 22 | const Eigen::MatrixBase & B, 23 | const Eigen::MatrixBase & C, 24 | const Eigen::MatrixBase & P); 25 | } 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "solid_angle.cpp" 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class IGLDemoTarget : TargetRules 7 | { 8 | public IGLDemoTarget( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | 12 | ExtraModuleNames.AddRange( new string[] { "IGLDemo" } ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class IGLDemo : ModuleRules 6 | { 7 | public IGLDemo(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); 12 | 13 | PrivateDependencyModuleNames.AddRange(new string[] { }); 14 | 15 | // Uncomment if you are using Slate UI 16 | // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); 17 | 18 | // Uncomment if you are using online features 19 | // PrivateDependencyModuleNames.Add("OnlineSubsystem"); 20 | 21 | // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "IGLDemo.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, IGLDemo, "IGLDemo" ); 7 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo/IGLDemoGameModeBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | 4 | #include "IGLDemoGameModeBase.h" 5 | 6 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemo/IGLDemoGameModeBase.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameModeBase.h" 7 | #include "IGLDemoGameModeBase.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class IGLDEMO_API AIGLDemoGameModeBase : public AGameModeBase 14 | { 15 | GENERATED_BODY() 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /UE4.24/IGLMeshProcessingProject/Source/IGLDemoEditor.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class IGLDemoEditorTarget : TargetRules 7 | { 8 | public IGLDemoEditorTarget( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | 12 | DefaultBuildSettings = BuildSettingsVersion.V2; 13 | 14 | ExtraModuleNames.AddRange( new string[] { "IGLDemo" } ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /UE4.26/CommandLineGeometryTest/CommandLineGeometryTest.Build.cs: -------------------------------------------------------------------------------- 1 | using UnrealBuildTool; 2 | 3 | public class CommandLineGeometryTest : ModuleRules 4 | { 5 | public CommandLineGeometryTest(ReadOnlyTargetRules Target) : base(Target) 6 | { 7 | PublicIncludePaths.Add("Runtime/Launch/Public"); 8 | PrivateIncludePaths.Add("Runtime/Launch/Private"); 9 | 10 | PrivateDependencyModuleNames.Add("Core"); 11 | PrivateDependencyModuleNames.Add("Projects"); 12 | 13 | // modules from GeometryProcessing Plugin 14 | PrivateDependencyModuleNames.Add("GeometricObjects"); 15 | PrivateDependencyModuleNames.Add("DynamicMesh"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /UE4.26/CommandLineGeometryTest/CommandLineGeometryTest.Target.cs: -------------------------------------------------------------------------------- 1 | using UnrealBuildTool; 2 | using System.Collections.Generic; 3 | 4 | [SupportedPlatforms(UnrealPlatformClass.Desktop)] 5 | public class CommandLineGeometryTestTarget : TargetRules 6 | { 7 | public CommandLineGeometryTestTarget(TargetInfo Target) : base(Target) 8 | { 9 | Type = TargetType.Program; 10 | LinkType = TargetLinkType.Monolithic; 11 | LaunchModuleName = "CommandLineGeometryTest"; 12 | bBuildDeveloperTools = false; 13 | bUseMallocProfiler = false; 14 | bBuildWithEditorOnlyData = false; 15 | bCompileAgainstEngine = false; 16 | bCompileAgainstCoreUObject = false; 17 | bCompileAgainstApplicationCore = false; 18 | bIsBuildingConsoleApplication = true; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /UE4.26/CommandLineGeometryTest/Private/CommandLineGeometryTest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | 5 | -------------------------------------------------------------------------------- /UE4.26/CommandLineGeometryTest/Private/tinyobj/tiny_obj_loader.cpp: -------------------------------------------------------------------------------- 1 | #define TINYOBJLOADER_IMPLEMENTATION 2 | #include "tiny_obj_loader.h" 3 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Config/DefaultEditor.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/IGLMeshProcessingProject/Config/DefaultEditor.ini -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Config/DefaultEngine.ini: -------------------------------------------------------------------------------- 1 | [/Script/WindowsTargetPlatform.WindowsTargetSettings] 2 | DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 3 | 4 | [/Script/Engine.RendererSettings] 5 | r.SkinCache.CompileShaders=True 6 | r.RayTracing=False 7 | 8 | [/Script/EngineSettings.GameMapsSettings] 9 | EditorStartupMap=/Game/StarterContent/Maps/Minimal_Default 10 | 11 | [/Script/Engine.Engine] 12 | +ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/IGLDemo") 13 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/IGLDemo") 14 | +ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="IGLDemoGameModeBase") 15 | 16 | [/Script/HardwareTargeting.HardwareTargetingSettings] 17 | TargetedHardwareClass=Desktop 18 | AppliedTargetedHardwareClass=Desktop 19 | DefaultGraphicsPerformance=Maximum 20 | AppliedDefaultGraphicsPerformance=Maximum 21 | 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | 2 | [/Script/EngineSettings.GeneralProjectSettings] 3 | ProjectID=0EC623EE4E49241B41748BB1B069650A 4 | 5 | [StartupActions] 6 | bAddPacks=True 7 | InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent") 8 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/IGLMeshProcessing.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "4.26", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "IGLDemo", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default" 11 | } 12 | ], 13 | "Plugins": [ 14 | { 15 | "Name": "ModelingToolsEditorMode", 16 | "Enabled": true 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/MeshProcessingPlugin.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "1.0", 5 | "FriendlyName": "MeshProcessingPlugin", 6 | "Description": "Sample Mesh Processing Plugin for UE 4.24", 7 | "Category": "Other", 8 | "CreatedBy": "Ryan Schmidt", 9 | "CreatedByURL": "", 10 | "DocsURL": "", 11 | "MarketplaceURL": "", 12 | "SupportURL": "", 13 | "CanContainContent": false, 14 | "IsBetaVersion": false, 15 | "IsExperimentalVersion": false, 16 | "Installed": false, 17 | "Modules": [ 18 | { 19 | "Name": "MeshProcessingPlugin", 20 | "Type": "Editor", 21 | "LoadingPhase": "Default" 22 | } 23 | ], 24 | "Plugins": [ 25 | { 26 | "Name": "MeshModelingToolset", 27 | "Enabled": true 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Resources/Icon128.png -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Private/Tools/IGLIncludes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | // UnrealMathUtility.h #defines PI and Eigen doesn't like this 5 | #ifdef PI 6 | #undef PI 7 | #endif 8 | 9 | // disable some libigl warnings that UBT will consider errors 10 | #if defined(_MSC_VER) 11 | #pragma warning(push) 12 | #pragma warning(disable : 4018 4459) 13 | #endif 14 | 15 | // set of libigl includes (you can add others here. If you uncomment the warning(pop) below, you may *need* to add them here) 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | // un-disable the warnings 24 | // note: leaving them disabled is bad behavior but it means the igl headers can be included elsewhere w/o having to push/pop the warnings again 25 | 26 | //#if defined(_MSC_VER) 27 | //#pragma warning(pop) 28 | //#endif 29 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Public/MeshProcessingPlugin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | class FMeshProcessingPluginModule : public IModuleInterface 7 | { 8 | public: 9 | 10 | /** IModuleInterface implementation */ 11 | virtual void StartupModule() override; 12 | virtual void ShutdownModule() override; 13 | 14 | void OnPostEngineInit(); 15 | }; 16 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/Source/MeshProcessingPlugin/Public/MeshProcessingPluginStyle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "Styling/ISlateStyle.h" 5 | #include "Styling/SlateStyle.h" 6 | 7 | //======================================= 8 | // EVERYTHING BELOW HERE IS BOILERPLATE! 9 | //======================================= 10 | 11 | class FMeshProcessingPluginStyle 12 | { 13 | public: 14 | static void Initialize(); 15 | 16 | static void Shutdown(); 17 | 18 | static TSharedPtr Get() { return StyleSet; } 19 | 20 | static FName GetStyleSetName(); 21 | private: 22 | static FString InContent(const FString& RelativePath, const ANSICHAR* Extension); 23 | 24 | private: 25 | static TSharedPtr< class FSlateStyleSet > StyleSet; 26 | }; 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/.gitignore: -------------------------------------------------------------------------------- 1 | qrc_*cxx 2 | *.orig 3 | *.pyc 4 | *.diff 5 | diff 6 | *.save 7 | save 8 | *.old 9 | *.gmo 10 | *.qm 11 | *.bak 12 | *~ 13 | *build* 14 | *.moc.* 15 | *.moc 16 | ui_* 17 | CMakeCache.txt 18 | tags 19 | .*.swp 20 | activity.png 21 | *.out 22 | *.php* 23 | *.log 24 | *.orig 25 | *.rej 26 | log 27 | patch 28 | *.patch 29 | a 30 | a.* 31 | lapack/testing 32 | lapack/reference 33 | .*project 34 | .settings 35 | Makefile 36 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/.hgeol: -------------------------------------------------------------------------------- 1 | [patterns] 2 | *.sh = LF 3 | *.MINPACK = CRLF 4 | scripts/*.in = LF 5 | debug/msvc/*.dat = CRLF 6 | debug/msvc/*.natvis = CRLF 7 | unsupported/test/mpreal/*.* = CRLF 8 | ** = native 9 | 10 | [repository] 11 | native = LF 12 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/COPYING.README: -------------------------------------------------------------------------------- 1 | Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links: 2 | http://www.mozilla.org/MPL/2.0/ 3 | http://www.mozilla.org/MPL/2.0/FAQ.html 4 | 5 | Some files contain third-party code under BSD or LGPL licenses, whence the other 6 | COPYING.* files here. 7 | 8 | All the LGPL code is either LGPL 2.1-only, or LGPL 2.1-or-later. 9 | For this reason, the COPYING.LGPL file contains the LGPL 2.1 text. 10 | 11 | If you want to guarantee that the Eigen code that you are #including is licensed 12 | under the MPL2 and possibly more permissive licenses (like BSD), #define this 13 | preprocessor symbol: 14 | EIGEN_MPL2_ONLY 15 | For example, with most compilers, you could add this to your project CXXFLAGS: 16 | -DEIGEN_MPL2_ONLY 17 | This will cause a compilation error to be generated if you #include any code that is 18 | LGPL licensed. 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/CTestConfig.cmake: -------------------------------------------------------------------------------- 1 | ## This file should be placed in the root directory of your project. 2 | ## Then modify the CMakeLists.txt file in the root directory of your 3 | ## project to incorporate the testing dashboard. 4 | ## # The following are required to uses Dart and the Cdash dashboard 5 | ## enable_testing() 6 | ## include(CTest) 7 | set(CTEST_PROJECT_NAME "Eigen") 8 | set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC") 9 | 10 | set(CTEST_DROP_METHOD "http") 11 | set(CTEST_DROP_SITE "my.cdash.org") 12 | set(CTEST_DROP_LOCATION "/submit.php?project=Eigen") 13 | set(CTEST_DROP_SITE_CDASH TRUE) 14 | #set(CTEST_PROJECT_SUBPROJECTS 15 | #Official 16 | #Unsupported 17 | #) 18 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/CTestCustom.cmake.in: -------------------------------------------------------------------------------- 1 | 2 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS "2000") 3 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS "2000") 4 | list(APPEND CTEST_CUSTOM_ERROR_EXCEPTION @EIGEN_CTEST_ERROR_EXCEPTION@) 5 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | #include "Sparse" 3 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdDeque: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDDEQUE_MODULE_H 12 | #define EIGEN_STDDEQUE_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdDeque.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDDEQUE_MODULE_H 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdList: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Hauke Heibel 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_STDLIST_MODULE_H 11 | #define EIGEN_STDLIST_MODULE_H 12 | 13 | #include "Core" 14 | #include 15 | 16 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 17 | 18 | #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) 19 | 20 | #else 21 | 22 | #include "src/StlSupport/StdList.h" 23 | 24 | #endif 25 | 26 | #endif // EIGEN_STDLIST_MODULE_H 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/StdVector: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDVECTOR_MODULE_H 12 | #define EIGEN_STDVECTOR_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdVector.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDVECTOR_MODULE_H 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * math_constants.h - 3 | * HIP equivalent of the CUDA header of the same name 4 | */ 5 | 6 | #ifndef __MATH_CONSTANTS_H__ 7 | #define __MATH_CONSTANTS_H__ 8 | 9 | /* single precision constants */ 10 | 11 | #define HIPRT_INF_F __int_as_float(0x7f800000) 12 | #define HIPRT_NAN_F __int_as_float(0x7fffffff) 13 | #define HIPRT_MIN_DENORM_F __int_as_float(0x00000001) 14 | #define HIPRT_MAX_NORMAL_F __int_as_float(0x7f7fffff) 15 | #define HIPRT_NEG_ZERO_F __int_as_float(0x80000000) 16 | #define HIPRT_ZERO_F 0.0f 17 | #define HIPRT_ONE_F 1.0f 18 | 19 | /* double precision constants */ 20 | #define HIPRT_INF __hiloint2double(0x7ff00000, 0x00000000) 21 | #define HIPRT_NAN __hiloint2double(0xfff80000, 0x00000000) 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/functors/TernaryFunctors.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2016 Eugene Brevdo 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_TERNARY_FUNCTORS_H 11 | #define EIGEN_TERNARY_FUNCTORS_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | 17 | //---------- associative ternary functors ---------- 18 | 19 | 20 | 21 | } // end namespace internal 22 | 23 | } // end namespace Eigen 24 | 25 | #endif // EIGEN_TERNARY_FUNCTORS_H 26 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/Core/util/NonMPL2.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_MPL2_ONLY 2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode 3 | #endif 4 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/Eigen/src/misc/lapacke_mangling.h: -------------------------------------------------------------------------------- 1 | #ifndef LAPACK_HEADER_INCLUDED 2 | #define LAPACK_HEADER_INCLUDED 3 | 4 | #ifndef LAPACK_GLOBAL 5 | #if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_) 6 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 7 | #elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER) 8 | #define LAPACK_GLOBAL(lcname,UCNAME) UCNAME 9 | #elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE) 10 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname 11 | #else 12 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 13 | #endif 14 | #endif 15 | 16 | #endif 17 | 18 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/README.md: -------------------------------------------------------------------------------- 1 | **Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.** 2 | 3 | For more information go to http://eigen.tuxfamily.org/. 4 | 5 | For ***pull request***, ***bug reports***, and ***feature requests***, go to https://gitlab.com/libeigen/eigen. 6 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/eigen3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | 4 | Name: Eigen3 5 | Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms 6 | Requires: 7 | Version: @EIGEN_VERSION_NUMBER@ 8 | Libs: 9 | Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@ 10 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/eigen/signature_of_eigen3_matrix_library: -------------------------------------------------------------------------------- 1 | This file is just there as a signature to help identify directories containing Eigen3. When writing a script looking for Eigen3, just look for this file. This is especially useful to help disambiguate with Eigen2... 2 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/README.md: -------------------------------------------------------------------------------- 1 | # libigl - A simple C++ geometry processing library 2 | [![Build Status](https://travis-ci.org/libigl/libigl.svg?branch=master)](https://travis-ci.org/libigl/libigl) 3 | [![Build status](https://ci.appveyor.com/api/projects/status/mf3t9rnhco0vhly8/branch/master?svg=true)](https://ci.appveyor.com/project/danielepanozzo/libigl-6hjk1/branch/master) 4 | ![](https://github.com/libigl/libigl-legacy/raw/5ff6387765fa85ca46f1a6222728e35e2b8b8961/libigl-teaser.png) 5 | 6 | Documentation, tutorial, and instructions at . 7 | 8 | :exclamation: **On October 15, 2018, a new, cleaned-up history was pushed onto the main libigl repository. To learn more about the consequences of this, and troubleshooting, please read [this page](https://libigl.github.io/rewritten-history/).** 9 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/C_STR.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_C_STR_H 9 | #define IGL_C_STR_H 10 | // http://stackoverflow.com/a/2433143/148668 11 | // Suppose you have a function: 12 | // void func(const char * c); 13 | // Then you can write: 14 | // func(C_STR("foo"<<1<<"bar")); 15 | #include 16 | #include 17 | #define C_STR(X) static_cast(std::ostringstream().flush() << X).str().c_str() 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/EPS.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "EPS.h" 9 | 10 | template <> IGL_INLINE float igl::EPS() 11 | { 12 | return igl::FLOAT_EPS; 13 | } 14 | template <> IGL_INLINE double igl::EPS() 15 | { 16 | return igl::DOUBLE_EPS; 17 | } 18 | 19 | template <> IGL_INLINE float igl::EPS_SQ() 20 | { 21 | return igl::FLOAT_EPS_SQ; 22 | } 23 | template <> IGL_INLINE double igl::EPS_SQ() 24 | { 25 | return igl::DOUBLE_EPS_SQ; 26 | } 27 | 28 | #ifdef IGL_STATIC_LIBRARY 29 | // Explicit template instantiation 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/Hit.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 2014 Christian Schüller 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla Public License 7 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 8 | // obtain one at http://mozilla.org/MPL/2.0/. 9 | #ifndef IGL_HIT_H 10 | #define IGL_HIT_H 11 | 12 | namespace igl 13 | { 14 | // Reimplementation of the embree::Hit struct from embree1.0 15 | // 16 | // TODO: template on floating point type 17 | struct Hit 18 | { 19 | int id; // primitive id 20 | int gid; // geometry id 21 | float u,v; // barycentric coordinates 22 | float t; // distance = direction*t to intersection 23 | }; 24 | } 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/IO: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_IO 9 | #define IGL_IO 10 | // Input and output functions 11 | #include "read_triangle_mesh.h" 12 | #include "readDMAT.h" 13 | #include "readMESH.h" 14 | #include "readNODE.h" 15 | #include "readOBJ.h" 16 | #include "readOFF.h" 17 | #include "readTGF.h" 18 | #include "readWRL.h" 19 | #include "readCSV.h" 20 | #include "file_contents_as_string.h" 21 | #include "write_triangle_mesh.h" 22 | #include "writeDMAT.h" 23 | #include "writeMESH.h" 24 | #include "writeOBJ.h" 25 | #include "writeOFF.h" 26 | #include "writeTGF.h" 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/MappingEnergyType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2018 Zhongshi Jiang 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MAPPINGENERGYTYPE_H 9 | #define IGL_MAPPINGENERGYTYPE_H 10 | namespace igl 11 | { 12 | // Energy Types used for Parameterization/Mapping. 13 | // Refer to SLIM [Rabinovich et al. 2017] for more details 14 | // Todo: Integrate with ARAPEnergyType 15 | 16 | enum MappingEnergyType 17 | { 18 | ARAP, 19 | LOG_ARAP, 20 | SYMMETRIC_DIRICHLET, 21 | CONFORMAL, 22 | EXP_CONFORMAL, 23 | EXP_SYMMETRIC_DIRICHLET 24 | }; 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/MeshBooleanType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MESH_BOOLEAN_TYPE_H 9 | #define IGL_MESH_BOOLEAN_TYPE_H 10 | namespace igl 11 | { 12 | enum MeshBooleanType 13 | { 14 | MESH_BOOLEAN_TYPE_UNION = 0, 15 | MESH_BOOLEAN_TYPE_INTERSECT = 1, 16 | MESH_BOOLEAN_TYPE_MINUS = 2, 17 | MESH_BOOLEAN_TYPE_XOR = 3, 18 | MESH_BOOLEAN_TYPE_RESOLVE = 4, 19 | NUM_MESH_BOOLEAN_TYPES = 5 20 | }; 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/NormalType.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_NORMALTYPE_H 9 | #define IGL_NORMALTYPE_H 10 | 11 | namespace igl 12 | { 13 | // PER_VERTEX_NORMALS Normals computed per vertex based on incident faces 14 | // PER_FACE_NORMALS Normals computed per face 15 | // PER_CORNER_NORMALS Normals computed per corner (aka wedge) based on 16 | // incident faces without sharp edge 17 | enum NormalType 18 | { 19 | PER_VERTEX_NORMALS, 20 | PER_FACE_NORMALS, 21 | PER_CORNER_NORMALS 22 | }; 23 | # define NUM_NORMAL_TYPE 3 24 | } 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ONE.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ONE_H 9 | #define IGL_ONE_H 10 | namespace igl 11 | { 12 | // Often one needs a reference to a dummy variable containing one as its 13 | // value, for example when using AntTweakBar's 14 | // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ONE); 15 | const char CHAR_ONE = 1; 16 | const int INT_ONE = 1; 17 | const unsigned int UNSIGNED_INT_ONE = 1; 18 | const double DOUBLE_ONE = 1; 19 | const float FLOAT_ONE = 1; 20 | } 21 | #endif 22 | 23 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/PI.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_PI_H 9 | #define IGL_PI_H 10 | namespace igl 11 | { 12 | // Use standard mathematical constants' M_PI if available 13 | #ifdef M_PI 14 | const double PI = M_PI; 15 | #else 16 | const double PI = 3.1415926535897932384626433832795; 17 | #endif 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/STR.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_STR_H 9 | #define IGL_STR_H 10 | // http://stackoverflow.com/a/2433143/148668 11 | #include 12 | #include 13 | // Suppose you have a function: 14 | // void func(std::string c); 15 | // Then you can write: 16 | // func(STR("foo"<<1<<"bar")); 17 | #define STR(X) static_cast(std::ostringstream().flush() << X).str() 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/SolverStatus.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_SOLVER_STATUS_H 9 | #define IGL_SOLVER_STATUS_H 10 | namespace igl 11 | { 12 | enum SolverStatus 13 | { 14 | // Good 15 | SOLVER_STATUS_CONVERGED = 0, 16 | // OK 17 | SOLVER_STATUS_MAX_ITER = 1, 18 | // Bad 19 | SOLVER_STATUS_ERROR = 2, 20 | NUM_SOLVER_STATUSES = 3, 21 | }; 22 | }; 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/WindingNumberMethod.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_WINDINGNUMBERMETHOD_H 9 | #define IGL_WINDINGNUMBERMETHOD_H 10 | namespace igl 11 | { 12 | // EXACT_WINDING_NUMBER_METHOD exact hierarchical evaluation 13 | // APPROX_SIMPLE_WINDING_NUMBER_METHOD poor approximation 14 | // APPROX_CACHE_WINDING_NUMBER_METHOD another poor approximation 15 | enum WindingNumberMethod 16 | { 17 | EXACT_WINDING_NUMBER_METHOD = 0, 18 | APPROX_SIMPLE_WINDING_NUMBER_METHOD = 1, 19 | APPROX_CACHE_WINDING_NUMBER_METHOD = 2, 20 | NUM_WINDING_NUMBER_METHODS = 3 21 | }; 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ZERO.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ZERO_H 9 | #define IGL_ZERO_H 10 | namespace igl 11 | { 12 | // Often one needs a reference to a dummy variable containing zero as its 13 | // value, for example when using AntTweakBar's 14 | // TwSetParam( "3D View", "opened", TW_PARAM_INT32, 1, &INT_ZERO); 15 | const char CHAR_ZERO = 0; 16 | const int INT_ZERO = 0; 17 | const unsigned int UNSIGNED_INT_ZERO = 0; 18 | const double DOUBLE_ZERO = 0; 19 | const float FLOAT_ZERO = 0; 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/all.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "all.h" 9 | #include "redux.h" 10 | 11 | 12 | template 13 | IGL_INLINE void igl::all( 14 | const Eigen::SparseMatrix & A, 15 | const int dim, 16 | Eigen::PlainObjectBase& B) 17 | { 18 | typedef typename DerivedB::Scalar Scalar; 19 | igl::redux(A,dim,[](Scalar a, Scalar b){ return a && b!=0;},B); 20 | } 21 | 22 | #ifdef IGL_STATIC_LIBRARY 23 | // Explicit template instantiation 24 | #endif 25 | 26 | 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/angular_distance.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "angular_distance.h" 9 | #include 10 | #include 11 | IGL_INLINE double igl::angular_distance( 12 | const Eigen::Quaterniond & A, 13 | const Eigen::Quaterniond & B) 14 | { 15 | assert(fabs(A.norm()-1) 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "any_of.h" 9 | #include 10 | template 11 | IGL_INLINE bool igl::any_of(const Mat & S) 12 | { 13 | return std::any_of(S.data(),S.data()+S.size(),[](bool s){return s;}); 14 | } 15 | 16 | #ifdef IGL_STATIC_LIBRARY 17 | // Explicit template instantiation 18 | template bool igl::any_of >(Eigen::Matrix const&); 19 | #endif 20 | 21 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/any_of.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ANY_OF_H 9 | #define IGL_ANY_OF_H 10 | #include "igl_inline.h" 11 | namespace igl 12 | { 13 | // Wrapper for STL `any_of` for matrix types 14 | // 15 | // Inputs: 16 | // S matrix 17 | // Returns whether any entries are true 18 | // 19 | // Seems that Eigen (now) implements this for `Eigen::Array` 20 | template 21 | IGL_INLINE bool any_of(const Mat & S); 22 | } 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "any_of.cpp" 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/average_onto_faces.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "average_onto_faces.h" 9 | 10 | template 11 | IGL_INLINE void average_onto_faces( 12 | const Eigen::MatrixBase & F, 13 | const Eigen::MatrixBase & S, 14 | Eigen::PlainObjectBase & SF) 15 | { 16 | SF.setConstant(F.rows(),S.cols(),0); 17 | for (int i = 0; i 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_BASENAME_H 9 | #define IGL_BASENAME_H 10 | #include "igl_inline.h" 11 | 12 | #include 13 | 14 | namespace igl 15 | { 16 | // Function like PHP's basename: /etc/sudoers.d --> sudoers.d 17 | // Input: 18 | // path string containing input path 19 | // Returns string containing basename (see php's basename) 20 | // 21 | // See also: dirname, pathinfo 22 | IGL_INLINE std::string basename(const std::string & path); 23 | } 24 | 25 | #ifndef IGL_STATIC_LIBRARY 26 | # include "basename.cpp" 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/bounding_box_diagonal.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "bounding_box_diagonal.h" 9 | #include "mat_max.h" 10 | #include "mat_min.h" 11 | #include 12 | 13 | IGL_INLINE double igl::bounding_box_diagonal( 14 | const Eigen::MatrixXd & V) 15 | { 16 | using namespace Eigen; 17 | VectorXd maxV,minV; 18 | VectorXi maxVI,minVI; 19 | mat_max(V,1,maxV,maxVI); 20 | mat_min(V,1,minV,minVI); 21 | return sqrt((maxV-minV).array().square().sum()); 22 | } 23 | 24 | #ifdef IGL_STATIC_LIBRARY 25 | // Explicit template instantiation 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/canonical_quaternions.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "canonical_quaternions.h" 9 | 10 | template <> IGL_INLINE float igl::CANONICAL_VIEW_QUAT(int i, int j) 11 | { 12 | return (float)igl::CANONICAL_VIEW_QUAT_F[i][j]; 13 | } 14 | template <> IGL_INLINE double igl::CANONICAL_VIEW_QUAT(int i, int j) 15 | { 16 | return (double)igl::CANONICAL_VIEW_QUAT_D[i][j]; 17 | } 18 | 19 | #ifdef IGL_STATIC_LIBRARY 20 | // Explicit template instantiation 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ceil.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_CEIL_H 9 | #define IGL_CEIL_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Ceil a given matrix to nearest integers 15 | // 16 | // Inputs: 17 | // X m by n matrix of scalars 18 | // Outputs: 19 | // Y m by n matrix of ceiled integers 20 | template < typename DerivedX, typename DerivedY> 21 | IGL_INLINE void ceil( 22 | const Eigen::PlainObjectBase& X, 23 | Eigen::PlainObjectBase& Y); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "ceil.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/column_to_quats.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "column_to_quats.h" 9 | IGL_INLINE bool igl::column_to_quats( 10 | const Eigen::VectorXd & Q, 11 | std::vector< 12 | Eigen::Quaterniond,Eigen::aligned_allocator > & vQ) 13 | { 14 | using namespace Eigen; 15 | if(Q.size() % 4 != 0) 16 | { 17 | return false; 18 | } 19 | const int nQ = Q.size()/4; 20 | vQ.resize(nQ); 21 | for(int q=0;q 4 | // Qingan Zhou 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla Public License 7 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 8 | // obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #include "lexicographic_triangulation.h" 11 | #include "../../lexicographic_triangulation.h" 12 | #include "orient2D.h" 13 | 14 | template< 15 | typename DerivedP, 16 | typename DerivedF 17 | > 18 | IGL_INLINE void igl::copyleft::cgal::lexicographic_triangulation( 19 | const Eigen::PlainObjectBase& P, 20 | Eigen::PlainObjectBase& F) 21 | { 22 | typedef typename DerivedP::Scalar Scalar; 23 | igl::lexicographic_triangulation(P, orient2D, F); 24 | } 25 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/peel_winding_number_layers.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_COPYLEFT_CGAL_PEEL_WINDING_NUMBER_LAYERS_H 2 | #define IGL_COPYLEFT_CGAL_PEEL_WINDING_NUMBER_LAYERS_H 3 | #include "../../igl_inline.h" 4 | #include 5 | 6 | namespace igl { 7 | namespace copyleft { 8 | namespace cgal { 9 | template< 10 | typename DerivedV, 11 | typename DerivedF, 12 | typename DerivedW > 13 | IGL_INLINE size_t peel_winding_number_layers( 14 | const Eigen::PlainObjectBase & V, 15 | const Eigen::PlainObjectBase & F, 16 | Eigen::PlainObjectBase& W); 17 | } 18 | } 19 | } 20 | 21 | #ifndef IGL_STATIC_LIBRARY 22 | # include "peel_winding_number_layers.cpp" 23 | #endif 24 | #endif 25 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/read_triangle_mesh.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #include "read_triangle_mesh.h" 10 | #include "assign.h" 11 | #include "../../read_triangle_mesh.h" 12 | 13 | template 14 | IGL_INLINE bool igl::copyleft::cgal::read_triangle_mesh( 15 | const std::string str, 16 | Eigen::PlainObjectBase& V, 17 | Eigen::PlainObjectBase& F) 18 | { 19 | Eigen::MatrixXd Vd; 20 | bool ret = igl::read_triangle_mesh(str,Vd,F); 21 | if(ret) 22 | { 23 | assign(Vd,V); 24 | } 25 | return ret; 26 | } 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/row_to_point.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "row_to_point.h" 9 | 10 | template < 11 | typename Kernel, 12 | typename DerivedV> 13 | IGL_INLINE CGAL::Point_2 igl::copyleft::cgal::row_to_point( 14 | const Eigen::PlainObjectBase & V, 15 | const typename DerivedV::Index & i) 16 | { 17 | return CGAL::Point_2(V(i,0),V(i,1)); 18 | } 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/slice.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "../../slice.h" 9 | #ifdef IGL_STATIC_LIBRARY 10 | #undef IGL_STATIC_LIBRARY 11 | #include "../../slice.cpp" 12 | #endif 13 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/cgal/unique.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "../../unique.h" 9 | #include 10 | #include 11 | #ifdef IGL_STATIC_LIBRARY 12 | #undef IGL_STATIC_LIBRARY 13 | #include "../../unique.cpp" 14 | #endif 15 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/copyleft/tetgen/README: -------------------------------------------------------------------------------- 1 | IGL interface to tetgen library 2 | 3 | Dependencies: 4 | tetgen 5 | 6 | Travel to $IGL/external/tetgen and issue: 7 | make -f Makefile.igl tetlib 8 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/dot.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "dot.h" 9 | 10 | // http://www.antisphere.com/Wiki/tools:anttweakbar 11 | IGL_INLINE double igl::dot( 12 | const double *a, 13 | const double *b) 14 | { 15 | return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; 16 | } 17 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/dot.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_DOT_H 9 | #define IGL_DOT_H 10 | #include "igl_inline.h" 11 | namespace igl 12 | { 13 | // Computes out = dot(a,b) 14 | // Inputs: 15 | // a left 3d vector 16 | // b right 3d vector 17 | // Returns scalar dot product 18 | IGL_INLINE double dot( 19 | const double *a, 20 | const double *b); 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "dot.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/ears.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_EARS_H 2 | #define IGL_EARS_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // FIND_EARS Find all ears (faces with two boundary edges) in a given mesh 8 | // 9 | // [ears,ear_opp] = find_ears(F) 10 | // 11 | // Inputs: 12 | // F #F by 3 list of triangle mesh indices 13 | // Outputs: 14 | // ears #ears list of indices into F of ears 15 | // ear_opp #ears list of indices indicating which edge is non-boundary 16 | // (connecting to flops) 17 | // 18 | template < 19 | typename DerivedF, 20 | typename Derivedear, 21 | typename Derivedear_opp> 22 | IGL_INLINE void ears( 23 | const Eigen::MatrixBase & F, 24 | Eigen::PlainObjectBase & ear, 25 | Eigen::PlainObjectBase & ear_opp); 26 | } 27 | #ifndef IGL_STATIC_LIBRARY 28 | # include "ears.cpp" 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/example_fun.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "example_fun.h" 9 | #include 10 | 11 | template 12 | IGL_INLINE bool igl::example_fun(const Printable & input) 13 | { 14 | using namespace std; 15 | cout<<"example_fun: "<(const double& input); 22 | template bool igl::example_fun(const int& input); 23 | #endif 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/file_exists.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "file_exists.h" 9 | 10 | #include 11 | 12 | IGL_INLINE bool igl::file_exists(const std::string filename) 13 | { 14 | struct stat status; 15 | return (stat(filename.c_str(),&status)==0); 16 | } 17 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/find_zero.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_FIND_ZERO_H 2 | #define IGL_FIND_ZERO_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Find the first zero (whether implicit or explicitly stored) in the 9 | // rows/columns of a matrix. 10 | // Inputs: 11 | // A m by n sparse matrix 12 | // dim dimension along which to check for any (1 or 2) 13 | // Output: 14 | // I n-long vector (if dim == 1) {m means no zeros found} 15 | // or 16 | // I m-long vector (if dim == 2) {n means no zeros found} 17 | // 18 | template 19 | IGL_INLINE void find_zero( 20 | const Eigen::SparseMatrix & A, 21 | const int dim, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "find_zero.cpp" 26 | #endif 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/floor.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_FLOOR_H 9 | #define IGL_FLOOR_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Floor a given matrix to nearest integers 15 | // 16 | // Inputs: 17 | // X m by n matrix of scalars 18 | // Outputs: 19 | // Y m by n matrix of floored integers 20 | template < typename DerivedX, typename DerivedY> 21 | IGL_INLINE void floor( 22 | const Eigen::PlainObjectBase& X, 23 | Eigen::PlainObjectBase& Y); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "floor.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/get_seconds.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "get_seconds.h" 9 | #include 10 | IGL_INLINE double igl::get_seconds() 11 | { 12 | return 13 | std::chrono::duration( 14 | std::chrono::system_clock::now().time_since_epoch()).count(); 15 | } 16 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/get_seconds_hires.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_GET_SECONDS_HIRES_H 9 | #define IGL_GET_SECONDS_HIRES_H 10 | #include "igl_inline.h" 11 | 12 | namespace igl 13 | { 14 | // Return the current time in seconds using performance counters 15 | IGL_INLINE double get_seconds_hires(); 16 | } 17 | 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "get_seconds_hires.cpp" 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/guess_extension.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_GUESS_EXTENSION_H 2 | #define IGL_GUESS_EXTENSION_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Given a file pointer at the beginning of a "mesh" file, try to guess the 9 | // extension of the file format it comes from. The file pointer is rewound on 10 | // return. 11 | // 12 | // Inputs: 13 | // fp file pointer (see output) 14 | // Outputs: 15 | // fp file pointer rewound 16 | // guess extension as string. One of "mesh",{"obj"},"off","ply","stl", or 17 | // "wrl" 18 | // 19 | IGL_INLINE void guess_extension(FILE * fp, std::string & guess); 20 | IGL_INLINE std::string guess_extension(FILE * fp); 21 | } 22 | #ifndef IGL_STATIC_LIBRARY 23 | # include "guess_extension.cpp" 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/igl_inline.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | // This should *NOT* be contained in a IGL_*_H ifdef, since it may be defined 9 | // differently based on when it is included 10 | #ifdef IGL_INLINE 11 | #undef IGL_INLINE 12 | #endif 13 | 14 | #ifndef IGL_STATIC_LIBRARY 15 | # define IGL_INLINE inline 16 | #else 17 | # define IGL_INLINE 18 | #endif 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_dir.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_dir.h" 9 | 10 | #include 11 | 12 | #ifndef S_ISDIR 13 | #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) 14 | #endif 15 | 16 | #ifndef S_ISREG 17 | #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) 18 | #endif 19 | 20 | IGL_INLINE bool igl::is_dir(const char * filename) 21 | { 22 | struct stat status; 23 | if(stat(filename,&status)!=0) 24 | { 25 | // path does not exist 26 | return false; 27 | } 28 | // Tests whether existing path is a directory 29 | return S_ISDIR(status.st_mode); 30 | } 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_file.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_file.h" 9 | 10 | #include 11 | #ifdef _WIN32 12 | # ifndef S_ISREG 13 | # define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) 14 | # endif 15 | #endif 16 | IGL_INLINE bool igl::is_file(const char * filename) 17 | { 18 | struct stat status; 19 | if(stat(filename,&status)!=0) 20 | { 21 | // path does not exist 22 | return false; 23 | } 24 | // Tests whether existing path is a regular file 25 | return S_ISREG(status.st_mode); 26 | } 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/is_planar.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2014 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "is_planar.h" 9 | IGL_INLINE bool igl::is_planar(const Eigen::MatrixXd & V) 10 | { 11 | if(V.size() == 0) return false; 12 | if(V.cols() == 2) return true; 13 | for(int i = 0;i 5 | namespace igl 6 | { 7 | // Given a file pointer, determine if it contains an .stl file and then 8 | // rewind it. 9 | // 10 | // Inputs: 11 | // stl_file pointer to file 12 | // Outputs: 13 | // is_ascii flag whether stl is ascii 14 | // Returns whether stl_file is an .stl file 15 | IGL_INLINE bool is_stl(FILE * stl_file, bool & is_ascii); 16 | IGL_INLINE bool is_stl(FILE * stl_file); 17 | }; 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "is_stl.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/isdiag.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_ISDIAG_H 9 | #define IGL_ISDIAG_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Determine if a given matrix is diagonal: all non-zeros lie on the 15 | // main diagonal. 16 | // 17 | // Inputs: 18 | // A m by n sparse matrix 19 | // Returns true iff and only if the matrix is diagonal. 20 | template 21 | IGL_INLINE bool isdiag(const Eigen::SparseMatrix & A); 22 | }; 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "isdiag.cpp" 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/mexErrMsgTxt.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "mexErrMsgTxt.h" 9 | 10 | IGL_INLINE void igl::matlab::mexErrMsgTxt(bool assertion, const char * text) 11 | { 12 | if(!assertion) 13 | { 14 | ::mexErrMsgTxt(text); 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/mexErrMsgTxt.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MATLAB_MEXERRMSGTXT_H 9 | #define IGL_MATLAB_MEXERRMSGTXT_H 10 | #include "../igl_inline.h" 11 | // Overload mexErrMsgTxt to check an assertion then print text only if 12 | // assertion fails 13 | #include "mex.h" 14 | namespace igl 15 | { 16 | namespace matlab 17 | { 18 | // Wrapper for mexErrMsgTxt that only calls error if test fails 19 | IGL_INLINE void mexErrMsgTxt(bool test, const char * message); 20 | } 21 | } 22 | #ifndef IGL_STATIC_LIBRARY 23 | # include "mexErrMsgTxt.cpp" 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/matlab/requires_arg.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "requires_arg.h" 9 | #include "mexErrMsgTxt.h" 10 | #include "../C_STR.h" 11 | 12 | IGL_INLINE void igl::matlab::requires_arg(const int i, const int nrhs, const char *name) 13 | { 14 | mexErrMsgTxt((i+1) 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_REQUIRES_ARG_H 9 | #define IGL_REQUIRES_ARG_H 10 | #include "../igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | namespace matlab 15 | { 16 | // Simply throw an error if (i+1) 5 | #include 6 | namespace igl 7 | { 8 | // Inputs: 9 | // X m by n matrix 10 | // dim dimension along which to take max 11 | // Outputs: 12 | // Y n-long vector (if dim == 1) 13 | // or 14 | // Y m-long vector (if dim == 2) 15 | // I vector the same size as Y containing the indices along dim of maximum 16 | // entries 17 | template 18 | IGL_INLINE void max( 19 | const Eigen::SparseMatrix & A, 20 | const int dim, 21 | Eigen::PlainObjectBase & B, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "max.cpp" 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/max_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MAX_SIZE_H 9 | #define IGL_MAX_SIZE_H 10 | #include "igl_inline.h" 11 | #include 12 | 13 | namespace igl 14 | { 15 | // Determine max size of lists in a vector 16 | // Template: 17 | // T some list type object that implements .size() 18 | // Inputs: 19 | // V vector of list types T 20 | // Returns max .size() found in V, returns -1 if V is empty 21 | template 22 | IGL_INLINE int max_size(const std::vector & V); 23 | } 24 | 25 | #ifndef IGL_STATIC_LIBRARY 26 | # include "max_size.cpp" 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/median.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MEDIAN_H 9 | #define IGL_MEDIAN_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Compute the median of an eigen vector 15 | // 16 | // Inputs: 17 | // V #V list of unsorted values 18 | // Outputs: 19 | // m median of those values 20 | // Returns true on success, false on failure 21 | template 22 | IGL_INLINE bool median( 23 | const Eigen::MatrixBase & V, mType & m); 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "median.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/min.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_MIN_H 2 | #define IGL_MIN_H 3 | #include "igl_inline.h" 4 | #include 5 | #include 6 | namespace igl 7 | { 8 | // Inputs: 9 | // X m by n matrix 10 | // dim dimension along which to take min 11 | // Outputs: 12 | // Y n-long vector (if dim == 1) 13 | // or 14 | // Y m-long vector (if dim == 2) 15 | // I vector the same size as Y containing the indices along dim of minimum 16 | // entries 17 | template 18 | IGL_INLINE void min( 19 | const Eigen::SparseMatrix & A, 20 | const int dim, 21 | Eigen::PlainObjectBase & B, 22 | Eigen::PlainObjectBase & I); 23 | } 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "min.cpp" 26 | #endif 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/min_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MIN_SIZE_H 9 | #define IGL_MIN_SIZE_H 10 | #include "igl_inline.h" 11 | #include 12 | 13 | namespace igl 14 | { 15 | // Determine min size of lists in a vector 16 | // Template: 17 | // T some list type object that implements .size() 18 | // Inputs: 19 | // V vector of list types T 20 | // Returns min .size() found in V, returns -1 if V is empty 21 | template 22 | IGL_INLINE int min_size(const std::vector & V); 23 | } 24 | 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "min_size.cpp" 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/mosek/mosek_guarded.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "mosek_guarded.h" 9 | #include 10 | 11 | IGL_INLINE MSKrescodee igl::mosek::mosek_guarded(const MSKrescodee r) 12 | { 13 | using namespace std; 14 | if(r != MSK_RES_OK) 15 | { 16 | /* In case of an error print error code and description. */ 17 | char symname[MSK_MAX_STR_LEN]; 18 | char desc[MSK_MAX_STR_LEN]; 19 | MSK_getcodedesc(r,symname,desc); 20 | cerr<<"MOSEK ERROR ("< 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_MOSEK_MOSEK_GUARDED_H 9 | #define IGL_MOSEK_MOSEK_GUARDED_H 10 | #include "../igl_inline.h" 11 | 12 | #include "mosek.h" 13 | namespace igl 14 | { 15 | namespace mosek 16 | { 17 | // Little function to wrap around mosek call to handle errors 18 | // 19 | // Inputs: 20 | // r mosek error code returned from mosek call 21 | // Returns r untouched 22 | IGL_INLINE MSKrescodee mosek_guarded(const MSKrescodee r); 23 | } 24 | } 25 | 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "mosek_guarded.cpp" 28 | #endif 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/null.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "null.h" 9 | #include "EPS.h" 10 | 11 | template 12 | IGL_INLINE void igl::null( 13 | const Eigen::PlainObjectBase & A, 14 | Eigen::PlainObjectBase & N) 15 | { 16 | using namespace Eigen; 17 | typedef typename DerivedA::Scalar Scalar; 18 | JacobiSVD svd(A, ComputeFullV); 19 | svd.setThreshold(A.cols() * svd.singularValues().maxCoeff() * EPS()); 20 | N = svd.matrixV().rightCols(A.cols()-svd.rank()); 21 | } 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/bind_vertex_attrib_array.cpp: -------------------------------------------------------------------------------- 1 | #include "bind_vertex_attrib_array.h" 2 | 3 | IGL_INLINE GLint igl::opengl::bind_vertex_attrib_array( 4 | const GLuint program_shader, 5 | const std::string &name, 6 | GLuint bufferID, 7 | const Eigen::Matrix &M, 8 | bool refresh) 9 | { 10 | GLint id = glGetAttribLocation(program_shader, name.c_str()); 11 | if (id < 0) 12 | return id; 13 | if (M.size() == 0) 14 | { 15 | glDisableVertexAttribArray(id); 16 | return id; 17 | } 18 | glBindBuffer(GL_ARRAY_BUFFER, bufferID); 19 | if (refresh) 20 | glBufferData(GL_ARRAY_BUFFER, sizeof(float)*M.size(), M.data(), GL_DYNAMIC_DRAW); 21 | glVertexAttribPointer(id, M.cols(), GL_FLOAT, GL_FALSE, 0, 0); 22 | glEnableVertexAttribArray(id); 23 | return id; 24 | } 25 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013, 2017 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_GL_H 9 | #define IGL_OPENGL_GL_H 10 | 11 | #ifdef IGL_OPENGL2_GL_H 12 | # error "igl/opengl2/gl.h already included" 13 | #endif 14 | 15 | // Always use this: 16 | // #include "gl.h" 17 | // Instead of: 18 | // #include 19 | // or 20 | // #include 21 | // 22 | 23 | #include 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl_type_size.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "gl_type_size.h" 9 | #include 10 | 11 | IGL_INLINE int igl::opengl::gl_type_size(const GLenum type) 12 | { 13 | switch(type) 14 | { 15 | case GL_DOUBLE: 16 | return 8; 17 | break; 18 | case GL_FLOAT: 19 | return 4; 20 | break; 21 | case GL_INT: 22 | return 4; 23 | break; 24 | default: 25 | // should handle all other GL_[types] 26 | assert(false && "Implementation incomplete."); 27 | break; 28 | } 29 | return -1; 30 | } 31 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/gl_type_size.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_GL_TYPE_SIZE_H 9 | #define IGL_OPENGL_GL_TYPE_SIZE_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Return the number of bytes for a given OpenGL type // Inputs: 18 | // type enum value of opengl type 19 | // Returns size in bytes of type 20 | IGL_INLINE int gl_type_size(const GLenum type); 21 | } 22 | } 23 | 24 | #ifndef IGL_STATIC_LIBRARY 25 | # include "gl_type_size.cpp" 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/glfw/background_window.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_OPENGL_GLFW_BACKGROUND_WINDOW_H 2 | #define IGL_OPENGL_GLFW_BACKGROUND_WINDOW_H 3 | #include "../../igl_inline.h" 4 | 5 | #include "../gl.h" 6 | #include 7 | 8 | namespace igl 9 | { 10 | namespace opengl 11 | { 12 | namespace glfw 13 | { 14 | // Create a background window with a valid core profile opengl context 15 | // set to current. 16 | // 17 | // After you're finished with this window you may call 18 | // `glfwDestroyWindow(window)` 19 | // 20 | // After you're finished with glfw you should call `glfwTerminate()` 21 | // 22 | // Outputs: 23 | // window pointer to glfw window 24 | // Returns true iff success 25 | IGL_INLINE bool background_window(GLFWwindow* & window); 26 | } 27 | } 28 | } 29 | 30 | #ifndef IGL_STATIC_LIBRARY 31 | # include "background_window.cpp" 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/print_program_info_log.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_PRINT_PROGRAM_INFO_LOG_H 9 | #define IGL_OPENGL_PRINT_PROGRAM_INFO_LOG_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Inputs: 18 | // obj OpenGL index of program to print info log about 19 | IGL_INLINE void print_program_info_log(const GLuint obj); 20 | } 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "print_program_info_log.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/opengl/print_shader_info_log.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_OPENGL_PRINT_SHADER_INFO_LOG_H 9 | #define IGL_OPENGL_PRINT_SHADER_INFO_LOG_H 10 | #include "../igl_inline.h" 11 | #include "gl.h" 12 | 13 | namespace igl 14 | { 15 | namespace opengl 16 | { 17 | // Inputs: 18 | // obj OpenGL index of shader to print info log about 19 | IGL_INLINE void print_shader_info_log(const GLuint obj); 20 | } 21 | } 22 | 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "print_shader_info_log.cpp" 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/path_to_executable.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_PATH_TO_EXECUTABLE_H 9 | #define IGL_PATH_TO_EXECUTABLE_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Return the path of the current executable. 15 | // Note: Tested for Mac OS X 16 | IGL_INLINE std::string path_to_executable(); 17 | } 18 | #ifndef IGL_STATIC_LIBRARY 19 | # include "path_to_executable.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/pinv.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_PINV_H 2 | #define IGL_PINV_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the Moore-Penrose pseudoinverse 8 | // 9 | // Inputs: 10 | // A m by n matrix 11 | // tol tolerance (if negative then default is used) 12 | // Outputs: 13 | // X n by m matrix so that A*X*A = A and X*A*X = X and A*X = (A*X)' and 14 | // (X*A) = (X*A)' 15 | template 16 | void pinv( 17 | const Eigen::MatrixBase & A, 18 | typename DerivedA::Scalar tol, 19 | Eigen::PlainObjectBase & X); 20 | // Wrapper using default tol 21 | template 22 | void pinv( 23 | const Eigen::MatrixBase & A, 24 | Eigen::PlainObjectBase & X); 25 | } 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "pinv.cpp" 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/point_in_circle.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "point_in_circle.h" 9 | 10 | IGL_INLINE bool igl::point_in_circle( 11 | const double qx, 12 | const double qy, 13 | const double cx, 14 | const double cy, 15 | const double r) 16 | { 17 | return (qx-cx)*(qx-cx) + (qy-cy)*(qy-cy) - r*r < 0; 18 | } 19 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/quat_conjugate.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2013 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "quat_conjugate.h" 9 | 10 | template 11 | IGL_INLINE void igl::quat_conjugate( 12 | const Q_type *q1, 13 | Q_type *out) 14 | { 15 | out[0] = -q1[0]; 16 | out[1] = -q1[1]; 17 | out[2] = -q1[2]; 18 | out[3] = q1[3]; 19 | } 20 | 21 | #ifdef IGL_STATIC_LIBRARY 22 | // Explicit template instantiation 23 | // generated by autoexplicit.sh 24 | template void igl::quat_conjugate(double const*, double*); 25 | // generated by autoexplicit.sh 26 | template void igl::quat_conjugate(float const*, float*); 27 | #endif 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/random_quaternion.h: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2015 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #ifndef IGL_RANDOM_QUATERNION_H 9 | #define IGL_RANDOM_QUATERNION_H 10 | #include "igl_inline.h" 11 | #include 12 | namespace igl 13 | { 14 | // Return a random quaternion via uniform sampling of the 4-sphere 15 | template 16 | IGL_INLINE Eigen::Quaternion random_quaternion(); 17 | } 18 | #ifndef IGL_STATIC_LIBRARY 19 | #include "random_quaternion.cpp" 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/shortest_edge_and_midpoint.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of libigl, a simple c++ geometry processing library. 2 | // 3 | // Copyright (C) 2016 Alec Jacobson 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public License 6 | // v. 2.0. If a copy of the MPL was not distributed with this file, You can 7 | // obtain one at http://mozilla.org/MPL/2.0/. 8 | #include "shortest_edge_and_midpoint.h" 9 | 10 | IGL_INLINE void igl::shortest_edge_and_midpoint( 11 | const int e, 12 | const Eigen::MatrixXd & V, 13 | const Eigen::MatrixXi & /*F*/, 14 | const Eigen::MatrixXi & E, 15 | const Eigen::VectorXi & /*EMAP*/, 16 | const Eigen::MatrixXi & /*EF*/, 17 | const Eigen::MatrixXi & /*EI*/, 18 | double & cost, 19 | Eigen::RowVectorXd & p) 20 | { 21 | cost = (V.row(E(e,0))-V.row(E(e,1))).norm(); 22 | p = 0.5*(V.row(E(e,0))+V.row(E(e,1))); 23 | } 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/signed_angle.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_SIGNED_ANGLE_H 2 | #define IGL_SIGNED_ANGLE_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the signed angle subtended by the oriented 3d triangle (A,B,C) at some point P 8 | // 9 | // Inputs: 10 | // A 2D position of corner 11 | // B 2D position of corner 12 | // P 2D position of query point 13 | // returns signed angle 14 | template < 15 | typename DerivedA, 16 | typename DerivedB, 17 | typename DerivedP> 18 | IGL_INLINE typename DerivedA::Scalar signed_angle( 19 | const Eigen::MatrixBase & A, 20 | const Eigen::MatrixBase & B, 21 | const Eigen::MatrixBase & P); 22 | } 23 | #ifndef IGL_STATIC_LIBRARY 24 | # include "signed_angle.cpp" 25 | #endif 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Plugins/MeshProcessingPlugin/ThirdParty/libigl/include/igl/solid_angle.h: -------------------------------------------------------------------------------- 1 | #ifndef IGL_SOLID_ANGLE_H 2 | #define IGL_SOLID_ANGLE_H 3 | #include "igl_inline.h" 4 | #include 5 | namespace igl 6 | { 7 | // Compute the signed solid angle subtended by the oriented 3d triangle (A,B,C) at some point P 8 | // 9 | // Inputs: 10 | // A 3D position of corner 11 | // B 3D position of corner 12 | // C 3D position of corner 13 | // P 3D position of query point 14 | // Returns signed solid angle 15 | template < 16 | typename DerivedA, 17 | typename DerivedB, 18 | typename DerivedC, 19 | typename DerivedP> 20 | IGL_INLINE typename DerivedA::Scalar solid_angle( 21 | const Eigen::MatrixBase & A, 22 | const Eigen::MatrixBase & B, 23 | const Eigen::MatrixBase & C, 24 | const Eigen::MatrixBase & P); 25 | } 26 | #ifndef IGL_STATIC_LIBRARY 27 | # include "solid_angle.cpp" 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class IGLDemoTarget : TargetRules 7 | { 8 | public IGLDemoTarget( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | 12 | ExtraModuleNames.AddRange( new string[] { "IGLDemo" } ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class IGLDemo : ModuleRules 6 | { 7 | public IGLDemo(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); 12 | 13 | PrivateDependencyModuleNames.AddRange(new string[] { }); 14 | 15 | // Uncomment if you are using Slate UI 16 | // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); 17 | 18 | // Uncomment if you are using online features 19 | // PrivateDependencyModuleNames.Add("OnlineSubsystem"); 20 | 21 | // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "IGLDemo.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, IGLDemo, "IGLDemo" ); 7 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo/IGLDemo.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo/IGLDemoGameModeBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | 4 | #include "IGLDemoGameModeBase.h" 5 | 6 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemo/IGLDemoGameModeBase.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameModeBase.h" 7 | #include "IGLDemoGameModeBase.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class IGLDEMO_API AIGLDemoGameModeBase : public AGameModeBase 14 | { 15 | GENERATED_BODY() 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /UE4.26/IGLMeshProcessingProject/Source/IGLDemoEditor.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class IGLDemoEditorTarget : TargetRules 7 | { 8 | public IGLDemoEditorTarget( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | 12 | DefaultBuildSettings = BuildSettingsVersion.V2; 13 | 14 | ExtraModuleNames.AddRange( new string[] { "IGLDemo" } ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Config/DefaultEditor.ini: -------------------------------------------------------------------------------- 1 | [UnrealEd.SimpleMap] 2 | SimpleMapName=/Game/ThirdPersonCPP/Maps/ThirdPersonExampleMap 3 | 4 | [EditoronlyBP] 5 | bAllowClassAndBlueprintPinMatching=true 6 | bReplaceBlueprintWithClass= true 7 | bDontLoadBlueprintOutsideEditor= true 8 | bBlueprintIsNotBlueprintType= true 9 | 10 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Config/DefaultEditorPerProjectUserSettings.ini: -------------------------------------------------------------------------------- 1 | [ContentBrowser] 2 | ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonCPP -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/AA_RuntimeGeometryTest.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/AA_RuntimeGeometryTest.umap -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_ApplyBooleanButton.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_ApplyBooleanButton.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_ApplySimplifyButton.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_ApplySimplifyButton.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_ApplySolidifyButton.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_ApplySolidifyButton.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_MagnaSphere.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_MagnaSphere.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_Projectile.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_Projectile.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_RotatoSphere.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_RotatoSphere.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_ShootableBlock_PMC.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_ShootableBlock_PMC.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/BP_ShootableBlock_SDMC.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/BP_ShootableBlock_SDMC.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonIdle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonIdle.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_End.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_End.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_Loop.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_Loop.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_Start.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonJump_Start.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonRun.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonRun.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonWalk.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPersonWalk.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_AnimBP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_AnimBP.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_IdleRun_2D.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_IdleRun_2D.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_Jump.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Animations/ThirdPerson_Jump.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/M_UE4Man_Body.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/M_UE4Man_Body.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/M_UE4Man_ChestLogo.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/M_UE4Man_ChestLogo.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/SK_Mannequin.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/SK_Mannequin.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/SK_Mannequin_PhysicsAsset.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/SK_Mannequin_PhysicsAsset.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/UE4_Mannequin_Skeleton.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Mesh/UE4_Mannequin_Skeleton.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4Man_Logo_N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4Man_Logo_N.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_LOGO_CARD.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_LOGO_CARD.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_Mannequin__normals.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Mannequin/Character/Textures/UE4_Mannequin__normals.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_BlueMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_BlueMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_FloorMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_FloorMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_GreenMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_GreenMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_RedMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_RedMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_Translucent.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_Translucent.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/Materials/M_VertexColorMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/Materials/M_VertexColorMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/SM_Box.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/SM_Box.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/SM_ButtonBox.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/SM_ButtonBox.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/SM_Floor.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/SM_Floor.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/SM_SmallSphere.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/SM_SmallSphere.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Content/ThirdPersonCPP/Blueprints/ThirdPersonCharacter.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Content/ThirdPersonCPP/Blueprints/ThirdPersonCharacter.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Content/BlueMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Content/BlueMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Content/RedMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Content/RedMaterial.uasset -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gradientspace/UnrealMeshProcessingTools/4758e46b2592938fae4012abe096417440e85f47/UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Resources/Icon128.png -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/RuntimeGeometryUtils.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "1.0", 5 | "FriendlyName": "RuntimeGeometryUtils", 6 | "Description": "", 7 | "Category": "Other", 8 | "CreatedBy": "Ryan Schmidt", 9 | "CreatedByURL": "", 10 | "DocsURL": "", 11 | "MarketplaceURL": "", 12 | "SupportURL": "", 13 | "CanContainContent": true, 14 | "IsBetaVersion": false, 15 | "IsExperimentalVersion": false, 16 | "Installed": false, 17 | "Modules": [ 18 | { 19 | "Name": "RuntimeGeometryUtils", 20 | "Type": "Runtime", 21 | "LoadingPhase": "Default" 22 | } 23 | ], 24 | "Plugins": [ 25 | { 26 | "Name": "GeometryProcessing", 27 | "Enabled": true 28 | }, 29 | { 30 | "Name": "MeshModelingToolset", 31 | "Enabled": true 32 | }, 33 | { 34 | "Name": "ProceduralMeshComponent", 35 | "Enabled": true 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Source/RuntimeGeometryUtils/Private/RuntimeGeometryUtilsModule.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "RuntimeGeometryUtilsModule.h" 4 | 5 | #define LOCTEXT_NAMESPACE "FRuntimeGeometryUtilsModule" 6 | 7 | void FRuntimeGeometryUtilsModule::StartupModule() 8 | { 9 | // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module 10 | } 11 | 12 | void FRuntimeGeometryUtilsModule::ShutdownModule() 13 | { 14 | // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, 15 | // we call this function before unloading the module. 16 | } 17 | 18 | #undef LOCTEXT_NAMESPACE 19 | 20 | IMPLEMENT_MODULE(FRuntimeGeometryUtilsModule, RuntimeGeometryUtils) -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Source/RuntimeGeometryUtils/Private/tinyobj/tiny_obj_loader.cpp: -------------------------------------------------------------------------------- 1 | #define TINYOBJLOADER_IMPLEMENTATION 2 | #include "tiny_obj_loader.h" 3 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Source/RuntimeGeometryUtils/Public/DynamicMeshOBJReader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CoreMinimal.h" 4 | #include "DynamicMesh3.h" 5 | 6 | namespace RTGUtils 7 | { 8 | /** 9 | * Read mesh in OBJ format from the given path into a FDynamicMesh3. 10 | * @param bNormals should normals be imported into primary normal attribute overlay 11 | * @param bTexCoords should texture coordinates be imported into primary UV attribute overlay 12 | * @param bVertexColors should normals be imported into per-vertex colors 13 | * @param bReverseOrientation if true, mesh orientation/normals are flipped. You probably want this for importing to UE4 from other apps. 14 | * @param return false if read failed 15 | */ 16 | RUNTIMEGEOMETRYUTILS_API bool ReadOBJMesh( 17 | const FString& Path, 18 | FDynamicMesh3& MeshOut, 19 | bool bNormals, 20 | bool bTexCoords, 21 | bool bVertexColors, 22 | bool bReverseOrientation); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Plugins/RuntimeGeometryUtils/Source/RuntimeGeometryUtils/Public/RuntimeGeometryUtilsModule.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Modules/ModuleManager.h" 7 | 8 | class FRuntimeGeometryUtilsModule : public IModuleInterface 9 | { 10 | public: 11 | 12 | /** IModuleInterface implementation */ 13 | virtual void StartupModule() override; 14 | virtual void ShutdownModule() override; 15 | }; 16 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/RuntimeGeometryDemo.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "4.26", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "RuntimeGeometryDemo", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default", 11 | "AdditionalDependencies": [ 12 | "Engine" 13 | ] 14 | } 15 | ], 16 | "Plugins": [ 17 | { 18 | "Name": "ModelingToolsEditorMode", 19 | "Enabled": true 20 | }, 21 | { 22 | "Name": "MeshModelingToolset", 23 | "Enabled": true 24 | }, 25 | { 26 | "Name": "RuntimeGeometryUtils", 27 | "Enabled": true 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class RuntimeGeometryDemoTarget : TargetRules 7 | { 8 | public RuntimeGeometryDemoTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | DefaultBuildSettings = BuildSettingsVersion.V2; 12 | ExtraModuleNames.Add("RuntimeGeometryDemo"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo/RuntimeGeometryDemo.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class RuntimeGeometryDemo : ModuleRules 6 | { 7 | public RuntimeGeometryDemo(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicDependencyModuleNames.AddRange( 12 | new string[] { 13 | "Core", 14 | "CoreUObject", 15 | "Engine", 16 | "InputCore", 17 | "HeadMountedDisplay", 18 | "ProceduralMeshComponent", 19 | "GeometricObjects", 20 | "DynamicMesh", 21 | "RuntimeGeometryUtils", 22 | "ModelingComponents" 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo/RuntimeGeometryDemo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "RuntimeGeometryDemo.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, RuntimeGeometryDemo, "RuntimeGeometryDemo" ); 7 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo/RuntimeGeometryDemo.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo/RuntimeGeometryDemoGameMode.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "RuntimeGeometryDemoGameMode.h" 4 | #include "RuntimeGeometryDemoCharacter.h" 5 | #include "UObject/ConstructorHelpers.h" 6 | 7 | ARuntimeGeometryDemoGameMode::ARuntimeGeometryDemoGameMode() 8 | { 9 | // set default pawn class to our Blueprinted character 10 | static ConstructorHelpers::FClassFinder PlayerPawnBPClass(TEXT("/Game/ThirdPersonCPP/Blueprints/ThirdPersonCharacter")); 11 | if (PlayerPawnBPClass.Class != NULL) 12 | { 13 | DefaultPawnClass = PlayerPawnBPClass.Class; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemo/RuntimeGeometryDemoGameMode.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameModeBase.h" 7 | #include "RuntimeGeometryDemoGameMode.generated.h" 8 | 9 | UCLASS(minimalapi) 10 | class ARuntimeGeometryDemoGameMode : public AGameModeBase 11 | { 12 | GENERATED_BODY() 13 | 14 | public: 15 | ARuntimeGeometryDemoGameMode(); 16 | }; 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /UE4.26/RuntimeGeometryDemo/Source/RuntimeGeometryDemoEditor.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class RuntimeGeometryDemoEditorTarget : TargetRules 7 | { 8 | public RuntimeGeometryDemoEditorTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | DefaultBuildSettings = BuildSettingsVersion.V2; 12 | ExtraModuleNames.Add("RuntimeGeometryDemo"); 13 | } 14 | } 15 | --------------------------------------------------------------------------------