├── .appveyor.yml ├── .clang-format ├── .gitignore ├── CMakeLists.txt ├── Data ├── Models │ └── bunny.obj ├── Probes │ ├── ennis.hdr │ ├── grace.hdr │ ├── pisa.hdr │ ├── uffizi.hdr │ └── wells.hdr └── Shaders │ ├── BasisVisualizer.vert │ ├── Blitter.vert │ ├── BlitterLatLongEnvmap.frag │ ├── BlitterTexture2D.frag │ ├── Common.glsl │ ├── Model.frag │ └── Model.vert ├── LICENSE ├── Notebooks └── SphericalGaussians.nb ├── README.md ├── Reports ├── Ennis │ ├── irradianceAC.png │ ├── irradianceErrorAC.png │ ├── irradianceErrorSG.png │ ├── irradianceErrorSGLS.png │ ├── irradianceErrorSGLSA.png │ ├── irradianceErrorSGNNLS.png │ ├── irradianceErrorSHL1.png │ ├── irradianceErrorSHL1G.png │ ├── irradianceErrorSHL2.png │ ├── irradianceErrorSHL2W.png │ ├── irradianceErrorSHL3.png │ ├── irradianceErrorSHL4.png │ ├── irradianceMCIS.png │ ├── irradianceSG.png │ ├── irradianceSGLS.png │ ├── irradianceSGLSA.png │ ├── irradianceSGNNLS.png │ ├── irradianceSHL1.png │ ├── irradianceSHL1G.png │ ├── irradianceSHL2.png │ ├── irradianceSHL2W.png │ ├── irradianceSHL3.png │ ├── irradianceSHL4.png │ ├── radianceAC.png │ ├── radianceMCIS.png │ ├── radianceSG.png │ ├── radianceSGLS.png │ ├── radianceSGLSA.png │ ├── radianceSGNNLS.png │ ├── radianceSHL1.png │ ├── radianceSHL1G.png │ ├── radianceSHL2.png │ ├── radianceSHL2W.png │ ├── radianceSHL3.png │ ├── radianceSHL4.png │ ├── report.html │ └── report.md ├── Grace │ ├── irradianceAC.png │ ├── irradianceErrorAC.png │ ├── irradianceErrorSG.png │ ├── irradianceErrorSGLS.png │ ├── irradianceErrorSGLSA.png │ ├── irradianceErrorSGNNLS.png │ ├── irradianceErrorSHL1.png │ ├── irradianceErrorSHL1G.png │ ├── irradianceErrorSHL2.png │ ├── irradianceErrorSHL2W.png │ ├── irradianceErrorSHL3.png │ ├── irradianceErrorSHL4.png │ ├── irradianceMCIS.png │ ├── irradianceSG.png │ ├── irradianceSGLS.png │ ├── irradianceSGLSA.png │ ├── irradianceSGNNLS.png │ ├── irradianceSHL1.png │ ├── irradianceSHL1G.png │ ├── irradianceSHL2.png │ ├── irradianceSHL2W.png │ ├── irradianceSHL3.png │ ├── irradianceSHL4.png │ ├── radianceAC.png │ ├── radianceMCIS.png │ ├── radianceSG.png │ ├── radianceSGLS.png │ ├── radianceSGLSA.png │ ├── radianceSGNNLS.png │ ├── radianceSHL1.png │ ├── radianceSHL1G.png │ ├── radianceSHL2.png │ ├── radianceSHL2W.png │ ├── radianceSHL3.png │ ├── radianceSHL4.png │ ├── report.html │ └── report.md ├── Pisa │ ├── irradianceAC.png │ ├── irradianceErrorAC.png │ ├── irradianceErrorSG.png │ ├── irradianceErrorSGLS.png │ ├── irradianceErrorSGLSA.png │ ├── irradianceErrorSGNNLS.png │ ├── irradianceErrorSHL1.png │ ├── irradianceErrorSHL1G.png │ ├── irradianceErrorSHL2.png │ ├── irradianceErrorSHL2W.png │ ├── irradianceErrorSHL3.png │ ├── irradianceErrorSHL4.png │ ├── irradianceMCIS.png │ ├── irradianceSG.png │ ├── irradianceSGLS.png │ ├── irradianceSGLSA.png │ ├── irradianceSGNNLS.png │ ├── irradianceSHL1.png │ ├── irradianceSHL1G.png │ ├── irradianceSHL2.png │ ├── irradianceSHL2W.png │ ├── irradianceSHL3.png │ ├── irradianceSHL4.png │ ├── radianceAC.png │ ├── radianceMCIS.png │ ├── radianceSG.png │ ├── radianceSGLS.png │ ├── radianceSGLSA.png │ ├── radianceSGNNLS.png │ ├── radianceSHL1.png │ ├── radianceSHL1G.png │ ├── radianceSHL2.png │ ├── radianceSHL2W.png │ ├── radianceSHL3.png │ ├── radianceSHL4.png │ ├── report.html │ └── report.md ├── Uffizi │ ├── irradianceAC.png │ ├── irradianceErrorAC.png │ ├── irradianceErrorSG.png │ ├── irradianceErrorSGLS.png │ ├── irradianceErrorSGLSA.png │ ├── irradianceErrorSGNNLS.png │ ├── irradianceErrorSHL1.png │ ├── irradianceErrorSHL1G.png │ ├── irradianceErrorSHL2.png │ ├── irradianceErrorSHL2W.png │ ├── irradianceErrorSHL3.png │ ├── irradianceErrorSHL4.png │ ├── irradianceMCIS.png │ ├── irradianceSG.png │ ├── irradianceSGLS.png │ ├── irradianceSGLSA.png │ ├── irradianceSGNNLS.png │ ├── irradianceSHL1.png │ ├── irradianceSHL1G.png │ ├── irradianceSHL2.png │ ├── irradianceSHL2W.png │ ├── irradianceSHL3.png │ ├── irradianceSHL4.png │ ├── radianceAC.png │ ├── radianceMCIS.png │ ├── radianceSG.png │ ├── radianceSGLS.png │ ├── radianceSGLSA.png │ ├── radianceSGNNLS.png │ ├── radianceSHL1.png │ ├── radianceSHL1G.png │ ├── radianceSHL2.png │ ├── radianceSHL2W.png │ ├── radianceSHL3.png │ ├── radianceSHL4.png │ ├── report.html │ └── report.md └── Wells │ ├── irradianceAC.png │ ├── irradianceErrorAC.png │ ├── irradianceErrorSG.png │ ├── irradianceErrorSGLS.png │ ├── irradianceErrorSGLSA.png │ ├── irradianceErrorSGNNLS.png │ ├── irradianceErrorSHL1.png │ ├── irradianceErrorSHL1G.png │ ├── irradianceErrorSHL2.png │ ├── irradianceErrorSHL2W.png │ ├── irradianceErrorSHL3.png │ ├── irradianceErrorSHL4.png │ ├── irradianceMCIS.png │ ├── irradianceSG.png │ ├── irradianceSGLS.png │ ├── irradianceSGLSA.png │ ├── irradianceSGNNLS.png │ ├── irradianceSHL1.png │ ├── irradianceSHL1G.png │ ├── irradianceSHL2.png │ ├── irradianceSHL2W.png │ ├── irradianceSHL3.png │ ├── irradianceSHL4.png │ ├── radianceAC.png │ ├── radianceMCIS.png │ ├── radianceSG.png │ ├── radianceSGLS.png │ ├── radianceSGLSA.png │ ├── radianceSGNNLS.png │ ├── radianceSHL1.png │ ├── radianceSHL1G.png │ ├── radianceSHL2.png │ ├── radianceSHL2W.png │ ├── radianceSHL3.png │ ├── radianceSHL4.png │ ├── report.html │ └── report.md ├── Screenshots └── ProbulatorGUI_Armadillo.jpg ├── Scripts └── run-clang-format.sh └── Source ├── CMakeLists.txt ├── External ├── CMakeLists.txt ├── eigen │ ├── CMakeLists.txt │ └── Eigen │ │ ├── Array │ │ ├── Cholesky │ │ ├── CholmodSupport │ │ ├── Core │ │ ├── Dense │ │ ├── Eigen │ │ ├── Eigen2Support │ │ ├── Eigenvalues │ │ ├── Geometry │ │ ├── Householder │ │ ├── IterativeLinearSolvers │ │ ├── Jacobi │ │ ├── LU │ │ ├── LeastSquares │ │ ├── MetisSupport │ │ ├── OrderingMethods │ │ ├── PaStiXSupport │ │ ├── PardisoSupport │ │ ├── QR │ │ ├── QtAlignedMalloc │ │ ├── SPQRSupport │ │ ├── SVD │ │ ├── Sparse │ │ ├── SparseCholesky │ │ ├── SparseCore │ │ ├── SparseLU │ │ ├── SparseQR │ │ ├── StdDeque │ │ ├── StdList │ │ ├── StdVector │ │ ├── SuperLUSupport │ │ ├── UmfPackSupport │ │ ├── nnls.h │ │ └── src │ │ ├── Cholesky │ │ ├── LDLT.h │ │ ├── LLT.h │ │ └── LLT_MKL.h │ │ ├── CholmodSupport │ │ └── CholmodSupport.h │ │ ├── Core │ │ ├── Array.h │ │ ├── ArrayBase.h │ │ ├── ArrayWrapper.h │ │ ├── Assign.h │ │ ├── Assign_MKL.h │ │ ├── BandMatrix.h │ │ ├── Block.h │ │ ├── BooleanRedux.h │ │ ├── CommaInitializer.h │ │ ├── CoreIterators.h │ │ ├── CwiseBinaryOp.h │ │ ├── CwiseNullaryOp.h │ │ ├── CwiseUnaryOp.h │ │ ├── CwiseUnaryView.h │ │ ├── DenseBase.h │ │ ├── DenseCoeffsBase.h │ │ ├── DenseStorage.h │ │ ├── Diagonal.h │ │ ├── DiagonalMatrix.h │ │ ├── DiagonalProduct.h │ │ ├── Dot.h │ │ ├── EigenBase.h │ │ ├── Flagged.h │ │ ├── ForceAlignedAccess.h │ │ ├── Functors.h │ │ ├── Fuzzy.h │ │ ├── GeneralProduct.h │ │ ├── GenericPacketMath.h │ │ ├── GlobalFunctions.h │ │ ├── IO.h │ │ ├── Map.h │ │ ├── MapBase.h │ │ ├── MathFunctions.h │ │ ├── Matrix.h │ │ ├── MatrixBase.h │ │ ├── NestByValue.h │ │ ├── NoAlias.h │ │ ├── NumTraits.h │ │ ├── PermutationMatrix.h │ │ ├── PlainObjectBase.h │ │ ├── ProductBase.h │ │ ├── Random.h │ │ ├── Redux.h │ │ ├── Ref.h │ │ ├── Replicate.h │ │ ├── ReturnByValue.h │ │ ├── Reverse.h │ │ ├── Select.h │ │ ├── SelfAdjointView.h │ │ ├── SelfCwiseBinaryOp.h │ │ ├── SolveTriangular.h │ │ ├── StableNorm.h │ │ ├── Stride.h │ │ ├── Swap.h │ │ ├── Transpose.h │ │ ├── Transpositions.h │ │ ├── TriangularMatrix.h │ │ ├── VectorBlock.h │ │ ├── VectorwiseOp.h │ │ ├── Visitor.h │ │ ├── arch │ │ │ ├── AltiVec │ │ │ │ ├── Complex.h │ │ │ │ └── PacketMath.h │ │ │ ├── Default │ │ │ │ └── Settings.h │ │ │ ├── NEON │ │ │ │ ├── Complex.h │ │ │ │ └── PacketMath.h │ │ │ └── SSE │ │ │ │ ├── Complex.h │ │ │ │ ├── MathFunctions.h │ │ │ │ └── PacketMath.h │ │ ├── products │ │ │ ├── CoeffBasedProduct.h │ │ │ ├── GeneralBlockPanelKernel.h │ │ │ ├── GeneralMatrixMatrix.h │ │ │ ├── GeneralMatrixMatrixTriangular.h │ │ │ ├── GeneralMatrixMatrixTriangular_MKL.h │ │ │ ├── GeneralMatrixMatrix_MKL.h │ │ │ ├── GeneralMatrixVector.h │ │ │ ├── GeneralMatrixVector_MKL.h │ │ │ ├── Parallelizer.h │ │ │ ├── SelfadjointMatrixMatrix.h │ │ │ ├── SelfadjointMatrixMatrix_MKL.h │ │ │ ├── SelfadjointMatrixVector.h │ │ │ ├── SelfadjointMatrixVector_MKL.h │ │ │ ├── SelfadjointProduct.h │ │ │ ├── SelfadjointRank2Update.h │ │ │ ├── TriangularMatrixMatrix.h │ │ │ ├── TriangularMatrixMatrix_MKL.h │ │ │ ├── TriangularMatrixVector.h │ │ │ ├── TriangularMatrixVector_MKL.h │ │ │ ├── TriangularSolverMatrix.h │ │ │ ├── TriangularSolverMatrix_MKL.h │ │ │ └── TriangularSolverVector.h │ │ └── util │ │ │ ├── BlasUtil.h │ │ │ ├── Constants.h │ │ │ ├── DisableStupidWarnings.h │ │ │ ├── ForwardDeclarations.h │ │ │ ├── MKL_support.h │ │ │ ├── Macros.h │ │ │ ├── Memory.h │ │ │ ├── Meta.h │ │ │ ├── NonMPL2.h │ │ │ ├── ReenableStupidWarnings.h │ │ │ ├── StaticAssert.h │ │ │ └── XprHelper.h │ │ ├── Eigen2Support │ │ ├── Block.h │ │ ├── Cwise.h │ │ ├── CwiseOperators.h │ │ ├── Geometry │ │ │ ├── AlignedBox.h │ │ │ ├── All.h │ │ │ ├── AngleAxis.h │ │ │ ├── Hyperplane.h │ │ │ ├── ParametrizedLine.h │ │ │ ├── Quaternion.h │ │ │ ├── Rotation2D.h │ │ │ ├── RotationBase.h │ │ │ ├── Scaling.h │ │ │ ├── Transform.h │ │ │ └── Translation.h │ │ ├── LU.h │ │ ├── Lazy.h │ │ ├── LeastSquares.h │ │ ├── Macros.h │ │ ├── MathFunctions.h │ │ ├── Memory.h │ │ ├── Meta.h │ │ ├── Minor.h │ │ ├── QR.h │ │ ├── SVD.h │ │ ├── TriangularSolver.h │ │ └── VectorBlock.h │ │ ├── Eigenvalues │ │ ├── ComplexEigenSolver.h │ │ ├── ComplexSchur.h │ │ ├── ComplexSchur_MKL.h │ │ ├── EigenSolver.h │ │ ├── GeneralizedEigenSolver.h │ │ ├── GeneralizedSelfAdjointEigenSolver.h │ │ ├── HessenbergDecomposition.h │ │ ├── MatrixBaseEigenvalues.h │ │ ├── RealQZ.h │ │ ├── RealSchur.h │ │ ├── RealSchur_MKL.h │ │ ├── SelfAdjointEigenSolver.h │ │ ├── SelfAdjointEigenSolver_MKL.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 │ │ ├── IncompleteLUT.h │ │ └── IterativeSolverBase.h │ │ ├── Jacobi │ │ └── Jacobi.h │ │ ├── LU │ │ ├── Determinant.h │ │ ├── FullPivLU.h │ │ ├── Inverse.h │ │ ├── PartialPivLU.h │ │ ├── PartialPivLU_MKL.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_MKL.h │ │ ├── FullPivHouseholderQR.h │ │ ├── HouseholderQR.h │ │ └── HouseholderQR_MKL.h │ │ ├── SPQRSupport │ │ └── SuiteSparseQRSupport.h │ │ ├── SVD │ │ ├── JacobiSVD.h │ │ ├── JacobiSVD_MKL.h │ │ └── UpperBidiagonalization.h │ │ ├── SparseCholesky │ │ ├── SimplicialCholesky.h │ │ └── SimplicialCholesky_impl.h │ │ ├── SparseCore │ │ ├── AmbiVector.h │ │ ├── CompressedStorage.h │ │ ├── ConservativeSparseSparseProduct.h │ │ ├── MappedSparseMatrix.h │ │ ├── SparseBlock.h │ │ ├── SparseColEtree.h │ │ ├── SparseCwiseBinaryOp.h │ │ ├── SparseCwiseUnaryOp.h │ │ ├── SparseDenseProduct.h │ │ ├── SparseDiagonalProduct.h │ │ ├── SparseDot.h │ │ ├── SparseFuzzy.h │ │ ├── SparseMatrix.h │ │ ├── SparseMatrixBase.h │ │ ├── SparsePermutation.h │ │ ├── SparseProduct.h │ │ ├── SparseRedux.h │ │ ├── SparseSelfAdjointView.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 │ │ ├── Solve.h │ │ ├── SparseSolve.h │ │ └── blas.h │ │ └── plugins │ │ ├── ArrayCwiseBinaryOps.h │ │ ├── ArrayCwiseUnaryOps.h │ │ ├── BlockMethods.h │ │ ├── CommonCwiseBinaryOps.h │ │ ├── CommonCwiseUnaryOps.h │ │ ├── MatrixCwiseBinaryOps.h │ │ └── MatrixCwiseUnaryOps.h ├── enkiTS │ ├── CMakeLists.txt │ ├── LockLessMultiReadPipe.h │ ├── TaskScheduler.cpp │ └── TaskScheduler.h ├── gl3w │ ├── CMakeLists.txt │ ├── include │ │ └── GL │ │ │ ├── gl3w.h │ │ │ └── glcorearb.h │ └── src │ │ └── gl3w.c ├── glfw │ ├── CMakeLists.txt │ ├── deps │ │ ├── EGL │ │ │ └── eglext.h │ │ └── GL │ │ │ ├── glext.h │ │ │ ├── glxext.h │ │ │ └── wglext.h │ ├── include │ │ └── GLFW │ │ │ ├── glfw3.h │ │ │ └── glfw3native.h │ └── src │ │ ├── cocoa_init.m │ │ ├── cocoa_monitor.m │ │ ├── cocoa_platform.h │ │ ├── cocoa_window.m │ │ ├── context.c │ │ ├── egl_context.c │ │ ├── egl_context.h │ │ ├── glx_context.c │ │ ├── glx_context.h │ │ ├── init.c │ │ ├── input.c │ │ ├── internal.h │ │ ├── iokit_joystick.h │ │ ├── iokit_joystick.m │ │ ├── linux_joystick.c │ │ ├── linux_joystick.h │ │ ├── mach_time.c │ │ ├── mir_init.c │ │ ├── mir_monitor.c │ │ ├── mir_platform.h │ │ ├── mir_window.c │ │ ├── monitor.c │ │ ├── nsgl_context.h │ │ ├── nsgl_context.m │ │ ├── posix_time.c │ │ ├── posix_time.h │ │ ├── posix_tls.c │ │ ├── posix_tls.h │ │ ├── wgl_context.c │ │ ├── wgl_context.h │ │ ├── win32_init.c │ │ ├── win32_monitor.c │ │ ├── win32_platform.h │ │ ├── win32_time.c │ │ ├── win32_tls.c │ │ ├── win32_tls.h │ │ ├── win32_window.c │ │ ├── window.c │ │ ├── winmm_joystick.c │ │ ├── winmm_joystick.h │ │ ├── wl_init.c │ │ ├── wl_monitor.c │ │ ├── wl_platform.h │ │ ├── wl_window.c │ │ ├── x11_init.c │ │ ├── x11_monitor.c │ │ ├── x11_platform.h │ │ ├── x11_window.c │ │ ├── xkb_unicode.c │ │ └── xkb_unicode.h ├── glm │ ├── CMakeLists.txt │ ├── copying.txt │ ├── glm │ │ ├── CMakeLists.txt │ │ ├── common.hpp │ │ ├── detail │ │ │ ├── _features.hpp │ │ │ ├── _fixes.hpp │ │ │ ├── _noise.hpp │ │ │ ├── _swizzle.hpp │ │ │ ├── _swizzle_func.hpp │ │ │ ├── _vectorize.hpp │ │ │ ├── dummy.cpp │ │ │ ├── func_common.hpp │ │ │ ├── func_common.inl │ │ │ ├── func_exponential.hpp │ │ │ ├── func_exponential.inl │ │ │ ├── func_geometric.hpp │ │ │ ├── func_geometric.inl │ │ │ ├── func_integer.hpp │ │ │ ├── func_integer.inl │ │ │ ├── func_matrix.hpp │ │ │ ├── func_matrix.inl │ │ │ ├── func_packing.hpp │ │ │ ├── func_packing.inl │ │ │ ├── func_trigonometric.hpp │ │ │ ├── func_trigonometric.inl │ │ │ ├── func_vector_relational.hpp │ │ │ ├── func_vector_relational.inl │ │ │ ├── glm.cpp │ │ │ ├── intrinsic_common.hpp │ │ │ ├── intrinsic_common.inl │ │ │ ├── intrinsic_exponential.hpp │ │ │ ├── intrinsic_exponential.inl │ │ │ ├── intrinsic_geometric.hpp │ │ │ ├── intrinsic_geometric.inl │ │ │ ├── intrinsic_integer.hpp │ │ │ ├── intrinsic_integer.inl │ │ │ ├── intrinsic_matrix.hpp │ │ │ ├── intrinsic_matrix.inl │ │ │ ├── intrinsic_trigonometric.hpp │ │ │ ├── intrinsic_trigonometric.inl │ │ │ ├── intrinsic_vector_relational.hpp │ │ │ ├── intrinsic_vector_relational.inl │ │ │ ├── precision.hpp │ │ │ ├── setup.hpp │ │ │ ├── type_float.hpp │ │ │ ├── type_gentype.hpp │ │ │ ├── type_gentype.inl │ │ │ ├── type_half.hpp │ │ │ ├── type_half.inl │ │ │ ├── type_int.hpp │ │ │ ├── type_mat.hpp │ │ │ ├── type_mat.inl │ │ │ ├── type_mat2x2.hpp │ │ │ ├── type_mat2x2.inl │ │ │ ├── type_mat2x3.hpp │ │ │ ├── type_mat2x3.inl │ │ │ ├── type_mat2x4.hpp │ │ │ ├── type_mat2x4.inl │ │ │ ├── type_mat3x2.hpp │ │ │ ├── type_mat3x2.inl │ │ │ ├── type_mat3x3.hpp │ │ │ ├── type_mat3x3.inl │ │ │ ├── type_mat3x4.hpp │ │ │ ├── type_mat3x4.inl │ │ │ ├── type_mat4x2.hpp │ │ │ ├── type_mat4x2.inl │ │ │ ├── type_mat4x3.hpp │ │ │ ├── type_mat4x3.inl │ │ │ ├── type_mat4x4.hpp │ │ │ ├── type_mat4x4.inl │ │ │ ├── type_vec.hpp │ │ │ ├── type_vec.inl │ │ │ ├── type_vec1.hpp │ │ │ ├── type_vec1.inl │ │ │ ├── type_vec2.hpp │ │ │ ├── type_vec2.inl │ │ │ ├── type_vec3.hpp │ │ │ ├── type_vec3.inl │ │ │ ├── type_vec4.hpp │ │ │ ├── type_vec4.inl │ │ │ ├── type_vec4_avx.inl │ │ │ ├── type_vec4_avx2.inl │ │ │ └── type_vec4_sse2.inl │ │ ├── exponential.hpp │ │ ├── ext.hpp │ │ ├── fwd.hpp │ │ ├── geometric.hpp │ │ ├── glm.hpp │ │ ├── gtc │ │ │ ├── bitfield.hpp │ │ │ ├── bitfield.inl │ │ │ ├── color_space.hpp │ │ │ ├── color_space.inl │ │ │ ├── constants.hpp │ │ │ ├── constants.inl │ │ │ ├── epsilon.hpp │ │ │ ├── epsilon.inl │ │ │ ├── integer.hpp │ │ │ ├── integer.inl │ │ │ ├── matrix_access.hpp │ │ │ ├── matrix_access.inl │ │ │ ├── matrix_integer.hpp │ │ │ ├── matrix_inverse.hpp │ │ │ ├── matrix_inverse.inl │ │ │ ├── matrix_transform.hpp │ │ │ ├── matrix_transform.inl │ │ │ ├── noise.hpp │ │ │ ├── noise.inl │ │ │ ├── packing.hpp │ │ │ ├── packing.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── random.hpp │ │ │ ├── random.inl │ │ │ ├── reciprocal.hpp │ │ │ ├── reciprocal.inl │ │ │ ├── round.hpp │ │ │ ├── round.inl │ │ │ ├── type_precision.hpp │ │ │ ├── type_precision.inl │ │ │ ├── type_ptr.hpp │ │ │ ├── type_ptr.inl │ │ │ ├── ulp.hpp │ │ │ ├── ulp.inl │ │ │ ├── vec1.hpp │ │ │ └── vec1.inl │ │ ├── gtx │ │ │ ├── associated_min_max.hpp │ │ │ ├── associated_min_max.inl │ │ │ ├── bit.hpp │ │ │ ├── bit.inl │ │ │ ├── closest_point.hpp │ │ │ ├── closest_point.inl │ │ │ ├── color_space.hpp │ │ │ ├── color_space.inl │ │ │ ├── color_space_YCoCg.hpp │ │ │ ├── color_space_YCoCg.inl │ │ │ ├── common.hpp │ │ │ ├── common.inl │ │ │ ├── compatibility.hpp │ │ │ ├── compatibility.inl │ │ │ ├── component_wise.hpp │ │ │ ├── component_wise.inl │ │ │ ├── dual_quaternion.hpp │ │ │ ├── dual_quaternion.inl │ │ │ ├── euler_angles.hpp │ │ │ ├── euler_angles.inl │ │ │ ├── extend.hpp │ │ │ ├── extend.inl │ │ │ ├── extented_min_max.hpp │ │ │ ├── extented_min_max.inl │ │ │ ├── fast_exponential.hpp │ │ │ ├── fast_exponential.inl │ │ │ ├── fast_square_root.hpp │ │ │ ├── fast_square_root.inl │ │ │ ├── fast_trigonometry.hpp │ │ │ ├── fast_trigonometry.inl │ │ │ ├── gradient_paint.hpp │ │ │ ├── gradient_paint.inl │ │ │ ├── handed_coordinate_space.hpp │ │ │ ├── handed_coordinate_space.inl │ │ │ ├── hash.hpp │ │ │ ├── hash.inl │ │ │ ├── integer.hpp │ │ │ ├── integer.inl │ │ │ ├── intersect.hpp │ │ │ ├── intersect.inl │ │ │ ├── io.hpp │ │ │ ├── io.inl │ │ │ ├── log_base.hpp │ │ │ ├── log_base.inl │ │ │ ├── matrix_cross_product.hpp │ │ │ ├── matrix_cross_product.inl │ │ │ ├── matrix_decompose.hpp │ │ │ ├── matrix_decompose.inl │ │ │ ├── matrix_interpolation.hpp │ │ │ ├── matrix_interpolation.inl │ │ │ ├── matrix_major_storage.hpp │ │ │ ├── matrix_major_storage.inl │ │ │ ├── matrix_operation.hpp │ │ │ ├── matrix_operation.inl │ │ │ ├── matrix_query.hpp │ │ │ ├── matrix_query.inl │ │ │ ├── matrix_transform_2d.hpp │ │ │ ├── matrix_transform_2d.inl │ │ │ ├── mixed_product.hpp │ │ │ ├── mixed_product.inl │ │ │ ├── norm.hpp │ │ │ ├── norm.inl │ │ │ ├── normal.hpp │ │ │ ├── normal.inl │ │ │ ├── normalize_dot.hpp │ │ │ ├── normalize_dot.inl │ │ │ ├── number_precision.hpp │ │ │ ├── number_precision.inl │ │ │ ├── optimum_pow.hpp │ │ │ ├── optimum_pow.inl │ │ │ ├── orthonormalize.hpp │ │ │ ├── orthonormalize.inl │ │ │ ├── perpendicular.hpp │ │ │ ├── perpendicular.inl │ │ │ ├── polar_coordinates.hpp │ │ │ ├── polar_coordinates.inl │ │ │ ├── projection.hpp │ │ │ ├── projection.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── range.hpp │ │ │ ├── raw_data.hpp │ │ │ ├── raw_data.inl │ │ │ ├── rotate_normalized_axis.hpp │ │ │ ├── rotate_normalized_axis.inl │ │ │ ├── rotate_vector.hpp │ │ │ ├── rotate_vector.inl │ │ │ ├── scalar_multiplication.hpp │ │ │ ├── scalar_relational.hpp │ │ │ ├── scalar_relational.inl │ │ │ ├── simd_mat4.hpp │ │ │ ├── simd_mat4.inl │ │ │ ├── simd_quat.hpp │ │ │ ├── simd_quat.inl │ │ │ ├── simd_vec4.hpp │ │ │ ├── simd_vec4.inl │ │ │ ├── spline.hpp │ │ │ ├── spline.inl │ │ │ ├── std_based_type.hpp │ │ │ ├── std_based_type.inl │ │ │ ├── string_cast.hpp │ │ │ ├── string_cast.inl │ │ │ ├── transform.hpp │ │ │ ├── transform.inl │ │ │ ├── transform2.hpp │ │ │ ├── transform2.inl │ │ │ ├── type_aligned.hpp │ │ │ ├── type_aligned.inl │ │ │ ├── vector_angle.hpp │ │ │ ├── vector_angle.inl │ │ │ ├── vector_query.hpp │ │ │ ├── vector_query.inl │ │ │ ├── wrap.hpp │ │ │ └── wrap.inl │ │ ├── integer.hpp │ │ ├── mat2x2.hpp │ │ ├── mat2x3.hpp │ │ ├── mat2x4.hpp │ │ ├── mat3x2.hpp │ │ ├── mat3x3.hpp │ │ ├── mat3x4.hpp │ │ ├── mat4x2.hpp │ │ ├── mat4x3.hpp │ │ ├── mat4x4.hpp │ │ ├── matrix.hpp │ │ ├── packing.hpp │ │ ├── trigonometric.hpp │ │ ├── vec2.hpp │ │ ├── vec3.hpp │ │ ├── vec4.hpp │ │ └── vector_relational.hpp │ └── readme.md ├── imgui │ ├── CMakeLists.txt │ ├── imconfig.h │ ├── imgui.cpp │ ├── imgui.h │ ├── imgui_demo.cpp │ ├── imgui_draw.cpp │ ├── imgui_impl_glfw_gl3.cpp │ ├── imgui_impl_glfw_gl3.h │ ├── imgui_internal.h │ ├── stb_rect_pack.h │ ├── stb_textedit.h │ └── stb_truetype.h ├── nfd │ ├── CMakeLists.txt │ ├── common.h │ ├── include │ │ └── nfd.h │ ├── nfd_cocoa.m │ ├── nfd_common.c │ ├── nfd_common.h │ ├── nfd_gtk.c │ └── nfd_win.cpp ├── stb │ ├── CMakeLists.txt │ ├── README.md │ ├── stb.c │ ├── stb_image.h │ ├── stb_image_resize.h │ └── stb_image_write.h └── tinyobjloader │ ├── CMakeLists.txt │ ├── tiny_obj_loader.cc │ └── tiny_obj_loader.h ├── Probulator ├── CMakeLists.txt ├── Common.h ├── DiscreteDistribution.h ├── ExperimentAmbientCube.cpp ├── ExperimentAmbientCube.h ├── ExperimentAmbientDice.cpp ├── ExperimentAmbientDice.h ├── ExperimentHBasis.h ├── ExperimentMonteCarlo.h ├── ExperimentSG.h ├── ExperimentSH.h ├── Experiments.cpp ├── Experiments.h ├── HBasis.h ├── Image.cpp ├── Image.h ├── Math.h ├── RadianceSample.h ├── SGBasis.cpp ├── SGBasis.h ├── SGFitGeneticAlgorithm.cpp ├── SGFitGeneticAlgorithm.h ├── SGFitLeastSquares.cpp ├── SGFitLeastSquares.h ├── SphericalGaussian.cpp ├── SphericalGaussian.h ├── SphericalHarmonics.h ├── Thread.cpp ├── Thread.h └── Variance.h ├── ProbulatorCLI ├── CMakeLists.txt └── Main.cpp └── ProbulatorGUI ├── Blitter.cpp ├── Blitter.h ├── CMakeLists.txt ├── Camera.cpp ├── Camera.h ├── ChangeMonitor.cpp ├── ChangeMonitor.h ├── Common.h ├── Main.cpp ├── Model.cpp ├── Model.h ├── Renderer.cpp ├── Renderer.h ├── Shader.cpp ├── Shaders.cpp └── Shaders.h /.appveyor.yml: -------------------------------------------------------------------------------- 1 | shallow_clone: true 2 | 3 | os: 4 | - Visual Studio 2017 5 | 6 | configuration: 7 | - Debug 8 | - RelWithDebInfo 9 | 10 | install: 11 | - cmake -A x64 -B.\Build -H. 12 | 13 | build: 14 | project: .\Build\Probulator.sln 15 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | AccessModifierOffset: -4 2 | AlignAfterOpenBracket: false 3 | AlignConsecutiveAssignments: false 4 | #AlignConsecutiveDeclarations: true 5 | AlignEscapedNewlinesLeft: false 6 | AlignOperands: true 7 | AlignTrailingComments: true 8 | AllowAllParametersOfDeclarationOnNextLine: true 9 | AllowShortBlocksOnASingleLine: true 10 | AllowShortCaseLabelsOnASingleLine: false 11 | AllowShortFunctionsOnASingleLine: All 12 | AllowShortIfStatementsOnASingleLine: false 13 | AllowShortLoopsOnASingleLine: false 14 | AlwaysBreakAfterDefinitionReturnType: false 15 | AlwaysBreakBeforeMultilineStrings: false 16 | AlwaysBreakTemplateDeclarations: false 17 | BasedOnStyle: LLVM 18 | BinPackArguments: true 19 | BinPackParameters: true 20 | BreakBeforeBinaryOperators: None 21 | BreakBeforeBraces: Allman 22 | BreakBeforeTernaryOperators: true 23 | BreakConstructorInitializersBeforeComma: true 24 | ColumnLimit: 140 25 | ConstructorInitializerAllOnOneLineOrOnePerLine: false 26 | ConstructorInitializerIndentWidth: 4 27 | ContinuationIndentWidth: 0 28 | Cpp11BracedListStyle: true 29 | DerivePointerAlignment: false 30 | DisableFormat: false 31 | ExperimentalAutoDetectBinPacking: true 32 | IndentCaseLabels: false 33 | IndentFunctionDeclarationAfterType: false 34 | IndentWidth: 4 35 | IndentWrappedFunctionNames: false 36 | KeepEmptyLinesAtTheStartOfBlocks: true 37 | Language: Cpp 38 | MaxEmptyLinesToKeep: 1 39 | NamespaceIndentation: None 40 | PenaltyBreakBeforeFirstCallParameter: 19 41 | PenaltyBreakComment: 300 42 | PenaltyBreakFirstLessLess: 120 43 | PenaltyBreakString: 1000 44 | PenaltyExcessCharacter: 1000000 45 | PenaltyReturnTypeOnItsOwnLine: 60 46 | PointerAlignment: Left 47 | SpaceAfterCStyleCast: false 48 | SpaceBeforeAssignmentOperators: true 49 | SpaceBeforeParens: ControlStatements 50 | SpaceInEmptyParentheses: false 51 | SpacesBeforeTrailingComments: 1 52 | SpacesInAngles: false 53 | SpacesInContainerLiterals: true 54 | SpacesInCStyleCastParentheses: false 55 | SpacesInParentheses: false 56 | SpacesInSquareBrackets: false 57 | Standard: Cpp11 58 | TabWidth: 4 59 | UseTab: ForIndentation 60 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Build 2 | build 3 | imgui.ini 4 | *.sublime-project 5 | *.sublime-workspace 6 | .vs 7 | .vscode 8 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.1.3) 2 | 3 | set_property(GLOBAL PROPERTY USE_FOLDERS ON) 4 | 5 | project(Probulator) 6 | 7 | if(MSVC) 8 | add_definitions( 9 | -D_CRT_SECURE_NO_WARNINGS 10 | -D_CRT_SECURE_NO_DEPRECATE 11 | ) 12 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Zo") 13 | else() 14 | # suppress some common warnings from eigen 15 | add_definitions( 16 | -Wno-deprecated-declarations 17 | -Wno-ignored-attributes 18 | ) 19 | endif() 20 | 21 | add_subdirectory(Source) 22 | -------------------------------------------------------------------------------- /Data/Probes/ennis.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Data/Probes/ennis.hdr -------------------------------------------------------------------------------- /Data/Probes/grace.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Data/Probes/grace.hdr -------------------------------------------------------------------------------- /Data/Probes/pisa.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Data/Probes/pisa.hdr -------------------------------------------------------------------------------- /Data/Probes/uffizi.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Data/Probes/uffizi.hdr -------------------------------------------------------------------------------- /Data/Probes/wells.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Data/Probes/wells.hdr -------------------------------------------------------------------------------- /Data/Shaders/BasisVisualizer.vert: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | uniform mat4 uWorldMatrix; 4 | uniform mat4 uViewProjMatrix; 5 | 6 | uniform sampler2D Texture0; 7 | 8 | in vec3 Position; 9 | in vec3 Normal; 10 | in vec2 TexCoord0; 11 | 12 | out vec3 vWorldNormal; 13 | out vec2 vTexCoord0; 14 | out vec3 vWorldPosition; 15 | 16 | void main() 17 | { 18 | vec3 worldPosition = vec3(uWorldMatrix * vec4(Position, 1)); 19 | vec3 worldNormal = normalize(vec3(mat3(uWorldMatrix) * Normal)); 20 | 21 | vec2 texCoord = cartesianToLatLongTexcoord(worldNormal); 22 | vec3 irradiance = texture(Texture0, texCoord).xyz; 23 | float lumScale = 0.299 * irradiance.r + 0.587 * irradiance.g + 0.114 * irradiance.b; 24 | 25 | gl_Position = uViewProjMatrix * vec4(worldPosition * lumScale, 1); 26 | 27 | vWorldPosition = worldPosition; 28 | vWorldNormal = worldNormal; 29 | vTexCoord0 = TexCoord0; 30 | } 31 | -------------------------------------------------------------------------------- /Data/Shaders/Blitter.vert: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | in vec2 Position; 4 | in vec2 TexCoord0; 5 | 6 | out vec2 vTexCoord0; 7 | out vec4 vPosition; 8 | 9 | void main() 10 | { 11 | vPosition = vec4(Position.x, Position.y, 1.0, 1.0); 12 | vTexCoord0 = Position * 0.5 + 0.5; 13 | vTexCoord0.y = 1.0 - vTexCoord0.y; 14 | gl_Position = vPosition; 15 | } 16 | -------------------------------------------------------------------------------- /Data/Shaders/BlitterLatLongEnvmap.frag: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | uniform mat4 uViewMatrix; 4 | uniform mat4 uProjMatrix; 5 | uniform sampler2D Texture0; 6 | 7 | in vec4 vPosition; 8 | 9 | out vec4 Target; 10 | 11 | void main() 12 | { 13 | vec3 view; 14 | view.x = vPosition.x / uProjMatrix[0][0]; 15 | view.y = vPosition.y / uProjMatrix[1][1]; 16 | view.z = -1.0; 17 | view = normalize(view * mat3(uViewMatrix)); 18 | vec2 texCoord = cartesianToLatLongTexcoord(view); 19 | vec4 color = texture(Texture0, texCoord); 20 | color.rgb = tonemapLinear(color.rgb, uExposure); 21 | color.rgb = applyDithering(color.rgb, gl_FragCoord.xy / uResolution, uElapsedTime); 22 | Target = color; 23 | } 24 | -------------------------------------------------------------------------------- /Data/Shaders/BlitterTexture2D.frag: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | uniform sampler2D Texture0; 4 | 5 | in vec2 vTexCoord0; 6 | 7 | out vec4 Target; 8 | 9 | void main() 10 | { 11 | Target = texture(Texture0, vTexCoord0); 12 | } 13 | -------------------------------------------------------------------------------- /Data/Shaders/Common.glsl: -------------------------------------------------------------------------------- 1 | #version 150 2 | 3 | #define PI 3.14159265358979323846 4 | 5 | uniform float uExposure; 6 | uniform float uElapsedTime; 7 | uniform vec2 uResolution; 8 | 9 | vec2 cartesianToLatLongTexcoord(vec3 p) 10 | { 11 | float u = (1.0 + atan(p.x, -p.z) / PI); 12 | float v = acos(p.y) / PI; 13 | return vec2(u * 0.5, v); 14 | } 15 | 16 | vec3 tonemapLinear(vec3 rgb, float exposure) 17 | { 18 | return rgb * exposure; 19 | } 20 | 21 | // https://www.shadertoy.com/view/4ssXRX 22 | float naiveRandom(vec2 seed, float time) 23 | { 24 | return fract(sin(dot(2.0*seed.xy + 0.07* fract(time), vec2(12.9898, 78.233)))* 43758.5453); 25 | } 26 | 27 | vec3 applyDithering(vec3 color, vec2 uv, float time) 28 | { 29 | vec3 noise; 30 | noise.r = naiveRandom(uv, time); 31 | noise.g = naiveRandom(uv, time+1.0); 32 | noise.b = naiveRandom(uv, time+2.0); 33 | noise = (noise - 0.5) / 128.0; 34 | color = color + noise; 35 | return color; 36 | } -------------------------------------------------------------------------------- /Data/Shaders/Model.frag: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | uniform sampler2D Texture0; 4 | 5 | in vec2 vTexCoord0; 6 | in vec3 vWorldNormal; 7 | in vec3 vWorldPosition; 8 | 9 | out vec4 Target; 10 | 11 | void main() 12 | { 13 | vec3 albedo = vec3(1.0); 14 | vec3 normal = normalize(vWorldNormal); 15 | vec2 texCoord = cartesianToLatLongTexcoord(normal); 16 | vec3 irradiance = texture(Texture0, texCoord).xyz; 17 | vec3 color = albedo * irradiance; 18 | 19 | color = tonemapLinear(color, uExposure); 20 | color = applyDithering(color, gl_FragCoord.xy / uResolution, uElapsedTime); 21 | Target = vec4(color, 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /Data/Shaders/Model.vert: -------------------------------------------------------------------------------- 1 | #include "Common.glsl" 2 | 3 | uniform mat4 uWorldMatrix; 4 | uniform mat4 uViewProjMatrix; 5 | 6 | in vec3 Position; 7 | in vec3 Normal; 8 | in vec2 TexCoord0; 9 | 10 | out vec3 vWorldNormal; 11 | out vec2 vTexCoord0; 12 | out vec3 vWorldPosition; 13 | 14 | void main() 15 | { 16 | vec3 worldPosition = vec3(uWorldMatrix * vec4(Position, 1)); 17 | vec3 worldNormal = normalize(vec3(mat3(uWorldMatrix) * Normal)); 18 | gl_Position = uViewProjMatrix * vec4(worldPosition, 1); 19 | 20 | vWorldPosition = worldPosition; 21 | vWorldNormal = worldNormal; 22 | vTexCoord0 = TexCoord0; 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Yuriy O'Donnell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Reports/Ennis/irradianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceAC.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorAC.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSG.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSGLS.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSGLSA.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSGNNLS.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL1.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL1G.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL2.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL2W.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL3.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceErrorSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceErrorSHL4.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceMCIS.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSG.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSGLS.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL1.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL2.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL3.png -------------------------------------------------------------------------------- /Reports/Ennis/irradianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/irradianceSHL4.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceAC.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceMCIS.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSG.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSGLS.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL1.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL2.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL3.png -------------------------------------------------------------------------------- /Reports/Ennis/radianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Ennis/radianceSHL4.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceAC.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorAC.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSG.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSGLS.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSGLSA.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSGNNLS.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL1.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL1G.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL2.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL2W.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL3.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceErrorSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceErrorSHL4.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceMCIS.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSG.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSGLS.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL1.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL2.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL3.png -------------------------------------------------------------------------------- /Reports/Grace/irradianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/irradianceSHL4.png -------------------------------------------------------------------------------- /Reports/Grace/radianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceAC.png -------------------------------------------------------------------------------- /Reports/Grace/radianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceMCIS.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSG.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSGLS.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL1.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL2.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL3.png -------------------------------------------------------------------------------- /Reports/Grace/radianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Grace/radianceSHL4.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceAC.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorAC.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSG.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSGLS.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSGLSA.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSGNNLS.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL1.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL1G.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL2.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL2W.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL3.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceErrorSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceErrorSHL4.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceMCIS.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSG.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSGLS.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL1.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL2.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL3.png -------------------------------------------------------------------------------- /Reports/Pisa/irradianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/irradianceSHL4.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceAC.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceMCIS.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSG.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSGLS.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL1.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL2.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL3.png -------------------------------------------------------------------------------- /Reports/Pisa/radianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Pisa/radianceSHL4.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceAC.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorAC.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSG.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSGLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSGLSA.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSGNNLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL1.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL1G.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL2.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL2W.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL3.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceErrorSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceErrorSHL4.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceMCIS.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSG.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSGLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL1.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL2.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL3.png -------------------------------------------------------------------------------- /Reports/Uffizi/irradianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/irradianceSHL4.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceAC.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceMCIS.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSG.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSGLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL1.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL2.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL3.png -------------------------------------------------------------------------------- /Reports/Uffizi/radianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Uffizi/radianceSHL4.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceAC.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorAC.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSG.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSGLS.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSGLSA.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSGNNLS.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL1.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL1G.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL2.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL2W.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL3.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceErrorSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceErrorSHL4.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceMCIS.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSG.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSGLS.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL1.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL2.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL3.png -------------------------------------------------------------------------------- /Reports/Wells/irradianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/irradianceSHL4.png -------------------------------------------------------------------------------- /Reports/Wells/radianceAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceAC.png -------------------------------------------------------------------------------- /Reports/Wells/radianceMCIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceMCIS.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSG.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSGLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSGLS.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSGLSA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSGLSA.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSGNNLS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSGNNLS.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL1.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL1G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL1G.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL2.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL2W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL2W.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL3.png -------------------------------------------------------------------------------- /Reports/Wells/radianceSHL4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Reports/Wells/radianceSHL4.png -------------------------------------------------------------------------------- /Screenshots/ProbulatorGUI_Armadillo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kayru/Probulator/4a97a2b021eb2ca7ef696f4ddf36ba9a9432cbb6/Screenshots/ProbulatorGUI_Armadillo.jpg -------------------------------------------------------------------------------- /Scripts/run-clang-format.sh: -------------------------------------------------------------------------------- 1 | clang-format -i ../Source/Probulator/*.h ../Source/Probulator/*.cpp 2 | clang-format -i ../Source/ProbulatorCLI/*.cpp 3 | clang-format -i ../Source/ProbulatorGUI/*.h ../Source/ProbulatorGUI/*.cpp 4 | -------------------------------------------------------------------------------- /Source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(External) 2 | add_subdirectory(Probulator) 3 | add_subdirectory(ProbulatorCLI) 4 | add_subdirectory(ProbulatorGUI) 5 | -------------------------------------------------------------------------------- /Source/External/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # disable all warnings in external libs 2 | 3 | if (MSVC) 4 | add_definitions(-W0) 5 | else() 6 | add_definitions(-w) 7 | endif() 8 | 9 | # add external projects 10 | 11 | add_subdirectory(eigen) 12 | add_subdirectory(enkiTS) 13 | add_subdirectory(gl3w) 14 | add_subdirectory(glfw) 15 | add_subdirectory(glm) 16 | add_subdirectory(imgui) 17 | add_subdirectory(nfd) 18 | add_subdirectory(stb) 19 | add_subdirectory(tinyobjloader) 20 | 21 | # put external projects into a dedicated IDE folder 22 | 23 | #set_property(TARGET eigen PROPERTY FOLDER "External") 24 | set_property(TARGET enkiTS PROPERTY FOLDER "External") 25 | set_property(TARGET gl3w PROPERTY FOLDER "External") 26 | set_property(TARGET glfw PROPERTY FOLDER "External") 27 | #set_property(TARGET glm PROPERTY FOLDER "External") 28 | set_property(TARGET imgui PROPERTY FOLDER "External") 29 | set_property(TARGET nfd PROPERTY FOLDER "External") 30 | set_property(TARGET stb PROPERTY FOLDER "External") 31 | set_property(TARGET tinyobjloader PROPERTY FOLDER "External") 32 | -------------------------------------------------------------------------------- /Source/External/eigen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(eigen INTERFACE) 2 | target_include_directories(eigen INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) 3 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Array: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_ARRAY_MODULE_H 2 | #define EIGEN_ARRAY_MODULE_H 3 | 4 | // include Core first to handle Eigen2 support macros 5 | #include "Core" 6 | 7 | #ifndef EIGEN2_SUPPORT 8 | #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core. 9 | #endif 10 | 11 | #endif // EIGEN_ARRAY_MODULE_H 12 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Cholesky: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_CHOLESKY_MODULE_H 2 | #define EIGEN_CHOLESKY_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Cholesky_Module Cholesky module 9 | * 10 | * 11 | * 12 | * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices. 13 | * Those decompositions are accessible via the following MatrixBase methods: 14 | * - MatrixBase::llt(), 15 | * - MatrixBase::ldlt() 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | */ 21 | 22 | #include "src/misc/Solve.h" 23 | #include "src/Cholesky/LLT.h" 24 | #include "src/Cholesky/LDLT.h" 25 | #ifdef EIGEN_USE_LAPACKE 26 | #include "src/Cholesky/LLT_MKL.h" 27 | #endif 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif // EIGEN_CHOLESKY_MODULE_H 32 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 33 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/CholmodSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_CHOLMODSUPPORT_MODULE_H 2 | #define EIGEN_CHOLMODSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup CholmodSupport_Module CholmodSupport module 14 | * 15 | * This module provides an interface to the Cholmod library which is part of the suitesparse package. 16 | * It provides the two following main factorization classes: 17 | * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization. 18 | * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial). 19 | * 20 | * For the sake of completeness, this module also propose the two following classes: 21 | * - class CholmodSimplicialLLT 22 | * - class CholmodSimplicialLDLT 23 | * Note that these classes does not bring any particular advantage compared to the built-in 24 | * SimplicialLLT and SimplicialLDLT factorization classes. 25 | * 26 | * \code 27 | * #include 28 | * \endcode 29 | * 30 | * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies. 31 | * The dependencies depend on how cholmod has been compiled. 32 | * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task. 33 | * 34 | */ 35 | 36 | #include "src/misc/Solve.h" 37 | #include "src/misc/SparseSolve.h" 38 | 39 | #include "src/CholmodSupport/CholmodSupport.h" 40 | 41 | 42 | #include "src/Core/util/ReenableStupidWarnings.h" 43 | 44 | #endif // EIGEN_CHOLMODSUPPORT_MODULE_H 45 | 46 | -------------------------------------------------------------------------------- /Source/External/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 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | //#include "Sparse" 3 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Eigenvalues: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_EIGENVALUES_MODULE_H 2 | #define EIGEN_EIGENVALUES_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "Cholesky" 9 | #include "Jacobi" 10 | #include "Householder" 11 | #include "LU" 12 | #include "Geometry" 13 | 14 | /** \defgroup Eigenvalues_Module Eigenvalues module 15 | * 16 | * 17 | * 18 | * This module mainly provides various eigenvalue solvers. 19 | * This module also provides some MatrixBase methods, including: 20 | * - MatrixBase::eigenvalues(), 21 | * - MatrixBase::operatorNorm() 22 | * 23 | * \code 24 | * #include 25 | * \endcode 26 | */ 27 | 28 | #include "src/Eigenvalues/Tridiagonalization.h" 29 | #include "src/Eigenvalues/RealSchur.h" 30 | #include "src/Eigenvalues/EigenSolver.h" 31 | #include "src/Eigenvalues/SelfAdjointEigenSolver.h" 32 | #include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h" 33 | #include "src/Eigenvalues/HessenbergDecomposition.h" 34 | #include "src/Eigenvalues/ComplexSchur.h" 35 | #include "src/Eigenvalues/ComplexEigenSolver.h" 36 | #include "src/Eigenvalues/RealQZ.h" 37 | #include "src/Eigenvalues/GeneralizedEigenSolver.h" 38 | #include "src/Eigenvalues/MatrixBaseEigenvalues.h" 39 | #ifdef EIGEN_USE_LAPACKE 40 | #include "src/Eigenvalues/RealSchur_MKL.h" 41 | #include "src/Eigenvalues/ComplexSchur_MKL.h" 42 | #include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h" 43 | #endif 44 | 45 | #include "src/Core/util/ReenableStupidWarnings.h" 46 | 47 | #endif // EIGEN_EIGENVALUES_MODULE_H 48 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 49 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Geometry: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_GEOMETRY_MODULE_H 2 | #define EIGEN_GEOMETRY_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "SVD" 9 | #include "LU" 10 | #include 11 | 12 | #ifndef M_PI 13 | #define M_PI 3.14159265358979323846 14 | #endif 15 | 16 | /** \defgroup Geometry_Module Geometry module 17 | * 18 | * 19 | * 20 | * This module provides support for: 21 | * - fixed-size homogeneous transformations 22 | * - translation, scaling, 2D and 3D rotations 23 | * - quaternions 24 | * - \ref MatrixBase::cross() "cross product" 25 | * - \ref MatrixBase::unitOrthogonal() "orthognal vector generation" 26 | * - some linear components: parametrized-lines and hyperplanes 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | */ 32 | 33 | #include "src/Geometry/OrthoMethods.h" 34 | #include "src/Geometry/EulerAngles.h" 35 | 36 | #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS 37 | #include "src/Geometry/Homogeneous.h" 38 | #include "src/Geometry/RotationBase.h" 39 | #include "src/Geometry/Rotation2D.h" 40 | #include "src/Geometry/Quaternion.h" 41 | #include "src/Geometry/AngleAxis.h" 42 | #include "src/Geometry/Transform.h" 43 | #include "src/Geometry/Translation.h" 44 | #include "src/Geometry/Scaling.h" 45 | #include "src/Geometry/Hyperplane.h" 46 | #include "src/Geometry/ParametrizedLine.h" 47 | #include "src/Geometry/AlignedBox.h" 48 | #include "src/Geometry/Umeyama.h" 49 | 50 | #if defined EIGEN_VECTORIZE_SSE 51 | #include "src/Geometry/arch/Geometry_SSE.h" 52 | #endif 53 | #endif 54 | 55 | #ifdef EIGEN2_SUPPORT 56 | #include "src/Eigen2Support/Geometry/All.h" 57 | #endif 58 | 59 | #include "src/Core/util/ReenableStupidWarnings.h" 60 | 61 | #endif // EIGEN_GEOMETRY_MODULE_H 62 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 63 | 64 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Householder: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_HOUSEHOLDER_MODULE_H 2 | #define EIGEN_HOUSEHOLDER_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Householder_Module Householder module 9 | * This module provides Householder transformations. 10 | * 11 | * \code 12 | * #include 13 | * \endcode 14 | */ 15 | 16 | #include "src/Householder/Householder.h" 17 | #include "src/Householder/HouseholderSequence.h" 18 | #include "src/Householder/BlockHouseholder.h" 19 | 20 | #include "src/Core/util/ReenableStupidWarnings.h" 21 | 22 | #endif // EIGEN_HOUSEHOLDER_MODULE_H 23 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 24 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/IterativeLinearSolvers: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 2 | #define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 3 | 4 | #include "SparseCore" 5 | #include "OrderingMethods" 6 | 7 | #include "src/Core/util/DisableStupidWarnings.h" 8 | 9 | /** 10 | * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module 11 | * 12 | * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse. 13 | * Those solvers are accessible via the following classes: 14 | * - ConjugateGradient for selfadjoint (hermitian) matrices, 15 | * - BiCGSTAB for general square matrices. 16 | * 17 | * These iterative solvers are associated with some preconditioners: 18 | * - IdentityPreconditioner - not really useful 19 | * - DiagonalPreconditioner - also called JAcobi preconditioner, work very well on diagonal dominant matrices. 20 | * - IncompleteILUT - incomplete LU factorization with dual thresholding 21 | * 22 | * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | */ 28 | 29 | #include "src/misc/Solve.h" 30 | #include "src/misc/SparseSolve.h" 31 | 32 | #include "src/IterativeLinearSolvers/IterativeSolverBase.h" 33 | #include "src/IterativeLinearSolvers/BasicPreconditioners.h" 34 | #include "src/IterativeLinearSolvers/ConjugateGradient.h" 35 | #include "src/IterativeLinearSolvers/BiCGSTAB.h" 36 | #include "src/IterativeLinearSolvers/IncompleteLUT.h" 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 41 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Jacobi: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_JACOBI_MODULE_H 2 | #define EIGEN_JACOBI_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup Jacobi_Module Jacobi module 9 | * This module provides Jacobi and Givens rotations. 10 | * 11 | * \code 12 | * #include 13 | * \endcode 14 | * 15 | * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation: 16 | * - MatrixBase::applyOnTheLeft() 17 | * - MatrixBase::applyOnTheRight(). 18 | */ 19 | 20 | #include "src/Jacobi/Jacobi.h" 21 | 22 | #include "src/Core/util/ReenableStupidWarnings.h" 23 | 24 | #endif // EIGEN_JACOBI_MODULE_H 25 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 26 | 27 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/LU: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_LU_MODULE_H 2 | #define EIGEN_LU_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup LU_Module LU module 9 | * This module includes %LU decomposition and related notions such as matrix inversion and determinant. 10 | * This module defines the following MatrixBase methods: 11 | * - MatrixBase::inverse() 12 | * - MatrixBase::determinant() 13 | * 14 | * \code 15 | * #include 16 | * \endcode 17 | */ 18 | 19 | #include "src/misc/Solve.h" 20 | #include "src/misc/Kernel.h" 21 | #include "src/misc/Image.h" 22 | #include "src/LU/FullPivLU.h" 23 | #include "src/LU/PartialPivLU.h" 24 | #ifdef EIGEN_USE_LAPACKE 25 | #include "src/LU/PartialPivLU_MKL.h" 26 | #endif 27 | #include "src/LU/Determinant.h" 28 | #include "src/LU/Inverse.h" 29 | 30 | #if defined EIGEN_VECTORIZE_SSE 31 | #include "src/LU/arch/Inverse_SSE.h" 32 | #endif 33 | 34 | #ifdef EIGEN2_SUPPORT 35 | #include "src/Eigen2Support/LU.h" 36 | #endif 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #endif // EIGEN_LU_MODULE_H 41 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 42 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/LeastSquares: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_REGRESSION_MODULE_H 2 | #define EIGEN_REGRESSION_MODULE_H 3 | 4 | #ifndef EIGEN2_SUPPORT 5 | #error LeastSquares is only available in Eigen2 support mode (define EIGEN2_SUPPORT) 6 | #endif 7 | 8 | // exclude from normal eigen3-only documentation 9 | #ifdef EIGEN2_SUPPORT 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "Eigenvalues" 16 | #include "Geometry" 17 | 18 | /** \defgroup LeastSquares_Module LeastSquares module 19 | * This module provides linear regression and related features. 20 | * 21 | * \code 22 | * #include 23 | * \endcode 24 | */ 25 | 26 | #include "src/Eigen2Support/LeastSquares.h" 27 | 28 | #include "src/Core/util/ReenableStupidWarnings.h" 29 | 30 | #endif // EIGEN2_SUPPORT 31 | 32 | #endif // EIGEN_REGRESSION_MODULE_H 33 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/MetisSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_METISSUPPORT_MODULE_H 2 | #define EIGEN_METISSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | 13 | /** \ingroup Support_modules 14 | * \defgroup MetisSupport_Module MetisSupport module 15 | * 16 | * \code 17 | * #include 18 | * \endcode 19 | * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 20 | * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink 21 | */ 22 | 23 | 24 | #include "src/MetisSupport/MetisSupport.h" 25 | 26 | #include "src/Core/util/ReenableStupidWarnings.h" 27 | 28 | #endif // EIGEN_METISSUPPORT_MODULE_H 29 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/PaStiXSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_PASTIXSUPPORT_MODULE_H 2 | #define EIGEN_PASTIXSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | extern "C" { 10 | #include 11 | #include 12 | } 13 | 14 | #ifdef complex 15 | #undef complex 16 | #endif 17 | 18 | /** \ingroup Support_modules 19 | * \defgroup PaStiXSupport_Module PaStiXSupport module 20 | * 21 | * This module provides an interface to the PaSTiX library. 22 | * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver. 23 | * It provides the two following main factorization classes: 24 | * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization. 25 | * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization. 26 | * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern). 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | * 32 | * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies. 33 | * The dependencies depend on how PaSTiX has been compiled. 34 | * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task. 35 | * 36 | */ 37 | 38 | #include "src/misc/Solve.h" 39 | #include "src/misc/SparseSolve.h" 40 | 41 | #include "src/PaStiXSupport/PaStiXSupport.h" 42 | 43 | 44 | #include "src/Core/util/ReenableStupidWarnings.h" 45 | 46 | #endif // EIGEN_PASTIXSUPPORT_MODULE_H 47 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/PardisoSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_PARDISOSUPPORT_MODULE_H 2 | #define EIGEN_PARDISOSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | 10 | #include 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup PardisoSupport_Module PardisoSupport module 14 | * 15 | * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers. 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | * 21 | * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies. 22 | * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration. 23 | * 24 | */ 25 | 26 | #include "src/PardisoSupport/PardisoSupport.h" 27 | 28 | #include "src/Core/util/ReenableStupidWarnings.h" 29 | 30 | #endif // EIGEN_PARDISOSUPPORT_MODULE_H 31 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/QR: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_QR_MODULE_H 2 | #define EIGEN_QR_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "Cholesky" 9 | #include "Jacobi" 10 | #include "Householder" 11 | 12 | /** \defgroup QR_Module QR module 13 | * 14 | * 15 | * 16 | * This module provides various QR decompositions 17 | * This module also provides some MatrixBase methods, including: 18 | * - MatrixBase::qr(), 19 | * 20 | * \code 21 | * #include 22 | * \endcode 23 | */ 24 | 25 | #include "src/misc/Solve.h" 26 | #include "src/QR/HouseholderQR.h" 27 | #include "src/QR/FullPivHouseholderQR.h" 28 | #include "src/QR/ColPivHouseholderQR.h" 29 | #ifdef EIGEN_USE_LAPACKE 30 | #include "src/QR/HouseholderQR_MKL.h" 31 | #include "src/QR/ColPivHouseholderQR_MKL.h" 32 | #endif 33 | 34 | #ifdef EIGEN2_SUPPORT 35 | #include "src/Eigen2Support/QR.h" 36 | #endif 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #ifdef EIGEN2_SUPPORT 41 | #include "Eigenvalues" 42 | #endif 43 | 44 | #endif // EIGEN_QR_MODULE_H 45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 46 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/QtAlignedMalloc: -------------------------------------------------------------------------------- 1 | 2 | #ifndef EIGEN_QTMALLOC_MODULE_H 3 | #define EIGEN_QTMALLOC_MODULE_H 4 | 5 | #include "Core" 6 | 7 | #if (!EIGEN_MALLOC_ALREADY_ALIGNED) 8 | 9 | #include "src/Core/util/DisableStupidWarnings.h" 10 | 11 | void *qMalloc(size_t size) 12 | { 13 | return Eigen::internal::aligned_malloc(size); 14 | } 15 | 16 | void qFree(void *ptr) 17 | { 18 | Eigen::internal::aligned_free(ptr); 19 | } 20 | 21 | void *qRealloc(void *ptr, size_t size) 22 | { 23 | void* newPtr = Eigen::internal::aligned_malloc(size); 24 | memcpy(newPtr, ptr, size); 25 | Eigen::internal::aligned_free(ptr); 26 | return newPtr; 27 | } 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif 32 | 33 | #endif // EIGEN_QTMALLOC_MODULE_H 34 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 35 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SPQRSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPQRSUPPORT_MODULE_H 2 | #define EIGEN_SPQRSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include "SuiteSparseQR.hpp" 9 | 10 | /** \ingroup Support_modules 11 | * \defgroup SPQRSupport_Module SuiteSparseQR module 12 | * 13 | * This module provides an interface to the SPQR library, which is part of the suitesparse package. 14 | * 15 | * \code 16 | * #include 17 | * \endcode 18 | * 19 | * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...). 20 | * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules 21 | * 22 | */ 23 | 24 | #include "src/misc/Solve.h" 25 | #include "src/misc/SparseSolve.h" 26 | #include "src/CholmodSupport/CholmodSupport.h" 27 | #include "src/SPQRSupport/SuiteSparseQRSupport.h" 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SVD: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SVD_MODULE_H 2 | #define EIGEN_SVD_MODULE_H 3 | 4 | #include "QR" 5 | #include "Householder" 6 | #include "Jacobi" 7 | 8 | #include "src/Core/util/DisableStupidWarnings.h" 9 | 10 | /** \defgroup SVD_Module SVD module 11 | * 12 | * 13 | * 14 | * This module provides SVD decomposition for matrices (both real and complex). 15 | * This decomposition is accessible via the following MatrixBase method: 16 | * - MatrixBase::jacobiSvd() 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | */ 22 | 23 | #include "src/misc/Solve.h" 24 | #include "src/SVD/JacobiSVD.h" 25 | #if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT) 26 | #include "src/SVD/JacobiSVD_MKL.h" 27 | #endif 28 | #include "src/SVD/UpperBidiagonalization.h" 29 | 30 | #ifdef EIGEN2_SUPPORT 31 | #include "src/Eigen2Support/SVD.h" 32 | #endif 33 | 34 | #include "src/Core/util/ReenableStupidWarnings.h" 35 | 36 | #endif // EIGEN_SVD_MODULE_H 37 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 38 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/Sparse: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSE_MODULE_H 2 | #define EIGEN_SPARSE_MODULE_H 3 | 4 | /** \defgroup Sparse_Module Sparse meta-module 5 | * 6 | * Meta-module including all related modules: 7 | * - \ref SparseCore_Module 8 | * - \ref OrderingMethods_Module 9 | * - \ref SparseCholesky_Module 10 | * - \ref SparseLU_Module 11 | * - \ref SparseQR_Module 12 | * - \ref IterativeLinearSolvers_Module 13 | * 14 | * \code 15 | * #include 16 | * \endcode 17 | */ 18 | 19 | #include "SparseCore" 20 | #include "OrderingMethods" 21 | #include "SparseCholesky" 22 | #include "SparseLU" 23 | #include "SparseQR" 24 | #include "IterativeLinearSolvers" 25 | 26 | #endif // EIGEN_SPARSE_MODULE_H 27 | 28 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SparseCholesky: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2013 Gael Guennebaud 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_SPARSECHOLESKY_MODULE_H 11 | #define EIGEN_SPARSECHOLESKY_MODULE_H 12 | 13 | #include "SparseCore" 14 | #include "OrderingMethods" 15 | 16 | #include "src/Core/util/DisableStupidWarnings.h" 17 | 18 | /** 19 | * \defgroup SparseCholesky_Module SparseCholesky module 20 | * 21 | * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices. 22 | * Those decompositions are accessible via the following classes: 23 | * - SimplicialLLt, 24 | * - SimplicialLDLt 25 | * 26 | * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module. 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | */ 32 | 33 | #ifdef EIGEN_MPL2_ONLY 34 | #error The SparseCholesky module has nothing to offer in MPL2 only mode 35 | #endif 36 | 37 | #include "src/misc/Solve.h" 38 | #include "src/misc/SparseSolve.h" 39 | #include "src/SparseCholesky/SimplicialCholesky.h" 40 | 41 | #ifndef EIGEN_MPL2_ONLY 42 | #include "src/SparseCholesky/SimplicialCholesky_impl.h" 43 | #endif 44 | 45 | #include "src/Core/util/ReenableStupidWarnings.h" 46 | 47 | #endif // EIGEN_SPARSECHOLESKY_MODULE_H 48 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SparseCore: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSECORE_MODULE_H 2 | #define EIGEN_SPARSECORE_MODULE_H 3 | 4 | #include "Core" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | /** 15 | * \defgroup SparseCore_Module SparseCore module 16 | * 17 | * This module provides a sparse matrix representation, and basic associatd matrix manipulations 18 | * and operations. 19 | * 20 | * See the \ref TutorialSparse "Sparse tutorial" 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * This module depends on: Core. 27 | */ 28 | 29 | namespace Eigen { 30 | 31 | /** The type used to identify a general sparse storage. */ 32 | struct Sparse {}; 33 | 34 | } 35 | 36 | #include "src/SparseCore/SparseUtil.h" 37 | #include "src/SparseCore/SparseMatrixBase.h" 38 | #include "src/SparseCore/CompressedStorage.h" 39 | #include "src/SparseCore/AmbiVector.h" 40 | #include "src/SparseCore/SparseMatrix.h" 41 | #include "src/SparseCore/MappedSparseMatrix.h" 42 | #include "src/SparseCore/SparseVector.h" 43 | #include "src/SparseCore/SparseBlock.h" 44 | #include "src/SparseCore/SparseTranspose.h" 45 | #include "src/SparseCore/SparseCwiseUnaryOp.h" 46 | #include "src/SparseCore/SparseCwiseBinaryOp.h" 47 | #include "src/SparseCore/SparseDot.h" 48 | #include "src/SparseCore/SparsePermutation.h" 49 | #include "src/SparseCore/SparseRedux.h" 50 | #include "src/SparseCore/SparseFuzzy.h" 51 | #include "src/SparseCore/ConservativeSparseSparseProduct.h" 52 | #include "src/SparseCore/SparseSparseProductWithPruning.h" 53 | #include "src/SparseCore/SparseProduct.h" 54 | #include "src/SparseCore/SparseDenseProduct.h" 55 | #include "src/SparseCore/SparseDiagonalProduct.h" 56 | #include "src/SparseCore/SparseTriangularView.h" 57 | #include "src/SparseCore/SparseSelfAdjointView.h" 58 | #include "src/SparseCore/TriangularSolver.h" 59 | #include "src/SparseCore/SparseView.h" 60 | 61 | #include "src/Core/util/ReenableStupidWarnings.h" 62 | 63 | #endif // EIGEN_SPARSECORE_MODULE_H 64 | 65 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SparseLU: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2012 Désiré Nuentsa-Wakam 5 | // Copyright (C) 2012 Gael Guennebaud 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_SPARSELU_MODULE_H 12 | #define EIGEN_SPARSELU_MODULE_H 13 | 14 | #include "SparseCore" 15 | 16 | /** 17 | * \defgroup SparseLU_Module SparseLU module 18 | * This module defines a supernodal factorization of general sparse matrices. 19 | * The code is fully optimized for supernode-panel updates with specialized kernels. 20 | * Please, see the documentation of the SparseLU class for more details. 21 | */ 22 | 23 | #include "src/misc/Solve.h" 24 | #include "src/misc/SparseSolve.h" 25 | 26 | // Ordering interface 27 | #include "OrderingMethods" 28 | 29 | #include "src/SparseLU/SparseLU_gemm_kernel.h" 30 | 31 | #include "src/SparseLU/SparseLU_Structs.h" 32 | #include "src/SparseLU/SparseLU_SupernodalMatrix.h" 33 | #include "src/SparseLU/SparseLUImpl.h" 34 | #include "src/SparseCore/SparseColEtree.h" 35 | #include "src/SparseLU/SparseLU_Memory.h" 36 | #include "src/SparseLU/SparseLU_heap_relax_snode.h" 37 | #include "src/SparseLU/SparseLU_relax_snode.h" 38 | #include "src/SparseLU/SparseLU_pivotL.h" 39 | #include "src/SparseLU/SparseLU_panel_dfs.h" 40 | #include "src/SparseLU/SparseLU_kernel_bmod.h" 41 | #include "src/SparseLU/SparseLU_panel_bmod.h" 42 | #include "src/SparseLU/SparseLU_column_dfs.h" 43 | #include "src/SparseLU/SparseLU_column_bmod.h" 44 | #include "src/SparseLU/SparseLU_copy_to_ucol.h" 45 | #include "src/SparseLU/SparseLU_pruneL.h" 46 | #include "src/SparseLU/SparseLU_Utils.h" 47 | #include "src/SparseLU/SparseLU.h" 48 | 49 | #endif // EIGEN_SPARSELU_MODULE_H 50 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SparseQR: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SPARSEQR_MODULE_H 2 | #define EIGEN_SPARSEQR_MODULE_H 3 | 4 | #include "SparseCore" 5 | #include "OrderingMethods" 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | /** \defgroup SparseQR_Module SparseQR module 9 | * \brief Provides QR decomposition for sparse matrices 10 | * 11 | * This module provides a simplicial version of the left-looking Sparse QR decomposition. 12 | * The columns of the input matrix should be reordered to limit the fill-in during the 13 | * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end. 14 | * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 15 | * of built-in and external ordering methods. 16 | * 17 | * \code 18 | * #include 19 | * \endcode 20 | * 21 | * 22 | */ 23 | 24 | #include "src/misc/Solve.h" 25 | #include "src/misc/SparseSolve.h" 26 | 27 | #include "OrderingMethods" 28 | #include "src/SparseCore/SparseColEtree.h" 29 | #include "src/SparseQR/SparseQR.h" 30 | 31 | #include "src/Core/util/ReenableStupidWarnings.h" 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Source/External/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 (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns 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 | -------------------------------------------------------------------------------- /Source/External/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 (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns 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 | -------------------------------------------------------------------------------- /Source/External/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 (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns 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 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/SuperLUSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_SUPERLUSUPPORT_MODULE_H 2 | #define EIGEN_SUPERLUSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | #ifdef EMPTY 9 | #define EIGEN_EMPTY_WAS_ALREADY_DEFINED 10 | #endif 11 | 12 | typedef int int_t; 13 | #include 14 | #include 15 | #include 16 | 17 | // slu_util.h defines a preprocessor token named EMPTY which is really polluting, 18 | // so we remove it in favor of a SUPERLU_EMPTY token. 19 | // If EMPTY was already defined then we don't undef it. 20 | 21 | #if defined(EIGEN_EMPTY_WAS_ALREADY_DEFINED) 22 | # undef EIGEN_EMPTY_WAS_ALREADY_DEFINED 23 | #elif defined(EMPTY) 24 | # undef EMPTY 25 | #endif 26 | 27 | #define SUPERLU_EMPTY (-1) 28 | 29 | namespace Eigen { struct SluMatrix; } 30 | 31 | /** \ingroup Support_modules 32 | * \defgroup SuperLUSupport_Module SuperLUSupport module 33 | * 34 | * This module provides an interface to the SuperLU library. 35 | * It provides the following factorization class: 36 | * - class SuperLU: a supernodal sequential LU factorization. 37 | * - class SuperILU: a supernodal sequential incomplete LU factorization (to be used as a preconditioner for iterative methods). 38 | * 39 | * \warning When including this module, you have to use SUPERLU_EMPTY instead of EMPTY which is no longer defined because it is too polluting. 40 | * 41 | * \code 42 | * #include 43 | * \endcode 44 | * 45 | * In order to use this module, the superlu headers must be accessible from the include paths, and your binary must be linked to the superlu library and its dependencies. 46 | * The dependencies depend on how superlu has been compiled. 47 | * For a cmake based project, you can use our FindSuperLU.cmake module to help you in this task. 48 | * 49 | */ 50 | 51 | #include "src/misc/Solve.h" 52 | #include "src/misc/SparseSolve.h" 53 | 54 | #include "src/SuperLUSupport/SuperLUSupport.h" 55 | 56 | 57 | #include "src/Core/util/ReenableStupidWarnings.h" 58 | 59 | #endif // EIGEN_SUPERLUSUPPORT_MODULE_H 60 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/UmfPackSupport: -------------------------------------------------------------------------------- 1 | #ifndef EIGEN_UMFPACKSUPPORT_MODULE_H 2 | #define EIGEN_UMFPACKSUPPORT_MODULE_H 3 | 4 | #include "SparseCore" 5 | 6 | #include "src/Core/util/DisableStupidWarnings.h" 7 | 8 | extern "C" { 9 | #include 10 | } 11 | 12 | /** \ingroup Support_modules 13 | * \defgroup UmfPackSupport_Module UmfPackSupport module 14 | * 15 | * This module provides an interface to the UmfPack library which is part of the suitesparse package. 16 | * It provides the following factorization class: 17 | * - class UmfPackLU: a multifrontal sequential LU factorization. 18 | * 19 | * \code 20 | * #include 21 | * \endcode 22 | * 23 | * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies. 24 | * The dependencies depend on how umfpack has been compiled. 25 | * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task. 26 | * 27 | */ 28 | 29 | #include "src/misc/Solve.h" 30 | #include "src/misc/SparseSolve.h" 31 | 32 | #include "src/UmfPackSupport/UmfPackSupport.h" 33 | 34 | #include "src/Core/util/ReenableStupidWarnings.h" 35 | 36 | #endif // EIGEN_UMFPACKSUPPORT_MODULE_H 37 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Core/CoreIterators.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2010 Gael Guennebaud 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_COREITERATORS_H 11 | #define EIGEN_COREITERATORS_H 12 | 13 | namespace Eigen { 14 | 15 | /* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core 16 | */ 17 | 18 | /** \ingroup SparseCore_Module 19 | * \class InnerIterator 20 | * \brief An InnerIterator allows to loop over the element of a sparse (or dense) matrix or expression 21 | * 22 | * todo 23 | */ 24 | 25 | // generic version for dense matrix and expressions 26 | template class DenseBase::InnerIterator 27 | { 28 | protected: 29 | typedef typename Derived::Scalar Scalar; 30 | typedef typename Derived::Index Index; 31 | 32 | enum { IsRowMajor = (Derived::Flags&RowMajorBit)==RowMajorBit }; 33 | public: 34 | EIGEN_STRONG_INLINE InnerIterator(const Derived& expr, Index outer) 35 | : m_expression(expr), m_inner(0), m_outer(outer), m_end(expr.innerSize()) 36 | {} 37 | 38 | EIGEN_STRONG_INLINE Scalar value() const 39 | { 40 | return (IsRowMajor) ? m_expression.coeff(m_outer, m_inner) 41 | : m_expression.coeff(m_inner, m_outer); 42 | } 43 | 44 | EIGEN_STRONG_INLINE InnerIterator& operator++() { m_inner++; return *this; } 45 | 46 | EIGEN_STRONG_INLINE Index index() const { return m_inner; } 47 | inline Index row() const { return IsRowMajor ? m_outer : index(); } 48 | inline Index col() const { return IsRowMajor ? index() : m_outer; } 49 | 50 | EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; } 51 | 52 | protected: 53 | const Derived& m_expression; 54 | Index m_inner; 55 | const Index m_outer; 56 | const Index m_end; 57 | }; 58 | 59 | } // end namespace Eigen 60 | 61 | #endif // EIGEN_COREITERATORS_H 62 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Core/arch/Default/Settings.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2010 Gael Guennebaud 5 | // Copyright (C) 2006-2008 Benoit Jacob 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 | 12 | /* All the parameters defined in this file can be specialized in the 13 | * architecture specific files, and/or by the user. 14 | * More to come... */ 15 | 16 | #ifndef EIGEN_DEFAULT_SETTINGS_H 17 | #define EIGEN_DEFAULT_SETTINGS_H 18 | 19 | /** Defines the maximal loop size to enable meta unrolling of loops. 20 | * Note that the value here is expressed in Eigen's own notion of "number of FLOPS", 21 | * it does not correspond to the number of iterations or the number of instructions 22 | */ 23 | #ifndef EIGEN_UNROLLING_LIMIT 24 | #define EIGEN_UNROLLING_LIMIT 100 25 | #endif 26 | 27 | /** Defines the threshold between a "small" and a "large" matrix. 28 | * This threshold is mainly used to select the proper product implementation. 29 | */ 30 | #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 31 | #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8 32 | #endif 33 | 34 | /** Defines the maximal width of the blocks used in the triangular product and solver 35 | * for vectors (level 2 blas xTRMV and xTRSV). The default is 8. 36 | */ 37 | #ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 38 | #define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8 39 | #endif 40 | 41 | 42 | /** Defines the default number of registers available for that architecture. 43 | * Currently it must be 8 or 16. Other values will fail. 44 | */ 45 | #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 46 | #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8 47 | #endif 48 | 49 | #endif // EIGEN_DEFAULT_SETTINGS_H 50 | -------------------------------------------------------------------------------- /Source/External/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 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_WARNINGS_DISABLED 2 | #undef EIGEN_WARNINGS_DISABLED 3 | 4 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS 5 | #ifdef _MSC_VER 6 | #pragma warning( pop ) 7 | #elif defined __INTEL_COMPILER 8 | #pragma warning pop 9 | #elif defined __clang__ 10 | #pragma clang diagnostic pop 11 | #endif 12 | #endif 13 | 14 | #endif // EIGEN_WARNINGS_DISABLED 15 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Eigen2Support/Macros.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2011 Benoit Jacob 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 EIGEN2_MACROS_H 11 | #define EIGEN2_MACROS_H 12 | 13 | #define ei_assert eigen_assert 14 | #define ei_internal_assert eigen_internal_assert 15 | 16 | #define EIGEN_ALIGN_128 EIGEN_ALIGN16 17 | 18 | #define EIGEN_ARCH_WANTS_ALIGNMENT EIGEN_ALIGN_STATICALLY 19 | 20 | #endif // EIGEN2_MACROS_H 21 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Eigen2Support/Memory.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2011 Benoit Jacob 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 EIGEN2_MEMORY_H 11 | #define EIGEN2_MEMORY_H 12 | 13 | namespace Eigen { 14 | 15 | inline void* ei_aligned_malloc(size_t size) { return internal::aligned_malloc(size); } 16 | inline void ei_aligned_free(void *ptr) { internal::aligned_free(ptr); } 17 | inline void* ei_aligned_realloc(void *ptr, size_t new_size, size_t old_size) { return internal::aligned_realloc(ptr, new_size, old_size); } 18 | inline void* ei_handmade_aligned_malloc(size_t size) { return internal::handmade_aligned_malloc(size); } 19 | inline void ei_handmade_aligned_free(void *ptr) { internal::handmade_aligned_free(ptr); } 20 | 21 | template inline void* ei_conditional_aligned_malloc(size_t size) 22 | { 23 | return internal::conditional_aligned_malloc(size); 24 | } 25 | template inline void ei_conditional_aligned_free(void *ptr) 26 | { 27 | internal::conditional_aligned_free(ptr); 28 | } 29 | template inline void* ei_conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size) 30 | { 31 | return internal::conditional_aligned_realloc(ptr, new_size, old_size); 32 | } 33 | 34 | template inline T* ei_aligned_new(size_t size) 35 | { 36 | return internal::aligned_new(size); 37 | } 38 | template inline void ei_aligned_delete(T *ptr, size_t size) 39 | { 40 | return internal::aligned_delete(ptr, size); 41 | } 42 | 43 | } // end namespace Eigen 44 | 45 | #endif // EIGEN2_MACROS_H 46 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Eigen2Support/QR.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 5 | // Copyright (C) 2011 Benoit Jacob 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 EIGEN2_QR_H 12 | #define EIGEN2_QR_H 13 | 14 | namespace Eigen { 15 | 16 | template 17 | class QR : public HouseholderQR 18 | { 19 | public: 20 | 21 | typedef HouseholderQR Base; 22 | typedef Block MatrixRBlockType; 23 | 24 | QR() : Base() {} 25 | 26 | template 27 | explicit QR(const T& t) : Base(t) {} 28 | 29 | template 30 | bool solve(const MatrixBase& b, ResultType *result) const 31 | { 32 | *result = static_cast(this)->solve(b); 33 | return true; 34 | } 35 | 36 | MatrixType matrixQ(void) const { 37 | MatrixType ret = MatrixType::Identity(this->rows(), this->cols()); 38 | ret = this->householderQ() * ret; 39 | return ret; 40 | } 41 | 42 | bool isFullRank() const { 43 | return true; 44 | } 45 | 46 | const TriangularView 47 | matrixR(void) const 48 | { 49 | int cols = this->cols(); 50 | return MatrixRBlockType(this->matrixQR(), 0, 0, cols, cols).template triangularView(); 51 | } 52 | }; 53 | 54 | /** \return the QR decomposition of \c *this. 55 | * 56 | * \sa class QR 57 | */ 58 | template 59 | const QR::PlainObject> 60 | MatrixBase::qr() const 61 | { 62 | return QR(eval()); 63 | } 64 | 65 | } // end namespace Eigen 66 | 67 | #endif // EIGEN2_QR_H 68 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/Eigen2Support/TriangularSolver.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2010 Gael Guennebaud 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_TRIANGULAR_SOLVER2_H 11 | #define EIGEN_TRIANGULAR_SOLVER2_H 12 | 13 | namespace Eigen { 14 | 15 | const unsigned int UnitDiagBit = UnitDiag; 16 | const unsigned int SelfAdjointBit = SelfAdjoint; 17 | const unsigned int UpperTriangularBit = Upper; 18 | const unsigned int LowerTriangularBit = Lower; 19 | 20 | const unsigned int UpperTriangular = Upper; 21 | const unsigned int LowerTriangular = Lower; 22 | const unsigned int UnitUpperTriangular = UnitUpper; 23 | const unsigned int UnitLowerTriangular = UnitLower; 24 | 25 | template 26 | template 27 | typename ExpressionType::PlainObject 28 | Flagged::solveTriangular(const MatrixBase& other) const 29 | { 30 | return m_matrix.template triangularView().solve(other.derived()); 31 | } 32 | 33 | template 34 | template 35 | void Flagged::solveTriangularInPlace(const MatrixBase& other) const 36 | { 37 | m_matrix.template triangularView().solveInPlace(other.derived()); 38 | } 39 | 40 | } // end namespace Eigen 41 | 42 | #endif // EIGEN_TRIANGULAR_SOLVER2_H 43 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/SparseCore/SparseFuzzy.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 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_SPARSE_FUZZY_H 11 | #define EIGEN_SPARSE_FUZZY_H 12 | 13 | // template 14 | // template 15 | // bool SparseMatrixBase::isApprox( 16 | // const OtherDerived& other, 17 | // typename NumTraits::Real prec 18 | // ) const 19 | // { 20 | // const typename internal::nested::type nested(derived()); 21 | // const typename internal::nested::type otherNested(other.derived()); 22 | // return (nested - otherNested).cwise().abs2().sum() 23 | // <= prec * prec * (std::min)(nested.cwise().abs2().sum(), otherNested.cwise().abs2().sum()); 24 | // } 25 | 26 | #endif // EIGEN_SPARSE_FUZZY_H 27 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/SparseCore/SparseRedux.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008 Gael Guennebaud 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_SPARSEREDUX_H 11 | #define EIGEN_SPARSEREDUX_H 12 | 13 | namespace Eigen { 14 | 15 | template 16 | typename internal::traits::Scalar 17 | SparseMatrixBase::sum() const 18 | { 19 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 20 | Scalar res(0); 21 | for (Index j=0; j 28 | typename internal::traits >::Scalar 29 | SparseMatrix<_Scalar,_Options,_Index>::sum() const 30 | { 31 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 32 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 33 | } 34 | 35 | template 36 | typename internal::traits >::Scalar 37 | SparseVector<_Scalar,_Options,_Index>::sum() const 38 | { 39 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 40 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 41 | } 42 | 43 | } // end namespace Eigen 44 | 45 | #endif // EIGEN_SPARSEREDUX_H 46 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2009 Gael Guennebaud 5 | // Copyright (C) 2006-2008 Benoit Jacob 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 | // This file is a base class plugin containing common coefficient wise functions. 12 | 13 | /** \returns an expression of the difference of \c *this and \a other 14 | * 15 | * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-(). 16 | * 17 | * \sa class CwiseBinaryOp, operator-=() 18 | */ 19 | EIGEN_MAKE_CWISE_BINARY_OP(operator-,internal::scalar_difference_op) 20 | 21 | /** \returns an expression of the sum of \c *this and \a other 22 | * 23 | * \note If you want to add a given scalar to all coefficients, see Cwise::operator+(). 24 | * 25 | * \sa class CwiseBinaryOp, operator+=() 26 | */ 27 | EIGEN_MAKE_CWISE_BINARY_OP(operator+,internal::scalar_sum_op) 28 | 29 | /** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other 30 | * 31 | * The template parameter \a CustomBinaryOp is the type of the functor 32 | * of the custom operator (see class CwiseBinaryOp for an example) 33 | * 34 | * Here is an example illustrating the use of custom functors: 35 | * \include class_CwiseBinaryOp.cpp 36 | * Output: \verbinclude class_CwiseBinaryOp.out 37 | * 38 | * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct() 39 | */ 40 | template 41 | EIGEN_STRONG_INLINE const CwiseBinaryOp 42 | binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS &other, const CustomBinaryOp& func = CustomBinaryOp()) const 43 | { 44 | return CwiseBinaryOp(derived(), other.derived(), func); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Source/External/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2009 Gael Guennebaud 5 | // Copyright (C) 2006-2008 Benoit Jacob 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 | // This file is a base class plugin containing matrix specifics coefficient wise functions. 12 | 13 | /** \returns an expression of the coefficient-wise absolute value of \c *this 14 | * 15 | * Example: \include MatrixBase_cwiseAbs.cpp 16 | * Output: \verbinclude MatrixBase_cwiseAbs.out 17 | * 18 | * \sa cwiseAbs2() 19 | */ 20 | EIGEN_STRONG_INLINE const CwiseUnaryOp, const Derived> 21 | cwiseAbs() const { return derived(); } 22 | 23 | /** \returns an expression of the coefficient-wise squared absolute value of \c *this 24 | * 25 | * Example: \include MatrixBase_cwiseAbs2.cpp 26 | * Output: \verbinclude MatrixBase_cwiseAbs2.out 27 | * 28 | * \sa cwiseAbs() 29 | */ 30 | EIGEN_STRONG_INLINE const CwiseUnaryOp, const Derived> 31 | cwiseAbs2() const { return derived(); } 32 | 33 | /** \returns an expression of the coefficient-wise square root of *this. 34 | * 35 | * Example: \include MatrixBase_cwiseSqrt.cpp 36 | * Output: \verbinclude MatrixBase_cwiseSqrt.out 37 | * 38 | * \sa cwisePow(), cwiseSquare() 39 | */ 40 | inline const CwiseUnaryOp, const Derived> 41 | cwiseSqrt() const { return derived(); } 42 | 43 | /** \returns an expression of the coefficient-wise inverse of *this. 44 | * 45 | * Example: \include MatrixBase_cwiseInverse.cpp 46 | * Output: \verbinclude MatrixBase_cwiseInverse.out 47 | * 48 | * \sa cwiseProduct() 49 | */ 50 | inline const CwiseUnaryOp, const Derived> 51 | cwiseInverse() const { return derived(); } 52 | 53 | -------------------------------------------------------------------------------- /Source/External/enkiTS/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(enkiTS STATIC 2 | TaskScheduler.cpp 3 | TaskScheduler.h 4 | LockLessMultiReadPipe.h 5 | ) 6 | 7 | 8 | if( UNIX ) 9 | set( CMAKE_THREAD_PREFER_PTHREAD TRUE ) 10 | find_package( Threads REQUIRED ) 11 | if( CMAKE_USE_PTHREADS_INIT ) 12 | set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread" ) 13 | endif() 14 | target_link_libraries( enkiTS ${CMAKE_THREAD_LIBS_INIT} ) 15 | endif() 16 | 17 | target_compile_features(enkiTS PRIVATE cxx_std_11) 18 | target_include_directories(enkiTS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 19 | -------------------------------------------------------------------------------- /Source/External/gl3w/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | 3 | project(gl3w) 4 | 5 | add_library(gl3w src/gl3w.c) 6 | 7 | if (UNIX) 8 | target_link_libraries(gl3w dl) 9 | endif() 10 | 11 | target_include_directories(gl3w PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -------------------------------------------------------------------------------- /Source/External/glfw/src/posix_time.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.1 POSIX - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2002-2006 Marcus Geelnard 5 | // Copyright (c) 2006-2010 Camilla Berglund 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | 28 | #ifndef _glfw3_posix_time_h_ 29 | #define _glfw3_posix_time_h_ 30 | 31 | #define _GLFW_PLATFORM_LIBRARY_TIME_STATE _GLFWtimePOSIX posix_time 32 | 33 | #include 34 | 35 | 36 | // POSIX-specific global timer data 37 | // 38 | typedef struct _GLFWtimePOSIX 39 | { 40 | GLboolean monotonic; 41 | double resolution; 42 | uint64_t base; 43 | 44 | } _GLFWtimePOSIX; 45 | 46 | 47 | void _glfwInitTimer(void); 48 | 49 | #endif // _glfw3_posix_time_h_ 50 | -------------------------------------------------------------------------------- /Source/External/glfw/src/posix_tls.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.1 POSIX - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2002-2006 Marcus Geelnard 5 | // Copyright (c) 2006-2010 Camilla Berglund 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | 28 | #ifndef _glfw3_posix_tls_h_ 29 | #define _glfw3_posix_tls_h_ 30 | 31 | #include 32 | 33 | #define _GLFW_PLATFORM_LIBRARY_TLS_STATE _GLFWtlsPOSIX posix_tls 34 | 35 | 36 | // POSIX-specific global TLS data 37 | // 38 | typedef struct _GLFWtlsPOSIX 39 | { 40 | pthread_key_t context; 41 | 42 | } _GLFWtlsPOSIX; 43 | 44 | 45 | int _glfwCreateContextTLS(void); 46 | void _glfwDestroyContextTLS(void); 47 | void _glfwSetContextTLS(_GLFWwindow* context); 48 | 49 | #endif // _glfw3_posix_tls_h_ 50 | -------------------------------------------------------------------------------- /Source/External/glfw/src/win32_tls.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.1 Win32 - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2002-2006 Marcus Geelnard 5 | // Copyright (c) 2006-2010 Camilla Berglund 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | 28 | #ifndef _glfw3_win32_tls_h_ 29 | #define _glfw3_win32_tls_h_ 30 | 31 | #define _GLFW_PLATFORM_LIBRARY_TLS_STATE _GLFWtlsWin32 win32_tls 32 | 33 | 34 | // Win32-specific global TLS data 35 | // 36 | typedef struct _GLFWtlsWin32 37 | { 38 | GLboolean allocated; 39 | DWORD context; 40 | 41 | } _GLFWtlsWin32; 42 | 43 | 44 | int _glfwCreateContextTLS(void); 45 | void _glfwDestroyContextTLS(void); 46 | void _glfwSetContextTLS(_GLFWwindow* context); 47 | 48 | #endif // _glfw3_win32_tls_h_ 49 | -------------------------------------------------------------------------------- /Source/External/glfw/src/winmm_joystick.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.1 WinMM - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2006-2014 Camilla Berglund 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it 12 | // freely, subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; you must not 15 | // claim that you wrote the original software. If you use this software 16 | // in a product, an acknowledgment in the product documentation would 17 | // be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, and must not 20 | // be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source 23 | // distribution. 24 | // 25 | //======================================================================== 26 | 27 | #ifndef _glfw3_winmm_joystick_h_ 28 | #define _glfw3_winmm_joystick_h_ 29 | 30 | #define _GLFW_PLATFORM_LIBRARY_JOYSTICK_STATE \ 31 | _GLFWjoystickWinMM winmm_js[GLFW_JOYSTICK_LAST + 1] 32 | 33 | 34 | // WinMM-specific per-joystick data 35 | // 36 | typedef struct _GLFWjoystickWinMM 37 | { 38 | float axes[6]; 39 | unsigned char buttons[36]; // 32 buttons plus one hat 40 | char* name; 41 | } _GLFWjoystickWinMM; 42 | 43 | 44 | void _glfwInitJoysticks(void); 45 | void _glfwTerminateJoysticks(void); 46 | 47 | #endif // _glfw3_winmm_joystick_h_ 48 | -------------------------------------------------------------------------------- /Source/External/glfw/src/xkb_unicode.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.1 Linux - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2014 Jonas Ådahl 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it 12 | // freely, subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; you must not 15 | // claim that you wrote the original software. If you use this software 16 | // in a product, an acknowledgment in the product documentation would 17 | // be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, and must not 20 | // be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source 23 | // distribution. 24 | // 25 | //======================================================================== 26 | 27 | #ifndef _glfw3_xkb_unicode_h_ 28 | #define _glfw3_xkb_unicode_h_ 29 | 30 | 31 | long _glfwKeySym2Unicode(unsigned int keysym); 32 | 33 | #endif // _glfw3_xkb_unicode_h_ 34 | -------------------------------------------------------------------------------- /Source/External/glm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(glm INTERFACE) 2 | target_include_directories(glm INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) 3 | -------------------------------------------------------------------------------- /Source/External/glm/glm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(NAME glm_dummy) 2 | 3 | file(GLOB ROOT_SOURCE *.cpp) 4 | file(GLOB ROOT_INLINE *.inl) 5 | file(GLOB ROOT_HEADER *.hpp) 6 | file(GLOB ROOT_TEXT ../*.txt) 7 | file(GLOB ROOT_MD ../*.md) 8 | file(GLOB ROOT_NAT ../util/glm.natvis) 9 | 10 | file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp) 11 | file(GLOB_RECURSE CORE_INLINE ./detail/*.inl) 12 | file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp) 13 | 14 | file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp) 15 | file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl) 16 | file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp) 17 | 18 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) 19 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) 20 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) 21 | 22 | source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD}) 23 | source_group("Core Files" FILES ${CORE_SOURCE}) 24 | source_group("Core Files" FILES ${CORE_INLINE}) 25 | source_group("Core Files" FILES ${CORE_HEADER}) 26 | source_group("GTC Files" FILES ${GTC_SOURCE}) 27 | source_group("GTC Files" FILES ${GTC_INLINE}) 28 | source_group("GTC Files" FILES ${GTC_HEADER}) 29 | source_group("GTX Files" FILES ${GTX_SOURCE}) 30 | source_group("GTX Files" FILES ${GTX_INLINE}) 31 | source_group("GTX Files" FILES ${GTX_HEADER}) 32 | 33 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 34 | 35 | if(GLM_TEST_ENABLE) 36 | add_executable(${NAME} ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT} 37 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} 38 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} 39 | ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} 40 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}) 41 | endif(GLM_TEST_ENABLE) 42 | 43 | #add_library(glm STATIC glm.cpp) 44 | #add_library(glm_shared SHARED glm.cpp) 45 | -------------------------------------------------------------------------------- /Source/External/glm/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/common.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_common.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/intrinsic_exponential.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_exponential.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/intrinsic_integer.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_integer.hpp 25 | /// @date 2009-05-11 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "glm/glm.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | __m128i _mm_bit_interleave_si128(__m128i x); 41 | __m128i _mm_bit_interleave_si128(__m128i x, __m128i y); 42 | 43 | }//namespace detail 44 | }//namespace glm 45 | 46 | #include "intrinsic_integer.inl" 47 | 48 | #endif//GLM_ARCH 49 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/intrinsic_trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_trigonometric.hpp 25 | /// @date 2009-06-09 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "setup.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | 41 | }//namespace detail 42 | }//namespace glm 43 | 44 | #include "intrinsic_trigonometric.inl" 45 | 46 | #endif//GLM_ARCH 47 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/intrinsic_trigonometric.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_trigonometric.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/intrinsic_vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_vector_relational.hpp 25 | /// @date 2009-06-09 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "setup.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | 41 | }//namespace detail 42 | }//namespace glm 43 | 44 | #include "intrinsic_vector_relational.inl" 45 | 46 | #endif//GLM_ARCH 47 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/precision.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/precision.hpp 29 | /// @date 2013-04-01 / 2013-04-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | namespace glm 36 | { 37 | enum precision 38 | { 39 | highp, 40 | mediump, 41 | lowp, 42 | simd, 43 | defaultp = highp 44 | }; 45 | }//namespace glm 46 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_half.hpp 29 | /// @date 2008-08-17 / 2011-09-20 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "setup.hpp" 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | typedef short hdata; 41 | 42 | GLM_FUNC_DECL float toFloat32(hdata value); 43 | GLM_FUNC_DECL hdata toFloat16(float const & value); 44 | 45 | }//namespace detail 46 | }//namespace glm 47 | 48 | #include "type_half.inl" 49 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_mat.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_vec.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/type_vec4_avx.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_tvec4_avx.inl 29 | /// @date 2014-12-01 / 2014-12-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm{ 34 | namespace detail 35 | { 36 | 37 | }//namespace detail 38 | 39 | 40 | 41 | }//namespace glm 42 | -------------------------------------------------------------------------------- /Source/External/glm/glm/detail/type_vec4_avx2.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_tvec4_avx2.inl 29 | /// @date 2014-12-01 / 2014-12-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm{ 34 | namespace detail 35 | { 36 | 37 | }//namespace detail 38 | 39 | 40 | 41 | }//namespace glm 42 | -------------------------------------------------------------------------------- /Source/External/glm/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/exponential.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_exponential.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/geometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_geometric.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_swizzle 28 | /// @file glm/gtc/swizzle.inl 29 | /// @date 2009-06-14 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_vec1 28 | /// @file glm/gtc/vec1.inl 29 | /// @date 2013-03-16 / 2013-03-16 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_mixed_product 28 | /// @file glm/gtx/mixed_product.inl 29 | /// @date 2007-04-03 / 2008-09-17 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER T mixedProduct 37 | ( 38 | tvec3 const & v1, 39 | tvec3 const & v2, 40 | tvec3 const & v3 41 | ) 42 | { 43 | return dot(cross(v1, v2), v3); 44 | } 45 | }//namespace glm 46 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_normal 28 | /// @file glm/gtx/normal.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 37 | ( 38 | tvec3 const & p1, 39 | tvec3 const & p2, 40 | tvec3 const & p3 41 | ) 42 | { 43 | return normalize(cross(p1 - p2, p1 - p3)); 44 | } 45 | }//namespace glm 46 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_number_precision 28 | /// @file glm/gtx/number_precision.inl 29 | /// @date 2007-05-10 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_optimum_pow 28 | /// @file glm/gtx/optimum_pow.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 37 | { 38 | return x * x; 39 | } 40 | 41 | template 42 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 43 | { 44 | return x * x * x; 45 | } 46 | 47 | template 48 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 49 | { 50 | return (x * x) * (x * x); 51 | } 52 | }//namespace glm 53 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_perpendicular 28 | /// @file glm/gtx/perpendicular.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER vecType perp 37 | ( 38 | vecType const & x, 39 | vecType const & Normal 40 | ) 41 | { 42 | return x - proj(x, Normal); 43 | } 44 | }//namespace glm 45 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_projection 28 | /// @file glm/gtx/projection.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 37 | { 38 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 39 | } 40 | }//namespace glm 41 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_raw_data 28 | /// @file glm/gtx/raw_data.inl 29 | /// @date 2008-11-19 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_std_based_type 28 | /// @file glm/gtx/std_based_type.inl 29 | /// @date 2008-06-08 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Source/External/glm/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_type_aligned 28 | /// @file glm/gtc/type_aligned.inl 29 | /// @date 2014-11-23 / 2014-11-23 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Source/External/glm/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/integer.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_integer.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/matrix.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_matrix.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/packing.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_packing.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/trigonometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_trigonometric.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec2.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec2.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec3.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec3.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec4.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec4.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/glm/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vector_relational.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_vector_relational.hpp" 36 | -------------------------------------------------------------------------------- /Source/External/imgui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(imgui STATIC 2 | imgui.cpp 3 | imgui_demo.cpp 4 | imgui_draw.cpp 5 | imgui_impl_glfw_gl3.cpp 6 | ) 7 | target_link_libraries(imgui glm gl3w glfw) 8 | target_include_directories(imgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 9 | -------------------------------------------------------------------------------- /Source/External/imgui/imgui_impl_glfw_gl3.h: -------------------------------------------------------------------------------- 1 | // ImGui GLFW binding with OpenGL3 + shaders 2 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 3 | // If you use this binding you'll need to call 4 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXXX_NewFrame(), ImGui::Render() and ImGui_ImplXXXX_Shutdown(). 4 | // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. 5 | // https://github.com/ocornut/imgui 6 | 7 | struct GLFWwindow; 8 | 9 | IMGUI_API bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); 10 | IMGUI_API void ImGui_ImplGlfwGL3_Shutdown(); 11 | IMGUI_API void ImGui_ImplGlfwGL3_NewFrame(); 12 | 13 | // Use if you want to reset your rendering device without losing ImGui state. 14 | IMGUI_API void ImGui_ImplGlfwGL3_InvalidateDeviceObjects(); 15 | IMGUI_API bool ImGui_ImplGlfwGL3_CreateDeviceObjects(); 16 | 17 | // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) 18 | // Provided here if you want to chain callbacks. 19 | // You can also handle inputs yourself and use those as a reference. 20 | IMGUI_API void ImGui_ImplGlfwGL3_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods); 21 | IMGUI_API void ImGui_ImplGlfwGL3_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset); 22 | IMGUI_API void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); 23 | IMGUI_API void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c); 24 | -------------------------------------------------------------------------------- /Source/External/nfd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include_directories(include) 2 | 3 | if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 4 | add_library(nfd STATIC 5 | nfd_common.c 6 | nfd_win.cpp 7 | ) 8 | endif() 9 | 10 | if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 11 | add_library(nfd STATIC 12 | nfd_common.c 13 | nfd_cocoa.m 14 | ) 15 | endif() 16 | 17 | if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") 18 | 19 | add_library(nfd STATIC 20 | nfd_common.c 21 | nfd_gtk.c 22 | ) 23 | 24 | find_package(PkgConfig REQUIRED) 25 | pkg_check_modules(GTK3 REQUIRED gtk+-3.0) 26 | 27 | link_directories(${GTK3_LIBRARY_DIRS}) 28 | target_include_directories(nfd PRIVATE ${GTK3_INCLUDE_DIRS}) 29 | target_link_libraries(nfd ${GTK3_LIBRARIES}) 30 | target_compile_options(nfd PRIVATE ${GTK3_CFLAGS_OTHER}) 31 | 32 | endif() 33 | 34 | target_include_directories(nfd PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) 35 | -------------------------------------------------------------------------------- /Source/External/nfd/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | Native File Dialog 3 | 4 | Internal, common across platforms 5 | 6 | http://www.frogtoss.com/labs 7 | */ 8 | 9 | 10 | #ifndef _NFD_COMMON_H 11 | #define _NFD_COMMON_H 12 | 13 | #define NFD_MAX_STRLEN 256 14 | #define _NFD_UNUSED(x) ((void)x) 15 | 16 | void *NFDi_Malloc( size_t bytes ); 17 | void NFDi_Free( void *ptr ); 18 | void NFDi_SetError( const char *msg ); 19 | void NFDi_SafeStrncpy( char *dst, const char *src, size_t maxCopy ); 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Source/External/nfd/include/nfd.h: -------------------------------------------------------------------------------- 1 | /* 2 | Native File Dialog 3 | 4 | User API 5 | 6 | http://www.frogtoss.com/labs 7 | */ 8 | 9 | 10 | #ifndef _NFD_H 11 | #define _NFD_H 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | #include 18 | 19 | /* denotes UTF-8 char */ 20 | typedef char nfdchar_t; 21 | 22 | /* opaque data structure -- see NFD_PathSet_* */ 23 | typedef struct { 24 | nfdchar_t *buf; 25 | size_t *indices; /* byte offsets into buf */ 26 | size_t count; /* number of indices into buf */ 27 | }nfdpathset_t; 28 | 29 | typedef enum { 30 | NFD_ERROR, /* programmatic error */ 31 | NFD_OKAY, /* user pressed okay, or successful return */ 32 | NFD_CANCEL /* user pressed cancel */ 33 | }nfdresult_t; 34 | 35 | 36 | /* nfd_.c */ 37 | 38 | /* single file open dialog */ 39 | nfdresult_t NFD_OpenDialog( const nfdchar_t *filterList, 40 | const nfdchar_t *defaultPath, 41 | nfdchar_t **outPath ); 42 | 43 | /* multiple file open dialog */ 44 | nfdresult_t NFD_OpenDialogMultiple( const nfdchar_t *filterList, 45 | const nfdchar_t *defaultPath, 46 | nfdpathset_t *outPaths ); 47 | 48 | /* save dialog */ 49 | nfdresult_t NFD_SaveDialog( const nfdchar_t *filterList, 50 | const nfdchar_t *defaultPath, 51 | nfdchar_t **outPath ); 52 | 53 | /* nfd_common.c */ 54 | 55 | /* get last error -- set when nfdresult_t returns NFD_ERROR */ 56 | const char *NFD_GetError( void ); 57 | /* get the number of entries stored in pathSet */ 58 | size_t NFD_PathSet_GetCount( const nfdpathset_t *pathSet ); 59 | /* Get the UTF-8 path at offset index */ 60 | nfdchar_t *NFD_PathSet_GetPath( const nfdpathset_t *pathSet, size_t index ); 61 | /* Free the pathSet */ 62 | void NFD_PathSet_Free( nfdpathset_t *pathSet ); 63 | 64 | 65 | #ifdef __cplusplus 66 | } 67 | #endif 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /Source/External/nfd/nfd_common.h: -------------------------------------------------------------------------------- 1 | /* 2 | Native File Dialog 3 | 4 | Internal, common across platforms 5 | 6 | http://www.frogtoss.com/labs 7 | */ 8 | 9 | 10 | #ifndef _NFD_COMMON_H 11 | #define _NFD_COMMON_H 12 | 13 | #include "nfd.h" 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | #define NFD_MAX_STRLEN 256 20 | #define _NFD_UNUSED(x) ((void)x) 21 | 22 | #define NFD_UTF8_BOM "\xEF\xBB\xBF" 23 | 24 | 25 | void *NFDi_Malloc( size_t bytes ); 26 | void NFDi_Free( void *ptr ); 27 | void NFDi_SetError( const char *msg ); 28 | int NFDi_SafeStrncpy( char *dst, const char *src, size_t maxCopy ); 29 | size_t NFDi_UTF8_Strlen( const nfdchar_t *str ); 30 | int NFDi_IsFilterSegmentChar( char ch ); 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Source/External/stb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(stb STATIC stb.c) 2 | target_include_directories(stb PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -------------------------------------------------------------------------------- /Source/External/stb/stb.c: -------------------------------------------------------------------------------- 1 | #define STB_IMAGE_WRITE_IMPLEMENTATION 2 | #include "stb_image_write.h" 3 | 4 | #define STB_IMAGE_IMPLEMENTATION 5 | #include "stb_image.h" 6 | 7 | #define STB_IMAGE_RESIZE_IMPLEMENTATION 8 | #include "stb_image_resize.h" 9 | -------------------------------------------------------------------------------- /Source/External/tinyobjloader/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(tinyobjloader STATIC tiny_obj_loader.cc) 2 | target_compile_features(tinyobjloader PRIVATE cxx_std_11) 3 | target_include_directories(tinyobjloader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -------------------------------------------------------------------------------- /Source/External/tinyobjloader/tiny_obj_loader.cc: -------------------------------------------------------------------------------- 1 | #define TINYOBJLOADER_IMPLEMENTATION 2 | #include "tiny_obj_loader.h" 3 | -------------------------------------------------------------------------------- /Source/Probulator/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(Probulator 2 | Experiments.cpp 3 | Image.cpp 4 | SGBasis.cpp 5 | SGFitGeneticAlgorithm.cpp 6 | SGFitLeastSquares.cpp 7 | SphericalGaussian.cpp 8 | Common.h 9 | DiscreteDistribution.h 10 | ExperimentAmbientCube.h 11 | ExperimentAmbientCube.cpp 12 | ExperimentAmbientDice.h 13 | ExperimentAmbientDice.cpp 14 | ExperimentHBasis.h 15 | ExperimentMonteCarlo.h 16 | Experiments.h 17 | ExperimentSG.h 18 | ExperimentSH.h 19 | HBasis.h 20 | Image.h 21 | Math.h 22 | RadianceSample.h 23 | SGBasis.h 24 | SGFitGeneticAlgorithm.h 25 | SGFitLeastSquares.h 26 | SphericalGaussian.h 27 | SphericalHarmonics.h 28 | Thread.h 29 | Thread.cpp 30 | Variance.h 31 | ) 32 | 33 | target_link_libraries(Probulator stb enkiTS glm eigen) 34 | target_compile_features(Probulator PUBLIC cxx_std_11) 35 | target_include_directories(Probulator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..) 36 | -------------------------------------------------------------------------------- /Source/Probulator/Common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace Probulator 7 | { 8 | typedef uint8_t u8; 9 | typedef uint16_t u16; 10 | typedef uint32_t u32; 11 | typedef uint64_t u64; 12 | 13 | typedef int8_t s8; 14 | typedef int16_t s16; 15 | typedef int32_t s32; 16 | typedef int64_t s64; 17 | } 18 | -------------------------------------------------------------------------------- /Source/Probulator/DiscreteDistribution.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace Probulator 7 | { 8 | // Discrete probability distribution sampling based on alias method 9 | // http://www.keithschwarz.com/darts-dice-coins 10 | template 11 | struct DiscreteDistribution 12 | { 13 | typedef std::pair Cell; 14 | 15 | DiscreteDistribution(const T* weights, size_t count, T weightSum) 16 | { 17 | std::vector large; 18 | std::vector small; 19 | for (size_t i = 0; i < count; ++i) 20 | { 21 | T p = weights[i] * count / weightSum; 22 | if (p < T(1)) small.push_back({ p, i }); 23 | else large.push_back({ p, i }); 24 | } 25 | 26 | m_cells.resize(count, { T(0), 0 }); 27 | 28 | while (large.size() && small.size()) 29 | { 30 | auto l = small.back(); small.pop_back(); 31 | auto g = large.back(); large.pop_back(); 32 | m_cells[l.second].first = l.first; 33 | m_cells[l.second].second = g.second; 34 | g.first = (l.first + g.first) - T(1); 35 | if (g.first < T(1)) 36 | { 37 | small.push_back(g); 38 | } 39 | else 40 | { 41 | large.push_back(g); 42 | } 43 | } 44 | 45 | while (large.size()) 46 | { 47 | auto g = large.back(); large.pop_back(); 48 | m_cells[g.second].first = T(1); 49 | } 50 | 51 | while (small.size()) 52 | { 53 | auto l = small.back(); small.pop_back(); 54 | m_cells[l.second].first = T(1); 55 | } 56 | } 57 | 58 | size_t operator()(std::mt19937& rng) const 59 | { 60 | size_t i = rng() % m_cells.size(); 61 | std::uniform_real_distribution uniformDistribution; 62 | if (uniformDistribution(rng) <= m_cells[i].first) 63 | { 64 | return i; 65 | } 66 | else 67 | { 68 | return m_cells[i].second; 69 | } 70 | } 71 | 72 | std::vector m_cells; 73 | }; 74 | } -------------------------------------------------------------------------------- /Source/Probulator/ExperimentAmbientCube.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Probulator { 6 | 7 | class ExperimentAmbientCube : public Experiment 8 | { 9 | public: 10 | 11 | struct AmbientCube 12 | { 13 | vec3 irradiance[6]; 14 | 15 | vec3 evaluate(const vec3& direction) const 16 | { 17 | vec3 dirSquared = direction * direction; 18 | 19 | vec3 result 20 | = dirSquared.x * (direction.x < 0 ? irradiance[0] : irradiance[1]) 21 | + dirSquared.y * (direction.y < 0 ? irradiance[2] : irradiance[3]) 22 | + dirSquared.z * (direction.z < 0 ? irradiance[4] : irradiance[5]); 23 | 24 | return result; 25 | } 26 | }; 27 | 28 | static AmbientCube solveAmbientCubeLeastSquares(const ImageBase& directions, const Image& irradiance); 29 | static AmbientCube solveAmbientCubeProjection(const Image& irradiance); 30 | 31 | void run(SharedData& data) override; 32 | 33 | void getProperties(std::vector& outProperties) override 34 | { 35 | Experiment::getProperties(outProperties); 36 | outProperties.push_back(Property("Use projection", reinterpret_cast(&m_projectionEnabled))); 37 | } 38 | 39 | ExperimentAmbientCube& setProjectionEnabled(bool state) 40 | { 41 | m_projectionEnabled = state; 42 | return *this; 43 | } 44 | 45 | bool m_projectionEnabled = false; 46 | }; 47 | 48 | } 49 | -------------------------------------------------------------------------------- /Source/Probulator/ExperimentHBasis.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Probulator { 6 | 7 | template 8 | class ExperimentHBasis : public Experiment 9 | { 10 | public: 11 | 12 | void run(SharedData& data) override 13 | { 14 | HBasisT hRadiance = {}; 15 | const u32 sampleCount = (u32)data.m_radianceSamples.size(); 16 | for (const RadianceSample& sample : data.m_radianceSamples) 17 | { 18 | hAddWeighted(hRadiance, hEvaluate(sample.direction), sample.value * (fourPi / sampleCount)); 19 | } 20 | 21 | HBasisT hIrradiance = {}; 22 | for (const RadianceSample& sample : data.m_irradianceSamples) 23 | { 24 | hAddWeighted(hIrradiance, hEvaluate(sample.direction), sample.value * (fourPi / sampleCount)); 25 | } 26 | 27 | m_radianceImage = Image(data.m_outputSize); 28 | m_irradianceImage = Image(data.m_outputSize); 29 | 30 | data.m_directionImage.forPixels2D([&](const vec3& direction, ivec2 pixelPos) 31 | { 32 | HBasisT directionH = hEvaluate(direction); 33 | 34 | vec3 sampleH = max(vec3(0.0f), hDot(hRadiance, directionH)); 35 | m_radianceImage.at(pixelPos) = vec4(sampleH, 1.0f); 36 | 37 | vec3 sampleIrradianceH = max(vec3(0.0f), hDot(hRadiance, directionH)); 38 | m_irradianceImage.at(pixelPos) = vec4(sampleIrradianceH, 1.0f); 39 | }); 40 | } 41 | }; 42 | 43 | } -------------------------------------------------------------------------------- /Source/Probulator/RadianceSample.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Math.h" 4 | 5 | namespace Probulator 6 | { 7 | struct RadianceSample 8 | { 9 | vec3 direction; 10 | vec3 value; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /Source/Probulator/SGBasis.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "SphericalGaussian.h" 4 | #include "RadianceSample.h" 5 | 6 | #include 7 | 8 | namespace Probulator 9 | { 10 | typedef std::vector SgBasis; 11 | 12 | float sgBasisNormalizationFactor(float lambda, u32 lobeCount); 13 | vec3 sgBasisEvaluate(const SgBasis& basis, vec3 direction); 14 | vec3 sgBasisDot(const SgBasis& basis, const SphericalGaussian& lobe); 15 | void sgBasisMeanAndVariance(const SphericalGaussian* lobes, u32 lobeCount, u32 sampleCount, vec3& outMean, vec3& outVariance); 16 | vec3 sgBasisMeanSquareError(const SgBasis& basis, const std::vector& radianceSamples); 17 | float sgBasisMeanSquareErrorScalar(const SgBasis& basis, const std::vector& radianceSamples); 18 | vec3 sgBasisIrradianceFitted(const SgBasis& basis, const vec3& normal); 19 | } 20 | -------------------------------------------------------------------------------- /Source/Probulator/SGFitGeneticAlgorithm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "SGBasis.h" 4 | #include "RadianceSample.h" 5 | 6 | namespace Probulator 7 | { 8 | SgBasis sgFitGeneticAlgorithm( 9 | const SgBasis& basis, 10 | const std::vector& samples, 11 | u32 populationCount, 12 | u32 generationCount, 13 | u32 seed = 0, 14 | bool verbose = false); 15 | } -------------------------------------------------------------------------------- /Source/Probulator/SGFitLeastSquares.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "SGBasis.h" 4 | #include "RadianceSample.h" 5 | 6 | namespace Probulator 7 | { 8 | SgBasis sgFitLeastSquares( 9 | const SgBasis& basis, 10 | const std::vector& samples); 11 | SgBasis sgFitNNLeastSquares( 12 | const SgBasis& basis, 13 | const std::vector& samples); 14 | } 15 | -------------------------------------------------------------------------------- /Source/Probulator/SphericalGaussian.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Math.h" 4 | 5 | namespace Probulator 6 | { 7 | // All-Frequency Rendering of Dynamic, Spatially-Varying Reflectance 8 | // http://research.microsoft.com/en-us/um/people/johnsny/papers/sg.pdf 9 | struct SphericalGaussian 10 | { 11 | vec3 p; // lobe axis 12 | float lambda; // sharpness 13 | vec3 mu; // amplitude 14 | }; 15 | 16 | // Calculates an integral of a product of two SGs over a sphere 17 | vec3 sgDot(const SphericalGaussian& a, const SphericalGaussian& b); 18 | 19 | // Calculates an SG that evaluates to a product of two SGs 20 | SphericalGaussian sgCross(const SphericalGaussian& a, const SphericalGaussian& b); 21 | 22 | // Evaluate Spherical Gaussian for a given position on a sphere 23 | float sgEvaluate(const vec3& p, float lambda, const vec3& v); 24 | vec3 sgEvaluate(const SphericalGaussian& sg, const vec3& v); 25 | 26 | // Calculates spherical integral for SG with mu=1.0 and given lambda 27 | float sgIntegral(float lambda); 28 | 29 | // SG fitted for a cosine lobe 30 | inline float sgCosineMu() { return 1.170f; } 31 | inline float sgCosineLambda() { return 2.133f; } 32 | inline SphericalGaussian sgCosineLobe(const vec3& p = vec3(0.0f, 0.0f, 1.0f)) 33 | { 34 | SphericalGaussian sg; 35 | sg.mu = vec3(sgCosineMu()); 36 | sg.lambda = sgCosineLambda(); 37 | sg.p = p; 38 | return sg; 39 | } 40 | 41 | // Find SG mu for a given lambda that will integrate to a given value over a sphere 42 | float sgFindMu(float targetLambda, float targetIntegral); 43 | 44 | // Find SG mu for a given lambda to match total energy of another SG 45 | float sgFindMu(float targetLambda, float lambda, float mu); 46 | 47 | // Approximate SG irradiance using a curve fit. 48 | vec3 sgIrradianceFitted(const SphericalGaussian& lightingLobe, const vec3& normal); 49 | } 50 | -------------------------------------------------------------------------------- /Source/Probulator/Thread.cpp: -------------------------------------------------------------------------------- 1 | #include "Thread.h" 2 | 3 | namespace Probulator 4 | { 5 | enki::TaskScheduler g_TS; 6 | 7 | struct TaskSchedulerInitializer 8 | { 9 | TaskSchedulerInitializer() 10 | { 11 | g_TS.Initialize(); 12 | } 13 | }; 14 | 15 | static TaskSchedulerInitializer taskSchedulerInitializer; 16 | } -------------------------------------------------------------------------------- /Source/Probulator/Thread.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace Probulator 7 | { 8 | extern enki::TaskScheduler g_TS; 9 | 10 | template 11 | inline void parallelFor(I begin, I end, F fun) 12 | { 13 | #if 1 14 | enki::TaskSet taskSet(end - begin, 15 | [&](enki::TaskSetPartition range, I threadnum) 16 | { 17 | for(I i=range.start; i!=range.end; ++i) 18 | { 19 | fun(i); 20 | } 21 | }); 22 | g_TS.AddTaskSetToPipe(&taskSet); 23 | g_TS.WaitforTask(&taskSet); 24 | #else 25 | for(I i=begin; i!=end; ++i) 26 | { 27 | fun(i); 28 | } 29 | #endif 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Source/Probulator/Variance.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Math.h" 4 | 5 | namespace Probulator 6 | { 7 | // On-line variance calculation algorithm (Knuth / Welford) 8 | // http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance 9 | template 10 | struct OnlineVariance 11 | { 12 | int n = 0; 13 | T mean = T(0); 14 | T M2 = T(0); 15 | 16 | void addSample(T x) 17 | { 18 | n++; 19 | T delta = x - mean; 20 | mean = mean + delta / (float)n; 21 | M2 = M2 + delta * (x - mean); 22 | } 23 | 24 | T getVariance() 25 | { 26 | if (n < 2) 27 | { 28 | return T(0); 29 | } 30 | T variance = M2 / (float)(n - 1); 31 | return variance; 32 | } 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /Source/ProbulatorCLI/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(ProbulatorCLI 2 | Main.cpp 3 | ) 4 | target_link_libraries(ProbulatorCLI Probulator) 5 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Blitter.cpp: -------------------------------------------------------------------------------- 1 | #include "Blitter.h" 2 | 3 | Blitter::Blitter() 4 | { 5 | const Vertex vertices[3] = 6 | { 7 | {-1.0f, -1.0f}, 8 | {-1.0f, 3.0f}, 9 | { 3.0f, -1.0f}, 10 | }; 11 | 12 | glGenBuffers(1, &m_vertexBuffer); 13 | glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer); 14 | glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); 15 | } 16 | 17 | Blitter::~Blitter() 18 | { 19 | glDeleteBuffers(1, &m_vertexBuffer); 20 | } 21 | 22 | void Blitter::drawTexture(const ShaderProgram& shaderProgram, const Texture& texture) 23 | { 24 | glUseProgram(shaderProgram.m_native); 25 | 26 | setTexture(shaderProgram, 0, texture); 27 | setVertexBuffer(shaderProgram, m_vertexBuffer, sizeof(Vertex)); 28 | 29 | glEnable(GL_DEPTH_TEST); 30 | glDepthMask(GL_TRUE); 31 | glDepthFunc(GL_LEQUAL); 32 | 33 | glDrawArrays(GL_TRIANGLES, 0, 3); 34 | } 35 | 36 | void Blitter::drawTexture(const ShaderProgram& shaderProgram, const CommonShaderUniforms& shaderUniforms, const Texture& texture) 37 | { 38 | glUseProgram(shaderProgram.m_native); 39 | 40 | setTexture(shaderProgram, 0, texture); 41 | setVertexBuffer(shaderProgram, m_vertexBuffer, sizeof(Vertex)); 42 | 43 | setCommonUniforms(shaderProgram, shaderUniforms); 44 | 45 | glEnable(GL_DEPTH_TEST); 46 | glDepthMask(GL_TRUE); 47 | glDepthFunc(GL_LEQUAL); 48 | 49 | glDrawArrays(GL_TRIANGLES, 0, 3); 50 | } 51 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Blitter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common.h" 4 | #include "Renderer.h" 5 | #include "Shaders.h" 6 | 7 | #include 8 | 9 | class Blitter : NonCopyable 10 | { 11 | public: 12 | 13 | Blitter(); 14 | ~Blitter(); 15 | 16 | void drawTexture(const ShaderProgram& shaderProgram, const Texture& texture); 17 | void drawTexture(const ShaderProgram& shaderProgram, const CommonShaderUniforms& shaderUniforms, const Texture& texture); 18 | 19 | private: 20 | 21 | struct Vertex 22 | { 23 | float x, y; 24 | }; 25 | 26 | u32 m_vertexBuffer = 0; 27 | }; 28 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_definitions(-DNOMINMAX=1) # Never want min/max macros from Windows.h 2 | 3 | add_executable(ProbulatorGUI 4 | Blitter.cpp 5 | Blitter.h 6 | Camera.cpp 7 | Camera.h 8 | ChangeMonitor.cpp 9 | ChangeMonitor.h 10 | Common.h 11 | Main.cpp 12 | Model.cpp 13 | Model.h 14 | Renderer.cpp 15 | Renderer.h 16 | Shaders.cpp 17 | Shaders.h 18 | ) 19 | target_link_libraries(ProbulatorGUI 20 | Probulator 21 | gl3w 22 | glfw 23 | imgui 24 | nfd 25 | tinyobjloader 26 | ) 27 | 28 | if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 29 | set(DATA_CMD COMMAND ${CMAKE_COMMAND} -E copy_directory) # CMake doesn't support symlinks on Windows 30 | else() 31 | set(DATA_CMD COMMAND ${CMAKE_COMMAND} -E create_symlink) 32 | endif() 33 | 34 | if (MSVC) 35 | set(DATA_DIR $/../Data) # Default Visual Studio workind directory is $(ProjectDir) 36 | else() 37 | set(DATA_DIR $/Data) 38 | endif() 39 | 40 | add_custom_command(TARGET ProbulatorGUI POST_BUILD 41 | ${DATA_CMD} ${CMAKE_SOURCE_DIR}/Data ${DATA_DIR}) 42 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Camera.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common.h" 4 | #include 5 | 6 | struct Camera 7 | { 8 | mat4 getProjectionMatrix() const; 9 | mat4 getViewMatrix() const; 10 | 11 | void rotate(float deltaAroundUp, float deltaAroundRight); 12 | 13 | void moveViewSpace(const vec3& viewSpaceDelta); 14 | void moveWorldSpace(const vec3& worldSpaceDelta); 15 | 16 | float m_aspect = 1.0f; 17 | float m_fov = 1.0f; 18 | float m_near = 1.0f; 19 | float m_far = 1000.0f; 20 | 21 | mat3 m_orientation = mat3( 22 | 1.0f, 0.0f, 0.0f, 23 | 0.0f, 1.0f, 0.0f, 24 | 0.0f, 0.0f, 1.0f); 25 | 26 | vec3 m_position = vec3(0.0f); 27 | float m_orbitRadius = 0.0f; 28 | }; 29 | 30 | enum CameraMode 31 | { 32 | CameraMode_Orbit, 33 | CameraMode_FirstPerson, 34 | 35 | CameraModeCount 36 | }; 37 | 38 | const char* toString(CameraMode mode); 39 | 40 | struct CameraController 41 | { 42 | struct InputState 43 | { 44 | float moveForward = 0.0f; 45 | float moveUp = 0.0f; 46 | float moveRight = 0.0f; 47 | float rotateAroundUp = 0.0f; 48 | float rotateAroundRight = 0.0f; 49 | float moveSpeedMultiplier = 1.0f; 50 | float rotateSpeedMultiplier = 1.0f; 51 | vec2 scrollDelta = vec2(0.0f); 52 | }; 53 | 54 | float m_rotateSpeed = 0.005f; 55 | float m_moveSpeed = 0.05f; 56 | 57 | float m_orbitRadius = 1.0f; 58 | 59 | CameraMode m_mode = CameraMode_Orbit; 60 | 61 | void update(const InputState& input, Camera& camera); 62 | 63 | Camera interpolate(const Camera& x, const Camera& y, 64 | float positionAlpha, float orientationAlpha, float attributeAlpha = 1.0f); 65 | }; 66 | 67 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/ChangeMonitor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common.h" 4 | 5 | class ChangeMonitor 6 | { 7 | public: 8 | virtual ~ChangeMonitor() {} 9 | virtual bool update() = 0; 10 | }; 11 | 12 | ChangeMonitor* createChangeMonitor(const char* path); 13 | 14 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | using namespace Probulator; 5 | 6 | class NonCopyable 7 | { 8 | public: 9 | NonCopyable(){} 10 | NonCopyable(const NonCopyable&) = delete; 11 | NonCopyable(NonCopyable&&) = delete; 12 | NonCopyable& operator=(const NonCopyable&) = delete; 13 | NonCopyable& operator=(NonCopyable&&) = delete; 14 | }; 15 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Model.h: -------------------------------------------------------------------------------- 1 | #include "Common.h" 2 | #include "Renderer.h" 3 | #include "Shaders.h" 4 | 5 | #include 6 | 7 | class Model : NonCopyable 8 | { 9 | public: 10 | 11 | struct ProceduralSphere 12 | { 13 | u64 numUSlices = 256; 14 | u64 numVSlices = 256; 15 | }; 16 | 17 | 18 | Model(const char* objFilename); 19 | Model(const ProceduralSphere& sphere); 20 | ~Model(); 21 | 22 | struct Vertex 23 | { 24 | vec3 position; 25 | vec3 normal; 26 | vec2 texCoord; 27 | }; 28 | 29 | bool readObj(const char* objFilename, bool forceGenerateNormals); 30 | void generateSphere(u64 numUSlices = 256, u64 numVSlices = 192); 31 | 32 | bool m_valid = false; 33 | 34 | u32 m_vertexBuffer = 0; 35 | u32 m_indexBuffer = 0; 36 | u32 m_indexCount = 0; 37 | 38 | vec3 m_boundsMin = vec3(0.0f); 39 | vec3 m_boundsMax = vec3(0.0f); 40 | vec3 m_dimensions = vec3(0.0f); 41 | vec3 m_center = vec3(0.0f); 42 | 43 | void draw( 44 | const ShaderProgram& shaderProgram, 45 | const CommonShaderUniforms& shaderUniforms, 46 | const Texture& irradianceTexture, 47 | const mat4& worldMatrix); 48 | }; 49 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Shader.cpp: -------------------------------------------------------------------------------- 1 | #include "Shader.h" 2 | 3 | -------------------------------------------------------------------------------- /Source/ProbulatorGUI/Shaders.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Common.h" 4 | #include "Renderer.h" 5 | 6 | #include 7 | 8 | struct CommonShaderUniforms 9 | { 10 | float elapsedTime = 0.0f; 11 | float exposure = 1.0f; 12 | vec2 resolution = vec2(1.0f); 13 | mat4 viewMatrix = mat4(1.0f); 14 | mat4 projMatrix = mat4(1.0f); 15 | mat4 viewProjMatrix = mat4(1.0f); 16 | }; 17 | 18 | class CommonShaderPrograms : NonCopyable 19 | { 20 | public: 21 | CommonShaderPrograms(); 22 | 23 | ShaderProgramPtr blitTexture2D; 24 | ShaderProgramPtr blitLatLongEnvmap; 25 | 26 | ShaderProgramPtr modelIrradiance; 27 | ShaderProgramPtr modelBasisVisualizer; 28 | }; 29 | 30 | // Load shader from file with minimal preprocess step that handles include directives. 31 | // Included files must be in the same directory as source file. 32 | ShaderPtr createShaderFromFile(u32 type, const char* filename); 33 | 34 | void setCommonUniforms(const ShaderProgram& shaderProgram, const CommonShaderUniforms& uniforms); 35 | --------------------------------------------------------------------------------