├── README.md ├── SRC ├── 3DFinderOsg.pro ├── 3DFinderOsg.pro.user ├── images.qrc ├── images │ ├── faceView_.png │ ├── leftView_.png │ ├── startView_.png │ └── upView_.png ├── include │ ├── eigen3 │ │ ├── Eigen │ │ │ ├── Cholesky │ │ │ ├── CholmodSupport │ │ │ ├── Core │ │ │ ├── Dense │ │ │ ├── Eigen │ │ │ ├── Eigenvalues │ │ │ ├── Geometry │ │ │ ├── Householder │ │ │ ├── IterativeLinearSolvers │ │ │ ├── Jacobi │ │ │ ├── LU │ │ │ ├── MetisSupport │ │ │ ├── OrderingMethods │ │ │ ├── PaStiXSupport │ │ │ ├── PardisoSupport │ │ │ ├── QR │ │ │ ├── QtAlignedMalloc │ │ │ ├── SPQRSupport │ │ │ ├── SVD │ │ │ ├── Sparse │ │ │ ├── SparseCholesky │ │ │ ├── SparseCore │ │ │ ├── SparseLU │ │ │ ├── SparseQR │ │ │ ├── StdDeque │ │ │ ├── StdList │ │ │ ├── StdVector │ │ │ ├── SuperLUSupport │ │ │ ├── UmfPackSupport │ │ │ └── src │ │ │ │ ├── Cholesky │ │ │ │ ├── LDLT.h │ │ │ │ ├── LLT.h │ │ │ │ └── LLT_MKL.h │ │ │ │ ├── CholmodSupport │ │ │ │ └── CholmodSupport.h │ │ │ │ ├── Core │ │ │ │ ├── Array.h │ │ │ │ ├── ArrayBase.h │ │ │ │ ├── ArrayWrapper.h │ │ │ │ ├── Assign.h │ │ │ │ ├── AssignEvaluator.h │ │ │ │ ├── Assign_MKL.h │ │ │ │ ├── BandMatrix.h │ │ │ │ ├── Block.h │ │ │ │ ├── BooleanRedux.h │ │ │ │ ├── CommaInitializer.h │ │ │ │ ├── CoreEvaluators.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 │ │ │ │ ├── ForceAlignedAccess.h │ │ │ │ ├── Fuzzy.h │ │ │ │ ├── GeneralProduct.h │ │ │ │ ├── GenericPacketMath.h │ │ │ │ ├── GlobalFunctions.h │ │ │ │ ├── IO.h │ │ │ │ ├── Inverse.h │ │ │ │ ├── Map.h │ │ │ │ ├── MapBase.h │ │ │ │ ├── MathFunctions.h │ │ │ │ ├── Matrix.h │ │ │ │ ├── MatrixBase.h │ │ │ │ ├── NestByValue.h │ │ │ │ ├── NoAlias.h │ │ │ │ ├── NumTraits.h │ │ │ │ ├── PermutationMatrix.h │ │ │ │ ├── PlainObjectBase.h │ │ │ │ ├── Product.h │ │ │ │ ├── ProductEvaluators.h │ │ │ │ ├── Random.h │ │ │ │ ├── Redux.h │ │ │ │ ├── Ref.h │ │ │ │ ├── Replicate.h │ │ │ │ ├── ReturnByValue.h │ │ │ │ ├── Reverse.h │ │ │ │ ├── Select.h │ │ │ │ ├── SelfAdjointView.h │ │ │ │ ├── SelfCwiseBinaryOp.h │ │ │ │ ├── Solve.h │ │ │ │ ├── SolveTriangular.h │ │ │ │ ├── SolverBase.h │ │ │ │ ├── SpecialFunctions.h │ │ │ │ ├── StableNorm.h │ │ │ │ ├── Stride.h │ │ │ │ ├── Swap.h │ │ │ │ ├── Transpose.h │ │ │ │ ├── Transpositions.h │ │ │ │ ├── TriangularMatrix.h │ │ │ │ ├── VectorBlock.h │ │ │ │ ├── VectorwiseOp.h │ │ │ │ ├── Visitor.h │ │ │ │ ├── arch │ │ │ │ │ ├── AVX │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AltiVec │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── CUDA │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── Default │ │ │ │ │ │ └── Settings.h │ │ │ │ │ ├── NEON │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ └── SSE │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ ├── functors │ │ │ │ │ ├── AssignmentFunctors.h │ │ │ │ │ ├── BinaryFunctors.h │ │ │ │ │ ├── NullaryFunctors.h │ │ │ │ │ ├── StlFunctors.h │ │ │ │ │ └── UnaryFunctors.h │ │ │ │ ├── products │ │ │ │ │ ├── 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 │ │ │ │ ├── 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 │ │ │ │ ├── IncompleteCholesky.h │ │ │ │ ├── IncompleteLUT.h │ │ │ │ ├── IterativeSolverBase.h │ │ │ │ ├── LeastSquareConjugateGradient.h │ │ │ │ └── SolveWithGuess.h │ │ │ │ ├── Jacobi │ │ │ │ └── Jacobi.h │ │ │ │ ├── LU │ │ │ │ ├── Determinant.h │ │ │ │ ├── FullPivLU.h │ │ │ │ ├── InverseImpl.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 │ │ │ │ ├── BDCSVD.h │ │ │ │ ├── JacobiSVD.h │ │ │ │ ├── JacobiSVD_MKL.h │ │ │ │ ├── SVDBase.h │ │ │ │ └── UpperBidiagonalization.h │ │ │ │ ├── SparseCholesky │ │ │ │ ├── SimplicialCholesky.h │ │ │ │ └── SimplicialCholesky_impl.h │ │ │ │ ├── SparseCore │ │ │ │ ├── AmbiVector.h │ │ │ │ ├── CompressedStorage.h │ │ │ │ ├── ConservativeSparseSparseProduct.h │ │ │ │ ├── MappedSparseMatrix.h │ │ │ │ ├── SparseAssign.h │ │ │ │ ├── SparseBlock.h │ │ │ │ ├── SparseColEtree.h │ │ │ │ ├── SparseCompressedBase.h │ │ │ │ ├── SparseCwiseBinaryOp.h │ │ │ │ ├── SparseCwiseUnaryOp.h │ │ │ │ ├── SparseDenseProduct.h │ │ │ │ ├── SparseDiagonalProduct.h │ │ │ │ ├── SparseDot.h │ │ │ │ ├── SparseFuzzy.h │ │ │ │ ├── SparseMap.h │ │ │ │ ├── SparseMatrix.h │ │ │ │ ├── SparseMatrixBase.h │ │ │ │ ├── SparsePermutation.h │ │ │ │ ├── SparseProduct.h │ │ │ │ ├── SparseRedux.h │ │ │ │ ├── SparseRef.h │ │ │ │ ├── SparseSelfAdjointView.h │ │ │ │ ├── SparseSolverBase.h │ │ │ │ ├── SparseSparseProductWithPruning.h │ │ │ │ ├── SparseTranspose.h │ │ │ │ ├── SparseTriangularView.h │ │ │ │ ├── SparseUtil.h │ │ │ │ ├── SparseVector.h │ │ │ │ ├── SparseView.h │ │ │ │ └── TriangularSolver.h │ │ │ │ ├── SparseLU │ │ │ │ ├── SparseLU.h │ │ │ │ ├── SparseLUImpl.h │ │ │ │ ├── SparseLU_Memory.h │ │ │ │ ├── SparseLU_Structs.h │ │ │ │ ├── SparseLU_SupernodalMatrix.h │ │ │ │ ├── SparseLU_Utils.h │ │ │ │ ├── SparseLU_column_bmod.h │ │ │ │ ├── SparseLU_column_dfs.h │ │ │ │ ├── SparseLU_copy_to_ucol.h │ │ │ │ ├── SparseLU_gemm_kernel.h │ │ │ │ ├── SparseLU_heap_relax_snode.h │ │ │ │ ├── SparseLU_kernel_bmod.h │ │ │ │ ├── SparseLU_panel_bmod.h │ │ │ │ ├── SparseLU_panel_dfs.h │ │ │ │ ├── SparseLU_pivotL.h │ │ │ │ ├── SparseLU_pruneL.h │ │ │ │ └── SparseLU_relax_snode.h │ │ │ │ ├── SparseQR │ │ │ │ └── SparseQR.h │ │ │ │ ├── StlSupport │ │ │ │ ├── StdDeque.h │ │ │ │ ├── StdList.h │ │ │ │ ├── StdVector.h │ │ │ │ └── details.h │ │ │ │ ├── SuperLUSupport │ │ │ │ └── SuperLUSupport.h │ │ │ │ ├── UmfPackSupport │ │ │ │ └── UmfPackSupport.h │ │ │ │ ├── misc │ │ │ │ ├── Image.h │ │ │ │ ├── Kernel.h │ │ │ │ └── blas.h │ │ │ │ └── plugins │ │ │ │ ├── ArrayCwiseBinaryOps.h │ │ │ │ ├── ArrayCwiseUnaryOps.h │ │ │ │ ├── BlockMethods.h │ │ │ │ ├── CommonCwiseBinaryOps.h │ │ │ │ ├── CommonCwiseUnaryOps.h │ │ │ │ ├── MatrixCwiseBinaryOps.h │ │ │ │ └── MatrixCwiseUnaryOps.h │ │ ├── signature_of_eigen3_matrix_library │ │ └── unsupported │ │ │ └── Eigen │ │ │ ├── AdolcForward │ │ │ ├── AlignedVector3 │ │ │ ├── ArpackSupport │ │ │ ├── AutoDiff │ │ │ ├── BVH │ │ │ ├── CXX11 │ │ │ ├── Core │ │ │ ├── Tensor │ │ │ ├── TensorSymmetry │ │ │ └── src │ │ │ │ ├── Core │ │ │ │ └── util │ │ │ │ │ ├── CXX11Meta.h │ │ │ │ │ ├── CXX11Workarounds.h │ │ │ │ │ ├── EmulateArray.h │ │ │ │ │ └── EmulateCXX11Meta.h │ │ │ │ ├── Tensor │ │ │ │ ├── Tensor.h │ │ │ │ ├── TensorArgMax.h │ │ │ │ ├── TensorAssign.h │ │ │ │ ├── TensorBase.h │ │ │ │ ├── TensorBroadcasting.h │ │ │ │ ├── TensorChipping.h │ │ │ │ ├── TensorConcatenation.h │ │ │ │ ├── TensorContraction.h │ │ │ │ ├── TensorContractionCuda.h │ │ │ │ ├── TensorContractionThreadPool.h │ │ │ │ ├── TensorConversion.h │ │ │ │ ├── TensorConvolution.h │ │ │ │ ├── TensorCustomOp.h │ │ │ │ ├── TensorDevice.h │ │ │ │ ├── TensorDeviceCuda.h │ │ │ │ ├── TensorDeviceDefault.h │ │ │ │ ├── TensorDeviceThreadPool.h │ │ │ │ ├── TensorDimensionList.h │ │ │ │ ├── TensorDimensions.h │ │ │ │ ├── TensorEvalTo.h │ │ │ │ ├── TensorEvaluator.h │ │ │ │ ├── TensorExecutor.h │ │ │ │ ├── TensorExpr.h │ │ │ │ ├── TensorFFT.h │ │ │ │ ├── TensorFixedSize.h │ │ │ │ ├── TensorForcedEval.h │ │ │ │ ├── TensorForwardDeclarations.h │ │ │ │ ├── TensorFunctors.h │ │ │ │ ├── TensorGenerator.h │ │ │ │ ├── TensorIO.h │ │ │ │ ├── TensorImagePatch.h │ │ │ │ ├── TensorIndexList.h │ │ │ │ ├── TensorInflation.h │ │ │ │ ├── TensorInitializer.h │ │ │ │ ├── TensorIntDiv.h │ │ │ │ ├── TensorLayoutSwap.h │ │ │ │ ├── TensorMacros.h │ │ │ │ ├── TensorMap.h │ │ │ │ ├── TensorMeta.h │ │ │ │ ├── TensorMorphing.h │ │ │ │ ├── TensorPadding.h │ │ │ │ ├── TensorPatch.h │ │ │ │ ├── TensorReduction.h │ │ │ │ ├── TensorReductionCuda.h │ │ │ │ ├── TensorRef.h │ │ │ │ ├── TensorReverse.h │ │ │ │ ├── TensorShuffling.h │ │ │ │ ├── TensorStorage.h │ │ │ │ ├── TensorStriding.h │ │ │ │ ├── TensorTraits.h │ │ │ │ ├── TensorUInt128.h │ │ │ │ └── TensorVolumePatch.h │ │ │ │ └── TensorSymmetry │ │ │ │ ├── DynamicSymmetry.h │ │ │ │ ├── StaticSymmetry.h │ │ │ │ ├── Symmetry.h │ │ │ │ └── util │ │ │ │ └── TemplateGroupTheory.h │ │ │ ├── FFT │ │ │ ├── IterativeSolvers │ │ │ ├── KroneckerProduct │ │ │ ├── LevenbergMarquardt │ │ │ ├── MPRealSupport │ │ │ ├── MatrixFunctions │ │ │ ├── MoreVectorization │ │ │ ├── NonLinearOptimization │ │ │ ├── NumericalDiff │ │ │ ├── OpenGLSupport │ │ │ ├── Polynomials │ │ │ ├── Skyline │ │ │ ├── SparseExtra │ │ │ ├── Splines │ │ │ └── src │ │ │ ├── AutoDiff │ │ │ ├── AutoDiffJacobian.h │ │ │ ├── AutoDiffScalar.h │ │ │ └── AutoDiffVector.h │ │ │ ├── BVH │ │ │ ├── BVAlgorithms.h │ │ │ └── KdBVH.h │ │ │ ├── Eigenvalues │ │ │ └── ArpackSelfAdjointEigenSolver.h │ │ │ ├── FFT │ │ │ ├── ei_fftw_impl.h │ │ │ └── ei_kissfft_impl.h │ │ │ ├── IterativeSolvers │ │ │ ├── ConstrainedConjGrad.h │ │ │ ├── DGMRES.h │ │ │ ├── GMRES.h │ │ │ ├── IncompleteLU.h │ │ │ ├── IterationController.h │ │ │ ├── MINRES.h │ │ │ └── Scaling.h │ │ │ ├── KroneckerProduct │ │ │ └── KroneckerTensorProduct.h │ │ │ ├── LevenbergMarquardt │ │ │ ├── LMcovar.h │ │ │ ├── LMonestep.h │ │ │ ├── LMpar.h │ │ │ ├── LMqrsolv.h │ │ │ └── LevenbergMarquardt.h │ │ │ ├── MatrixFunctions │ │ │ ├── MatrixExponential.h │ │ │ ├── MatrixFunction.h │ │ │ ├── MatrixLogarithm.h │ │ │ ├── MatrixPower.h │ │ │ ├── MatrixSquareRoot.h │ │ │ └── StemFunction.h │ │ │ ├── MoreVectorization │ │ │ └── MathFunctions.h │ │ │ ├── NonLinearOptimization │ │ │ ├── HybridNonLinearSolver.h │ │ │ ├── LevenbergMarquardt.h │ │ │ ├── chkder.h │ │ │ ├── covar.h │ │ │ ├── dogleg.h │ │ │ ├── fdjac1.h │ │ │ ├── lmpar.h │ │ │ ├── qrsolv.h │ │ │ ├── r1mpyq.h │ │ │ ├── r1updt.h │ │ │ └── rwupdt.h │ │ │ ├── NumericalDiff │ │ │ └── NumericalDiff.h │ │ │ ├── Polynomials │ │ │ ├── Companion.h │ │ │ ├── PolynomialSolver.h │ │ │ └── PolynomialUtils.h │ │ │ ├── Skyline │ │ │ ├── SkylineInplaceLU.h │ │ │ ├── SkylineMatrix.h │ │ │ ├── SkylineMatrixBase.h │ │ │ ├── SkylineProduct.h │ │ │ ├── SkylineStorage.h │ │ │ └── SkylineUtil.h │ │ │ ├── SparseExtra │ │ │ ├── BlockOfDynamicSparseMatrix.h │ │ │ ├── BlockSparseMatrix.h │ │ │ ├── DynamicSparseMatrix.h │ │ │ ├── MarketIO.h │ │ │ ├── MatrixMarketIterator.h │ │ │ └── RandomSetter.h │ │ │ └── Splines │ │ │ ├── Spline.h │ │ │ ├── SplineFitting.h │ │ │ └── SplineFwd.h │ ├── osgModeling │ │ ├── Algorithm │ │ ├── Bezier │ │ ├── BoolOperator │ │ ├── BspTree │ │ ├── Curve │ │ ├── Export │ │ ├── Extrude │ │ ├── Helix │ │ ├── Lathe │ │ ├── Loft │ │ ├── Model │ │ ├── ModelVisitor │ │ ├── NormalVisitor │ │ ├── Nurbs │ │ ├── PolyMesh │ │ ├── Subdivision │ │ ├── TexCoordVisitor │ │ └── Utilities │ └── pcl-1.8 │ │ └── pcl │ │ ├── 2d │ │ ├── convolution.h │ │ ├── edge.h │ │ ├── impl │ │ │ ├── convolution.hpp │ │ │ ├── edge.hpp │ │ │ └── morphology.hpp │ │ ├── kernel.h │ │ └── morphology.h │ │ ├── ModelCoefficients.h │ │ ├── PCLHeader.h │ │ ├── PCLImage.h │ │ ├── PCLPointCloud2.h │ │ ├── PCLPointField.h │ │ ├── PointIndices.h │ │ ├── PolygonMesh.h │ │ ├── TextureMesh.h │ │ ├── Vertices.h │ │ ├── cloud_iterator.h │ │ ├── common │ │ ├── angles.h │ │ ├── bivariate_polynomial.h │ │ ├── boost.h │ │ ├── centroid.h │ │ ├── colors.h │ │ ├── common.h │ │ ├── common_headers.h │ │ ├── concatenate.h │ │ ├── copy_point.h │ │ ├── distances.h │ │ ├── eigen.h │ │ ├── feature_histogram.h │ │ ├── fft │ │ │ ├── _kiss_fft_guts.h │ │ │ ├── kiss_fft.h │ │ │ └── kiss_fftr.h │ │ ├── file_io.h │ │ ├── gaussian.h │ │ ├── generate.h │ │ ├── geometry.h │ │ ├── impl │ │ │ ├── accumulators.hpp │ │ │ ├── angles.hpp │ │ │ ├── bivariate_polynomial.hpp │ │ │ ├── centroid.hpp │ │ │ ├── common.hpp │ │ │ ├── copy_point.hpp │ │ │ ├── eigen.hpp │ │ │ ├── file_io.hpp │ │ │ ├── gaussian.hpp │ │ │ ├── generate.hpp │ │ │ ├── intensity.hpp │ │ │ ├── intersections.hpp │ │ │ ├── io.hpp │ │ │ ├── norms.hpp │ │ │ ├── pca.hpp │ │ │ ├── piecewise_linear_function.hpp │ │ │ ├── polynomial_calculations.hpp │ │ │ ├── projection_matrix.hpp │ │ │ ├── random.hpp │ │ │ ├── spring.hpp │ │ │ ├── transformation_from_correspondences.hpp │ │ │ ├── transforms.hpp │ │ │ └── vector_average.hpp │ │ ├── intensity.h │ │ ├── intersections.h │ │ ├── io.h │ │ ├── norms.h │ │ ├── pca.h │ │ ├── piecewise_linear_function.h │ │ ├── point_operators.h │ │ ├── point_tests.h │ │ ├── polynomial_calculations.h │ │ ├── poses_from_matches.h │ │ ├── projection_matrix.h │ │ ├── random.h │ │ ├── spring.h │ │ ├── synchronizer.h │ │ ├── time.h │ │ ├── time_trigger.h │ │ ├── transformation_from_correspondences.h │ │ ├── transforms.h │ │ ├── utils.h │ │ └── vector_average.h │ │ ├── compression │ │ ├── color_coding.h │ │ ├── compression_profiles.h │ │ ├── entropy_range_coder.h │ │ ├── libpng_wrapper.h │ │ ├── octree_pointcloud_compression.h │ │ ├── organized_pointcloud_conversion.h │ │ └── point_coding.h │ │ ├── console │ │ ├── parse.h │ │ ├── print.h │ │ └── time.h │ │ ├── conversions.h │ │ ├── correspondence.h │ │ ├── exceptions.h │ │ ├── features │ │ ├── 3dsc.h │ │ ├── board.h │ │ ├── boost.h │ │ ├── boundary.h │ │ ├── brisk_2d.h │ │ ├── cppf.h │ │ ├── crh.h │ │ ├── cvfh.h │ │ ├── don.h │ │ ├── eigen.h │ │ ├── esf.h │ │ ├── feature.h │ │ ├── fpfh.h │ │ ├── fpfh_omp.h │ │ ├── from_meshes.h │ │ ├── gfpfh.h │ │ ├── grsd.h │ │ ├── impl │ │ │ ├── 3dsc.hpp │ │ │ ├── board.hpp │ │ │ ├── boundary.hpp │ │ │ ├── brisk_2d.hpp │ │ │ ├── cppf.hpp │ │ │ ├── crh.hpp │ │ │ ├── cvfh.hpp │ │ │ ├── don.hpp │ │ │ ├── esf.hpp │ │ │ ├── feature.hpp │ │ │ ├── fpfh.hpp │ │ │ ├── fpfh_omp.hpp │ │ │ ├── gfpfh.hpp │ │ │ ├── grsd.hpp │ │ │ ├── integral_image2D.hpp │ │ │ ├── integral_image_normal.hpp │ │ │ ├── intensity_gradient.hpp │ │ │ ├── intensity_spin.hpp │ │ │ ├── linear_least_squares_normal.hpp │ │ │ ├── moment_invariants.hpp │ │ │ ├── moment_of_inertia_estimation.hpp │ │ │ ├── multiscale_feature_persistence.hpp │ │ │ ├── narf.hpp │ │ │ ├── normal_3d.hpp │ │ │ ├── normal_3d_omp.hpp │ │ │ ├── normal_based_signature.hpp │ │ │ ├── organized_edge_detection.hpp │ │ │ ├── our_cvfh.hpp │ │ │ ├── pfh.hpp │ │ │ ├── pfhrgb.hpp │ │ │ ├── ppf.hpp │ │ │ ├── ppfrgb.hpp │ │ │ ├── principal_curvatures.hpp │ │ │ ├── range_image_border_extractor.hpp │ │ │ ├── rift.hpp │ │ │ ├── rops_estimation.hpp │ │ │ ├── rsd.hpp │ │ │ ├── shot.hpp │ │ │ ├── shot_lrf.hpp │ │ │ ├── shot_lrf_omp.hpp │ │ │ ├── shot_omp.hpp │ │ │ ├── spin_image.hpp │ │ │ ├── statistical_multiscale_interest_region_extraction.hpp │ │ │ ├── usc.hpp │ │ │ └── vfh.hpp │ │ ├── integral_image2D.h │ │ ├── integral_image_normal.h │ │ ├── intensity_gradient.h │ │ ├── intensity_spin.h │ │ ├── linear_least_squares_normal.h │ │ ├── moment_invariants.h │ │ ├── moment_of_inertia_estimation.h │ │ ├── multiscale_feature_persistence.h │ │ ├── narf.h │ │ ├── narf_descriptor.h │ │ ├── normal_3d.h │ │ ├── normal_3d_omp.h │ │ ├── normal_based_signature.h │ │ ├── organized_edge_detection.h │ │ ├── our_cvfh.h │ │ ├── pfh.h │ │ ├── pfh_tools.h │ │ ├── pfhrgb.h │ │ ├── ppf.h │ │ ├── ppfrgb.h │ │ ├── principal_curvatures.h │ │ ├── range_image_border_extractor.h │ │ ├── rift.h │ │ ├── rops_estimation.h │ │ ├── rsd.h │ │ ├── shot.h │ │ ├── shot_lrf.h │ │ ├── shot_lrf_omp.h │ │ ├── shot_omp.h │ │ ├── spin_image.h │ │ ├── statistical_multiscale_interest_region_extraction.h │ │ ├── usc.h │ │ └── vfh.h │ │ ├── filters │ │ ├── approximate_voxel_grid.h │ │ ├── bilateral.h │ │ ├── boost.h │ │ ├── box_clipper3D.h │ │ ├── clipper3D.h │ │ ├── conditional_removal.h │ │ ├── convolution.h │ │ ├── convolution_3d.h │ │ ├── covariance_sampling.h │ │ ├── crop_box.h │ │ ├── crop_hull.h │ │ ├── extract_indices.h │ │ ├── fast_bilateral.h │ │ ├── fast_bilateral_omp.h │ │ ├── filter.h │ │ ├── filter_indices.h │ │ ├── frustum_culling.h │ │ ├── grid_minimum.h │ │ ├── impl │ │ │ ├── approximate_voxel_grid.hpp │ │ │ ├── bilateral.hpp │ │ │ ├── box_clipper3D.hpp │ │ │ ├── conditional_removal.hpp │ │ │ ├── convolution.hpp │ │ │ ├── convolution_3d.hpp │ │ │ ├── covariance_sampling.hpp │ │ │ ├── crop_box.hpp │ │ │ ├── crop_hull.hpp │ │ │ ├── extract_indices.hpp │ │ │ ├── fast_bilateral.hpp │ │ │ ├── fast_bilateral_omp.hpp │ │ │ ├── filter.hpp │ │ │ ├── filter_indices.hpp │ │ │ ├── frustum_culling.hpp │ │ │ ├── grid_minimum.hpp │ │ │ ├── local_maximum.hpp │ │ │ ├── median_filter.hpp │ │ │ ├── model_outlier_removal.hpp │ │ │ ├── morphological_filter.hpp │ │ │ ├── normal_refinement.hpp │ │ │ ├── normal_space.hpp │ │ │ ├── passthrough.hpp │ │ │ ├── plane_clipper3D.hpp │ │ │ ├── project_inliers.hpp │ │ │ ├── radius_outlier_removal.hpp │ │ │ ├── random_sample.hpp │ │ │ ├── sampling_surface_normal.hpp │ │ │ ├── shadowpoints.hpp │ │ │ ├── statistical_outlier_removal.hpp │ │ │ ├── uniform_sampling.hpp │ │ │ ├── voxel_grid.hpp │ │ │ ├── voxel_grid_covariance.hpp │ │ │ └── voxel_grid_occlusion_estimation.hpp │ │ ├── local_maximum.h │ │ ├── median_filter.h │ │ ├── model_outlier_removal.h │ │ ├── morphological_filter.h │ │ ├── normal_refinement.h │ │ ├── normal_space.h │ │ ├── passthrough.h │ │ ├── plane_clipper3D.h │ │ ├── project_inliers.h │ │ ├── radius_outlier_removal.h │ │ ├── random_sample.h │ │ ├── sampling_surface_normal.h │ │ ├── shadowpoints.h │ │ ├── statistical_outlier_removal.h │ │ ├── uniform_sampling.h │ │ ├── voxel_grid.h │ │ ├── voxel_grid_covariance.h │ │ ├── voxel_grid_label.h │ │ └── voxel_grid_occlusion_estimation.h │ │ ├── for_each_type.h │ │ ├── geometry │ │ ├── boost.h │ │ ├── eigen.h │ │ ├── get_boundary.h │ │ ├── impl │ │ │ └── polygon_operations.hpp │ │ ├── line_iterator.h │ │ ├── mesh_base.h │ │ ├── mesh_circulators.h │ │ ├── mesh_conversion.h │ │ ├── mesh_elements.h │ │ ├── mesh_indices.h │ │ ├── mesh_io.h │ │ ├── mesh_traits.h │ │ ├── organized_index_iterator.h │ │ ├── planar_polygon.h │ │ ├── polygon_mesh.h │ │ ├── polygon_operations.h │ │ ├── quad_mesh.h │ │ └── triangle_mesh.h │ │ ├── impl │ │ ├── cloud_iterator.hpp │ │ ├── instantiate.hpp │ │ ├── pcl_base.hpp │ │ └── point_types.hpp │ │ ├── io │ │ ├── ascii_io.h │ │ ├── auto_io.h │ │ ├── boost.h │ │ ├── debayer.h │ │ ├── dinast_grabber.h │ │ ├── eigen.h │ │ ├── file_grabber.h │ │ ├── file_io.h │ │ ├── grabber.h │ │ ├── hdl_grabber.h │ │ ├── ifs_io.h │ │ ├── image_grabber.h │ │ ├── impl │ │ │ ├── ascii_io.hpp │ │ │ ├── auto_io.hpp │ │ │ ├── entropy_range_coder.hpp │ │ │ ├── lzf_image_io.hpp │ │ │ ├── octree_pointcloud_compression.hpp │ │ │ ├── pcd_io.hpp │ │ │ ├── point_cloud_image_extractors.hpp │ │ │ └── synchronized_queue.hpp │ │ ├── io.h │ │ ├── io_exception.h │ │ ├── lzf.h │ │ ├── lzf_image_io.h │ │ ├── obj_io.h │ │ ├── pcd_grabber.h │ │ ├── pcd_io.h │ │ ├── ply │ │ │ ├── byte_order.h │ │ │ ├── io_operators.h │ │ │ ├── ply.h │ │ │ └── ply_parser.h │ │ ├── ply_io.h │ │ ├── point_cloud_image_extractors.h │ │ ├── pxc_grabber.h │ │ ├── robot_eye_grabber.h │ │ ├── tar.h │ │ ├── vlp_grabber.h │ │ └── vtk_io.h │ │ ├── kdtree │ │ ├── flann.h │ │ ├── impl │ │ │ ├── io.hpp │ │ │ └── kdtree_flann.hpp │ │ ├── io.h │ │ ├── kdtree.h │ │ └── kdtree_flann.h │ │ ├── keypoints │ │ ├── agast_2d.h │ │ ├── brisk_2d.h │ │ ├── harris_2d.h │ │ ├── harris_3d.h │ │ ├── harris_6d.h │ │ ├── impl │ │ │ ├── agast_2d.hpp │ │ │ ├── brisk_2d.hpp │ │ │ ├── harris_2d.hpp │ │ │ ├── harris_3d.hpp │ │ │ ├── harris_6d.hpp │ │ │ ├── iss_3d.hpp │ │ │ ├── keypoint.hpp │ │ │ ├── sift_keypoint.hpp │ │ │ ├── smoothed_surfaces_keypoint.hpp │ │ │ └── susan.hpp │ │ ├── iss_3d.h │ │ ├── keypoint.h │ │ ├── narf_keypoint.h │ │ ├── sift_keypoint.h │ │ ├── smoothed_surfaces_keypoint.h │ │ ├── susan.h │ │ └── uniform_sampling.h │ │ ├── ml │ │ ├── branch_estimator.h │ │ ├── decision_forest.h │ │ ├── decision_forest_evaluator.h │ │ ├── decision_forest_trainer.h │ │ ├── decision_tree.h │ │ ├── decision_tree_data_provider.h │ │ ├── decision_tree_evaluator.h │ │ ├── decision_tree_trainer.h │ │ ├── densecrf.h │ │ ├── feature_handler.h │ │ ├── fern.h │ │ ├── fern_evaluator.h │ │ ├── fern_trainer.h │ │ ├── kmeans.h │ │ ├── multi_channel_2d_comparison_feature.h │ │ ├── multi_channel_2d_comparison_feature_handler.h │ │ ├── multi_channel_2d_data_set.h │ │ ├── multiple_data_2d_example_index.h │ │ ├── pairwise_potential.h │ │ ├── permutohedral.h │ │ ├── point_xy_32f.h │ │ ├── point_xy_32i.h │ │ ├── regression_variance_stats_estimator.h │ │ ├── stats_estimator.h │ │ ├── svm.h │ │ └── svm_wrapper.h │ │ ├── octree │ │ ├── boost.h │ │ ├── impl │ │ │ ├── octree2buf_base.hpp │ │ │ ├── octree_base.hpp │ │ │ ├── octree_iterator.hpp │ │ │ ├── octree_pointcloud.hpp │ │ │ ├── octree_pointcloud_adjacency.hpp │ │ │ ├── octree_pointcloud_voxelcentroid.hpp │ │ │ └── octree_search.hpp │ │ ├── octree.h │ │ ├── octree2buf_base.h │ │ ├── octree_base.h │ │ ├── octree_container.h │ │ ├── octree_impl.h │ │ ├── octree_iterator.h │ │ ├── octree_key.h │ │ ├── octree_nodes.h │ │ ├── octree_pointcloud.h │ │ ├── octree_pointcloud_adjacency.h │ │ ├── octree_pointcloud_adjacency_container.h │ │ ├── octree_pointcloud_changedetector.h │ │ ├── octree_pointcloud_density.h │ │ ├── octree_pointcloud_occupancy.h │ │ ├── octree_pointcloud_pointvector.h │ │ ├── octree_pointcloud_singlepoint.h │ │ ├── octree_pointcloud_voxelcentroid.h │ │ └── octree_search.h │ │ ├── pcl_base.h │ │ ├── pcl_config.h │ │ ├── pcl_exports.h │ │ ├── pcl_macros.h │ │ ├── pcl_tests.h │ │ ├── point_cloud.h │ │ ├── point_representation.h │ │ ├── point_traits.h │ │ ├── point_types.h │ │ ├── point_types_conversion.h │ │ ├── range_image │ │ ├── bearing_angle_image.h │ │ ├── impl │ │ │ ├── range_image.hpp │ │ │ ├── range_image_planar.hpp │ │ │ └── range_image_spherical.hpp │ │ ├── range_image.h │ │ ├── range_image_planar.h │ │ └── range_image_spherical.h │ │ ├── recognition │ │ ├── 3rdparty │ │ │ └── metslib │ │ │ │ ├── abstract-search.hh │ │ │ │ ├── local-search.hh │ │ │ │ ├── mets.hh │ │ │ │ ├── metslib_config.hh │ │ │ │ ├── model.hh │ │ │ │ ├── observer.hh │ │ │ │ ├── simulated-annealing.hh │ │ │ │ ├── tabu-search.hh │ │ │ │ └── termination-criteria.hh │ │ ├── auxiliary.h │ │ ├── boost.h │ │ ├── bvh.h │ │ ├── cg │ │ │ ├── correspondence_grouping.h │ │ │ ├── geometric_consistency.h │ │ │ └── hough_3d.h │ │ ├── color_gradient_dot_modality.h │ │ ├── color_gradient_modality.h │ │ ├── color_modality.h │ │ ├── crh_alignment.h │ │ ├── dense_quantized_multi_mod_template.h │ │ ├── distance_map.h │ │ ├── dot_modality.h │ │ ├── dotmod.h │ │ ├── face_detection │ │ │ ├── face_common.h │ │ │ ├── face_detector_data_provider.h │ │ │ ├── rf_face_detector_trainer.h │ │ │ └── rf_face_utils.h │ │ ├── hv │ │ │ ├── greedy_verification.h │ │ │ ├── hv_go.h │ │ │ ├── hv_papazov.h │ │ │ ├── hypotheses_verification.h │ │ │ └── occlusion_reasoning.h │ │ ├── hypothesis.h │ │ ├── impl │ │ │ ├── cg │ │ │ │ ├── correspondence_grouping.hpp │ │ │ │ ├── geometric_consistency.hpp │ │ │ │ └── hough_3d.hpp │ │ │ ├── hv │ │ │ │ ├── greedy_verification.hpp │ │ │ │ ├── hv_go.hpp │ │ │ │ ├── hv_papazov.hpp │ │ │ │ └── occlusion_reasoning.hpp │ │ │ ├── implicit_shape_model.hpp │ │ │ ├── line_rgbd.hpp │ │ │ ├── linemod │ │ │ │ └── line_rgbd.hpp │ │ │ ├── ransac_based │ │ │ │ ├── simple_octree.hpp │ │ │ │ └── voxel_structure.hpp │ │ │ ├── simple_octree.hpp │ │ │ └── voxel_structure.hpp │ │ ├── implicit_shape_model.h │ │ ├── line_rgbd.h │ │ ├── linemod.h │ │ ├── linemod │ │ │ └── line_rgbd.h │ │ ├── mask_map.h │ │ ├── model_library.h │ │ ├── obj_rec_ransac.h │ │ ├── orr_graph.h │ │ ├── orr_octree.h │ │ ├── orr_octree_zprojection.h │ │ ├── point_types.h │ │ ├── quantizable_modality.h │ │ ├── quantized_map.h │ │ ├── ransac_based │ │ │ ├── auxiliary.h │ │ │ ├── bvh.h │ │ │ ├── hypothesis.h │ │ │ ├── model_library.h │ │ │ ├── obj_rec_ransac.h │ │ │ ├── orr_graph.h │ │ │ ├── orr_octree.h │ │ │ ├── orr_octree_zprojection.h │ │ │ ├── rigid_transform_space.h │ │ │ ├── simple_octree.h │ │ │ ├── trimmed_icp.h │ │ │ └── voxel_structure.h │ │ ├── region_xy.h │ │ ├── rigid_transform_space.h │ │ ├── simple_octree.h │ │ ├── sparse_quantized_multi_mod_template.h │ │ ├── surface_normal_modality.h │ │ ├── trimmed_icp.h │ │ └── voxel_structure.h │ │ ├── register_point_struct.h │ │ ├── registration │ │ ├── bfgs.h │ │ ├── boost.h │ │ ├── boost_graph.h │ │ ├── convergence_criteria.h │ │ ├── correspondence_estimation.h │ │ ├── correspondence_estimation_backprojection.h │ │ ├── correspondence_estimation_normal_shooting.h │ │ ├── correspondence_estimation_organized_projection.h │ │ ├── correspondence_rejection.h │ │ ├── correspondence_rejection_distance.h │ │ ├── correspondence_rejection_features.h │ │ ├── correspondence_rejection_median_distance.h │ │ ├── correspondence_rejection_one_to_one.h │ │ ├── correspondence_rejection_organized_boundary.h │ │ ├── correspondence_rejection_poly.h │ │ ├── correspondence_rejection_sample_consensus.h │ │ ├── correspondence_rejection_sample_consensus_2d.h │ │ ├── correspondence_rejection_surface_normal.h │ │ ├── correspondence_rejection_trimmed.h │ │ ├── correspondence_rejection_var_trimmed.h │ │ ├── correspondence_sorting.h │ │ ├── correspondence_types.h │ │ ├── default_convergence_criteria.h │ │ ├── distances.h │ │ ├── eigen.h │ │ ├── elch.h │ │ ├── exceptions.h │ │ ├── gicp.h │ │ ├── gicp6d.h │ │ ├── ia_fpcs.h │ │ ├── ia_kfpcs.h │ │ ├── ia_ransac.h │ │ ├── icp.h │ │ ├── icp_nl.h │ │ ├── impl │ │ │ ├── correspondence_estimation.hpp │ │ │ ├── correspondence_estimation_backprojection.hpp │ │ │ ├── correspondence_estimation_normal_shooting.hpp │ │ │ ├── correspondence_estimation_organized_projection.hpp │ │ │ ├── correspondence_rejection.hpp │ │ │ ├── correspondence_rejection_distance.hpp │ │ │ ├── correspondence_rejection_features.hpp │ │ │ ├── correspondence_rejection_median_distance.hpp │ │ │ ├── correspondence_rejection_one_to_one.hpp │ │ │ ├── correspondence_rejection_organized_boundary.hpp │ │ │ ├── correspondence_rejection_poly.hpp │ │ │ ├── correspondence_rejection_sample_consensus.hpp │ │ │ ├── correspondence_rejection_sample_consensus_2d.hpp │ │ │ ├── correspondence_rejection_surface_normal.hpp │ │ │ ├── correspondence_rejection_trimmed.hpp │ │ │ ├── correspondence_rejection_var_trimmed.hpp │ │ │ ├── correspondence_types.hpp │ │ │ ├── default_convergence_criteria.hpp │ │ │ ├── elch.hpp │ │ │ ├── gicp.hpp │ │ │ ├── ia_fpcs.hpp │ │ │ ├── ia_kfpcs.hpp │ │ │ ├── ia_ransac.hpp │ │ │ ├── icp.hpp │ │ │ ├── icp_nl.hpp │ │ │ ├── incremental_registration.hpp │ │ │ ├── joint_icp.hpp │ │ │ ├── lum.hpp │ │ │ ├── meta_registration.hpp │ │ │ ├── ndt.hpp │ │ │ ├── ndt_2d.hpp │ │ │ ├── ppf_registration.hpp │ │ │ ├── pyramid_feature_matching.hpp │ │ │ ├── registration.hpp │ │ │ ├── sample_consensus_prerejective.hpp │ │ │ ├── transformation_estimation_2D.hpp │ │ │ ├── transformation_estimation_3point.hpp │ │ │ ├── transformation_estimation_dual_quaternion.hpp │ │ │ ├── transformation_estimation_lm.hpp │ │ │ ├── transformation_estimation_point_to_plane_lls.hpp │ │ │ ├── transformation_estimation_point_to_plane_lls_weighted.hpp │ │ │ ├── transformation_estimation_point_to_plane_weighted.hpp │ │ │ ├── transformation_estimation_svd.hpp │ │ │ ├── transformation_estimation_svd_scale.hpp │ │ │ └── transformation_validation_euclidean.hpp │ │ ├── incremental_registration.h │ │ ├── joint_icp.h │ │ ├── lum.h │ │ ├── matching_candidate.h │ │ ├── meta_registration.h │ │ ├── ndt.h │ │ ├── ndt_2d.h │ │ ├── pairwise_graph_registration.hpp │ │ ├── ppf_registration.h │ │ ├── pyramid_feature_matching.h │ │ ├── registration.h │ │ ├── sample_consensus_prerejective.h │ │ ├── transformation_estimation.h │ │ ├── transformation_estimation_2D.h │ │ ├── transformation_estimation_3point.h │ │ ├── transformation_estimation_dual_quaternion.h │ │ ├── transformation_estimation_lm.h │ │ ├── transformation_estimation_point_to_plane.h │ │ ├── transformation_estimation_point_to_plane_lls.h │ │ ├── transformation_estimation_point_to_plane_lls_weighted.h │ │ ├── transformation_estimation_point_to_plane_weighted.h │ │ ├── transformation_estimation_svd.h │ │ ├── transformation_estimation_svd_scale.h │ │ ├── transformation_validation.h │ │ ├── transformation_validation_euclidean.h │ │ ├── transforms.h │ │ ├── warp_point_rigid.h │ │ ├── warp_point_rigid_3d.h │ │ └── warp_point_rigid_6d.h │ │ ├── ros │ │ ├── conversions.h │ │ └── register_point_struct.h │ │ ├── sample_consensus │ │ ├── boost.h │ │ ├── eigen.h │ │ ├── impl │ │ │ ├── lmeds.hpp │ │ │ ├── mlesac.hpp │ │ │ ├── msac.hpp │ │ │ ├── prosac.hpp │ │ │ ├── ransac.hpp │ │ │ ├── rmsac.hpp │ │ │ ├── rransac.hpp │ │ │ ├── sac_model_circle.hpp │ │ │ ├── sac_model_circle3d.hpp │ │ │ ├── sac_model_cone.hpp │ │ │ ├── sac_model_cylinder.hpp │ │ │ ├── sac_model_line.hpp │ │ │ ├── sac_model_normal_parallel_plane.hpp │ │ │ ├── sac_model_normal_plane.hpp │ │ │ ├── sac_model_normal_sphere.hpp │ │ │ ├── sac_model_parallel_line.hpp │ │ │ ├── sac_model_parallel_plane.hpp │ │ │ ├── sac_model_perpendicular_plane.hpp │ │ │ ├── sac_model_plane.hpp │ │ │ ├── sac_model_registration.hpp │ │ │ ├── sac_model_registration_2d.hpp │ │ │ ├── sac_model_sphere.hpp │ │ │ └── sac_model_stick.hpp │ │ ├── lmeds.h │ │ ├── method_types.h │ │ ├── mlesac.h │ │ ├── model_types.h │ │ ├── msac.h │ │ ├── prosac.h │ │ ├── ransac.h │ │ ├── rmsac.h │ │ ├── rransac.h │ │ ├── sac.h │ │ ├── sac_model.h │ │ ├── sac_model_circle.h │ │ ├── sac_model_circle3d.h │ │ ├── sac_model_cone.h │ │ ├── sac_model_cylinder.h │ │ ├── sac_model_line.h │ │ ├── sac_model_normal_parallel_plane.h │ │ ├── sac_model_normal_plane.h │ │ ├── sac_model_normal_sphere.h │ │ ├── sac_model_parallel_line.h │ │ ├── sac_model_parallel_plane.h │ │ ├── sac_model_perpendicular_plane.h │ │ ├── sac_model_plane.h │ │ ├── sac_model_registration.h │ │ ├── sac_model_registration_2d.h │ │ ├── sac_model_sphere.h │ │ └── sac_model_stick.h │ │ ├── search │ │ ├── brute_force.h │ │ ├── flann_search.h │ │ ├── impl │ │ │ ├── brute_force.hpp │ │ │ ├── flann_search.hpp │ │ │ ├── kdtree.hpp │ │ │ ├── organized.hpp │ │ │ └── search.hpp │ │ ├── kdtree.h │ │ ├── octree.h │ │ ├── organized.h │ │ ├── pcl_search.h │ │ └── search.h │ │ ├── segmentation │ │ ├── approximate_progressive_morphological_filter.h │ │ ├── boost.h │ │ ├── comparator.h │ │ ├── conditional_euclidean_clustering.h │ │ ├── cpc_segmentation.h │ │ ├── crf_normal_segmentation.h │ │ ├── crf_segmentation.h │ │ ├── edge_aware_plane_comparator.h │ │ ├── euclidean_cluster_comparator.h │ │ ├── euclidean_plane_coefficient_comparator.h │ │ ├── extract_clusters.h │ │ ├── extract_labeled_clusters.h │ │ ├── extract_polygonal_prism_data.h │ │ ├── grabcut_segmentation.h │ │ ├── ground_plane_comparator.h │ │ ├── impl │ │ │ ├── approximate_progressive_morphological_filter.hpp │ │ │ ├── conditional_euclidean_clustering.hpp │ │ │ ├── cpc_segmentation.hpp │ │ │ ├── crf_normal_segmentation.hpp │ │ │ ├── crf_segmentation.hpp │ │ │ ├── extract_clusters.hpp │ │ │ ├── extract_labeled_clusters.hpp │ │ │ ├── extract_polygonal_prism_data.hpp │ │ │ ├── grabcut_segmentation.hpp │ │ │ ├── lccp_segmentation.hpp │ │ │ ├── min_cut_segmentation.hpp │ │ │ ├── organized_connected_component_segmentation.hpp │ │ │ ├── organized_multi_plane_segmentation.hpp │ │ │ ├── planar_polygon_fusion.hpp │ │ │ ├── progressive_morphological_filter.hpp │ │ │ ├── random_walker.hpp │ │ │ ├── region_growing.hpp │ │ │ ├── region_growing_rgb.hpp │ │ │ ├── sac_segmentation.hpp │ │ │ ├── seeded_hue_segmentation.hpp │ │ │ ├── segment_differences.hpp │ │ │ ├── supervoxel_clustering.hpp │ │ │ └── unary_classifier.hpp │ │ ├── lccp_segmentation.h │ │ ├── min_cut_segmentation.h │ │ ├── organized_connected_component_segmentation.h │ │ ├── organized_multi_plane_segmentation.h │ │ ├── planar_polygon_fusion.h │ │ ├── planar_region.h │ │ ├── plane_coefficient_comparator.h │ │ ├── plane_refinement_comparator.h │ │ ├── progressive_morphological_filter.h │ │ ├── random_walker.h │ │ ├── region_3d.h │ │ ├── region_growing.h │ │ ├── region_growing_rgb.h │ │ ├── rgb_plane_coefficient_comparator.h │ │ ├── sac_segmentation.h │ │ ├── seeded_hue_segmentation.h │ │ ├── segment_differences.h │ │ ├── supervoxel_clustering.h │ │ └── unary_classifier.h │ │ ├── sse.h │ │ ├── stereo │ │ ├── digital_elevation_map.h │ │ ├── disparity_map_converter.h │ │ ├── impl │ │ │ └── disparity_map_converter.hpp │ │ ├── stereo_grabber.h │ │ └── stereo_matching.h │ │ ├── surface │ │ ├── 3rdparty │ │ │ └── poisson4 │ │ │ │ ├── allocator.h │ │ │ │ ├── binary_node.h │ │ │ │ ├── bspline_data.h │ │ │ │ ├── bspline_data.hpp │ │ │ │ ├── factor.h │ │ │ │ ├── function_data.h │ │ │ │ ├── function_data.hpp │ │ │ │ ├── geometry.h │ │ │ │ ├── geometry.hpp │ │ │ │ ├── hash.h │ │ │ │ ├── marching_cubes_poisson.h │ │ │ │ ├── mat.h │ │ │ │ ├── mat.hpp │ │ │ │ ├── multi_grid_octree_data.h │ │ │ │ ├── multi_grid_octree_data.hpp │ │ │ │ ├── octree_poisson.h │ │ │ │ ├── octree_poisson.hpp │ │ │ │ ├── polynomial.h │ │ │ │ ├── polynomial.hpp │ │ │ │ ├── ppolynomial.h │ │ │ │ ├── ppolynomial.hpp │ │ │ │ ├── sparse_matrix.h │ │ │ │ ├── sparse_matrix.hpp │ │ │ │ ├── vector.h │ │ │ │ └── vector.hpp │ │ ├── bilateral_upsampling.h │ │ ├── boost.h │ │ ├── concave_hull.h │ │ ├── convex_hull.h │ │ ├── ear_clipping.h │ │ ├── eigen.h │ │ ├── gp3.h │ │ ├── grid_projection.h │ │ ├── impl │ │ │ ├── bilateral_upsampling.hpp │ │ │ ├── concave_hull.hpp │ │ │ ├── convex_hull.hpp │ │ │ ├── gp3.hpp │ │ │ ├── grid_projection.hpp │ │ │ ├── marching_cubes.hpp │ │ │ ├── marching_cubes_hoppe.hpp │ │ │ ├── marching_cubes_rbf.hpp │ │ │ ├── mls.hpp │ │ │ ├── organized_fast_mesh.hpp │ │ │ ├── poisson.hpp │ │ │ ├── processing.hpp │ │ │ ├── reconstruction.hpp │ │ │ ├── surfel_smoothing.hpp │ │ │ └── texture_mapping.hpp │ │ ├── marching_cubes.h │ │ ├── marching_cubes_hoppe.h │ │ ├── marching_cubes_rbf.h │ │ ├── mls.h │ │ ├── organized_fast_mesh.h │ │ ├── poisson.h │ │ ├── processing.h │ │ ├── qhull.h │ │ ├── reconstruction.h │ │ ├── simplification_remove_unused_vertices.h │ │ ├── surfel_smoothing.h │ │ └── texture_mapping.h │ │ └── tracking │ │ ├── approx_nearest_pair_point_cloud_coherence.h │ │ ├── boost.h │ │ ├── coherence.h │ │ ├── distance_coherence.h │ │ ├── hsv_color_coherence.h │ │ ├── impl │ │ ├── approx_nearest_pair_point_cloud_coherence.hpp │ │ ├── coherence.hpp │ │ ├── distance_coherence.hpp │ │ ├── hsv_color_coherence.hpp │ │ ├── kld_adaptive_particle_filter.hpp │ │ ├── kld_adaptive_particle_filter_omp.hpp │ │ ├── nearest_pair_point_cloud_coherence.hpp │ │ ├── normal_coherence.hpp │ │ ├── particle_filter.hpp │ │ ├── particle_filter_omp.hpp │ │ ├── pyramidal_klt.hpp │ │ ├── tracker.hpp │ │ └── tracking.hpp │ │ ├── kld_adaptive_particle_filter.h │ │ ├── kld_adaptive_particle_filter_omp.h │ │ ├── nearest_pair_point_cloud_coherence.h │ │ ├── normal_coherence.h │ │ ├── particle_filter.h │ │ ├── particle_filter_omp.h │ │ ├── pyramidal_klt.h │ │ ├── tracker.h │ │ └── tracking.h ├── lib │ ├── libosgModeling.so │ ├── libpcl_common.so.1.8 │ ├── libpcl_io.so.1.8 │ └── libpcl_io_ply.so.1.8 ├── main.cpp ├── osgpick.cpp ├── osgpick.h ├── osgskybox.cpp ├── osgskybox.h ├── osgviewwidget.cpp ├── osgviewwidget.h ├── paramaxisdragger.cpp ├── paramaxisdragger.h ├── paramtrackballdragger.cpp ├── paramtrackballdragger.h ├── qosgabsolutemodeltransform.cpp ├── qosgabsolutemodeltransform.h ├── qosgcollectverticesvisitor.cpp ├── qosgcollectverticesvisitor.h ├── qosgcollsioncheck.cpp ├── qosgcollsioncheck.h ├── qosgcommon.cpp ├── qosgcommon.h ├── qosgcomputetrimeshvisitor.cpp ├── qosgcomputetrimeshvisitor.h ├── qosgenvmodel.cpp ├── qosgenvmodel.h ├── qosgkeyboardeventhandler.cpp ├── qosgkeyboardeventhandler.h ├── qosgmainwindow.cpp ├── qosgmainwindow.h ├── qosgoctreebuilder.cpp ├── qosgoctreebuilder.h ├── qosgselecteditemdraggercallback.cpp ├── qosgselecteditemdraggercallback.h ├── qosgtrackball.cpp ├── qosgtrackball.h ├── qosgupdatecallbackcheckcollsion.cpp ├── qosgupdatecallbackcheckcollsion.h ├── qtosgleftsidebar.cpp └── qtosgleftsidebar.h ├── render └── arial.ttf └── resource ├── Screenshot from 2018-07-14 16-49-25.png ├── Screenshot from 2018-07-14 16-51-10.png ├── Screenshot from 2018-07-14 17-02-49.png ├── Screenshot from 2018-07-14 17-03-11.png ├── Screenshot from 2018-07-14 17-03-16.png ├── Screenshot from 2018-07-14 17-03-20.png ├── Screenshot from 2018-07-14 17-03-26.png └── Screenshot from 2018-07-14 17-03-33.png /README.md: -------------------------------------------------------------------------------- 1 | # osgQTWidget 2 | 集成osg到qt的一个widget中 3 | 4 | 一个使用osg和qt制作的渲染widget.可以做到即插即用JimmieKJ/osgQTWidget一个使用osg和qt制作的渲染widget.可以做到即插即用 5 | 6 | 版本信息---osg 7 | (3.4) qt (5.5) ubuntu(16.04) 8 | 9 | 使用的库 10 | : 11 | 12 | osg: http://www.openscenegraph.org/index.php/community/press-releases/220-openscenegraph-3.4-1.release 13 | 14 | 15 | 16 | bullet: https://github.com/bulletphysics/bullet3 17 | 18 | 19 | 20 | osgWorks: https://github.com/mccdo/osgworks 21 | 22 | 23 | 24 | osgBullet: https://github.com/mccdo/osgbullet 25 | 26 | 27 | 28 | osgModeling: https://github.com/ijk123/osgModeling 29 | 30 | 31 | 32 | 实现的功能: 33 | 34 | 1. 无缝集成到qt 35 | 36 | 2. 渲染模型,百万级以上点云,边框等 37 | 38 | 3.支持透明渲染显示,点击选中,拖动物体的位姿等 39 | 40 | 4.集成了bullet的碰撞检测,支持复杂模型精确的碰撞检测,支持点云与模型碰撞检测 41 | 42 | 5. 支持一个界面多个渲染窗口 43 | 44 | 45 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2016-49-25.png) 46 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2016-51-10.png) 47 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2017-02-49.png) 48 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2017-03-11.png) 49 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2017-03-16.png) 50 | ![image](https://github.com/JimmieKJ/osgQTWidget/blob/master/resource/Screenshot%20from%202018-07-14%2017-03-26.png) 51 | 52 | 53 | -------------------------------------------------------------------------------- /SRC/images.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/faceView_.png 4 | images/upView_.png 5 | images/leftView_.png 6 | images/startView_.png 7 | 8 | 9 | -------------------------------------------------------------------------------- /SRC/images/faceView_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/faceView_.png -------------------------------------------------------------------------------- /SRC/images/leftView_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/leftView_.png -------------------------------------------------------------------------------- /SRC/images/startView_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/startView_.png -------------------------------------------------------------------------------- /SRC/images/upView_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/upView_.png -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Cholesky: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_CHOLESKY_MODULE_H 9 | #define EIGEN_CHOLESKY_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup Cholesky_Module Cholesky module 16 | * 17 | * 18 | * 19 | * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices. 20 | * Those decompositions are also accessible via the following methods: 21 | * - MatrixBase::llt() 22 | * - MatrixBase::ldlt() 23 | * - SelfAdjointView::llt() 24 | * - SelfAdjointView::ldlt() 25 | * 26 | * \code 27 | * #include 28 | * \endcode 29 | */ 30 | 31 | #include "src/Cholesky/LLT.h" 32 | #include "src/Cholesky/LDLT.h" 33 | #ifdef EIGEN_USE_LAPACKE 34 | #include "src/Cholesky/LLT_MKL.h" 35 | #endif 36 | 37 | #include "src/Core/util/ReenableStupidWarnings.h" 38 | 39 | #endif // EIGEN_CHOLESKY_MODULE_H 40 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 41 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/CholmodSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_CHOLMODSUPPORT_MODULE_H 9 | #define EIGEN_CHOLMODSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | extern "C" { 16 | #include 17 | } 18 | 19 | /** \ingroup Support_modules 20 | * \defgroup CholmodSupport_Module CholmodSupport module 21 | * 22 | * This module provides an interface to the Cholmod library which is part of the suitesparse package. 23 | * It provides the two following main factorization classes: 24 | * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization. 25 | * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial). 26 | * 27 | * For the sake of completeness, this module also propose the two following classes: 28 | * - class CholmodSimplicialLLT 29 | * - class CholmodSimplicialLDLT 30 | * Note that these classes does not bring any particular advantage compared to the built-in 31 | * SimplicialLLT and SimplicialLDLT factorization classes. 32 | * 33 | * \code 34 | * #include 35 | * \endcode 36 | * 37 | * 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. 38 | * The dependencies depend on how cholmod has been compiled. 39 | * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task. 40 | * 41 | */ 42 | 43 | #include "src/CholmodSupport/CholmodSupport.h" 44 | 45 | #include "src/Core/util/ReenableStupidWarnings.h" 46 | 47 | #endif // EIGEN_CHOLMODSUPPORT_MODULE_H 48 | 49 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | #include "Sparse" 3 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Eigenvalues: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_EIGENVALUES_MODULE_H 9 | #define EIGEN_EIGENVALUES_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "Cholesky" 16 | #include "Jacobi" 17 | #include "Householder" 18 | #include "LU" 19 | #include "Geometry" 20 | 21 | /** \defgroup Eigenvalues_Module Eigenvalues module 22 | * 23 | * 24 | * 25 | * This module mainly provides various eigenvalue solvers. 26 | * This module also provides some MatrixBase methods, including: 27 | * - MatrixBase::eigenvalues(), 28 | * - MatrixBase::operatorNorm() 29 | * 30 | * \code 31 | * #include 32 | * \endcode 33 | */ 34 | 35 | #include "src/Eigenvalues/Tridiagonalization.h" 36 | #include "src/Eigenvalues/RealSchur.h" 37 | #include "src/Eigenvalues/EigenSolver.h" 38 | #include "src/Eigenvalues/SelfAdjointEigenSolver.h" 39 | #include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h" 40 | #include "src/Eigenvalues/HessenbergDecomposition.h" 41 | #include "src/Eigenvalues/ComplexSchur.h" 42 | #include "src/Eigenvalues/ComplexEigenSolver.h" 43 | #include "src/Eigenvalues/RealQZ.h" 44 | #include "src/Eigenvalues/GeneralizedEigenSolver.h" 45 | #include "src/Eigenvalues/MatrixBaseEigenvalues.h" 46 | #ifdef EIGEN_USE_LAPACKE 47 | #include "src/Eigenvalues/RealSchur_MKL.h" 48 | #include "src/Eigenvalues/ComplexSchur_MKL.h" 49 | #include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h" 50 | #endif 51 | 52 | #include "src/Core/util/ReenableStupidWarnings.h" 53 | 54 | #endif // EIGEN_EIGENVALUES_MODULE_H 55 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 56 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Geometry: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_GEOMETRY_MODULE_H 9 | #define EIGEN_GEOMETRY_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "SVD" 16 | #include "LU" 17 | #include 18 | 19 | /** \defgroup Geometry_Module Geometry module 20 | * 21 | * 22 | * 23 | * This module provides support for: 24 | * - fixed-size homogeneous transformations 25 | * - translation, scaling, 2D and 3D rotations 26 | * - quaternions 27 | * - \ref MatrixBase::cross() "cross product" 28 | * - \ref MatrixBase::unitOrthogonal() "orthognal vector generation" 29 | * - some linear components: parametrized-lines and hyperplanes 30 | * 31 | * \code 32 | * #include 33 | * \endcode 34 | */ 35 | 36 | #include "src/Geometry/OrthoMethods.h" 37 | #include "src/Geometry/EulerAngles.h" 38 | 39 | #include "src/Geometry/Homogeneous.h" 40 | #include "src/Geometry/RotationBase.h" 41 | #include "src/Geometry/Rotation2D.h" 42 | #include "src/Geometry/Quaternion.h" 43 | #include "src/Geometry/AngleAxis.h" 44 | #include "src/Geometry/Transform.h" 45 | #include "src/Geometry/Translation.h" 46 | #include "src/Geometry/Scaling.h" 47 | #include "src/Geometry/Hyperplane.h" 48 | #include "src/Geometry/ParametrizedLine.h" 49 | #include "src/Geometry/AlignedBox.h" 50 | #include "src/Geometry/Umeyama.h" 51 | 52 | // Use the SSE optimized version whenever possible. At the moment the 53 | // SSE version doesn't compile when AVX is enabled 54 | #if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX 55 | #include "src/Geometry/arch/Geometry_SSE.h" 56 | #endif 57 | 58 | #include "src/Core/util/ReenableStupidWarnings.h" 59 | 60 | #endif // EIGEN_GEOMETRY_MODULE_H 61 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 62 | 63 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Householder: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_HOUSEHOLDER_MODULE_H 9 | #define EIGEN_HOUSEHOLDER_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup Householder_Module Householder module 16 | * This module provides Householder transformations. 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | */ 22 | 23 | #include "src/Householder/Householder.h" 24 | #include "src/Householder/HouseholderSequence.h" 25 | #include "src/Householder/BlockHouseholder.h" 26 | 27 | #include "src/Core/util/ReenableStupidWarnings.h" 28 | 29 | #endif // EIGEN_HOUSEHOLDER_MODULE_H 30 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 31 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/IterativeLinearSolvers: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 9 | #define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 10 | 11 | #include "SparseCore" 12 | #include "OrderingMethods" 13 | 14 | #include "src/Core/util/DisableStupidWarnings.h" 15 | 16 | /** 17 | * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module 18 | * 19 | * 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. 20 | * Those solvers are accessible via the following classes: 21 | * - ConjugateGradient for selfadjoint (hermitian) matrices, 22 | * - LeastSquaresConjugateGradient for rectangular least-square problems, 23 | * - BiCGSTAB for general square matrices. 24 | * 25 | * These iterative solvers are associated with some preconditioners: 26 | * - IdentityPreconditioner - not really useful 27 | * - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices. 28 | * - IncompleteLUT - incomplete LU factorization with dual thresholding 29 | * 30 | * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport. 31 | * 32 | \code 33 | #include 34 | \endcode 35 | */ 36 | 37 | #include "src/IterativeLinearSolvers/SolveWithGuess.h" 38 | #include "src/IterativeLinearSolvers/IterativeSolverBase.h" 39 | #include "src/IterativeLinearSolvers/BasicPreconditioners.h" 40 | #include "src/IterativeLinearSolvers/ConjugateGradient.h" 41 | #include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h" 42 | #include "src/IterativeLinearSolvers/BiCGSTAB.h" 43 | #include "src/IterativeLinearSolvers/IncompleteLUT.h" 44 | #include "src/IterativeLinearSolvers/IncompleteCholesky.h" 45 | 46 | #include "src/Core/util/ReenableStupidWarnings.h" 47 | 48 | #endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H 49 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Jacobi: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_JACOBI_MODULE_H 9 | #define EIGEN_JACOBI_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup Jacobi_Module Jacobi module 16 | * This module provides Jacobi and Givens rotations. 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | * 22 | * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation: 23 | * - MatrixBase::applyOnTheLeft() 24 | * - MatrixBase::applyOnTheRight(). 25 | */ 26 | 27 | #include "src/Jacobi/Jacobi.h" 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif // EIGEN_JACOBI_MODULE_H 32 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 33 | 34 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/LU: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_LU_MODULE_H 9 | #define EIGEN_LU_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup LU_Module LU module 16 | * This module includes %LU decomposition and related notions such as matrix inversion and determinant. 17 | * This module defines the following MatrixBase methods: 18 | * - MatrixBase::inverse() 19 | * - MatrixBase::determinant() 20 | * 21 | * \code 22 | * #include 23 | * \endcode 24 | */ 25 | 26 | #include "src/misc/Kernel.h" 27 | #include "src/misc/Image.h" 28 | #include "src/LU/FullPivLU.h" 29 | #include "src/LU/PartialPivLU.h" 30 | #ifdef EIGEN_USE_LAPACKE 31 | #include "src/LU/PartialPivLU_MKL.h" 32 | #endif 33 | #include "src/LU/Determinant.h" 34 | #include "src/LU/InverseImpl.h" 35 | 36 | // Use the SSE optimized version whenever possible. At the moment the 37 | // SSE version doesn't compile when AVX is enabled 38 | #if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX 39 | #include "src/LU/arch/Inverse_SSE.h" 40 | #endif 41 | 42 | #include "src/Core/util/ReenableStupidWarnings.h" 43 | 44 | #endif // EIGEN_LU_MODULE_H 45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 46 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/MetisSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_METISSUPPORT_MODULE_H 9 | #define EIGEN_METISSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | extern "C" { 16 | #include 17 | } 18 | 19 | 20 | /** \ingroup Support_modules 21 | * \defgroup MetisSupport_Module MetisSupport module 22 | * 23 | * \code 24 | * #include 25 | * \endcode 26 | * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 27 | * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink 28 | */ 29 | 30 | 31 | #include "src/MetisSupport/MetisSupport.h" 32 | 33 | #include "src/Core/util/ReenableStupidWarnings.h" 34 | 35 | #endif // EIGEN_METISSUPPORT_MODULE_H 36 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/PaStiXSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_PASTIXSUPPORT_MODULE_H 9 | #define EIGEN_PASTIXSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include 16 | extern "C" { 17 | #include 18 | #include 19 | } 20 | 21 | #ifdef complex 22 | #undef complex 23 | #endif 24 | 25 | /** \ingroup Support_modules 26 | * \defgroup PaStiXSupport_Module PaStiXSupport module 27 | * 28 | * This module provides an interface to the PaSTiX library. 29 | * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver. 30 | * It provides the two following main factorization classes: 31 | * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization. 32 | * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization. 33 | * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern). 34 | * 35 | * \code 36 | * #include 37 | * \endcode 38 | * 39 | * 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. 40 | * The dependencies depend on how PaSTiX has been compiled. 41 | * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task. 42 | * 43 | */ 44 | 45 | #include "src/PaStiXSupport/PaStiXSupport.h" 46 | 47 | #include "src/Core/util/ReenableStupidWarnings.h" 48 | 49 | #endif // EIGEN_PASTIXSUPPORT_MODULE_H 50 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/PardisoSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_PARDISOSUPPORT_MODULE_H 9 | #define EIGEN_PARDISOSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include 16 | 17 | /** \ingroup Support_modules 18 | * \defgroup PardisoSupport_Module PardisoSupport module 19 | * 20 | * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers. 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * 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. 27 | * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration. 28 | * 29 | */ 30 | 31 | #include "src/PardisoSupport/PardisoSupport.h" 32 | 33 | #include "src/Core/util/ReenableStupidWarnings.h" 34 | 35 | #endif // EIGEN_PARDISOSUPPORT_MODULE_H 36 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/QR: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_QR_MODULE_H 9 | #define EIGEN_QR_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "Cholesky" 16 | #include "Jacobi" 17 | #include "Householder" 18 | 19 | /** \defgroup QR_Module QR module 20 | * 21 | * 22 | * 23 | * This module provides various QR decompositions 24 | * This module also provides some MatrixBase methods, including: 25 | * - MatrixBase::householderQr() 26 | * - MatrixBase::colPivHouseholderQr() 27 | * - MatrixBase::fullPivHouseholderQr() 28 | * 29 | * \code 30 | * #include 31 | * \endcode 32 | */ 33 | 34 | #include "src/QR/HouseholderQR.h" 35 | #include "src/QR/FullPivHouseholderQR.h" 36 | #include "src/QR/ColPivHouseholderQR.h" 37 | #ifdef EIGEN_USE_LAPACKE 38 | #include "src/QR/HouseholderQR_MKL.h" 39 | #include "src/QR/ColPivHouseholderQR_MKL.h" 40 | #endif 41 | 42 | #include "src/Core/util/ReenableStupidWarnings.h" 43 | 44 | #endif // EIGEN_QR_MODULE_H 45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 46 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/QtAlignedMalloc: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_QTMALLOC_MODULE_H 9 | #define EIGEN_QTMALLOC_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #if (!EIGEN_MALLOC_ALREADY_ALIGNED) 14 | 15 | #include "src/Core/util/DisableStupidWarnings.h" 16 | 17 | void *qMalloc(size_t size) 18 | { 19 | return Eigen::internal::aligned_malloc(size); 20 | } 21 | 22 | void qFree(void *ptr) 23 | { 24 | Eigen::internal::aligned_free(ptr); 25 | } 26 | 27 | void *qRealloc(void *ptr, size_t size) 28 | { 29 | void* newPtr = Eigen::internal::aligned_malloc(size); 30 | memcpy(newPtr, ptr, size); 31 | Eigen::internal::aligned_free(ptr); 32 | return newPtr; 33 | } 34 | 35 | #include "src/Core/util/ReenableStupidWarnings.h" 36 | 37 | #endif 38 | 39 | #endif // EIGEN_QTMALLOC_MODULE_H 40 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 41 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/SPQRSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPQRSUPPORT_MODULE_H 9 | #define EIGEN_SPQRSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "SuiteSparseQR.hpp" 16 | 17 | /** \ingroup Support_modules 18 | * \defgroup SPQRSupport_Module SuiteSparseQR module 19 | * 20 | * This module provides an interface to the SPQR library, which is part of the suitesparse package. 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * 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,...). 27 | * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules 28 | * 29 | */ 30 | 31 | #include "src/CholmodSupport/CholmodSupport.h" 32 | #include "src/SPQRSupport/SuiteSparseQRSupport.h" 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/SVD: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SVD_MODULE_H 9 | #define EIGEN_SVD_MODULE_H 10 | 11 | #include "QR" 12 | #include "Householder" 13 | #include "Jacobi" 14 | 15 | #include "src/Core/util/DisableStupidWarnings.h" 16 | 17 | /** \defgroup SVD_Module SVD module 18 | * 19 | * 20 | * 21 | * This module provides SVD decomposition for matrices (both real and complex). 22 | * Two decomposition algorithms are provided: 23 | * - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones. 24 | * - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems. 25 | * These decompositions are accessible via the respective classes and following MatrixBase methods: 26 | * - MatrixBase::jacobiSvd() 27 | * - MatrixBase::bdcSvd() 28 | * 29 | * \code 30 | * #include 31 | * \endcode 32 | */ 33 | 34 | #include "src/SVD/UpperBidiagonalization.h" 35 | #include "src/SVD/SVDBase.h" 36 | #include "src/SVD/JacobiSVD.h" 37 | #include "src/SVD/BDCSVD.h" 38 | #if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT) 39 | #include "src/SVD/JacobiSVD_MKL.h" 40 | #endif 41 | 42 | #include "src/Core/util/ReenableStupidWarnings.h" 43 | 44 | #endif // EIGEN_SVD_MODULE_H 45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 46 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/Sparse: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPARSE_MODULE_H 9 | #define EIGEN_SPARSE_MODULE_H 10 | 11 | /** \defgroup Sparse_Module Sparse meta-module 12 | * 13 | * Meta-module including all related modules: 14 | * - \ref SparseCore_Module 15 | * - \ref OrderingMethods_Module 16 | * - \ref SparseCholesky_Module 17 | * - \ref SparseLU_Module 18 | * - \ref SparseQR_Module 19 | * - \ref IterativeLinearSolvers_Module 20 | * 21 | \code 22 | #include 23 | \endcode 24 | */ 25 | 26 | #include "SparseCore" 27 | #include "OrderingMethods" 28 | #include "SparseCholesky" 29 | #include "SparseLU" 30 | #include "SparseQR" 31 | #include "IterativeLinearSolvers" 32 | 33 | #endif // EIGEN_SPARSE_MODULE_H 34 | 35 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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/SparseCholesky/SimplicialCholesky.h" 38 | 39 | #ifndef EIGEN_MPL2_ONLY 40 | #include "src/SparseCholesky/SimplicialCholesky_impl.h" 41 | #endif 42 | 43 | #include "src/Core/util/ReenableStupidWarnings.h" 44 | 45 | #endif // EIGEN_SPARSECHOLESKY_MODULE_H 46 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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 | // Ordering interface 24 | #include "OrderingMethods" 25 | 26 | #include "src/SparseLU/SparseLU_gemm_kernel.h" 27 | 28 | #include "src/SparseLU/SparseLU_Structs.h" 29 | #include "src/SparseLU/SparseLU_SupernodalMatrix.h" 30 | #include "src/SparseLU/SparseLUImpl.h" 31 | #include "src/SparseCore/SparseColEtree.h" 32 | #include "src/SparseLU/SparseLU_Memory.h" 33 | #include "src/SparseLU/SparseLU_heap_relax_snode.h" 34 | #include "src/SparseLU/SparseLU_relax_snode.h" 35 | #include "src/SparseLU/SparseLU_pivotL.h" 36 | #include "src/SparseLU/SparseLU_panel_dfs.h" 37 | #include "src/SparseLU/SparseLU_kernel_bmod.h" 38 | #include "src/SparseLU/SparseLU_panel_bmod.h" 39 | #include "src/SparseLU/SparseLU_column_dfs.h" 40 | #include "src/SparseLU/SparseLU_column_bmod.h" 41 | #include "src/SparseLU/SparseLU_copy_to_ucol.h" 42 | #include "src/SparseLU/SparseLU_pruneL.h" 43 | #include "src/SparseLU/SparseLU_Utils.h" 44 | #include "src/SparseLU/SparseLU.h" 45 | 46 | #endif // EIGEN_SPARSELU_MODULE_H 47 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/SparseQR: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPARSEQR_MODULE_H 9 | #define EIGEN_SPARSEQR_MODULE_H 10 | 11 | #include "SparseCore" 12 | #include "OrderingMethods" 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup SparseQR_Module SparseQR module 16 | * \brief Provides QR decomposition for sparse matrices 17 | * 18 | * This module provides a simplicial version of the left-looking Sparse QR decomposition. 19 | * The columns of the input matrix should be reordered to limit the fill-in during the 20 | * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end. 21 | * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 22 | * of built-in and external ordering methods. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | * 28 | * 29 | */ 30 | 31 | #include "OrderingMethods" 32 | #include "src/SparseCore/SparseColEtree.h" 33 | #include "src/SparseQR/SparseQR.h" 34 | 35 | #include "src/Core/util/ReenableStupidWarnings.h" 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/StdDeque: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDDEQUE_MODULE_H 12 | #define EIGEN_STDDEQUE_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* 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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/StdList: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Hauke Heibel 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_STDLIST_MODULE_H 11 | #define EIGEN_STDLIST_MODULE_H 12 | 13 | #include "Core" 14 | #include 15 | 16 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* 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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/StdVector: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDVECTOR_MODULE_H 12 | #define EIGEN_STDVECTOR_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* 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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/UmfPackSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_UMFPACKSUPPORT_MODULE_H 9 | #define EIGEN_UMFPACKSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | extern "C" { 16 | #include 17 | } 18 | 19 | /** \ingroup Support_modules 20 | * \defgroup UmfPackSupport_Module UmfPackSupport module 21 | * 22 | * This module provides an interface to the UmfPack library which is part of the suitesparse package. 23 | * It provides the following factorization class: 24 | * - class UmfPackLU: a multifrontal sequential LU factorization. 25 | * 26 | * \code 27 | * #include 28 | * \endcode 29 | * 30 | * 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. 31 | * The dependencies depend on how umfpack has been compiled. 32 | * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task. 33 | * 34 | */ 35 | 36 | #include "src/UmfPackSupport/UmfPackSupport.h" 37 | 38 | #include "src/Core/util/ReenableStupidWarnings.h" 39 | 40 | #endif // EIGEN_UMFPACKSUPPORT_MODULE_H 41 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/src/Core/DiagonalProduct.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) 2007-2009 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 EIGEN_DIAGONALPRODUCT_H 12 | #define EIGEN_DIAGONALPRODUCT_H 13 | 14 | namespace Eigen { 15 | 16 | /** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal. 17 | */ 18 | template 19 | template 20 | inline const Product 21 | MatrixBase::operator*(const DiagonalBase &a_diagonal) const 22 | { 23 | return Product(derived(),a_diagonal.derived()); 24 | } 25 | 26 | } // end namespace Eigen 27 | 28 | #endif // EIGEN_DIAGONALPRODUCT_H 29 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009-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_SELFCWISEBINARYOP_H 11 | #define EIGEN_SELFCWISEBINARYOP_H 12 | 13 | namespace Eigen { 14 | 15 | template 16 | inline Derived& DenseBase::operator*=(const Scalar& other) 17 | { 18 | typedef typename Derived::PlainObject PlainObject; 19 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op()); 20 | return derived(); 21 | } 22 | 23 | template 24 | inline Derived& ArrayBase::operator+=(const Scalar& other) 25 | { 26 | typedef typename Derived::PlainObject PlainObject; 27 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::add_assign_op()); 28 | return derived(); 29 | } 30 | 31 | template 32 | inline Derived& ArrayBase::operator-=(const Scalar& other) 33 | { 34 | typedef typename Derived::PlainObject PlainObject; 35 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::sub_assign_op()); 36 | return derived(); 37 | } 38 | 39 | template 40 | inline Derived& DenseBase::operator/=(const Scalar& other) 41 | { 42 | typedef typename Derived::PlainObject PlainObject; 43 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op()); 44 | return derived(); 45 | } 46 | 47 | } // end namespace Eigen 48 | 49 | #endif // EIGEN_SELFCWISEBINARYOP_H 50 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2015 Benoit Steiner 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_TYPE_CASTING_AVX_H 11 | #define EIGEN_TYPE_CASTING_AVX_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | 17 | // For now we use SSE to handle integers, so we can't use AVX instructions to cast 18 | // from int to float 19 | template <> 20 | struct type_casting_traits { 21 | enum { 22 | VectorizedCast = 0, 23 | SrcCoeffRatio = 1, 24 | TgtCoeffRatio = 1 25 | }; 26 | }; 27 | 28 | template <> 29 | struct type_casting_traits { 30 | enum { 31 | VectorizedCast = 0, 32 | SrcCoeffRatio = 1, 33 | TgtCoeffRatio = 1 34 | }; 35 | }; 36 | 37 | 38 | 39 | template<> EIGEN_STRONG_INLINE Packet8i pcast(const Packet8f& a) { 40 | return _mm256_cvtps_epi32(a); 41 | } 42 | 43 | template<> EIGEN_STRONG_INLINE Packet8f pcast(const Packet8i& a) { 44 | return _mm256_cvtepi32_ps(a); 45 | } 46 | 47 | } // end namespace internal 48 | 49 | } // end namespace Eigen 50 | 51 | #endif // EIGEN_TYPE_CASTING_AVX_H 52 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2015 Benoit Steiner 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_TYPE_CASTING_SSE_H 11 | #define EIGEN_TYPE_CASTING_SSE_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | 17 | template <> 18 | struct type_casting_traits { 19 | enum { 20 | VectorizedCast = 1, 21 | SrcCoeffRatio = 1, 22 | TgtCoeffRatio = 1 23 | }; 24 | }; 25 | 26 | template<> EIGEN_STRONG_INLINE Packet4i pcast(const Packet4f& a) { 27 | return _mm_cvttps_epi32(a); 28 | } 29 | 30 | 31 | template <> 32 | struct type_casting_traits { 33 | enum { 34 | VectorizedCast = 1, 35 | SrcCoeffRatio = 1, 36 | TgtCoeffRatio = 1 37 | }; 38 | }; 39 | 40 | template<> EIGEN_STRONG_INLINE Packet4f pcast(const Packet4i& a) { 41 | return _mm_cvtepi32_ps(a); 42 | } 43 | 44 | 45 | template <> 46 | struct type_casting_traits { 47 | enum { 48 | VectorizedCast = 1, 49 | SrcCoeffRatio = 2, 50 | TgtCoeffRatio = 1 51 | }; 52 | }; 53 | 54 | template<> EIGEN_STRONG_INLINE Packet4f pcast(const Packet2d& a, const Packet2d& b) { 55 | return _mm_shuffle_ps(_mm_cvtpd_ps(a), _mm_cvtpd_ps(b), (1 << 2) | (1 << 6)); 56 | } 57 | 58 | template <> 59 | struct type_casting_traits { 60 | enum { 61 | VectorizedCast = 1, 62 | SrcCoeffRatio = 1, 63 | TgtCoeffRatio = 2 64 | }; 65 | }; 66 | 67 | template<> EIGEN_STRONG_INLINE Packet2d pcast(const Packet4f& a) { 68 | // Simply discard the second half of the input 69 | return _mm_cvtps_pd(a); 70 | } 71 | 72 | 73 | } // end namespace internal 74 | 75 | } // end namespace Eigen 76 | 77 | #endif // EIGEN_TYPE_CASTING_SSE_H 78 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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-2014 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 | namespace Eigen { 14 | 15 | template 16 | template 17 | bool SparseMatrixBase::isApprox(const SparseMatrixBase& other, const RealScalar &prec) const 18 | { 19 | const typename internal::nested_eval::type actualA(derived()); 20 | typename internal::conditional::type, 22 | const PlainObject>::type actualB(other.derived()); 23 | 24 | return (actualA - actualB).squaredNorm() <= prec * prec * numext::mini(actualA.squaredNorm(), actualB.squaredNorm()); 25 | } 26 | 27 | } // end namespace Eigen 28 | 29 | #endif // EIGEN_SPARSE_FUZZY_H 30 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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-2014 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 | internal::evaluator thisEval(derived()); 22 | for (Index j=0; j::InnerIterator iter(thisEval,j); iter; ++iter) 24 | res += iter.value(); 25 | return res; 26 | } 27 | 28 | template 29 | typename internal::traits >::Scalar 30 | SparseMatrix<_Scalar,_Options,_Index>::sum() const 31 | { 32 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 33 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 34 | } 35 | 36 | template 37 | typename internal::traits >::Scalar 38 | SparseVector<_Scalar,_Options,_Index>::sum() const 39 | { 40 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); 41 | return Matrix::Map(&m_data.value(0), m_data.size()).sum(); 42 | } 43 | 44 | } // end namespace Eigen 45 | 46 | #endif // EIGEN_SPARSEREDUX_H 47 | -------------------------------------------------------------------------------- /SRC/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h: -------------------------------------------------------------------------------- 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 | // 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 | 11 | #ifndef EIGEN_SPARSELU_UTILS_H 12 | #define EIGEN_SPARSELU_UTILS_H 13 | 14 | namespace Eigen { 15 | namespace internal { 16 | 17 | /** 18 | * \brief Count Nonzero elements in the factors 19 | */ 20 | template 21 | void SparseLUImpl::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu) 22 | { 23 | nnzL = 0; 24 | nnzU = (glu.xusub)(n); 25 | Index nsuper = (glu.supno)(n); 26 | Index jlen; 27 | Index i, j, fsupc; 28 | if (n <= 0 ) return; 29 | // For each supernode 30 | for (i = 0; i <= nsuper; i++) 31 | { 32 | fsupc = glu.xsup(i); 33 | jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 34 | 35 | for (j = fsupc; j < glu.xsup(i+1); j++) 36 | { 37 | nnzL += jlen; 38 | nnzU += j - fsupc + 1; 39 | jlen--; 40 | } 41 | } 42 | } 43 | 44 | /** 45 | * \brief Fix up the data storage lsub for L-subscripts. 46 | * 47 | * It removes the subscripts sets for structural pruning, 48 | * and applies permutation to the remaining subscripts 49 | * 50 | */ 51 | template 52 | void SparseLUImpl::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu) 53 | { 54 | Index fsupc, i, j, k, jstart; 55 | 56 | StorageIndex nextl = 0; 57 | Index nsuper = (glu.supno)(n); 58 | 59 | // For each supernode 60 | for (i = 0; i <= nsuper; i++) 61 | { 62 | fsupc = glu.xsup(i); 63 | jstart = glu.xlsub(fsupc); 64 | glu.xlsub(fsupc) = nextl; 65 | for (j = jstart; j < glu.xlsub(fsupc + 1); j++) 66 | { 67 | glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A 68 | nextl++; 69 | } 70 | for (k = fsupc+1; k < glu.xsup(i+1); k++) 71 | glu.xlsub(k) = nextl; // other columns in supernode i 72 | } 73 | 74 | glu.xlsub(n) = nextl; 75 | } 76 | 77 | } // end namespace internal 78 | 79 | } // end namespace Eigen 80 | #endif // EIGEN_SPARSELU_UTILS_H 81 | -------------------------------------------------------------------------------- /SRC/include/eigen3/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_DEVICE_FUNC 42 | EIGEN_STRONG_INLINE const CwiseBinaryOp 43 | binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS &other, const CustomBinaryOp& func = CustomBinaryOp()) const 44 | { 45 | return CwiseBinaryOp(derived(), other.derived(), func); 46 | } 47 | 48 | -------------------------------------------------------------------------------- /SRC/include/eigen3/signature_of_eigen3_matrix_library: -------------------------------------------------------------------------------- 1 | This file is just there as a signature to help identify directories containing Eigen3. When writing a script looking for Eigen3, just look for this file. This is especially useful to help disambiguate with Eigen2... 2 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/ArpackSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla 6 | // Public License v. 2.0. If a copy of the MPL was not distributed 7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #ifndef EIGEN_ARPACKSUPPORT_MODULE_H 10 | #define EIGEN_ARPACKSUPPORT_MODULE_H 11 | 12 | #include 13 | 14 | #include 15 | 16 | /** \defgroup ArpackSupport_Module Arpack support module 17 | * 18 | * This module provides a wrapper to Arpack, a library for sparse eigenvalue decomposition. 19 | * 20 | * \code 21 | * #include 22 | * \endcode 23 | */ 24 | 25 | #include 26 | #include "src/Eigenvalues/ArpackSelfAdjointEigenSolver.h" 27 | 28 | #include 29 | 30 | #endif // EIGEN_ARPACKSUPPORT_MODULE_H 31 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 32 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/AutoDiff: -------------------------------------------------------------------------------- 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 | // 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_AUTODIFF_MODULE 11 | #define EIGEN_AUTODIFF_MODULE 12 | 13 | namespace Eigen { 14 | 15 | /** 16 | * \defgroup AutoDiff_Module Auto Diff module 17 | * 18 | * This module features forward automatic differentation via a simple 19 | * templated scalar type wrapper AutoDiffScalar. 20 | * 21 | * Warning : this should NOT be confused with numerical differentiation, which 22 | * is a different method and has its own module in Eigen : \ref NumericalDiff_Module. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | */ 28 | //@{ 29 | 30 | } 31 | 32 | #include "src/AutoDiff/AutoDiffScalar.h" 33 | // #include "src/AutoDiff/AutoDiffVector.h" 34 | #include "src/AutoDiff/AutoDiffJacobian.h" 35 | 36 | namespace Eigen { 37 | //@} 38 | } 39 | 40 | #endif // EIGEN_AUTODIFF_MODULE 41 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/CXX11/Core: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2013 Christian Seiler 5 | // Copyright (C) 2014 Benoit Steiner 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_CXX11_CORE_MODULE 12 | #define EIGEN_CXX11_CORE_MODULE 13 | 14 | #include 15 | 16 | #include 17 | 18 | /** \defgroup CXX11_Core_Module C++11 Core Module 19 | * 20 | * This module provides common core features for all modules that 21 | * explicitly depend on C++11. Currently, this is only the Tensor 22 | * module. Note that at this stage, you should not need to include 23 | * this module directly. 24 | * 25 | * It also provides a limited fallback for compilers that don't support 26 | * CXX11 yet, such as nvcc. 27 | * 28 | * \code 29 | * #include 30 | * \endcode 31 | */ 32 | 33 | #include 34 | 35 | #include "src/Core/util/EmulateArray.h" 36 | 37 | // Emulate the cxx11 functionality that we need if the compiler doesn't support it. 38 | #if __cplusplus <= 199711L 39 | #include "src/Core/util/EmulateCXX11Meta.h" 40 | #else 41 | #include "src/Core/util/CXX11Workarounds.h" 42 | #include "src/Core/util/CXX11Meta.h" 43 | #endif 44 | 45 | #include 46 | 47 | #endif // EIGEN_CXX11_CORE_MODULE 48 | 49 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2013 Christian Seiler 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_CXX11_TENSORSYMMETRY_MODULE 11 | #define EIGEN_CXX11_TENSORSYMMETRY_MODULE 12 | 13 | #include 14 | 15 | #include 16 | 17 | /** \defgroup CXX11_TensorSymmetry_Module Tensor Symmetry Module 18 | * 19 | * This module provides a classes that allow for the definition of 20 | * symmetries w.r.t. tensor indices. 21 | * 22 | * Including this module will implicitly include the Tensor module. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | */ 28 | 29 | #include "src/TensorSymmetry/util/TemplateGroupTheory.h" 30 | #include "src/TensorSymmetry/Symmetry.h" 31 | #include "src/TensorSymmetry/StaticSymmetry.h" 32 | #include "src/TensorSymmetry/DynamicSymmetry.h" 33 | 34 | #include 35 | 36 | #endif // EIGEN_CXX11_TENSORSYMMETRY_MODULE 37 | 38 | /* 39 | * kate: space-indent on; indent-width 2; mixedindent off; indent-mode cstyle; 40 | */ 41 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2014 Benoit Steiner 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_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H 11 | #define EIGEN_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H 12 | 13 | 14 | namespace Eigen { 15 | 16 | // Default device for the machine (typically a single cpu core) 17 | struct DefaultDevice { 18 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void* allocate(size_t num_bytes) const { 19 | return internal::aligned_malloc(num_bytes); 20 | } 21 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void deallocate(void* buffer) const { 22 | internal::aligned_free(buffer); 23 | } 24 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpy(void* dst, const void* src, size_t n) const { 25 | ::memcpy(dst, src, n); 26 | } 27 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpyHostToDevice(void* dst, const void* src, size_t n) const { 28 | memcpy(dst, src, n); 29 | } 30 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpyDeviceToHost(void* dst, const void* src, size_t n) const { 31 | memcpy(dst, src, n); 32 | } 33 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memset(void* buffer, int c, size_t n) const { 34 | ::memset(buffer, c, n); 35 | } 36 | 37 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t numThreads() const { 38 | #ifndef __CUDA_ARCH__ 39 | // Running on the host CPU 40 | return 1; 41 | #else 42 | // Running on a CUDA device 43 | return 32; 44 | #endif 45 | } 46 | 47 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE int majorDeviceVersion() const { 48 | #ifndef __CUDA_ARCH__ 49 | // Running single threaded on the host CPU 50 | // Should return an enum that encodes the ISA supported by the CPU 51 | return 1; 52 | #else 53 | // Running on a CUDA device 54 | return __CUDA_ARCH__ / 100; 55 | #endif 56 | } 57 | }; 58 | 59 | } // namespace Eigen 60 | 61 | #endif // EIGEN_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H 62 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2014 Benoit Steiner 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_CXX11_TENSOR_TENSOR_IO_H 11 | #define EIGEN_CXX11_TENSOR_TENSOR_IO_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | template<> 17 | struct significant_decimals_impl 18 | : significant_decimals_default_impl 19 | {}; 20 | } 21 | 22 | 23 | template 24 | std::ostream& operator << (std::ostream& os, const TensorBase& expr) { 25 | // Evaluate the expression if needed 26 | TensorForcedEvalOp eval = expr.eval(); 27 | TensorEvaluator, DefaultDevice> tensor(eval, DefaultDevice()); 28 | tensor.evalSubExprsIfNeeded(NULL); 29 | 30 | typedef typename internal::remove_const::type Scalar; 31 | typedef typename T::Index Index; 32 | typedef typename TensorEvaluator, DefaultDevice>::Dimensions Dimensions; 33 | const Index total_size = internal::array_prod(tensor.dimensions()); 34 | 35 | // Print the tensor as a 1d vector or a 2d matrix. 36 | static const int rank = internal::array_size::value; 37 | if (rank == 0) { 38 | os << tensor.coeff(0); 39 | } else if (rank == 1) { 40 | Map > array(const_cast(tensor.data()), total_size); 41 | os << array; 42 | } else { 43 | const Index first_dim = Eigen::internal::array_get<0>(tensor.dimensions()); 44 | static const int layout = TensorEvaluator, DefaultDevice>::Layout; 45 | Map > matrix(const_cast(tensor.data()), first_dim, total_size/first_dim); 46 | os << matrix; 47 | } 48 | 49 | // Cleanup. 50 | tensor.cleanup(); 51 | return os; 52 | } 53 | 54 | } // end namespace Eigen 55 | 56 | #endif // EIGEN_CXX11_TENSOR_TENSOR_IO_H 57 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2015 Benoit Steiner 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_CXX11_TENSOR_TENSOR_META_MACROS_H 11 | #define EIGEN_CXX11_TENSOR_TENSOR_META_MACROS_H 12 | 13 | 14 | /** use this macro in sfinae selection in templated functions 15 | * 16 | * template::value , int >::type = 0 18 | * > 19 | * void foo(){} 20 | * 21 | * becomes => 22 | * 23 | * template::value ) 25 | * > 26 | * void foo(){} 27 | */ 28 | 29 | // SFINAE requires variadic templates 30 | #ifndef __CUDACC__ 31 | #ifdef EIGEN_HAS_VARIADIC_TEMPLATES 32 | // SFINAE doesn't work for gcc <= 4.7 33 | #ifdef EIGEN_COMP_GNUC 34 | #if EIGEN_GNUC_AT_LEAST(4,8) 35 | #define EIGEN_HAS_SFINAE 36 | #endif 37 | #else 38 | #define EIGEN_HAS_SFINAE 39 | #endif 40 | #endif 41 | #endif 42 | 43 | #define EIGEN_SFINAE_ENABLE_IF( __condition__ ) \ 44 | typename internal::enable_if< ( __condition__ ) , int >::type = 0 45 | 46 | 47 | #if defined(EIGEN_HAS_CONSTEXPR) 48 | #define EIGEN_CONSTEXPR constexpr 49 | #else 50 | #define EIGEN_CONSTEXPR 51 | #endif 52 | 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/IterativeSolvers: -------------------------------------------------------------------------------- 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 | // 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_ITERATIVE_SOLVERS_MODULE_H 11 | #define EIGEN_ITERATIVE_SOLVERS_MODULE_H 12 | 13 | #include 14 | 15 | /** 16 | * \defgroup IterativeSolvers_Module Iterative solvers module 17 | * This module aims to provide various iterative linear and non linear solver algorithms. 18 | * It currently provides: 19 | * - a constrained conjugate gradient 20 | * - a Householder GMRES implementation 21 | * \code 22 | * #include 23 | * \endcode 24 | */ 25 | //@{ 26 | 27 | #ifndef EIGEN_MPL2_ONLY 28 | #include "src/IterativeSolvers/IterationController.h" 29 | #include "src/IterativeSolvers/ConstrainedConjGrad.h" 30 | #endif 31 | 32 | #include "src/IterativeSolvers/IncompleteLU.h" 33 | #include "../../Eigen/Jacobi" 34 | #include "../../Eigen/Householder" 35 | #include "src/IterativeSolvers/GMRES.h" 36 | #include "src/IterativeSolvers/DGMRES.h" 37 | //#include "src/IterativeSolvers/SSORPreconditioner.h" 38 | #include "src/IterativeSolvers/MINRES.h" 39 | 40 | //@} 41 | 42 | #endif // EIGEN_ITERATIVE_SOLVERS_MODULE_H 43 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/KroneckerProduct: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla 6 | // Public License v. 2.0. If a copy of the MPL was not distributed 7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #ifndef EIGEN_KRONECKER_PRODUCT_MODULE_H 10 | #define EIGEN_KRONECKER_PRODUCT_MODULE_H 11 | 12 | #include "../../Eigen/Core" 13 | 14 | #include "../../Eigen/src/Core/util/DisableStupidWarnings.h" 15 | 16 | namespace Eigen { 17 | 18 | /** 19 | * \defgroup KroneckerProduct_Module KroneckerProduct module 20 | * 21 | * This module contains an experimental Kronecker product implementation. 22 | * 23 | * \code 24 | * #include 25 | * \endcode 26 | */ 27 | 28 | } // namespace Eigen 29 | 30 | #include "src/KroneckerProduct/KroneckerTensorProduct.h" 31 | 32 | #include "../../Eigen/src/Core/util/ReenableStupidWarnings.h" 33 | 34 | #endif // EIGEN_KRONECKER_PRODUCT_MODULE_H 35 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/LevenbergMarquardt: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Thomas Capricelli 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_LEVENBERGMARQUARDT_MODULE 11 | #define EIGEN_LEVENBERGMARQUARDT_MODULE 12 | 13 | // #include 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #include 21 | 22 | /** 23 | * \defgroup LevenbergMarquardt_Module Levenberg-Marquardt module 24 | * 25 | * \code 26 | * #include 27 | * \endcode 28 | * 29 | * 30 | */ 31 | 32 | #include "Eigen/SparseCore" 33 | #ifndef EIGEN_PARSED_BY_DOXYGEN 34 | 35 | #include "src/LevenbergMarquardt/LMqrsolv.h" 36 | #include "src/LevenbergMarquardt/LMcovar.h" 37 | #include "src/LevenbergMarquardt/LMpar.h" 38 | 39 | #endif 40 | 41 | #include "src/LevenbergMarquardt/LevenbergMarquardt.h" 42 | #include "src/LevenbergMarquardt/LMonestep.h" 43 | 44 | 45 | #endif // EIGEN_LEVENBERGMARQUARDT_MODULE 46 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/MoreVectorization: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla 6 | // Public License v. 2.0. If a copy of the MPL was not distributed 7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #ifndef EIGEN_MOREVECTORIZATION_MODULE_H 10 | #define EIGEN_MOREVECTORIZATION_MODULE_H 11 | 12 | #include 13 | 14 | namespace Eigen { 15 | 16 | /** 17 | * \defgroup MoreVectorization More vectorization module 18 | */ 19 | 20 | } 21 | 22 | #include "src/MoreVectorization/MathFunctions.h" 23 | 24 | #endif // EIGEN_MOREVECTORIZATION_MODULE_H 25 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/NumericalDiff: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Thomas Capricelli 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_NUMERICALDIFF_MODULE 11 | #define EIGEN_NUMERICALDIFF_MODULE 12 | 13 | #include 14 | 15 | namespace Eigen { 16 | 17 | /** 18 | * \defgroup NumericalDiff_Module Numerical differentiation module 19 | * 20 | * \code 21 | * #include 22 | * \endcode 23 | * 24 | * See http://en.wikipedia.org/wiki/Numerical_differentiation 25 | * 26 | * Warning : this should NOT be confused with automatic differentiation, which 27 | * is a different method and has its own module in Eigen : \ref 28 | * AutoDiff_Module. 29 | * 30 | * Currently only "Forward" and "Central" schemes are implemented. Those 31 | * are basic methods, and there exist some more elaborated way of 32 | * computing such approximates. They are implemented using both 33 | * proprietary and free software, and usually requires linking to an 34 | * external library. It is very easy for you to write a functor 35 | * using such software, and the purpose is quite orthogonal to what we 36 | * want to achieve with Eigen. 37 | * 38 | * This is why we will not provide wrappers for every great numerical 39 | * differentiation software that exist, but should rather stick with those 40 | * basic ones, that still are useful for testing. 41 | * 42 | * Also, the \ref NonLinearOptimization_Module needs this in order to 43 | * provide full features compatibility with the original (c)minpack 44 | * package. 45 | * 46 | */ 47 | } 48 | 49 | //@{ 50 | 51 | #include "src/NumericalDiff/NumericalDiff.h" 52 | 53 | //@} 54 | 55 | 56 | #endif // EIGEN_NUMERICALDIFF_MODULE 57 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/Skyline: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla 6 | // Public License v. 2.0. If a copy of the MPL was not distributed 7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | #ifndef EIGEN_SKYLINE_MODULE_H 10 | #define EIGEN_SKYLINE_MODULE_H 11 | 12 | 13 | #include "Eigen/Core" 14 | 15 | #include "Eigen/src/Core/util/DisableStupidWarnings.h" 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | /** 23 | * \defgroup Skyline_Module Skyline module 24 | * 25 | * 26 | * 27 | * 28 | */ 29 | 30 | #include "src/Skyline/SkylineUtil.h" 31 | #include "src/Skyline/SkylineMatrixBase.h" 32 | #include "src/Skyline/SkylineStorage.h" 33 | #include "src/Skyline/SkylineMatrix.h" 34 | #include "src/Skyline/SkylineInplaceLU.h" 35 | #include "src/Skyline/SkylineProduct.h" 36 | 37 | #include "Eigen/src/Core/util/ReenableStupidWarnings.h" 38 | 39 | #endif // EIGEN_SKYLINE_MODULE_H 40 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/SparseExtra: -------------------------------------------------------------------------------- 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 | // 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_EXTRA_MODULE_H 11 | #define EIGEN_SPARSE_EXTRA_MODULE_H 12 | 13 | #include "../../Eigen/Sparse" 14 | 15 | #include "../../Eigen/src/Core/util/DisableStupidWarnings.h" 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | #ifdef EIGEN_GOOGLEHASH_SUPPORT 26 | #include 27 | #endif 28 | 29 | /** 30 | * \defgroup SparseExtra_Module SparseExtra module 31 | * 32 | * This module contains some experimental features extending the sparse module. 33 | * 34 | * \code 35 | * #include 36 | * \endcode 37 | */ 38 | 39 | 40 | #include "src/SparseExtra/DynamicSparseMatrix.h" 41 | #include "src/SparseExtra/BlockOfDynamicSparseMatrix.h" 42 | #include "src/SparseExtra/RandomSetter.h" 43 | 44 | #include "src/SparseExtra/MarketIO.h" 45 | 46 | #if !defined(_WIN32) 47 | #include 48 | #include "src/SparseExtra/MatrixMarketIterator.h" 49 | #endif 50 | 51 | #include "../../Eigen/src/Core/util/ReenableStupidWarnings.h" 52 | 53 | #endif // EIGEN_SPARSE_EXTRA_MODULE_H 54 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/Splines: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 20010-2011 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_SPLINES_MODULE_H 11 | #define EIGEN_SPLINES_MODULE_H 12 | 13 | namespace Eigen 14 | { 15 | /** 16 | * \defgroup Splines_Module Spline and spline fitting module 17 | * 18 | * This module provides a simple multi-dimensional spline class while 19 | * offering most basic functionality to fit a spline to point sets. 20 | * 21 | * \code 22 | * #include 23 | * \endcode 24 | */ 25 | } 26 | 27 | #include "src/Splines/SplineFwd.h" 28 | #include "src/Splines/Spline.h" 29 | #include "src/Splines/SplineFitting.h" 30 | 31 | #endif // EIGEN_SPLINES_MODULE_H 32 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h: -------------------------------------------------------------------------------- 1 | #define chkder_log10e 0.43429448190325182765 2 | #define chkder_factor 100. 3 | 4 | namespace Eigen { 5 | 6 | namespace internal { 7 | 8 | template 9 | void chkder( 10 | const Matrix< Scalar, Dynamic, 1 > &x, 11 | const Matrix< Scalar, Dynamic, 1 > &fvec, 12 | const Matrix< Scalar, Dynamic, Dynamic > &fjac, 13 | Matrix< Scalar, Dynamic, 1 > &xp, 14 | const Matrix< Scalar, Dynamic, 1 > &fvecp, 15 | int mode, 16 | Matrix< Scalar, Dynamic, 1 > &err 17 | ) 18 | { 19 | using std::sqrt; 20 | using std::abs; 21 | using std::log; 22 | 23 | typedef DenseIndex Index; 24 | 25 | const Scalar eps = sqrt(NumTraits::epsilon()); 26 | const Scalar epsf = chkder_factor * NumTraits::epsilon(); 27 | const Scalar epslog = chkder_log10e * log(eps); 28 | Scalar temp; 29 | 30 | const Index m = fvec.size(), n = x.size(); 31 | 32 | if (mode != 2) { 33 | /* mode = 1. */ 34 | xp.resize(n); 35 | for (Index j = 0; j < n; ++j) { 36 | temp = eps * abs(x[j]); 37 | if (temp == 0.) 38 | temp = eps; 39 | xp[j] = x[j] + temp; 40 | } 41 | } 42 | else { 43 | /* mode = 2. */ 44 | err.setZero(m); 45 | for (Index j = 0; j < n; ++j) { 46 | temp = abs(x[j]); 47 | if (temp == 0.) 48 | temp = 1.; 49 | err += temp * fjac.col(j); 50 | } 51 | for (Index i = 0; i < m; ++i) { 52 | temp = 1.; 53 | if (fvec[i] != 0. && fvecp[i] != 0. && abs(fvecp[i] - fvec[i]) >= epsf * abs(fvec[i])) 54 | temp = eps * abs((fvecp[i] - fvec[i]) / eps - err[i]) / (abs(fvec[i]) + abs(fvecp[i])); 55 | err[i] = 1.; 56 | if (temp > NumTraits::epsilon() && temp < eps) 57 | err[i] = (chkder_log10e * log(temp) - epslog) / epslog; 58 | if (temp >= eps) 59 | err[i] = 0.; 60 | } 61 | } 62 | } 63 | 64 | } // end namespace internal 65 | 66 | } // end namespace Eigen 67 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | namespace internal { 4 | 5 | template 6 | void covar( 7 | Matrix< Scalar, Dynamic, Dynamic > &r, 8 | const VectorXi &ipvt, 9 | Scalar tol = std::sqrt(NumTraits::epsilon()) ) 10 | { 11 | using std::abs; 12 | typedef DenseIndex Index; 13 | 14 | /* Local variables */ 15 | Index i, j, k, l, ii, jj; 16 | bool sing; 17 | Scalar temp; 18 | 19 | /* Function Body */ 20 | const Index n = r.cols(); 21 | const Scalar tolr = tol * abs(r(0,0)); 22 | Matrix< Scalar, Dynamic, 1 > wa(n); 23 | eigen_assert(ipvt.size()==n); 24 | 25 | /* form the inverse of r in the full upper triangle of r. */ 26 | l = -1; 27 | for (k = 0; k < n; ++k) 28 | if (abs(r(k,k)) > tolr) { 29 | r(k,k) = 1. / r(k,k); 30 | for (j = 0; j <= k-1; ++j) { 31 | temp = r(k,k) * r(j,k); 32 | r(j,k) = 0.; 33 | r.col(k).head(j+1) -= r.col(j).head(j+1) * temp; 34 | } 35 | l = k; 36 | } 37 | 38 | /* form the full upper triangle of the inverse of (r transpose)*r */ 39 | /* in the full upper triangle of r. */ 40 | for (k = 0; k <= l; ++k) { 41 | for (j = 0; j <= k-1; ++j) 42 | r.col(j).head(j+1) += r.col(k).head(j+1) * r(j,k); 43 | r.col(k).head(k+1) *= r(k,k); 44 | } 45 | 46 | /* form the full lower triangle of the covariance matrix */ 47 | /* in the strict lower triangle of r and in wa. */ 48 | for (j = 0; j < n; ++j) { 49 | jj = ipvt[j]; 50 | sing = j > l; 51 | for (i = 0; i <= j; ++i) { 52 | if (sing) 53 | r(i,j) = 0.; 54 | ii = ipvt[i]; 55 | if (ii > jj) 56 | r(ii,jj) = r(i,j); 57 | if (ii < jj) 58 | r(jj,ii) = r(i,j); 59 | } 60 | wa[jj] = r(j,j); 61 | } 62 | 63 | /* symmetrize the covariance matrix in r. */ 64 | r.topLeftCorner(n,n).template triangularView() = r.topLeftCorner(n,n).transpose(); 65 | r.diagonal() = wa; 66 | } 67 | 68 | } // end namespace internal 69 | 70 | } // end namespace Eigen 71 | -------------------------------------------------------------------------------- /SRC/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | namespace internal { 4 | 5 | // TODO : move this to GivensQR once there's such a thing in Eigen 6 | 7 | template 8 | void r1mpyq(DenseIndex m, DenseIndex n, Scalar *a, const std::vector > &v_givens, const std::vector > &w_givens) 9 | { 10 | typedef DenseIndex Index; 11 | 12 | /* apply the first set of givens rotations to a. */ 13 | for (Index j = n-2; j>=0; --j) 14 | for (Index i = 0; i 6 | void rwupdt( 7 | Matrix< Scalar, Dynamic, Dynamic > &r, 8 | const Matrix< Scalar, Dynamic, 1> &w, 9 | Matrix< Scalar, Dynamic, 1> &b, 10 | Scalar alpha) 11 | { 12 | typedef DenseIndex Index; 13 | 14 | const Index n = r.cols(); 15 | eigen_assert(r.rows()>=n); 16 | std::vector > givens(n); 17 | 18 | /* Local variables */ 19 | Scalar temp, rowj; 20 | 21 | /* Function Body */ 22 | for (Index j = 0; j < n; ++j) { 23 | rowj = w[j]; 24 | 25 | /* apply the previous transformations to */ 26 | /* r(i,j), i=0,1,...,j-1, and to w(j). */ 27 | for (Index i = 0; i < j; ++i) { 28 | temp = givens[i].c() * r(i,j) + givens[i].s() * rowj; 29 | rowj = -givens[i].s() * r(i,j) + givens[i].c() * rowj; 30 | r(i,j) = temp; 31 | } 32 | 33 | /* determine a givens rotation which eliminates w(j). */ 34 | givens[j].makeGivens(-r(j,j), rowj); 35 | 36 | if (rowj == 0.) 37 | continue; // givens[j] is identity 38 | 39 | /* apply the current transformation to r(j,j), b(j), and alpha. */ 40 | r(j,j) = givens[j].c() * r(j,j) + givens[j].s() * rowj; 41 | temp = givens[j].c() * b[j] + givens[j].s() * alpha; 42 | alpha = -givens[j].s() * b[j] + givens[j].c() * alpha; 43 | b[j] = temp; 44 | } 45 | } 46 | 47 | } // end namespace internal 48 | 49 | } // end namespace Eigen 50 | -------------------------------------------------------------------------------- /SRC/include/osgModeling/Algorithm: -------------------------------------------------------------------------------- 1 | /* -*-c++-*- osgModeling - Copyright (C) 2008 Wang Rui 2 | * 3 | * This library is free software; you can redistribute it and/or 4 | * modify it under the terms of the GNU Lesser General Public 5 | * License as published by the Free Software Foundation; either 6 | * version 2.1 of the License, or (at your option) any later version. 7 | 8 | * This library is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | * Lesser General Public License for more details. 12 | 13 | * You should have received a copy of the GNU Lesser General Public 14 | * License along with this library; if not, write to the Free Software 15 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 | */ 17 | 18 | #ifndef OSGMODELING_ALGORITHM 19 | #define OSGMODELING_ALGORITHM 1 20 | 21 | #include 22 | #include 23 | 24 | namespace osgModeling { 25 | 26 | class Curve; 27 | class Model; 28 | 29 | /** Algorithm callback base class 30 | * Creation and modification of models need kinds of algorithms. 31 | * The callback helps build different customized models. 32 | * Must implement the operator() method to create customized callbacks. 33 | */ 34 | class OSGMODELING_EXPORT AlgorithmCallback : public osg::Object 35 | { 36 | public: 37 | AlgorithmCallback() {} 38 | AlgorithmCallback( const AlgorithmCallback& copy, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY ): 39 | osg::Object() {} 40 | META_Object( osgModeling, AlgorithmCallback ); 41 | 42 | virtual void operator()( Model* ) {} 43 | virtual void operator()( Curve* ) {} 44 | 45 | protected: 46 | virtual ~AlgorithmCallback() {} 47 | }; 48 | 49 | } 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /SRC/include/osgModeling/Export: -------------------------------------------------------------------------------- 1 | /* -*-c++-*- osgModeling - Copyright (C) 2008 Wang Rui 2 | * 3 | * This library is free software; you can redistribute it and/or 4 | * modify it under the terms of the GNU Lesser General Public 5 | * License as published by the Free Software Foundation; either 6 | * version 2.1 of the License, or (at your option) any later version. 7 | 8 | * This library is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | * Lesser General Public License for more details. 12 | 13 | * You should have received a copy of the GNU Lesser General Public 14 | * License along with this library; if not, write to the Free Software 15 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 | */ 17 | 18 | #ifndef OSGMODELING_EXPORT_ 19 | #define OSGMODELING_EXPORT_ 20 | 21 | #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__) 22 | # if defined( OSG_LIBRARY_STATIC ) 23 | # define OSGMODELING_EXPORT 24 | # elif defined( OSGMODELING_LIBRARY ) 25 | # define OSGMODELING_EXPORT __declspec(dllexport) 26 | # else 27 | # define OSGMODELING_EXPORT __declspec(dllimport) 28 | # endif 29 | #else 30 | # define OSGMODELING_EXPORT 31 | #endif 32 | 33 | /** 34 | 35 | \namespace osgModeling 36 | 37 | The osgModeling library. 38 | 39 | */ 40 | 41 | /** Define this for compatibility. */ 42 | #include 43 | #if (OPENSCENEGRAPH_MAJOR_VERSION>1 && OPENSCENEGRAPH_MINOR_VERSION>6) 44 | #include 45 | #define VECTOR osg::MixinVector 46 | #else 47 | #include 48 | #define VECTOR std::vector 49 | #endif 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /SRC/include/osgModeling/ModelVisitor: -------------------------------------------------------------------------------- 1 | /* -*-c++-*- osgModeling - Copyright (C) 2008 Wang Rui 2 | * 3 | * This library is free software; you can redistribute it and/or 4 | * modify it under the terms of the GNU Lesser General Public 5 | * License as published by the Free Software Foundation; either 6 | * version 2.1 of the License, or (at your option) any later version. 7 | 8 | * This library is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | * Lesser General Public License for more details. 12 | 13 | * You should have received a copy of the GNU Lesser General Public 14 | * License along with this library; if not, write to the Free Software 15 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 | */ 17 | 18 | #ifndef OSGMODELING_MODELVISITOR 19 | #define OSGMODELING_MODELVISITOR 1 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | namespace osgModeling { 27 | 28 | class PolyMesh; 29 | class Model; 30 | 31 | /** Modeling aid visitor class 32 | * It supports creating polygonal meshes and building BSP trees. 33 | */ 34 | class OSGMODELING_EXPORT ModelVisitor : public osg::NodeVisitor 35 | { 36 | public: 37 | enum GeometryTask { BUILD_MESH=0x4, BUILD_BSP=0x8 }; 38 | 39 | ModelVisitor(); 40 | virtual ~ModelVisitor(); 41 | 42 | /** Set tasks for each drawables to do. Use 'OR' operation to select from enum GeometryTask. */ 43 | inline void setTask( GeometryTask t=BUILD_BSP ) { _task = t; } 44 | inline GeometryTask getTask() const { return _task; } 45 | 46 | /** Build BSP tree for models, which helps do bool operations or intersections. */ 47 | static void buildBSP( Model& model ); 48 | 49 | /** Build a polygon mesh, generating vertex-edge-face list for future uses. */ 50 | static void buildMesh( PolyMesh& mesh ); 51 | 52 | /** apply modeling aid methods, which are set with setTask. */ 53 | virtual void apply( osg::Geode& geode ); 54 | 55 | protected: 56 | static bool checkPrimitives( osg::Geometry& geom ); 57 | 58 | GeometryTask _task; 59 | }; 60 | 61 | } 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /SRC/include/osgModeling/TexCoordVisitor: -------------------------------------------------------------------------------- 1 | /* -*-c++-*- osgModeling - Copyright (C) 2008 Wang Rui 2 | * 3 | * This library is free software; you can redistribute it and/or 4 | * modify it under the terms of the GNU Lesser General Public 5 | * License as published by the Free Software Foundation; either 6 | * version 2.1 of the License, or (at your option) any later version. 7 | 8 | * This library is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | * Lesser General Public License for more details. 12 | 13 | * You should have received a copy of the GNU Lesser General Public 14 | * License along with this library; if not, write to the Free Software 15 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 | */ 17 | 18 | #ifndef OSGMODELING_TEXCOORDVISITOR 19 | #define OSGMODELING_TEXCOORDVISITOR 1 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | namespace osgModeling { 27 | 28 | class Model; 29 | 30 | /** Texture coordinates creating visitor class 31 | * It supports creating texture coordinates and binding to different planes. 32 | */ 33 | class OSGMODELING_EXPORT TexCoordVisitor : public osg::NodeVisitor 34 | { 35 | public: 36 | TexCoordVisitor(); 37 | virtual ~TexCoordVisitor(); 38 | 39 | /** Create texture coordinates for geometry. */ 40 | static void buildTexCoord( osg::Geometry& geoset ); 41 | 42 | virtual void apply( osg::Geode& geode ); 43 | }; 44 | 45 | } 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/ModelCoefficients.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_MESSAGE_MODELCOEFFICIENTS_H 2 | #define PCL_MESSAGE_MODELCOEFFICIENTS_H 3 | #include 4 | #include 5 | #include 6 | 7 | // Include the correct Header path here 8 | #include 9 | 10 | namespace pcl 11 | { 12 | struct ModelCoefficients 13 | { 14 | ModelCoefficients () : header (), values () 15 | { 16 | } 17 | 18 | ::pcl::PCLHeader header; 19 | 20 | std::vector values; 21 | 22 | public: 23 | typedef boost::shared_ptr< ::pcl::ModelCoefficients> Ptr; 24 | typedef boost::shared_ptr< ::pcl::ModelCoefficients const> ConstPtr; 25 | }; // struct ModelCoefficients 26 | 27 | typedef boost::shared_ptr< ::pcl::ModelCoefficients> ModelCoefficientsPtr; 28 | typedef boost::shared_ptr< ::pcl::ModelCoefficients const> ModelCoefficientsConstPtr; 29 | 30 | inline std::ostream& operator<<(std::ostream& s, const ::pcl::ModelCoefficients & v) 31 | { 32 | s << "header: " << std::endl; 33 | s << v.header; 34 | s << "values[]" << std::endl; 35 | for (size_t i = 0; i < v.values.size (); ++i) 36 | { 37 | s << " values[" << i << "]: "; 38 | s << " " << v.values[i] << std::endl; 39 | } 40 | return (s); 41 | } 42 | 43 | } // namespace pcl 44 | 45 | #endif // PCL_MESSAGE_MODELCOEFFICIENTS_H 46 | 47 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/PCLHeader.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_ROSLIB_MESSAGE_HEADER_H 2 | #define PCL_ROSLIB_MESSAGE_HEADER_H 3 | 4 | #ifdef USE_ROS 5 | #error USE_ROS setup requires PCL to compile against ROS message headers, which is now deprecated 6 | #endif 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | namespace pcl 15 | { 16 | struct PCLHeader 17 | { 18 | PCLHeader (): seq (0), stamp (), frame_id () 19 | {} 20 | 21 | /** \brief Sequence number */ 22 | pcl::uint32_t seq; 23 | /** \brief A timestamp associated with the time when the data was acquired 24 | * 25 | * The value represents microseconds since 1970-01-01 00:00:00 (the UNIX epoch). 26 | */ 27 | pcl::uint64_t stamp; 28 | /** \brief Coordinate frame ID */ 29 | std::string frame_id; 30 | 31 | typedef boost::shared_ptr Ptr; 32 | typedef boost::shared_ptr ConstPtr; 33 | }; // struct PCLHeader 34 | 35 | typedef boost::shared_ptr HeaderPtr; 36 | typedef boost::shared_ptr HeaderConstPtr; 37 | 38 | inline std::ostream& operator << (std::ostream& out, const PCLHeader &h) 39 | { 40 | out << "seq: " << h.seq; 41 | out << " stamp: " << h.stamp; 42 | out << " frame_id: " << h.frame_id << std::endl; 43 | return (out); 44 | } 45 | 46 | inline bool operator== (const PCLHeader &lhs, const PCLHeader &rhs) 47 | { 48 | return (&lhs == &rhs) || 49 | (lhs.seq == rhs.seq && lhs.stamp == rhs.stamp && lhs.frame_id == rhs.frame_id); 50 | } 51 | 52 | } // namespace pcl 53 | 54 | #endif // PCL_ROSLIB_MESSAGE_HEADER_H 55 | 56 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/PCLImage.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_MESSAGE_IMAGE_H 2 | #define PCL_MESSAGE_IMAGE_H 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef USE_ROS 8 | #error USE_ROS setup requires PCL to compile against ROS message headers, which is now deprecated 9 | #endif 10 | 11 | // Include the correct Header path here 12 | #include 13 | 14 | namespace pcl 15 | { 16 | struct PCLImage 17 | { 18 | PCLImage () : header (), height (0), width (0), encoding (), 19 | is_bigendian (0), step (0), data () 20 | {} 21 | 22 | ::pcl::PCLHeader header; 23 | 24 | pcl::uint32_t height; 25 | pcl::uint32_t width; 26 | std::string encoding; 27 | 28 | pcl::uint8_t is_bigendian; 29 | pcl::uint32_t step; 30 | 31 | std::vector data; 32 | 33 | typedef boost::shared_ptr< ::pcl::PCLImage> Ptr; 34 | typedef boost::shared_ptr< ::pcl::PCLImage const> ConstPtr; 35 | }; // struct PCLImage 36 | 37 | typedef boost::shared_ptr< ::pcl::PCLImage> PCLImagePtr; 38 | typedef boost::shared_ptr< ::pcl::PCLImage const> PCLImageConstPtr; 39 | 40 | inline std::ostream& operator<<(std::ostream& s, const ::pcl::PCLImage & v) 41 | { 42 | s << "header: " << std::endl; 43 | s << v.header; 44 | s << "height: "; 45 | s << " " << v.height << std::endl; 46 | s << "width: "; 47 | s << " " << v.width << std::endl; 48 | s << "encoding: "; 49 | s << " " << v.encoding << std::endl; 50 | s << "is_bigendian: "; 51 | s << " " << v.is_bigendian << std::endl; 52 | s << "step: "; 53 | s << " " << v.step << std::endl; 54 | s << "data[]" << std::endl; 55 | for (size_t i = 0; i < v.data.size (); ++i) 56 | { 57 | s << " data[" << i << "]: "; 58 | s << " " << v.data[i] << std::endl; 59 | } 60 | return (s); 61 | } 62 | } // namespace pcl 63 | 64 | #endif // PCL_MESSAGE_IMAGE_H 65 | 66 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/PCLPointField.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_SENSOR_MSGS_MESSAGE_POINTFIELD_H 2 | #define PCL_SENSOR_MSGS_MESSAGE_POINTFIELD_H 3 | 4 | #ifdef USE_ROS 5 | #error USE_ROS setup requires PCL to compile against ROS message headers, which is now deprecated 6 | #endif 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | namespace pcl 15 | { 16 | struct PCLPointField 17 | { 18 | PCLPointField () : name (), offset (0), datatype (0), count (0) 19 | {} 20 | 21 | std::string name; 22 | 23 | pcl::uint32_t offset; 24 | pcl::uint8_t datatype; 25 | pcl::uint32_t count; 26 | 27 | enum PointFieldTypes { INT8 = 1, 28 | UINT8 = 2, 29 | INT16 = 3, 30 | UINT16 = 4, 31 | INT32 = 5, 32 | UINT32 = 6, 33 | FLOAT32 = 7, 34 | FLOAT64 = 8 }; 35 | 36 | public: 37 | typedef boost::shared_ptr< ::pcl::PCLPointField> Ptr; 38 | typedef boost::shared_ptr< ::pcl::PCLPointField const> ConstPtr; 39 | }; // struct PCLPointField 40 | 41 | typedef boost::shared_ptr< ::pcl::PCLPointField> PCLPointFieldPtr; 42 | typedef boost::shared_ptr< ::pcl::PCLPointField const> PCLPointFieldConstPtr; 43 | 44 | inline std::ostream& operator<<(std::ostream& s, const ::pcl::PCLPointField & v) 45 | { 46 | s << "name: "; 47 | s << " " << v.name << std::endl; 48 | s << "offset: "; 49 | s << " " << v.offset << std::endl; 50 | s << "datatype: "; 51 | s << " " << v.datatype << std::endl; 52 | s << "count: "; 53 | s << " " << v.count << std::endl; 54 | return (s); 55 | } 56 | } // namespace pcl 57 | 58 | #endif // PCL_SENSOR_MSGS_MESSAGE_POINTFIELD_H 59 | 60 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/PointIndices.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_MESSAGE_POINTINDICES_H 2 | #define PCL_MESSAGE_POINTINDICES_H 3 | #include 4 | #include 5 | #include 6 | 7 | // Include the correct Header path here 8 | #include 9 | 10 | namespace pcl 11 | { 12 | struct PointIndices 13 | { 14 | PointIndices () : header (), indices () 15 | {} 16 | 17 | ::pcl::PCLHeader header; 18 | 19 | std::vector indices; 20 | 21 | public: 22 | typedef boost::shared_ptr< ::pcl::PointIndices> Ptr; 23 | typedef boost::shared_ptr< ::pcl::PointIndices const> ConstPtr; 24 | }; // struct PointIndices 25 | 26 | typedef boost::shared_ptr< ::pcl::PointIndices> PointIndicesPtr; 27 | typedef boost::shared_ptr< ::pcl::PointIndices const> PointIndicesConstPtr; 28 | 29 | inline std::ostream& operator << (std::ostream& s, const ::pcl::PointIndices &v) 30 | { 31 | s << "header: " << std::endl; 32 | s << " " << v.header; 33 | s << "indices[]" << std::endl; 34 | for (size_t i = 0; i < v.indices.size (); ++i) 35 | { 36 | s << " indices[" << i << "]: "; 37 | s << " " << v.indices[i] << std::endl; 38 | } 39 | return (s); 40 | } 41 | } // namespace pcl 42 | 43 | #endif // PCL_MESSAGE_POINTINDICES_H 44 | 45 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/PolygonMesh.h: -------------------------------------------------------------------------------- 1 | /* Auto-generated by genmsg_cpp for file /work/ros/pkgs-trunk/point_cloud_perception/pcl/msg/PolygonMesh.msg */ 2 | #ifndef PCL_MESSAGE_POLYGONMESH_H 3 | #define PCL_MESSAGE_POLYGONMESH_H 4 | #include 5 | #include 6 | #include 7 | 8 | // Include the correct Header path here 9 | #include 10 | #include 11 | #include 12 | 13 | namespace pcl 14 | { 15 | struct PolygonMesh 16 | { 17 | PolygonMesh () : header (), cloud (), polygons () 18 | {} 19 | 20 | ::pcl::PCLHeader header; 21 | 22 | ::pcl::PCLPointCloud2 cloud; 23 | 24 | std::vector< ::pcl::Vertices> polygons; 25 | 26 | 27 | public: 28 | typedef boost::shared_ptr< ::pcl::PolygonMesh> Ptr; 29 | typedef boost::shared_ptr< ::pcl::PolygonMesh const> ConstPtr; 30 | }; // struct PolygonMesh 31 | 32 | typedef boost::shared_ptr< ::pcl::PolygonMesh> PolygonMeshPtr; 33 | typedef boost::shared_ptr< ::pcl::PolygonMesh const> PolygonMeshConstPtr; 34 | 35 | inline std::ostream& operator<<(std::ostream& s, const ::pcl::PolygonMesh &v) 36 | { 37 | s << "header: " << std::endl; 38 | s << v.header; 39 | s << "cloud: " << std::endl; 40 | s << v.cloud; 41 | s << "polygons[]" << std::endl; 42 | for (size_t i = 0; i < v.polygons.size (); ++i) 43 | { 44 | s << " polygons[" << i << "]: " << std::endl; 45 | s << v.polygons[i]; 46 | } 47 | return (s); 48 | } 49 | 50 | } // namespace pcl 51 | 52 | #endif // PCL_MESSAGE_POLYGONMESH_H 53 | 54 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/Vertices.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_MESSAGE_VERTICES_H 2 | #define PCL_MESSAGE_VERTICES_H 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace pcl 10 | { 11 | /** \brief Describes a set of vertices in a polygon mesh, by basically 12 | * storing an array of indices. 13 | */ 14 | struct Vertices 15 | { 16 | Vertices () : vertices () 17 | {} 18 | 19 | std::vector vertices; 20 | 21 | public: 22 | typedef boost::shared_ptr Ptr; 23 | typedef boost::shared_ptr ConstPtr; 24 | }; // struct Vertices 25 | 26 | 27 | typedef boost::shared_ptr VerticesPtr; 28 | typedef boost::shared_ptr VerticesConstPtr; 29 | 30 | inline std::ostream& operator<<(std::ostream& s, const ::pcl::Vertices & v) 31 | { 32 | s << "vertices[]" << std::endl; 33 | for (size_t i = 0; i < v.vertices.size (); ++i) 34 | { 35 | s << " vertices[" << i << "]: "; 36 | s << " " << v.vertices[i] << std::endl; 37 | } 38 | return (s); 39 | } 40 | } // namespace pcl 41 | 42 | #endif // PCL_MESSAGE_VERTICES_H 43 | 44 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/common/common_headers.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2010, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of the copyright holder(s) nor the names of its 18 | * contributors may be used to endorse or promote products derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | * 34 | */ 35 | 36 | #ifndef PCL_COMMON_HEADERS_ 37 | #define PCL_COMMON_HEADERS_ 38 | 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | 46 | #endif //#ifndef PCL_COMMON_HEADERS_ 47 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/common/fft/kiss_fftr.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FTR_H 2 | #define KISS_FTR_H 3 | 4 | #include "kiss_fft.h" 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | 10 | /* 11 | 12 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 13 | 14 | 15 | 16 | */ 17 | 18 | typedef struct kiss_fftr_state *kiss_fftr_cfg; 19 | 20 | 21 | kiss_fftr_cfg PCL_EXPORTS kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 22 | /* 23 | nfft must be even 24 | 25 | If you don't care to allocate space, use mem = lenmem = NULL 26 | */ 27 | 28 | 29 | void PCL_EXPORTS kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); 30 | /* 31 | input timedata has nfft scalar points 32 | output freqdata has nfft/2+1 complex points 33 | */ 34 | 35 | void PCL_EXPORTS kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); 36 | /* 37 | input freqdata has nfft/2+1 complex points 38 | output timedata has nfft scalar points 39 | */ 40 | 41 | #define kiss_fftr_free free 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/common/point_operators.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | 41 | #ifndef PCL_COMMON_POINT_OPERATORS_H 42 | #define PCL_COMMON_POINT_OPERATORS_H 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/features/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_FEATURES_EIGEN_H_ 41 | #define PCL_FEATURES_EIGEN_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | #include 49 | 50 | #endif // PCL_FEATURES_EIGEN_H_ 51 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/features/impl/brisk_2d.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/include/pcl-1.8/pcl/features/impl/brisk_2d.hpp -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/filters/fast_bilateral.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/include/pcl-1.8/pcl/filters/fast_bilateral.h -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/geometry/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2009-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | 41 | #ifndef PCL_GEOMETRY_BOOST_H 42 | #define PCL_GEOMETRY_BOOST_H 43 | 44 | #ifdef __GNUC__ 45 | # pragma GCC system_header 46 | #endif 47 | 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | 55 | #endif // PCL_GEOMETRY_BOOST_H 56 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/geometry/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2009-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | 41 | #ifndef PCL_GEOMETRY_EIGEN_H 42 | #define PCL_GEOMETRY_EIGEN_H 43 | 44 | #ifdef __GNUC__ 45 | # pragma GCC system_header 46 | #endif 47 | 48 | #include 49 | #include 50 | 51 | #endif // PCL_GEOMETRY_EIGEN_H 52 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/io/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2011-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | */ 37 | 38 | #ifndef _PCL_IO_EIGEN_H_ 39 | #define _PCL_IO_EIGEN_H_ 40 | 41 | #if defined __GNUC__ 42 | # pragma GCC system_header 43 | #endif 44 | 45 | #include 46 | 47 | #endif // _PCL_IO_EIGEN_H_ 48 | 49 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/io/io.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | * 38 | */ 39 | 40 | #ifndef PCL_IO_IO_H_ 41 | #define PCL_IO_IO_H_ 42 | 43 | #include 44 | 45 | #endif //#ifndef PCL_IO_IO_H_ 46 | 47 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/io/pxc_grabber.h: -------------------------------------------------------------------------------- 1 | #error "PXCGrabber was deprecated and removed, please use DepthSenseGrabber instead" 2 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/kdtree/flann.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | */ 38 | 39 | #ifndef PCL_KDTREE_FLANN_H_ 40 | #define PCL_KDTREE_FLANN_H_ 41 | 42 | #if defined __GNUC__ 43 | # pragma GCC system_header 44 | #endif 45 | 46 | #if defined _MSC_VER 47 | # pragma warning(disable: 4267 4244) 48 | #endif 49 | 50 | #include 51 | 52 | #if defined _MSC_VER 53 | # pragma warning(default: 4267) 54 | #endif 55 | 56 | #endif // PCL_KDTREE_FLANN_H_ 57 | 58 | 59 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/keypoints/uniform_sampling.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of Willow Garage, Inc. nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | * 38 | */ 39 | 40 | #ifndef PCL_KEYPOINTS_UNIFORM_SAMPLING_H_ 41 | #define PCL_KEYPOINTS_UNIFORM_SAMPLING_H_ 42 | 43 | #ifdef __DEPRECATED 44 | #warning UniformSampling is not a Keypoint anymore, use instead. 45 | #endif 46 | 47 | #include 48 | 49 | #endif //#ifndef PCL_KEYPOINTS_UNIFORM_SAMPLING_H_ 50 | 51 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/octree/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * 38 | */ 39 | 40 | #ifndef PCL_OCTREE_BOOST_H_ 41 | #define PCL_OCTREE_BOOST_H_ 42 | 43 | #ifdef __GNUC__ 44 | #pragma GCC system_header 45 | #endif 46 | 47 | // Marking all Boost headers as system headers to remove warnings 48 | #include 49 | #include 50 | #endif // PCL_OCTREE_BOOST_H_ 51 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/octree/octree_impl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of Willow Garage, Inc. nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | */ 38 | 39 | #ifndef PCL_OCTREE_IMPL_H 40 | #define PCL_OCTREE_IMPL_H 41 | 42 | #include 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/pcl_config.h: -------------------------------------------------------------------------------- 1 | /* pcl_config.h. Generated by CMake for PCL. */ 2 | 3 | #define BUILD_RelWithDebInfo 4 | /* PCL version information */ 5 | #define PCL_MAJOR_VERSION 1 6 | #define PCL_MINOR_VERSION 8 7 | #define PCL_REVISION_VERSION 1 8 | #define PCL_DEV_VERSION 0 9 | #define PCL_VERSION_PRETTY "1.8.1" 10 | #define PCL_VERSION_CALC(MAJ, MIN, PATCH) (MAJ*100000+MIN*100+PATCH) 11 | #define PCL_VERSION \ 12 | PCL_VERSION_CALC(PCL_MAJOR_VERSION, PCL_MINOR_VERSION, PCL_REVISION_VERSION) 13 | #define PCL_VERSION_COMPARE(OP, MAJ, MIN, PATCH) \ 14 | (PCL_VERSION*10+PCL_DEV_VERSION OP PCL_VERSION_CALC(MAJ, MIN, PATCH)*10) 15 | 16 | /* #undef HAVE_TBB */ 17 | 18 | /* #undef HAVE_OPENNI */ 19 | 20 | /* #undef HAVE_OPENNI2 */ 21 | 22 | #define HAVE_QHULL 1 23 | 24 | #define HAVE_QHULL_2011 1 25 | 26 | /* #undef HAVE_CUDA */ 27 | 28 | /* #undef HAVE_FZAPI */ 29 | 30 | /* #undef HAVE_ENSENSO */ 31 | 32 | /* #undef HAVE_DAVIDSDK */ 33 | 34 | // SSE macros 35 | #define HAVE_POSIX_MEMALIGN 36 | #define HAVE_MM_MALLOC 37 | #define HAVE_SSE4_2_EXTENSIONS 38 | #define HAVE_SSE4_1_EXTENSIONS 39 | #define HAVE_SSSE3_EXTENSIONS 40 | #define HAVE_SSE3_EXTENSIONS 41 | #define HAVE_SSE2_EXTENSIONS 42 | #define HAVE_SSE_EXTENSIONS 43 | 44 | #define HAVE_PNG 45 | 46 | /* Precompile for a minimal set of point types instead of all. */ 47 | /* #undef PCL_ONLY_CORE_POINT_TYPES */ 48 | 49 | /* Do not precompile for any point types at all. */ 50 | /* #undef PCL_NO_PRECOMPILE */ 51 | 52 | #ifdef DISABLE_OPENNI 53 | #undef HAVE_OPENNI 54 | #endif 55 | 56 | #ifdef DISABLE_OPENNI2 57 | #undef HAVE_OPENNI2 58 | #endif 59 | 60 | #ifdef DISABLE_QHULL 61 | #undef HAVE_QHULL 62 | #endif 63 | 64 | /* Verbosity level defined by user through ccmake. */ 65 | /* #undef VERBOSITY_LEVEL_ALWAYS */ 66 | /* #undef VERBOSITY_LEVEL_ERROR */ 67 | /* #undef VERBOSITY_LEVEL_WARN */ 68 | #define VERBOSITY_LEVEL_INFO 69 | /* #undef VERBOSITY_LEVEL_DEBUG */ 70 | /* #undef VERBOSITY_LEVEL_VERBOSE */ 71 | 72 | /* Address the cases where on MacOS and OpenGL and GLUT are not frameworks */ 73 | /* #undef OPENGL_IS_A_FRAMEWORK */ 74 | /* #undef GLUT_IS_A_FRAMEWORK */ 75 | 76 | /* Version of OpenGL used by VTK as rendering backend */ 77 | #define VTK_RENDERING_BACKEND_OPENGL_VERSION 78 | 79 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/pcl_exports.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2010, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of the copyright holder(s) nor the names of its 18 | * contributors may be used to endorse or promote products derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | */ 34 | 35 | #ifndef PCL_EXPORTS_H_ 36 | #define PCL_EXPORTS_H_ 37 | 38 | // This header is created to include to NVCC compiled sources. 39 | // Header 'pcl_macros' is not suitable since it inludes , 40 | // which can't be eaten by nvcc (it's too weak) 41 | 42 | #if defined WIN32 || defined _WIN32 || defined WINCE || defined __MINGW32__ 43 | #ifdef PCLAPI_EXPORTS 44 | #define PCL_EXPORTS __declspec(dllexport) 45 | #else 46 | #define PCL_EXPORTS 47 | #endif 48 | #else 49 | #define PCL_EXPORTS 50 | #endif 51 | 52 | #endif //#ifndef PCL_EXPORTS_H_ 53 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/recognition/3rdparty/metslib/metslib_config.hh: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2006-2012, Mirko Maischberger 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 28 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 | * POSSIBILITY OF SUCH DAMAGE. 30 | * 31 | */ 32 | #ifndef METSLIB_CONFIG_HH_ 33 | #define METSLIB_CONFIG_HH_ 34 | # if defined (_WIN32) 35 | # define METSLIB_HAVE_UNORDERED_MAP 1 36 | # define METSLIB_TR1_MIXED_NAMESPACE 1 37 | # elif defined (__GXX_EXPERIMENTAL_CXX0X__) 38 | # define METSLIB_HAVE_UNORDERED_MAP 1 39 | # else 40 | # define METSLIB_HAVE_TR1_UNORDERED_MAP 1 41 | # endif 42 | 43 | //Within PCL, force always to use boost unordered_map and random generators 44 | //Other options give problems with Clang... needs further investigation... 45 | #define METSLIB_TR1_BOOST 1 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/recognition/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_RECOGNITION_BOOST_H_ 41 | #define PCL_RECOGNITION_BOOST_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | #include 49 | //#include 50 | 51 | #endif // PCL_RECOGNITION_BOOST_H_ 52 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_REGISTRATION_EIGEN_H_ 41 | #define PCL_REGISTRATION_EIGEN_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | #include 49 | #include 50 | #include 51 | 52 | #endif // PCL_REGISTRATION_EIGEN_H_ 53 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_distance.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_DISTANCE_HPP_ 41 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_DISTANCE_HPP_ 42 | 43 | 44 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_DISTANCE_HPP_ */ 45 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_median_distance.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_MEDIAN_DISTANCE_HPP_ 41 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_MEDIAN_DISTANCE_HPP_ 42 | 43 | 44 | #endif // PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_MEDIAN_DISTANCE_HPP_ 45 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_one_to_one.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ONE_TO_ONE_HPP_ 41 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ONE_TO_ONE_HPP_ 42 | 43 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ONE_TO_ONE_HPP_ */ 44 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_organized_boundary.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2009-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * Copyright (c) Alexandru-Eugen Ichim 8 | * 9 | * All rights reserved. 10 | * 11 | * Redistribution and use in source and binary forms, with or without 12 | * modification, are permitted provided that the following conditions 13 | * are met: 14 | * 15 | * * Redistributions of source code must retain the above copyright 16 | * notice, this list of conditions and the following disclaimer. 17 | * * Redistributions in binary form must reproduce the above 18 | * copyright notice, this list of conditions and the following 19 | * disclaimer in the documentation and/or other materials provided 20 | * with the distribution. 21 | * * Neither the name of the copyright holder(s) nor the names of its 22 | * contributors may be used to endorse or promote products derived 23 | * from this software without specific prior written permission. 24 | * 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 28 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 29 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 30 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 31 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 32 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | * POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | 39 | 40 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ORGANIZED_BOUNDARY_HPP_ 41 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ORGANIZED_BOUNDARY_HPP_ 42 | 43 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_ORGANIZED_BOUNDARY_HPP_ */ 44 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_surface_normal.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | * 38 | */ 39 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_SURFACE_NORMAL_HPP_ 40 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_SURFACE_NORMAL_HPP_ 41 | 42 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_SURFACE_NORMAL_HPP_ */ 43 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_trimmed.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_TRIMMED_HPP_ 41 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_TRIMMED_HPP_ 42 | 43 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_TRIMMED_HPP_ */ 44 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/correspondence_rejection_var_trimmed.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | * 38 | */ 39 | #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_VAR_TRIMMED_HPP_ 40 | #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_VAR_TRIMMED_HPP_ 41 | 42 | #endif /* PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_VAR_TRIMMED_HPP_ */ 43 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/impl/icp_nl.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_ICP_NL_HPP_ 41 | #define PCL_REGISTRATION_ICP_NL_HPP_ 42 | 43 | #endif /* PCL_REGISTRATION_ICP_NL_HPP_ */ 44 | 45 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/registration/transforms.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | #ifndef PCL_REGISTRATION_TRANSFORMS_H_ 41 | #define PCL_REGISTRATION_TRANSFORMS_H_ 42 | 43 | #include 44 | 45 | #endif // PCL_REGISTRATION_TRANSFORMS_H_ 46 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/ros/register_point_struct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2012, Willow Garage, Inc. 6 | * Copyright (c) 2012-, Open Perception, Inc. 7 | * 8 | * All rights reserved. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 14 | * * Redistributions of source code must retain the above copyright 15 | * notice, this list of conditions and the following disclaimer. 16 | * * Redistributions in binary form must reproduce the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer in the documentation and/or other materials provided 19 | * with the distribution. 20 | * * Neither the name of the copyright holder(s) nor the names of its 21 | * contributors may be used to endorse or promote products derived 22 | * from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 | * POSSIBILITY OF SUCH DAMAGE. 36 | * 37 | * $Id$ 38 | * 39 | */ 40 | 41 | #ifndef PCL_ROS_REGISTER_POINT_STRUCT_H_ 42 | #define PCL_ROS_REGISTER_POINT_STRUCT_H_ 43 | 44 | #ifdef __DEPRECATED 45 | #warning The header is deprecated. please use \ 46 | instead. 47 | #endif 48 | 49 | #include 50 | 51 | 52 | #endif //#ifndef PCL_ROS_REGISTER_POINT_STRUCT_H_ 53 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/sample_consensus/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_SAMPLE_CONSENSUS_BOOST_H_ 41 | #define PCL_SAMPLE_CONSENSUS_BOOST_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | 49 | #endif // PCL_SAMPLE_CONSENSUS_BOOST_H_ 50 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/sample_consensus/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_SAMPLE_CONSENSUS_EIGEN_H_ 41 | #define PCL_SAMPLE_CONSENSUS_EIGEN_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | #include 49 | 50 | #endif // PCL_SAMPLE_CONSENSUS_EIGEN_H_ 51 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/search/pcl_search.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2011, Willow Garage, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id$ 37 | * 38 | */ 39 | 40 | #ifndef PCL_SEARCH_PCL_SEARCH_H_ 41 | #define PCL_SEARCH_PCL_SEARCH_H_ 42 | 43 | #include 44 | #include 45 | #include 46 | #include 47 | 48 | #endif // PCL_SEARCH_PCL_SEARCH_H_ 49 | 50 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/segmentation/impl/planar_polygon_fusion.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2010-2012, Willow Garage, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | */ 37 | 38 | #ifndef PCL_SEGMENTATION_PLANAR_POLYGON_FUSION_HPP_ 39 | #define PCL_SEGMENTATION_PLANAR_POLYGON_FUSION_HPP_ 40 | 41 | #include 42 | 43 | 44 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 45 | 46 | #define PCL_INSTANTIATE_PlanarPolygonFusion(T) template class PCL_EXPORTS pcl::PlanarPolygonFusion; 47 | 48 | #endif // PCL_SEGMENTATION_PLANAR_POLYGON_FUSION_HPP_ 49 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/surface/3rdparty/poisson4/hash.h: -------------------------------------------------------------------------------- 1 | #ifndef HASH_INCLUDED 2 | #define HASH_INCLUDED 3 | #if defined _WIN32 && !defined __MINGW32__ 4 | #define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 5 | #include 6 | using namespace stdext; 7 | #else // !_WIN32 || __MINGW32__ 8 | #define _GLIBCXX_PERMIT_BACKWARD_HASH 9 | #include 10 | using namespace __gnu_cxx; 11 | 12 | 13 | namespace __gnu_cxx 14 | { 15 | template<> struct hash { 16 | size_t operator()(long long __x) const { return __x; } 17 | }; 18 | template<> struct hash { 19 | size_t operator()(const long long __x) const { return __x; } 20 | }; 21 | 22 | 23 | template<> struct hash { 24 | size_t operator()(unsigned long long __x) const { return __x; } 25 | }; 26 | template<> struct hash { 27 | size_t operator()(const unsigned long long __x) const { return __x; } 28 | }; 29 | } 30 | #endif // _WIN32 && !__MINGW32__ 31 | #endif // HASH_INCLUDED 32 | 33 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/surface/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_SURFACE_BOOST_H_ 41 | #define PCL_SURFACE_BOOST_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | 54 | #endif // PCL_SURFACE_BOOST_H_ 55 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/surface/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_SURFACE_EIGEN_H_ 41 | #define PCL_SURFACE_EIGEN_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | 49 | #endif // PCL_SURFACE_EIGEN_H_ 50 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/boost.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Point Cloud Library (PCL) - www.pointclouds.org 5 | * Copyright (c) 2012-, Open Perception, Inc. 6 | * 7 | * All rights reserved. 8 | * 9 | * Redistribution and use in source and binary forms, with or without 10 | * modification, are permitted provided that the following conditions 11 | * are met: 12 | * 13 | * * Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * * Redistributions in binary form must reproduce the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer in the documentation and/or other materials provided 18 | * with the distribution. 19 | * * Neither the name of the copyright holder(s) nor the names of its 20 | * contributors may be used to endorse or promote products derived 21 | * from this software without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | * 36 | * $Id: lmeds.h 1370 2011-06-19 01:06:01Z jspricke $ 37 | * 38 | */ 39 | 40 | #ifndef PCL_TRACKING_BOOST_H_ 41 | #define PCL_TRACKING_BOOST_H_ 42 | 43 | #if defined __GNUC__ 44 | # pragma GCC system_header 45 | #endif 46 | 47 | #include 48 | 49 | #endif // PCL_TRACKING_BOOST_H_ 50 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/distance_coherence.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_DISTANCE_COHERENCE_H_ 2 | #define PCL_TRACKING_DISTANCE_COHERENCE_H_ 3 | 4 | #include 5 | 6 | namespace pcl 7 | { 8 | namespace tracking 9 | { 10 | /** \brief @b DistanceCoherence computes coherence between two points from the distance 11 | between them. the coherence is calculated by 1 / (1 + weight * d^2 ). 12 | * \author Ryohei Ueda 13 | * \ingroup tracking 14 | */ 15 | template 16 | class DistanceCoherence: public PointCoherence 17 | { 18 | public: 19 | 20 | /** \brief initialize the weight to 1.0. */ 21 | DistanceCoherence () 22 | : PointCoherence () 23 | , weight_ (1.0) 24 | {} 25 | 26 | /** \brief set the weight of coherence. 27 | * \param weight the value of the wehgit. 28 | */ 29 | inline void setWeight (double weight) { weight_ = weight; } 30 | 31 | /** \brief get the weight of coherence.*/ 32 | inline double getWeight () { return weight_; } 33 | 34 | protected: 35 | 36 | /** \brief return the distance coherence between the two points. 37 | * \param source instance of source point. 38 | * \param target instance of target point. 39 | */ 40 | double computeCoherence (PointInT &source, PointInT &target); 41 | 42 | /** \brief the weight of coherence.*/ 43 | double weight_; 44 | }; 45 | } 46 | } 47 | 48 | #ifdef PCL_NO_PRECOMPILE 49 | #include 50 | #endif 51 | 52 | // #include 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/impl/coherence.hpp: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_IMPL_COHERENCE_H_ 2 | #define PCL_TRACKING_IMPL_COHERENCE_H_ 3 | 4 | #include 5 | #include 6 | 7 | namespace pcl 8 | { 9 | namespace tracking 10 | { 11 | 12 | template double 13 | PointCoherence::compute (PointInT &source, PointInT &target) 14 | { 15 | return computeCoherence (source, target); 16 | } 17 | 18 | template double 19 | PointCloudCoherence::calcPointCoherence (PointInT &source, PointInT &target) 20 | { 21 | double val = 0.0; 22 | for (size_t i = 0; i < point_coherences_.size (); i++) 23 | { 24 | PointCoherencePtr coherence = point_coherences_[i]; 25 | double d = log(coherence->compute (source, target)); 26 | //double d = coherence->compute (source, target); 27 | if (! pcl_isnan(d)) 28 | val += d; 29 | else 30 | PCL_WARN ("nan!\n"); 31 | } 32 | return val; 33 | } 34 | 35 | template bool 36 | PointCloudCoherence::initCompute () 37 | { 38 | if (!target_input_ || target_input_->points.empty ()) 39 | { 40 | PCL_ERROR ("[pcl::%s::compute] target_input_ is empty!\n", getClassName ().c_str ()); 41 | return false; 42 | } 43 | 44 | return true; 45 | 46 | } 47 | 48 | template void 49 | PointCloudCoherence::compute (const PointCloudInConstPtr &cloud, const IndicesConstPtr &indices, float &w) 50 | { 51 | if (!initCompute ()) 52 | { 53 | PCL_ERROR ("[pcl::%s::compute] Init failed.\n", getClassName ().c_str ()); 54 | return; 55 | } 56 | computeCoherence (cloud, indices, w); 57 | } 58 | } 59 | } 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/impl/distance_coherence.hpp: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_IMPL_DISTANCE_COHERENCE_H_ 2 | #define PCL_TRACKING_IMPL_DISTANCE_COHERENCE_H_ 3 | 4 | #include 5 | #include 6 | 7 | namespace pcl 8 | { 9 | namespace tracking 10 | { 11 | template double 12 | DistanceCoherence::computeCoherence (PointInT &source, PointInT &target) 13 | { 14 | Eigen::Vector4f p = source.getVector4fMap (); 15 | Eigen::Vector4f p_dash = target.getVector4fMap (); 16 | double d = (p - p_dash).norm (); 17 | return 1.0 / (1.0 + d * d * weight_); 18 | } 19 | } 20 | } 21 | 22 | #define PCL_INSTANTIATE_DistanceCoherence(T) template class PCL_EXPORTS pcl::tracking::DistanceCoherence; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/impl/normal_coherence.hpp: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_ 2 | #define PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | template double 9 | pcl::tracking::NormalCoherence::computeCoherence (PointInT &source, PointInT &target) 10 | { 11 | Eigen::Vector4f n = source.getNormalVector4fMap (); 12 | Eigen::Vector4f n_dash = target.getNormalVector4fMap (); 13 | if ( n.norm () <= 1e-5 || n_dash.norm () <= 1e-5 ) 14 | { 15 | PCL_ERROR("norm might be ZERO!\n"); 16 | std::cout << "source: " << source << std::endl; 17 | std::cout << "target: " << target << std::endl; 18 | exit (1); 19 | return 0.0; 20 | } 21 | else 22 | { 23 | n.normalize (); 24 | n_dash.normalize (); 25 | double theta = pcl::getAngle3D (n, n_dash); 26 | if (!pcl_isnan (theta)) 27 | return 1.0 / (1.0 + weight_ * theta * theta); 28 | else 29 | return 0.0; 30 | } 31 | } 32 | 33 | 34 | #define PCL_INSTANTIATE_NormalCoherence(T) template class PCL_EXPORTS pcl::tracking::NormalCoherence; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/impl/tracker.hpp: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_IMPL_TRACKER_H_ 2 | #define PCL_TRACKING_IMPL_TRACKER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | template bool 10 | pcl::tracking::Tracker::initCompute () 11 | { 12 | if (!PCLBase::initCompute ()) 13 | { 14 | PCL_ERROR ("[pcl::%s::initCompute] PCLBase::Init failed.\n", getClassName ().c_str ()); 15 | return (false); 16 | } 17 | 18 | // If the dataset is empty, just return 19 | if (input_->points.empty ()) 20 | { 21 | PCL_ERROR ("[pcl::%s::compute] input_ is empty!\n", getClassName ().c_str ()); 22 | // Cleanup 23 | deinitCompute (); 24 | return (false); 25 | } 26 | 27 | return (true); 28 | } 29 | 30 | template void 31 | pcl::tracking::Tracker::compute () 32 | { 33 | if (!initCompute ()) 34 | return; 35 | 36 | computeTracking (); 37 | deinitCompute (); 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /SRC/include/pcl-1.8/pcl/tracking/normal_coherence.h: -------------------------------------------------------------------------------- 1 | #ifndef PCL_TRACKING_NORMAL_COHERENCE_H_ 2 | #define PCL_TRACKING_NORMAL_COHERENCE_H_ 3 | 4 | #include 5 | namespace pcl 6 | { 7 | namespace tracking 8 | { 9 | /** \brief @b NormalCoherence computes coherence between two points from the angle 10 | between their normals. the coherence is calculated by 1 / (1 + weight * theta^2 ). 11 | * \author Ryohei Ueda 12 | * \ingroup tracking 13 | */ 14 | template 15 | class NormalCoherence: public PointCoherence 16 | { 17 | public: 18 | 19 | /** \brief initialize the weight to 1.0. */ 20 | NormalCoherence () 21 | : PointCoherence () 22 | , weight_ (1.0) 23 | {} 24 | 25 | /** \brief set the weight of coherence 26 | * \param weight the weight of coherence 27 | */ 28 | inline void setWeight (double weight) { weight_ = weight; } 29 | 30 | /** \brief get the weight of coherence */ 31 | inline double getWeight () { return weight_; } 32 | 33 | protected: 34 | 35 | /** \brief return the normal coherence between the two points. 36 | * \param source instance of source point. 37 | * \param target instance of target point. 38 | */ 39 | double computeCoherence (PointInT &source, PointInT &target); 40 | 41 | /** \brief the weight of coherence */ 42 | double weight_; 43 | 44 | }; 45 | } 46 | } 47 | 48 | // #include 49 | #ifdef PCL_NO_PRECOMPILE 50 | #include 51 | #endif 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /SRC/lib/libosgModeling.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/lib/libosgModeling.so -------------------------------------------------------------------------------- /SRC/lib/libpcl_common.so.1.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/lib/libpcl_common.so.1.8 -------------------------------------------------------------------------------- /SRC/lib/libpcl_io.so.1.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/lib/libpcl_io.so.1.8 -------------------------------------------------------------------------------- /SRC/lib/libpcl_io_ply.so.1.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/lib/libpcl_io_ply.so.1.8 -------------------------------------------------------------------------------- /SRC/main.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgmainwindow.h" 2 | int main( int argc, char** argv ) 3 | { 4 | QApplication app(argc, argv); 5 | QOSGMainWindow w; 6 | w.show(); 7 | return app.exec(); 8 | } 9 | -------------------------------------------------------------------------------- /SRC/osgpick.h: -------------------------------------------------------------------------------- 1 | // -*- coding: utf-8 -*- 2 | 3 | #ifndef OPENRAVE_QTOSG_PICK_H_ 4 | #define OPENRAVE_QTOSG_PICK_H_ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | //const osg::Node::NodeMask OSG_IS_PICKABLE_MASK = 0x2; 14 | 15 | 16 | 17 | /// \brief class to handle events with a pick 18 | class OSGPickHandler : public osgGA::GUIEventHandler 19 | { 20 | public: 21 | /// select(node, modkeymask) where node is the ray-picked node, and modkeymask is the modifier key mask currently pressed 22 | typedef boost::function HandleRayPickFn; 23 | typedef boost::function DragFn; 24 | 25 | OSGPickHandler(const HandleRayPickFn& handleRayPickFn=HandleRayPickFn(), const DragFn& dragfn=DragFn()); 26 | virtual ~OSGPickHandler(); 27 | 28 | /// \brief override from base class 29 | bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa); 30 | 31 | /// \brief Active joint selection 32 | //void ActivateSelection(bool active); 33 | //bool IsSelectionActive() const { return _select; } 34 | 35 | protected: 36 | virtual void _Pick(osg::ref_ptr view, const osgGA::GUIEventAdapter& ea, int buttonPressed); 37 | HandleRayPickFn _handleRayPickFn; 38 | DragFn _dragfn; 39 | //bool _select; ///< if true, then will call the _selectLinkFn with the raypicked node 40 | bool _bDoPickCallOnButtonRelease; ///< if true, then on button release can call _Pick 41 | int iPushBtn; 42 | bool m_bMouseBtnPush; 43 | bool m_bRightCtrl; 44 | }; 45 | 46 | 47 | 48 | #endif /* OSGPICK_H_ */ 49 | -------------------------------------------------------------------------------- /SRC/osgskybox.h: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // 4 | 5 | #ifndef OPENRAVE_OSGSKYBOX_H 6 | #define OPENRAVE_OSGSKYBOX_H 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | 23 | class Skybox : public osg::ClearNode 24 | { 25 | public: 26 | Skybox(); 27 | 28 | void setTextureCubeMap(const std::string &posx, 29 | const std::string &negx, 30 | const std::string &posy, 31 | const std::string &negy, 32 | const std::string &posz, 33 | const std::string &negz); 34 | 35 | void show(bool visible); 36 | 37 | protected: 38 | bool _bVisible; 39 | osg::ref_ptr _skymap; 40 | virtual ~Skybox(); 41 | }; 42 | 43 | #endif //OPENRAVE_OSGSKYBOX_H 44 | -------------------------------------------------------------------------------- /SRC/paramaxisdragger.h: -------------------------------------------------------------------------------- 1 | #ifndef PARAMAXISDRAGGER_H 2 | #define PARAMAXISDRAGGER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | class ParamAxisDragger : public QObject,public osgManipulator::TranslateAxisDragger 9 | { 10 | Q_OBJECT 11 | public: 12 | ParamAxisDragger(QObject *parent = NULL); 13 | class ForceCullCallback : public osg::Drawable::CullCallback 14 | { 15 | public: 16 | virtual bool cull(osg::NodeVisitor*, osg::Drawable*, osg::State*) const 17 | { 18 | return true; 19 | } 20 | }; 21 | 22 | virtual void setDrawableToAlwaysCull(osg::Drawable& drawable); 23 | 24 | virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa); 25 | 26 | virtual bool handle(const osgManipulator::PointerInfo& pi, const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa); 27 | 28 | virtual void setupDefaultGeometry(); 29 | void _changeDraggersColor(); 30 | // void _ControlEndEffector(); 31 | int _getActiveDragger(); 32 | void _Transform_Point(double out[4], const double m[16], const double in[4]); 33 | osg::Vec3d _WorldToScreen(osg::Camera *rootCamera, osg::Vec3 worldpoint); 34 | signals: 35 | 36 | public slots: 37 | 38 | public: 39 | int m_draggerActiveIndex; 40 | bool m_bSendLoadIKFastSolver; 41 | std::string m_draggerName; 42 | osg::Matrix m_iniDraggerMatrixInvert; 43 | bool m_bControllEndEffector; 44 | osg::Matrix m_prevDraggerMatrixInvet; 45 | osg::Vec3f m_screenPoint; 46 | int m_windowWithPix; // 47 | int m_windowHeightPix;// 48 | osg::Vec3f m_centerPointToWindowPosi; 49 | float m_eaX; 50 | float m_eaY; 51 | }; 52 | 53 | #endif // PARAMAXISDRAGGER_H 54 | -------------------------------------------------------------------------------- /SRC/paramtrackballdragger.h: -------------------------------------------------------------------------------- 1 | #ifndef PARAMTRACKBALLDRAGGER_H 2 | #define PARAMTRACKBALLDRAGGER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | class ParamTrackballDragger : public QObject,public osgManipulator::TrackballDragger 9 | { 10 | Q_OBJECT 11 | public: 12 | ParamTrackballDragger(QObject *parent = NULL); 13 | virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa); 14 | 15 | virtual bool handle(const osgManipulator::PointerInfo& pi, const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa); 16 | 17 | // osg::Geometry* createCircleGeometry(float radius, unsigned int numSegments) 18 | osg::ref_ptr createCircleGeometry(float radius, unsigned int numSegments,float SegmentsLen,osg::Vec3 &conCenter); 19 | 20 | virtual void setupDefaultGeometry(); 21 | void _changeDraggersColor(); 22 | void _Transform_Point(double out[4], const double m[16], const double in[4]); 23 | bool _handleRotate(const osg::ref_ptr rotateDragger, const osgManipulator::PointerInfo& pointer, const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa); 24 | osg::Vec3d _WorldToScreen(osg::Camera *rootCamera, osg::Vec3 worldpoint); 25 | signals: 26 | 27 | public slots: 28 | 29 | public: 30 | bool m_bSendLoadIKFastSolver; 31 | std::string m_draggerName; 32 | osg::Matrix m_iniDraggerMatrixInvert; 33 | bool m_bControllEndEffector; 34 | osg::Matrix m_prevDraggerMatrixInvet; 35 | 36 | osg::Vec3f m_screenPoint; 37 | int m_windowWithPix; // 38 | int m_windowHeightPix;// 39 | osg::ref_ptr m_ControllItem; 40 | double m_oldZ; 41 | 42 | float m_eaX;//record for last mouse posi x 43 | float m_eaY;//record for last mouse posi y 44 | 45 | osg::Vec3d m_prevWorldProjPt; 46 | osg::Matrix m_startLocalToWorld, m_startWorldToLocal; 47 | osg::Quat m_prevRotation; 48 | osg::ref_ptr m_projector; 49 | 50 | osg::Camera *m_rootCamera; 51 | 52 | bool m_bClockWise;//to change rotate's angle value bigger or smaller 53 | double m_lastAngleValue; 54 | double m_resAngleValue; 55 | osg::Vec3d m_draggerAxis; 56 | }; 57 | 58 | #endif // PARAMTRACKBALLDRAGGER_H 59 | -------------------------------------------------------------------------------- /SRC/qosgabsolutemodeltransform.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGABSOLUTEMODELTRANSFORM_H 2 | #define QOSGABSOLUTEMODELTRANSFORM_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class QOSGAbsoluteModelTransform : public QObject, public osg::Transform 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | QOSGAbsoluteModelTransform(QObject *parent = NULL); 14 | QOSGAbsoluteModelTransform( const osg::Matrix& m ,QObject *parent = NULL); 15 | QOSGAbsoluteModelTransform( const QOSGAbsoluteModelTransform& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY,QObject *parent = NULL ); 16 | 17 | // META_Node( osgwTools, AbsoluteModelTransform ); 18 | 19 | virtual bool computeLocalToWorldMatrix( osg::Matrix& matrix, osg::NodeVisitor* nv ) const; 20 | virtual bool computeWorldToLocalMatrix( osg::Matrix& matrix, osg::NodeVisitor* nv ) const; 21 | 22 | inline void setMatrix( const osg::Matrix& m ) { _matrix = m; dirtyBound(); } 23 | inline const osg::Matrix& getMatrix() const { return _matrix; } 24 | 25 | 26 | protected: 27 | virtual ~QOSGAbsoluteModelTransform(); 28 | 29 | osg::Matrix _matrix; 30 | signals: 31 | 32 | public slots: 33 | }; 34 | 35 | #endif // QOSGABSOLUTEMODELTRANSFORM_H 36 | -------------------------------------------------------------------------------- /SRC/qosgcollectverticesvisitor.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgcollectverticesvisitor.h" 2 | #include 3 | #include 4 | #include 5 | #include "qosgabsolutemodeltransform.h" 6 | QOSGCollectVerticesVisitor::QOSGCollectVerticesVisitor(TraversalMode traversalMode, QObject *parent) : 7 | QObject(parent), 8 | osg::NodeVisitor(traversalMode) 9 | { 10 | verts_ = new osg::Vec3Array; 11 | reset(); 12 | } 13 | void QOSGCollectVerticesVisitor::reset() 14 | { 15 | verts_->clear(); 16 | } 17 | 18 | void QOSGCollectVerticesVisitor::apply( osg::Transform& node ) 19 | { 20 | // Override apply(Transform&) to avoid processing AMT nodes. 21 | const bool nonAMT = ( dynamic_cast< QOSGAbsoluteModelTransform* >( &node ) == NULL ); 22 | if( nonAMT ) 23 | _localNodePath.push_back( &node ); 24 | 25 | traverse( node ); 26 | 27 | if( nonAMT ) 28 | _localNodePath.pop_back(); 29 | } 30 | 31 | void QOSGCollectVerticesVisitor::apply( osg::Geode& geode ) 32 | { 33 | unsigned int idx; 34 | for( idx = 0; idx < geode.getNumDrawables(); idx++ ) 35 | applyDrawable( geode.getDrawable( idx ) ); 36 | } 37 | 38 | void QOSGCollectVerticesVisitor::applyDrawable( osg::Drawable* drawable ) 39 | { 40 | osg::Geometry* geom = drawable->asGeometry(); 41 | if( geom == NULL ) 42 | return; 43 | 44 | const osg::Vec3Array* in = dynamic_cast< const osg::Vec3Array* >( geom->getVertexArray() ); 45 | if( in == NULL ) 46 | { 47 | osg::notify( osg::WARN ) << "QOSGCollectVerticesVisitor: Non-Vec3Array vertex array encountered." << std::endl; 48 | return; 49 | } 50 | 51 | const osg::Matrix m = osg::computeLocalToWorld( _localNodePath ); 52 | 53 | unsigned int idx; 54 | for( idx=0; idx < geom->getNumPrimitiveSets(); idx++ ) 55 | { 56 | osg::PrimitiveSet* ps = geom->getPrimitiveSet( idx ); 57 | unsigned int jdx; 58 | for( jdx=0; jdx < ps->getNumIndices(); jdx++ ) 59 | { 60 | unsigned int index = ps->index( jdx ); 61 | if(index < in->size()) 62 | verts_->push_back( (*in)[ index ] * m ); 63 | } 64 | } 65 | 66 | /* 67 | osg::Vec3Array::const_iterator iter; 68 | for( iter = in->begin(); iter != in->end(); iter++ ) 69 | { 70 | verts_->push_back( *iter * m ); 71 | } 72 | */ 73 | } 74 | -------------------------------------------------------------------------------- /SRC/qosgcollectverticesvisitor.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGCOLLECTVERTICESVISITOR_H 2 | #define QOSGCOLLECTVERTICESVISITOR_H 3 | 4 | #include 5 | #include 6 | class QOSGCollectVerticesVisitor : public QObject,public osg::NodeVisitor 7 | { 8 | Q_OBJECT 9 | public: 10 | QOSGCollectVerticesVisitor(osg::NodeVisitor::TraversalMode traversalMode = osg::NodeVisitor::TRAVERSE_ALL_CHILDREN ,QObject *parent = NULL); 11 | virtual void reset(); 12 | 13 | osg::Vec3Array* getVertices() 14 | { 15 | return( verts_.get() ); 16 | } 17 | 18 | void apply( osg::Geode& geode ); 19 | 20 | /** \brief Builds CollectVerticesVisitor::_localNodePath (a NodePath) from all Transforms, 21 | excluding AbsoluteModelTransform. 22 | 23 | This visitor saves the transformed (world space) vertices from the scene graph. 24 | However, in order to be compatible with the 25 | \link rigidbody rigid body creation utilities, \endlink the visitor can't consider 26 | AbsoluteModelTransforms in such a transformation, as they ignore all parent transforms. 27 | 28 | To support this, we override NodeVisitor::apply(osg::Transform&) to build our own 29 | NodePath (CollectVerticesVisitor::_localNodePath) that contains all Transform nodes encountered during traversal 30 | except AbsoluteModelTransform nodes. */ 31 | void apply( osg::Transform& node ); 32 | 33 | protected: 34 | void applyDrawable( osg::Drawable* drawable ); 35 | 36 | osg::ref_ptr< osg::Vec3Array > verts_; 37 | 38 | /** NodePath containing only Transform nodes, but excluding AbsoluteModelTransform. */ 39 | osg::NodePath _localNodePath; 40 | signals: 41 | 42 | public slots: 43 | }; 44 | 45 | #endif // QOSGCOLLECTVERTICESVISITOR_H 46 | -------------------------------------------------------------------------------- /SRC/qosgcommon.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgcommon.h" 2 | #include 3 | QOSGCommon::QOSGCommon(QObject *parent) : QObject(parent) 4 | { 5 | 6 | } 7 | void QOSGCommon::_PrintMatrix(const osg::Matrix& m) 8 | { 9 | for (size_t i = 0; i < 4; i++) { 10 | qDebug() << QString("Line '%1'= %2 %3 %4 %5\n").arg(i).arg(m(i,0)).arg(m(i,1)).arg(m(i,2)).arg(m(i,3)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SRC/qosgcommon.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGCOMMON_H 2 | #define QOSGCOMMON_H 3 | 4 | #include 5 | #include 6 | class QOSGCommon : public QObject 7 | { 8 | Q_OBJECT 9 | public: 10 | QOSGCommon(QObject *parent = NULL); 11 | void _PrintMatrix(const osg::Matrix& m); 12 | signals: 13 | 14 | public slots: 15 | 16 | }; 17 | 18 | #endif // QOSGCOMMON_H 19 | -------------------------------------------------------------------------------- /SRC/qosgcomputetrimeshvisitor.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgcomputetrimeshvisitor.h" 2 | #include 3 | #include 4 | #include 5 | /* \cond */ 6 | struct ComputeTriMeshFunc 7 | { 8 | ComputeTriMeshFunc() 9 | { 10 | vertices = new osg::Vec3Array; 11 | 12 | vertices->clear(); 13 | } 14 | 15 | void inline operator()( const osg::Vec3 v1, const osg::Vec3 v2, const osg::Vec3 v3, bool _temp ) 16 | { 17 | vertices->push_back( v1 ); 18 | vertices->push_back( v2 ); 19 | vertices->push_back( v3 ); 20 | } 21 | 22 | osg::ref_ptr< osg::Vec3Array > vertices; 23 | }; 24 | 25 | QOSGComputeTrimeshVisitor::QOSGComputeTrimeshVisitor(osg::NodeVisitor::TraversalMode traversalMode, QObject *parent) : 26 | QObject(parent), 27 | osg::NodeVisitor( traversalMode ) 28 | { 29 | mesh = new osg::Vec3Array; 30 | } 31 | 32 | /* \endcond */ 33 | 34 | void QOSGComputeTrimeshVisitor::reset() 35 | { 36 | mesh->clear(); 37 | } 38 | 39 | void QOSGComputeTrimeshVisitor::apply( osg::Geometry & geode ) 40 | { 41 | unsigned int idx; 42 | osg::Vec3Array* vertices = dynamic_cast( geode.getVertexArray() ); 43 | for( idx = 0; idx < vertices->size(); idx++ ){ 44 | // applyDrawable( geode.getDrawable( idx ) ); 45 | osg::Matrix m = osg::computeLocalToWorld( getNodePath() ); 46 | mesh->push_back( vertices->at(idx) * m ); 47 | } 48 | } 49 | 50 | void QOSGComputeTrimeshVisitor::applyDrawable( osg::Drawable * drawable ) 51 | { 52 | osg::TriangleFunctor< ComputeTriMeshFunc > functor; 53 | drawable->accept( functor ); 54 | 55 | osg::Matrix m = osg::computeLocalToWorld( getNodePath() ); 56 | osg::Vec3Array::iterator iter; 57 | for( iter = functor.vertices->begin(); iter != functor.vertices->end(); ++iter ) 58 | { 59 | mesh->push_back( *iter * m ); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /SRC/qosgcomputetrimeshvisitor.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGCOMPUTETRIMESHVISITOR_H 2 | #define QOSGCOMPUTETRIMESHVISITOR_H 3 | 4 | #include 5 | #include 6 | class QOSGComputeTrimeshVisitor : public QObject ,public osg::NodeVisitor 7 | { 8 | Q_OBJECT 9 | public: 10 | QOSGComputeTrimeshVisitor(osg::NodeVisitor::TraversalMode traversalMode = osg::NodeVisitor::TRAVERSE_ALL_CHILDREN ,QObject *parent = NULL); 11 | 12 | 13 | virtual void reset(); 14 | 15 | osg::Vec3Array* getTriMesh() 16 | { 17 | return( mesh.get() ); 18 | } 19 | 20 | void apply(osg::Geometry &geode ); 21 | protected: 22 | void applyDrawable( osg::Drawable * drawable ); 23 | 24 | signals: 25 | 26 | public slots: 27 | 28 | protected: 29 | 30 | osg::ref_ptr< osg::Vec3Array > mesh; 31 | }; 32 | 33 | #endif // QOSGCOMPUTETRIMESHVISITOR_H 34 | -------------------------------------------------------------------------------- /SRC/qosgkeyboardeventhandler.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgkeyboardeventhandler.h" 2 | 3 | QOSGKeyboardEventHandler::QOSGKeyboardEventHandler(const boost::function &onKeyDown, const boost::function &onKeyUp): 4 | _onKeyDown(onKeyDown), 5 | _onKeyUp(onKeyUp) 6 | { 7 | 8 | } 9 | 10 | bool QOSGKeyboardEventHandler::handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa) 11 | { 12 | switch(ea.getEventType()) 13 | { 14 | case (osgGA::GUIEventAdapter::KEYDOWN): { 15 | return _onKeyDown(ea, aa); 16 | } 17 | case (osgGA::GUIEventAdapter::KEYUP):{ 18 | return _onKeyUp(ea,aa); 19 | } 20 | default: 21 | return false; 22 | } 23 | return false; 24 | } 25 | -------------------------------------------------------------------------------- /SRC/qosgkeyboardeventhandler.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGKEYBOARDEVENTHANDLER_H 2 | #define QOSGKEYBOARDEVENTHANDLER_H 3 | #include 4 | #include 5 | #include 6 | class QOSGKeyboardEventHandler: public osgGA::GUIEventHandler 7 | { 8 | public: 9 | QOSGKeyboardEventHandler(const boost::function& onKeyDown,const boost::function& onKeyUp); 10 | 11 | virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa); 12 | private: 13 | boost::function _onKeyDown; 14 | boost::function _onKeyUp; 15 | }; 16 | 17 | #endif // QOSGKEYBOARDEVENTHANDLER_H 18 | -------------------------------------------------------------------------------- /SRC/qosgmainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGMAINWINDOW_H 2 | #define QOSGMAINWINDOW_H 3 | #include "osgviewwidget.h" 4 | #include "qtosgleftsidebar.h" 5 | #include 6 | #include 7 | #include 8 | class QOSGMainWindow : public QMainWindow 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit QOSGMainWindow(QWidget *parent = NULL); 13 | 14 | signals: 15 | 16 | public slots: 17 | void slot_calibrateBoxOk(bool bClick); 18 | void slot_calibrateRemoveAllOk(bool bClick); 19 | void slot_calibrateCylinderOk(bool bClick); 20 | void slot_calibrateBoxEdgeOk(bool bClick); 21 | void slot_calibratePlaneOk(bool bClick); 22 | void slot_calibrateFrameOk(bool bClick); 23 | void slot_calibrateGridFloorOk(bool bClick); 24 | void slot_calibrateOSGWidgetOk(bool bClick); 25 | void slot_ShowHouseView(bool); 26 | void slot_ShowXyView(bool); 27 | void slot_ShowXzView(bool); 28 | void slot_ShowYzView(bool); 29 | void slot_loadPointCloudFromFile(bool flag); 30 | void slot_setRemainModel(bool flag); 31 | void slot_hideMOdel(bool); 32 | void slot_showModel(bool); 33 | private: 34 | void _getScreenInfo(); 35 | void _addViewWidget(int x, int y, int w, int h); 36 | QPushButton * _addButtonToWindow(QWidget *wid, int x, int y, int w, int h, QString iconStr, QString objName, QString textname); 37 | void _createLeftSideBar(); 38 | private: 39 | int m_screenWidth; 40 | int m_screenHeight; 41 | OSGViewWidget* m_viewWidget; 42 | float m_focalDistance; 43 | osg::Matrix m_Tcamera; 44 | QtOSGLeftSideBar* m_leftSideBar; 45 | QAction* m_showhouseViewAct; 46 | QAction* m_showxyViewAct; 47 | QAction* m_showxzViewAct; 48 | QAction* m_showyzViewAct; 49 | }; 50 | 51 | #endif // QOSGMAINWINDOW_H 52 | -------------------------------------------------------------------------------- /SRC/qosgoctreebuilder.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGOCTREEBUILDER_H 2 | #define QOSGOCTREEBUILDER_H 3 | 4 | #include 5 | #include 6 | #include 7 | class QOSGOctreeBuilder : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | typedef std::pair, osg::BoundingBox> ElementInfo; 12 | 13 | QOSGOctreeBuilder(QObject *parent = NULL); 14 | osg::Group* _build(int depth,const osg::BoundingBox& total,std::vector& elements); 15 | osg::LOD* _createNewLevel( int level, const osg::Vec3& center, float radius ); 16 | signals: 17 | 18 | public slots: 19 | 20 | 21 | protected: 22 | int m_maxChildNumber; 23 | int m_maxTreeDepth; 24 | int m_maxLevel; 25 | }; 26 | 27 | #endif // QOSGOCTREEBUILDER_H 28 | -------------------------------------------------------------------------------- /SRC/qosgselecteditemdraggercallback.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgselecteditemdraggercallback.h" 2 | #include "qosgcommon.h" 3 | QOsgSelectedItemDraggerCallback::QOsgSelectedItemDraggerCallback( btCollisionWorld *collisionWorld, osg::MatrixTransform* selectedItem, osgManipulator::Dragger *sourcetransform, osgManipulator::Dragger *updatetransform, QObject *parent) 4 | : QObject(parent), 5 | m_collisionWorld(collisionWorld), 6 | m_selectedItem(selectedItem), 7 | m_sourcetransform(sourcetransform), 8 | m_updatetransform(updatetransform) 9 | { 10 | 11 | } 12 | 13 | bool QOsgSelectedItemDraggerCallback::receive(const osgManipulator::MotionCommand &command) 14 | { 15 | if( !!m_sourcetransform && !!m_updatetransform ) { 16 | if(command.getStage() == osgManipulator::MotionCommand::START){ 17 | 18 | }else if(command.getStage() == osgManipulator::MotionCommand::MOVE){ 19 | if(m_sourcetransform->getDraggerActive()){ 20 | m_updatetransform->setNodeMask(0); 21 | } 22 | else if(m_updatetransform->getDraggerActive()){ 23 | m_sourcetransform->setNodeMask(0); 24 | } 25 | // QOSGCommon *common = new QOSGCommon(); 26 | // common->_PrintMatrix(m_selectedItem->getMatrix()); 27 | m_co->setWorldTransform( osgbCollision::asBtTransform( m_selectedItem->getMatrix()) ); 28 | // common->_PrintMatrix(osgbCollision::asOsgMatrix( m_co->getWorldTransform())); 29 | }else if(command.getStage() == osgManipulator::MotionCommand::FINISH){ 30 | m_updatetransform->setMatrix(m_sourcetransform->getMatrix()); 31 | m_updatetransform->setNodeMask(1); 32 | m_sourcetransform->setNodeMask(1); 33 | } 34 | } 35 | return false; 36 | } 37 | -------------------------------------------------------------------------------- /SRC/qosgselecteditemdraggercallback.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGSELECTEDITEMDRAGGERCALLBACK_H 2 | #define QOSGSELECTEDITEMDRAGGERCALLBACK_H 3 | #include "qosgcollsioncheck.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | class QOsgSelectedItemDraggerCallback : public QObject, public osgManipulator::DraggerCallback 11 | { 12 | Q_OBJECT 13 | public: 14 | QOsgSelectedItemDraggerCallback(btCollisionWorld* collisionWorld, osg::MatrixTransform* selectedItem, osgManipulator::Dragger* sourcetransform, osgManipulator::Dragger* updatetransform, QObject *parent = NULL); 15 | virtual bool receive(const osgManipulator::MotionCommand& command); 16 | signals: 17 | 18 | public slots: 19 | 20 | public: 21 | btCollisionObject* m_co; 22 | private: 23 | osg::observer_ptr m_sourcetransform, m_updatetransform; 24 | osg::MatrixTransform* m_selectedItem; 25 | btCollisionWorld* m_collisionWorld;/* = initCollision();*/ 26 | QOSGCollsionCheck * m_collsionCheck; 27 | 28 | }; 29 | #endif // QOSGSELECTEDITEMDRAGGERCALLBACK_H 30 | -------------------------------------------------------------------------------- /SRC/qosgupdatecallbackcheckcollsion.cpp: -------------------------------------------------------------------------------- 1 | #include "qosgupdatecallbackcheckcollsion.h" 2 | 3 | QOSGUpdateCallbackCheckCollsion::QOSGUpdateCallbackCheckCollsion(int widWidget, int widHeight, double metersinunit, btCollisionWorld *collsionWorld, QOSGCollsionCheck *collsionCheck, const _SetViewport &setViewport, QObject *parent) : 4 | m_widWidget(widWidget), 5 | m_widHeight(widHeight), 6 | m_metersinunit(metersinunit), 7 | m_collsionWorld(collsionWorld), 8 | m_collsionCheck(collsionCheck), 9 | m_setViewport(setViewport), 10 | QObject(parent) 11 | { 12 | 13 | } 14 | 15 | void QOSGUpdateCallbackCheckCollsion::operator ()(osg::Node *node, osg::NodeVisitor *nv) 16 | { 17 | m_setViewport(m_widWidget,m_widHeight,m_metersinunit); 18 | bool lastColState = false; 19 | m_collsionWorld->performDiscreteCollisionDetection(); 20 | m_collsionCheck->_excuteCollision(lastColState,m_collsionWorld); 21 | traverse( node, nv ); 22 | } 23 | -------------------------------------------------------------------------------- /SRC/qosgupdatecallbackcheckcollsion.h: -------------------------------------------------------------------------------- 1 | #ifndef QOSGUPDATECALLBACKCHECKCOLLSION_H 2 | #define QOSGUPDATECALLBACKCHECKCOLLSION_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class QOSGUpdateCallbackCheckCollsion : public QObject,public osg::NodeCallback 10 | { 11 | Q_OBJECT 12 | public: 13 | typedef boost::function _SetViewport; 14 | QOSGUpdateCallbackCheckCollsion(int widWidget,int widHeight,double metersinunit ,btCollisionWorld* collsionWorld,QOSGCollsionCheck* collsionCheck,const _SetViewport& setViewport=_SetViewport(),QObject *parent = NULL); 15 | virtual void operator ()(osg::Node* node,osg::NodeVisitor* nv); 16 | signals: 17 | 18 | public slots: 19 | 20 | public: 21 | int m_widWidget; 22 | int m_widHeight; 23 | 24 | private: 25 | btCollisionWorld* m_collsionWorld; 26 | QOSGCollsionCheck* m_collsionCheck; 27 | _SetViewport m_setViewport; 28 | double m_metersinunit; 29 | }; 30 | 31 | #endif // QOSGUPDATECALLBACKCHECKCOLLSION_H 32 | -------------------------------------------------------------------------------- /SRC/qtosgleftsidebar.h: -------------------------------------------------------------------------------- 1 | #ifndef QTOSGLEFTSIDEBAR_H 2 | #define QTOSGLEFTSIDEBAR_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | class QtOSGLeftSideBar: public QWidget 11 | { 12 | Q_OBJECT 13 | public: 14 | QtOSGLeftSideBar(int widgetHeight, QWidget *parent = 0); 15 | ~QtOSGLeftSideBar(); 16 | void addAction(QAction *action); 17 | QAction *addAction(const QString &text, const QIcon &icon = QIcon()); 18 | 19 | protected: 20 | void paintEvent(QPaintEvent *event); 21 | void mousePressEvent(QMouseEvent *event); 22 | // void mouseReleaseEvent(QMouseEvent *event); 23 | QSize minimumSizeHint() const; 24 | 25 | QAction* actionAt(const QPoint &at); 26 | private: 27 | QList _actions; 28 | QAction *_pressedAction; 29 | QAction *_checkedAction; 30 | int m_action_height; 31 | int m_widgetHeight; 32 | int m_widgetTopY; 33 | }; 34 | 35 | #endif // QTOSGLEFTSIDEBAR_H 36 | -------------------------------------------------------------------------------- /render/arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/render/arial.ttf -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 16-49-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 16-49-25.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 16-51-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 16-51-10.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-02-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-02-49.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-03-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-03-11.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-03-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-03-16.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-03-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-03-20.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-03-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-03-26.png -------------------------------------------------------------------------------- /resource/Screenshot from 2018-07-14 17-03-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/resource/Screenshot from 2018-07-14 17-03-33.png --------------------------------------------------------------------------------