Full Code of torrvision/spaint for AI

master 9cac8100323e cached
841 files
12.1 MB
3.2M tokens
1891 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (12,897K chars total). Download the full file to get everything.
Repository: torrvision/spaint
Branch: master
Commit: 9cac8100323e
Files: 841
Total size: 12.1 MB

Directory structure:
gitextract_o6q4pygz/

├── .clang-format
├── .gitignore
├── CMakeLists.txt
├── LICENCE
├── README
├── README.md
├── apps/
│   ├── CMakeLists.txt
│   ├── combineglobalposes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── forestmodevis/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── prepare_7scenes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── raflperf/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── raflvis/
│   │   ├── CMakeLists.txt
│   │   ├── TestDecisionFunctionGenerator.h
│   │   └── main.cpp
│   ├── relocconverter/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocgui/
│   │   ├── CMakeLists.txt
│   │   ├── RelocaliserApplication.cpp
│   │   ├── RelocaliserApplication.h
│   │   ├── main.cpp
│   │   └── resources/
│   │       └── DefaultRelocalisationForest.rf
│   ├── relocicpeval/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocnovelposes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocopt/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       ├── default_parameters.ini
│   │       └── evaluate_relocaliser.sh
│   ├── relocperf/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       ├── 12scenes_batch.sh
│   │       ├── 7scenes_batch.sh
│   │       ├── 7scenes_urls.txt
│   │       ├── Cascade_Fast-Intermediate_050.ini
│   │       ├── Cascade_Fast-Slow_050.ini
│   │       ├── Cascade_Fast-Slow_075.ini
│   │       ├── Cascade_Full_050_075.ini
│   │       ├── Default_NoRank.ini
│   │       ├── Default_Rank16.ini
│   │       ├── Fast_NoRank.ini
│   │       ├── Intermediate_NoRank.ini
│   │       └── Slow_Rank16.ini
│   ├── relocvis/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       └── frustum.ply
│   ├── spaintgui/
│   │   ├── Application.cpp
│   │   ├── Application.h
│   │   ├── CMakeLists.txt
│   │   ├── CPUInstantiations.cpp
│   │   ├── CUDAInstantiations.cu
│   │   ├── commands/
│   │   │   ├── MarkVoxelsCommand.cpp
│   │   │   └── MarkVoxelsCommand.h
│   │   ├── core/
│   │   │   ├── CollaborativePipeline.cpp
│   │   │   ├── CollaborativePipeline.h
│   │   │   ├── Model.cpp
│   │   │   ├── Model.h
│   │   │   ├── MultiScenePipeline.cpp
│   │   │   ├── MultiScenePipeline.h
│   │   │   ├── ObjectivePipeline.cpp
│   │   │   ├── ObjectivePipeline.h
│   │   │   ├── SLAMPipeline.cpp
│   │   │   ├── SLAMPipeline.h
│   │   │   ├── SemanticPipeline.cpp
│   │   │   └── SemanticPipeline.h
│   │   ├── debugging/
│   │   │   ├── RelocaliserFiguresGenerator.cpp
│   │   │   └── RelocaliserFiguresGenerator.h
│   │   ├── main.cpp
│   │   ├── renderers/
│   │   │   ├── HeadlessRenderer.cpp
│   │   │   ├── HeadlessRenderer.h
│   │   │   ├── Renderer.cpp
│   │   │   ├── Renderer.h
│   │   │   ├── RiftRenderer.cpp
│   │   │   ├── RiftRenderer.h
│   │   │   ├── WindowedRenderer.cpp
│   │   │   └── WindowedRenderer.h
│   │   ├── resources/
│   │   │   ├── DefaultCalibration.txt
│   │   │   ├── DefaultRandomForest.rf
│   │   │   ├── DefaultRelocalisationForest.rf
│   │   │   ├── Labels.txt
│   │   │   ├── RaflSettings.xml
│   │   │   ├── TouchSettings.xml
│   │   │   ├── XtionCalibrationSMG.txt
│   │   │   ├── scripts/
│   │   │   │   ├── 7scenes.ini
│   │   │   │   ├── 7scenes_calib.txt
│   │   │   │   ├── 7scenes_convert_to_itm.m
│   │   │   │   ├── 7scenes_urls.txt
│   │   │   │   ├── 7scenes_validation_convert_to_itm.m
│   │   │   │   ├── 7scenes_validation_process_sequence.m
│   │   │   │   └── spaint_batch.sh
│   │   │   ├── spaint-pre.gram
│   │   │   └── trackerconfigs/
│   │   │       ├── ForceFail.xml
│   │   │       ├── Rift.xml
│   │   │       ├── ViconAbsolute.xml
│   │   │       ├── ViconRelative.xml
│   │   │       └── Zed.xml
│   │   ├── sequences/
│   │   │   ├── Sequence.cpp
│   │   │   ├── Sequence.h
│   │   │   ├── SpaintSequence.cpp
│   │   │   └── SpaintSequence.h
│   │   └── subwindows/
│   │       ├── Subwindow.cpp
│   │       ├── Subwindow.h
│   │       ├── SubwindowConfiguration.cpp
│   │       └── SubwindowConfiguration.h
│   └── touchtrain/
│       ├── CMakeLists.txt
│       ├── LabelledPath.h
│       ├── TouchTrainDataset.h
│       └── main.cpp
├── build-nix.sh
├── build-win.sh
├── clean.sh
├── cmake/
│   ├── CUDACheckCompute.cmake
│   ├── FindLibRoyale.cmake
│   ├── Flags.cmake
│   ├── InstallApp.cmake
│   ├── LinkALGLIB.cmake
│   ├── LinkArrayFire.cmake
│   ├── LinkBoost.cmake
│   ├── LinkCUDA.cmake
│   ├── LinkGLEW.cmake
│   ├── LinkGLUT.cmake
│   ├── LinkGrove.cmake
│   ├── LinkInfiniTAM.cmake
│   ├── LinkLeap.cmake
│   ├── LinkLibRoyale.cmake
│   ├── LinkLodePNG.cmake
│   ├── LinkOVR.cmake
│   ├── LinkOpenCV.cmake
│   ├── LinkOpenGL.cmake
│   ├── LinkOpenNI.cmake
│   ├── LinkRealSense.cmake
│   ├── LinkSDL.cmake
│   ├── LinkScoreForests.cmake
│   ├── LinkTBB.cmake
│   ├── LinkTorch.cmake
│   ├── LinkVTK.cmake
│   ├── LinkVicon.cmake
│   ├── LinkZed.cmake
│   ├── OfferC++11Support.cmake
│   ├── OfferFocusReacquisition.cmake
│   ├── OfferLowPowerSupport.cmake
│   ├── OfferLowUSBBandwidthSupport.cmake
│   ├── OfferPixelDebugging.cmake
│   ├── SetAppTarget.cmake
│   ├── SetCUDAAppTarget.cmake
│   ├── SetCUDALibTarget.cmake
│   ├── SetCUDAScratchTestTarget.cmake
│   ├── SetCUDAUnitTestTarget.cmake
│   ├── SetLibTarget.cmake
│   ├── SetScratchTestTarget.cmake
│   ├── SetUnitTestTarget.cmake
│   ├── UseALGLIB.cmake
│   ├── UseArrayFire.cmake
│   ├── UseBoost.cmake
│   ├── UseCUDA.cmake
│   ├── UseEigen.cmake
│   ├── UseGLEW.cmake
│   ├── UseGLUT.cmake
│   ├── UseGraphviz.cmake
│   ├── UseGrove.cmake
│   ├── UseInfiniTAM.cmake
│   ├── UseLeap.cmake
│   ├── UseLibRoyale.cmake
│   ├── UseLodePNG.cmake
│   ├── UseOVR.cmake
│   ├── UseOpenCV.cmake
│   ├── UseOpenGL.cmake
│   ├── UseOpenMP.cmake
│   ├── UseOpenNI.cmake
│   ├── UseRealSense.cmake
│   ├── UseSDL.cmake
│   ├── UseScoreForests.cmake
│   ├── UseTBB.cmake
│   ├── UseTorch.cmake
│   ├── UseVTK.cmake
│   ├── UseVicon.cmake
│   ├── UseZed.cmake
│   ├── VCLibraryHack.cmake
│   └── cuda_compute_capability.cpp
├── detect-osxversion.sh
├── detect-platform.sh
├── determine-cmakegenerator.sh
├── determine-vstoolsetstring.sh
├── helpers/
│   ├── GL/
│   │   ├── freeglut.h
│   │   ├── freeglut_ext.h
│   │   ├── freeglut_std.h
│   │   ├── glew.h
│   │   ├── glext.h
│   │   ├── glut.h
│   │   ├── glxew.h
│   │   ├── glxext.h
│   │   └── wglew.h
│   ├── cuda_drvapi_dynlink.c
│   ├── drvapi_error_string.h
│   ├── dynlink/
│   │   ├── cuda_drvapi_dynlink.h
│   │   ├── cuda_drvapi_dynlink_cuda.h
│   │   ├── cuda_drvapi_dynlink_d3d.h
│   │   └── cuda_drvapi_dynlink_gl.h
│   ├── dynlink_d3d10.h
│   ├── dynlink_d3d11.h
│   ├── exception.h
│   ├── helper_cuda.h
│   ├── helper_cuda_drvapi.h
│   ├── helper_cuda_gl.h
│   ├── helper_functions.h
│   ├── helper_image.h
│   ├── helper_math.h
│   ├── helper_string.h
│   ├── helper_timer.h
│   ├── multithreading.h
│   ├── nvMath.h
│   ├── nvMatrix.h
│   ├── nvQuaternion.h
│   ├── nvShaderUtils.h
│   ├── nvVector.h
│   ├── param.h
│   ├── paramgl.h
│   ├── rendercheck_d3d10.h
│   ├── rendercheck_d3d11.h
│   ├── rendercheck_d3d9.h
│   ├── rendercheck_gl.h
│   └── timer.h
├── libraries/
│   ├── build-SDL2-2.0.3-nix.sh
│   ├── build-SDL2-2.0.7-nix.sh
│   ├── build-SDL2-2.0.7-win.sh
│   ├── build-alglib-nix.sh
│   ├── build-alglib-win.sh
│   ├── build-boost_1_58_0-nix.sh
│   ├── build-boost_1_58_0-win.sh
│   ├── build-glew-1.12.0-nix.sh
│   ├── build-glew-1.12.0-win.sh
│   ├── build-lodepng-20160501-nix.sh
│   ├── build-lodepng-20160501-win.sh
│   ├── build-opencv-3.1.0-nix.sh
│   ├── build-opencv-3.1.0-win.sh
│   ├── extract-Eigen-3.2.2.sh
│   ├── extract-vicon-nix.sh
│   ├── extract-vicon-win.sh
│   ├── install-dependencies-nix.sh
│   └── setup/
│       └── glew-1.12.0/
│           └── glew-1.12.0.tgz
├── modules/
│   ├── CMakeLists.txt
│   ├── evaluation/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── evaluation/
│   │   │       ├── core/
│   │   │       │   ├── LearnerEvaluator.h
│   │   │       │   ├── ParamSetUtil.h
│   │   │       │   ├── PerformanceMeasure.h
│   │   │       │   ├── PerformanceMeasureUtil.h
│   │   │       │   ├── PerformanceResult.h
│   │   │       │   └── PerformanceTable.h
│   │   │       ├── splitgenerators/
│   │   │       │   ├── CrossValidationSplitGenerator.h
│   │   │       │   ├── RNGFunctor.h
│   │   │       │   ├── RandomPermutationAndDivisionSplitGenerator.h
│   │   │       │   └── SplitGenerator.h
│   │   │       └── util/
│   │   │           ├── CartesianProductParameterSetGenerator.h
│   │   │           ├── ConfusionMatrixUtil.h
│   │   │           ├── CoordinateDescentParameterOptimiser.h
│   │   │           ├── EpochBasedParameterOptimiser.h
│   │   │           └── RandomParameterOptimiser.h
│   │   └── src/
│   │       ├── core/
│   │       │   ├── ParamSetUtil.cpp
│   │       │   ├── PerformanceMeasure.cpp
│   │       │   ├── PerformanceMeasureUtil.cpp
│   │       │   └── PerformanceTable.cpp
│   │       ├── splitgenerators/
│   │       │   ├── CrossValidationSplitGenerator.cpp
│   │       │   ├── RNGFunctor.cpp
│   │       │   └── RandomPermutationAndDivisionSplitGenerator.cpp
│   │       └── util/
│   │           ├── CartesianProductParameterSetGenerator.cpp
│   │           ├── ConfusionMatrixUtil.cpp
│   │           ├── CoordinateDescentParameterOptimiser.cpp
│   │           ├── EpochBasedParameterOptimiser.cpp
│   │           └── RandomParameterOptimiser.cpp
│   ├── grove/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── grove/
│   │   │       ├── clustering/
│   │   │       │   ├── ExampleClustererFactory.h
│   │   │       │   ├── ExampleClustererFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ExampleClusterer_CPU.h
│   │   │       │   │   └── ExampleClusterer_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ExampleClusterer_CUDA.h
│   │   │       │   │   └── ExampleClusterer_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ExampleClusterer.h
│   │   │       │   │   └── ExampleClusterer.tpp
│   │   │       │   └── shared/
│   │   │       │       └── ExampleClusterer_Shared.h
│   │   │       ├── features/
│   │   │       │   ├── FeatureCalculatorFactory.h
│   │   │       │   ├── FeatureCalculatorFactory.tpp
│   │   │       │   ├── base/
│   │   │       │   │   ├── Descriptor.h
│   │   │       │   │   └── RGBDPatchFeatureDifferenceType.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator_CPU.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator_CUDA.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator.tpp
│   │   │       │   └── shared/
│   │   │       │       └── RGBDPatchFeatureCalculator_Shared.h
│   │   │       ├── forests/
│   │   │       │   ├── DecisionForestFactory.h
│   │   │       │   ├── DecisionForestFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── DecisionForest_CPU.h
│   │   │       │   │   └── DecisionForest_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── DecisionForest_CUDA.h
│   │   │       │   │   └── DecisionForest_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── DecisionForest.h
│   │   │       │   │   └── DecisionForest.tpp
│   │   │       │   └── shared/
│   │   │       │       └── DecisionForest_Shared.h
│   │   │       ├── keypoints/
│   │   │       │   ├── Keypoint2D.h
│   │   │       │   └── Keypoint3DColour.h
│   │   │       ├── numbers/
│   │   │       │   ├── CPURNG.h
│   │   │       │   └── CUDARNG.h
│   │   │       ├── ransac/
│   │   │       │   ├── PreemptiveRansacFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── PreemptiveRansac_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── PreemptiveRansac_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── PreemptiveRansac.h
│   │   │       │   └── shared/
│   │   │       │       ├── PoseCandidate.h
│   │   │       │       └── PreemptiveRansac_Shared.h
│   │   │       ├── relocalisation/
│   │   │       │   ├── ScoreRelocaliserFactory.h
│   │   │       │   ├── base/
│   │   │       │   │   └── ScoreRelocaliserState.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ScoreForestRelocaliser_CPU.h
│   │   │       │   │   ├── ScoreGTRelocaliser_CPU.h
│   │   │       │   │   └── ScoreNetRelocaliser_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ScoreForestRelocaliser_CUDA.h
│   │   │       │   │   ├── ScoreGTRelocaliser_CUDA.h
│   │   │       │   │   └── ScoreNetRelocaliser_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ScoreForestRelocaliser.h
│   │   │       │   │   ├── ScoreGTRelocaliser.h
│   │   │       │   │   ├── ScoreNetRelocaliser.h
│   │   │       │   │   └── ScoreRelocaliser.h
│   │   │       │   └── shared/
│   │   │       │       ├── ScoreForestRelocaliser_Shared.h
│   │   │       │       ├── ScoreGTRelocaliser_Shared.h
│   │   │       │       └── ScoreNetRelocaliser_Shared.h
│   │   │       ├── reservoirs/
│   │   │       │   ├── ExampleReservoirsFactory.h
│   │   │       │   ├── ExampleReservoirsFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ExampleReservoirs_CPU.h
│   │   │       │   │   └── ExampleReservoirs_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ExampleReservoirs_CUDA.h
│   │   │       │   │   └── ExampleReservoirs_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ExampleReservoirs.h
│   │   │       │   │   └── ExampleReservoirs.tpp
│   │   │       │   └── shared/
│   │   │       │       └── ExampleReservoirs_Shared.h
│   │   │       ├── scoreforests/
│   │   │       │   ├── Keypoint3DColourCluster.h
│   │   │       │   └── ScorePrediction.h
│   │   │       └── util/
│   │   │           └── Array.h
│   │   └── src/
│   │       ├── CPUInstantiations.cpp
│   │       ├── CUDAInstantiations.cu
│   │       ├── features/
│   │       │   └── FeatureCalculatorFactory.cpp
│   │       ├── numbers/
│   │       │   └── CPURNG.cpp
│   │       ├── ransac/
│   │       │   ├── PreemptiveRansacFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── PreemptiveRansac_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── PreemptiveRansac_CUDA.cu
│   │       │   └── interface/
│   │       │       └── PreemptiveRansac.cpp
│   │       └── relocalisation/
│   │           ├── ScoreRelocaliserFactory.cpp
│   │           ├── base/
│   │           │   └── ScoreRelocaliserState.cpp
│   │           ├── cpu/
│   │           │   ├── ScoreForestRelocaliser_CPU.cpp
│   │           │   ├── ScoreGTRelocaliser_CPU.cpp
│   │           │   └── ScoreNetRelocaliser_CPU.cpp
│   │           ├── cuda/
│   │           │   ├── ScoreForestRelocaliser_CUDA.cu
│   │           │   ├── ScoreGTRelocaliser_CUDA.cu
│   │           │   └── ScoreNetRelocaliser_CUDA.cu
│   │           └── interface/
│   │               ├── ScoreForestRelocaliser.cpp
│   │               ├── ScoreGTRelocaliser.cpp
│   │               ├── ScoreNetRelocaliser.cpp
│   │               └── ScoreRelocaliser.cpp
│   ├── infermous/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── infermous/
│   │   │       ├── base/
│   │   │       │   ├── CRF2D.h
│   │   │       │   ├── CRFUtil.h
│   │   │       │   ├── Grids.h
│   │   │       │   └── PairwisePotentialCalculator.h
│   │   │       └── engines/
│   │   │           └── MeanFieldInferenceEngine.h
│   │   └── src/
│   │       └── Dummy.cpp
│   ├── itmx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── itmx/
│   │   │       ├── base/
│   │   │       │   ├── ITMObjectPtrTypes.h
│   │   │       │   └── Settings.h
│   │   │       ├── graphviz/
│   │   │       │   └── GraphVisualiser.h
│   │   │       ├── imagesources/
│   │   │       │   ├── AsyncImageSourceEngine.h
│   │   │       │   ├── DepthCorruptingImageSourceEngine.h
│   │   │       │   ├── RemoteImageSourceEngine.h
│   │   │       │   ├── SemanticMaskingImageSourceEngine.h
│   │   │       │   ├── SingleRGBDImagePipe.h
│   │   │       │   └── ZedImageSourceEngine.h
│   │   │       ├── ocv/
│   │   │       │   └── OpenCVUtil.h
│   │   │       ├── picking/
│   │   │       │   ├── PickerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── Picker_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── Picker_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── Picker.h
│   │   │       │   └── shared/
│   │   │       │       └── Picker_Shared.h
│   │   │       ├── relocalisation/
│   │   │       │   ├── FernRelocaliser.h
│   │   │       │   ├── ICPRefiningRelocaliser.h
│   │   │       │   └── ICPRefiningRelocaliser.tpp
│   │   │       ├── remotemapping/
│   │   │       │   ├── BaseRGBDFrameMessage.h
│   │   │       │   ├── CompressedRGBDFrameHeaderMessage.h
│   │   │       │   ├── CompressedRGBDFrameMessage.h
│   │   │       │   ├── DepthCompressionType.h
│   │   │       │   ├── InteractionTypeMessage.h
│   │   │       │   ├── MappingClient.h
│   │   │       │   ├── MappingClientHandler.h
│   │   │       │   ├── MappingMessage.h
│   │   │       │   ├── MappingServer.h
│   │   │       │   ├── RGBCompressionType.h
│   │   │       │   ├── RGBDCalibrationMessage.h
│   │   │       │   ├── RGBDFrameCompressor.h
│   │   │       │   ├── RGBDFrameMessage.h
│   │   │       │   └── RenderingRequestMessage.h
│   │   │       ├── trackers/
│   │   │       │   ├── FallibleTracker.h
│   │   │       │   ├── GlobalTracker.h
│   │   │       │   ├── RemoteTracker.h
│   │   │       │   ├── RiftTracker.h
│   │   │       │   ├── TrackerFactory.h
│   │   │       │   ├── ViconTracker.h
│   │   │       │   └── ZedTracker.h
│   │   │       ├── util/
│   │   │       │   ├── CameraPoseConverter.h
│   │   │       │   ├── ColourConversion_Shared.h
│   │   │       │   ├── RGBDUtil.h
│   │   │       │   ├── ViconInterface.h
│   │   │       │   └── ZedCamera.h
│   │   │       └── visualisation/
│   │   │           ├── DepthVisualisationUtil.h
│   │   │           ├── DepthVisualisationUtil.tpp
│   │   │           ├── DepthVisualiserFactory.h
│   │   │           ├── cpu/
│   │   │           │   └── DepthVisualiser_CPU.h
│   │   │           ├── cuda/
│   │   │           │   └── DepthVisualiser_CUDA.h
│   │   │           ├── interface/
│   │   │           │   └── DepthVisualiser.h
│   │   │           └── shared/
│   │   │               └── DepthVisualiser_Shared.h
│   │   └── src/
│   │       ├── graphviz/
│   │       │   └── GraphVisualiser.cpp
│   │       ├── imagesources/
│   │       │   ├── AsyncImageSourceEngine.cpp
│   │       │   ├── DepthCorruptingImageSourceEngine.cpp
│   │       │   ├── RemoteImageSourceEngine.cpp
│   │       │   ├── SemanticMaskingImageSourceEngine.cpp
│   │       │   ├── SingleRGBDImagePipe.cpp
│   │       │   └── ZedImageSourceEngine.cpp
│   │       ├── ocv/
│   │       │   └── OpenCVUtil.cpp
│   │       ├── picking/
│   │       │   ├── PickerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── Picker_CPU.cpp
│   │       │   └── cuda/
│   │       │       └── Picker_CUDA.cu
│   │       ├── relocalisation/
│   │       │   └── FernRelocaliser.cpp
│   │       ├── remotemapping/
│   │       │   ├── BaseRGBDFrameMessage.cpp
│   │       │   ├── CompressedRGBDFrameHeaderMessage.cpp
│   │       │   ├── CompressedRGBDFrameMessage.cpp
│   │       │   ├── MappingClient.cpp
│   │       │   ├── MappingClientHandler.cpp
│   │       │   ├── MappingMessage.cpp
│   │       │   ├── MappingServer.cpp
│   │       │   ├── RGBDCalibrationMessage.cpp
│   │       │   ├── RGBDFrameCompressor.cpp
│   │       │   ├── RGBDFrameMessage.cpp
│   │       │   └── RenderingRequestMessage.cpp
│   │       ├── trackers/
│   │       │   ├── GlobalTracker.cpp
│   │       │   ├── RemoteTracker.cpp
│   │       │   ├── RiftTracker.cpp
│   │       │   ├── TrackerFactory.cpp
│   │       │   ├── ViconTracker.cpp
│   │       │   └── ZedTracker.cpp
│   │       ├── util/
│   │       │   ├── CameraPoseConverter.cpp
│   │       │   ├── RGBDUtil.cpp
│   │       │   ├── ViconInterface.cpp
│   │       │   └── ZedCamera.cpp
│   │       └── visualisation/
│   │           ├── DepthVisualiserFactory.cpp
│   │           ├── cpu/
│   │           │   └── DepthVisualiser_CPU.cpp
│   │           └── cuda/
│   │               └── DepthVisualiser_CUDA.cu
│   ├── oglx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── oglx/
│   │   │       ├── FrameBuffer.h
│   │   │       ├── OpenGLUtil.h
│   │   │       ├── QuadricRenderer.h
│   │   │       ├── WrappedGL.h
│   │   │       └── WrappedGLUT.h
│   │   └── src/
│   │       ├── FrameBuffer.cpp
│   │       ├── OpenGLUtil.cpp
│   │       └── QuadricRenderer.cpp
│   ├── orx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── orx/
│   │   │       ├── base/
│   │   │       │   ├── MemoryBlockFactory.h
│   │   │       │   ├── ORImagePtrTypes.h
│   │   │       │   └── ORMemoryBlockPtrTypes.h
│   │   │       ├── geometry/
│   │   │       │   ├── DualNumber.h
│   │   │       │   ├── DualQuaternion.h
│   │   │       │   ├── GeometryUtil.h
│   │   │       │   └── Screw.h
│   │   │       ├── persistence/
│   │   │       │   ├── ImagePersister.h
│   │   │       │   └── PosePersister.h
│   │   │       └── relocalisation/
│   │   │           ├── BackgroundRelocaliser.h
│   │   │           ├── CascadeRelocaliser.h
│   │   │           ├── EnsembleRelocaliser.h
│   │   │           ├── NullRelocaliser.h
│   │   │           ├── RefiningRelocaliser.h
│   │   │           └── Relocaliser.h
│   │   └── src/
│   │       ├── base/
│   │       │   └── MemoryBlockFactory.cpp
│   │       ├── geometry/
│   │       │   └── GeometryUtil.cpp
│   │       ├── persistence/
│   │       │   ├── ImagePersister.cpp
│   │       │   └── PosePersister.cpp
│   │       └── relocalisation/
│   │           ├── BackgroundRelocaliser.cpp
│   │           ├── CascadeRelocaliser.cpp
│   │           ├── EnsembleRelocaliser.cpp
│   │           ├── NullRelocaliser.cpp
│   │           ├── RefiningRelocaliser.cpp
│   │           └── Relocaliser.cpp
│   ├── rafl/
│   │   ├── CMakeLists.txt
│   │   ├── README.txt
│   │   ├── include/
│   │   │   └── rafl/
│   │   │       ├── base/
│   │   │       │   └── Descriptor.h
│   │   │       ├── choppers/
│   │   │       │   ├── CyclicTreeChopper.h
│   │   │       │   ├── HeightLimitingTreeChopper.h
│   │   │       │   ├── RandomTreeChopper.h
│   │   │       │   ├── TimeBasedTreeChopper.h
│   │   │       │   └── TreeChopper.h
│   │   │       ├── core/
│   │   │       │   ├── DecisionTree.h
│   │   │       │   └── RandomForest.h
│   │   │       ├── decisionfunctions/
│   │   │       │   ├── CompositeDecisionFunctionGenerator.h
│   │   │       │   ├── DecisionFunction.h
│   │   │       │   ├── DecisionFunctionGenerator.h
│   │   │       │   ├── DecisionFunctionGeneratorFactory.h
│   │   │       │   ├── FeatureBasedDecisionFunctionGenerator.h
│   │   │       │   ├── FeatureThresholdingDecisionFunction.h
│   │   │       │   ├── FeatureThresholdingDecisionFunctionGenerator.h
│   │   │       │   ├── PairwiseOpAndThresholdDecisionFunction.h
│   │   │       │   └── PairwiseOpAndThresholdDecisionFunctionGenerator.h
│   │   │       └── examples/
│   │   │           ├── Example.h
│   │   │           ├── ExampleReservoir.h
│   │   │           ├── ExampleUtil.h
│   │   │           └── UnitCircleExampleGenerator.h
│   │   └── src/
│   │       └── decisionfunctions/
│   │           ├── FeatureThresholdingDecisionFunction.cpp
│   │           └── PairwiseOpAndThresholdDecisionFunction.cpp
│   ├── raflevaluation/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── raflevaluation/
│   │   │       └── RandomForestEvaluator.h
│   │   └── src/
│   │       └── Dummy.cpp
│   ├── rigging/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── rigging/
│   │   │       ├── Camera.h
│   │   │       ├── CompositeCamera.h
│   │   │       ├── DerivedCamera.h
│   │   │       ├── MoveableCamera.h
│   │   │       └── SimpleCamera.h
│   │   └── src/
│   │       ├── CompositeCamera.cpp
│   │       ├── DerivedCamera.cpp
│   │       └── SimpleCamera.cpp
│   ├── spaint/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── spaint/
│   │   │       ├── collaboration/
│   │   │       │   ├── CollaborationMode.h
│   │   │       │   ├── CollaborativePoseOptimiser.h
│   │   │       │   └── CollaborativeRelocalisation.h
│   │   │       ├── features/
│   │   │       │   ├── FeatureCalculatorFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VOPFeatureCalculator_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VOPFeatureCalculator_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── FeatureCalculator.h
│   │   │       │   │   └── VOPFeatureCalculator.h
│   │   │       │   └── shared/
│   │   │       │       └── VOPFeatureCalculator_Shared.h
│   │   │       ├── fiducials/
│   │   │       │   ├── ArUcoFiducialDetector.h
│   │   │       │   ├── AveragingFiducial.h
│   │   │       │   ├── Fiducial.h
│   │   │       │   ├── FiducialDetector.h
│   │   │       │   ├── FiducialMeasurement.h
│   │   │       │   ├── FiducialPoseEstimator.h
│   │   │       │   ├── SimpleFiducial.h
│   │   │       │   └── ViconFiducialDetector.h
│   │   │       ├── imageprocessing/
│   │   │       │   ├── ImageProcessorFactory.h
│   │   │       │   ├── MedianFilterer.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── ImageProcessor_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── ImageProcessor_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── ImageProcessor.h
│   │   │       │   └── shared/
│   │   │       │       └── ImageProcessor_Shared.h
│   │   │       ├── markers/
│   │   │       │   ├── VoxelMarkerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VoxelMarker_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VoxelMarker_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── VoxelMarker.h
│   │   │       │   └── shared/
│   │   │       │       ├── VoxelMarker_Settings.h
│   │   │       │       └── VoxelMarker_Shared.h
│   │   │       ├── ogl/
│   │   │       │   └── CameraRenderer.h
│   │   │       ├── pipelinecomponents/
│   │   │       │   ├── CollaborativeComponent.h
│   │   │       │   ├── CollaborativeContext.h
│   │   │       │   ├── ObjectSegmentationComponent.h
│   │   │       │   ├── ObjectSegmentationContext.h
│   │   │       │   ├── PropagationComponent.h
│   │   │       │   ├── PropagationContext.h
│   │   │       │   ├── SLAMComponent.h
│   │   │       │   ├── SLAMContext.h
│   │   │       │   ├── SemanticSegmentationComponent.h
│   │   │       │   ├── SemanticSegmentationContext.h
│   │   │       │   ├── SmoothingComponent.h
│   │   │       │   └── SmoothingContext.h
│   │   │       ├── propagation/
│   │   │       │   ├── LabelPropagatorFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── LabelPropagator_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── LabelPropagator_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── LabelPropagator.h
│   │   │       │   └── shared/
│   │   │       │       └── LabelPropagator_Shared.h
│   │   │       ├── randomforest/
│   │   │       │   ├── ForestUtil.h
│   │   │       │   └── SpaintDecisionFunctionGenerator.h
│   │   │       ├── relocalisation/
│   │   │       │   └── RelocaliserFactory.h
│   │   │       ├── sampling/
│   │   │       │   ├── VoxelSamplerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── PerLabelVoxelSampler_CPU.h
│   │   │       │   │   └── UniformVoxelSampler_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── PerLabelVoxelSampler_CUDA.h
│   │   │       │   │   └── UniformVoxelSampler_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── PerLabelVoxelSampler.h
│   │   │       │   │   └── UniformVoxelSampler.h
│   │   │       │   └── shared/
│   │   │       │       ├── PerLabelVoxelSampler_Shared.h
│   │   │       │       └── UniformVoxelSampler_Shared.h
│   │   │       ├── segmentation/
│   │   │       │   ├── BackgroundSubtractingObjectSegmenter.h
│   │   │       │   ├── ColourAppearanceModel.h
│   │   │       │   ├── SegmentationUtil.h
│   │   │       │   └── Segmenter.h
│   │   │       ├── selectiontransformers/
│   │   │       │   ├── SelectionTransformerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VoxelToCubeSelectionTransformer_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VoxelToCubeSelectionTransformer_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── SelectionTransformer.h
│   │   │       │   │   ├── SelectionTransformerVisitor.h
│   │   │       │   │   └── VoxelToCubeSelectionTransformer.h
│   │   │       │   └── shared/
│   │   │       │       └── VoxelToCubeSelectionTransformer_Shared.h
│   │   │       ├── selectors/
│   │   │       │   ├── LeapSelector.h
│   │   │       │   ├── NullSelector.h
│   │   │       │   ├── PickingSelector.h
│   │   │       │   ├── Selector.h
│   │   │       │   ├── SelectorVisitor.h
│   │   │       │   └── TouchSelector.h
│   │   │       ├── slamstate/
│   │   │       │   └── SLAMState.h
│   │   │       ├── smoothing/
│   │   │       │   ├── LabelSmootherFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── LabelSmoother_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── LabelSmoother_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── LabelSmoother.h
│   │   │       │   └── shared/
│   │   │       │       └── LabelSmoother_Shared.h
│   │   │       ├── touch/
│   │   │       │   ├── TouchDescriptorCalculator.h
│   │   │       │   ├── TouchDetector.h
│   │   │       │   └── TouchSettings.h
│   │   │       ├── util/
│   │   │       │   ├── CameraFactory.h
│   │   │       │   ├── LabelManager.h
│   │   │       │   ├── SpaintSurfel.h
│   │   │       │   ├── SpaintSurfelScene.h
│   │   │       │   ├── SpaintVoxel.h
│   │   │       │   └── SpaintVoxelScene.h
│   │   │       └── visualisation/
│   │   │           ├── SemanticVisualiserFactory.h
│   │   │           ├── VisualisationGenerator.h
│   │   │           ├── cpu/
│   │   │           │   └── SemanticVisualiser_CPU.h
│   │   │           ├── cuda/
│   │   │           │   └── SemanticVisualiser_CUDA.h
│   │   │           ├── interface/
│   │   │           │   └── SemanticVisualiser.h
│   │   │           └── shared/
│   │   │               ├── SemanticVisualiser_Settings.h
│   │   │               └── SemanticVisualiser_Shared.h
│   │   └── src/
│   │       ├── collaboration/
│   │       │   └── CollaborativePoseOptimiser.cpp
│   │       ├── features/
│   │       │   ├── FeatureCalculatorFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VOPFeatureCalculator_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── VOPFeatureCalculator_CUDA.cu
│   │       │   └── interface/
│   │       │       └── VOPFeatureCalculator.cpp
│   │       ├── fiducials/
│   │       │   ├── ArUcoFiducialDetector.cpp
│   │       │   ├── AveragingFiducial.cpp
│   │       │   ├── Fiducial.cpp
│   │       │   ├── FiducialDetector.cpp
│   │       │   ├── FiducialMeasurement.cpp
│   │       │   ├── FiducialPoseEstimator.cpp
│   │       │   ├── SimpleFiducial.cpp
│   │       │   └── ViconFiducialDetector.cpp
│   │       ├── imageprocessing/
│   │       │   ├── ImageProcessorFactory.cpp
│   │       │   ├── MedianFilterer.cpp
│   │       │   ├── cpu/
│   │       │   │   └── ImageProcessor_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── ImageProcessor_CUDA.cu
│   │       │   └── interface/
│   │       │       └── ImageProcessor.cpp
│   │       ├── markers/
│   │       │   ├── VoxelMarkerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VoxelMarker_CPU.cpp
│   │       │   └── cuda/
│   │       │       └── VoxelMarker_CUDA.cu
│   │       ├── ogl/
│   │       │   └── CameraRenderer.cpp
│   │       ├── pipelinecomponents/
│   │       │   ├── CollaborativeComponent.cpp
│   │       │   ├── CollaborativeContext.cpp
│   │       │   ├── ObjectSegmentationComponent.cpp
│   │       │   ├── ObjectSegmentationContext.cpp
│   │       │   ├── PropagationComponent.cpp
│   │       │   ├── SLAMComponent.cpp
│   │       │   ├── SLAMContext.cpp
│   │       │   ├── SemanticSegmentationComponent.cpp
│   │       │   └── SmoothingComponent.cpp
│   │       ├── propagation/
│   │       │   ├── LabelPropagatorFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── LabelPropagator_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── LabelPropagator_CUDA.cu
│   │       │   └── interface/
│   │       │       └── LabelPropagator.cpp
│   │       ├── randomforest/
│   │       │   ├── ForestUtil.cpp
│   │       │   └── SpaintDecisionFunctionGenerator.cpp
│   │       ├── relocalisation/
│   │       │   └── RelocaliserFactory.cpp
│   │       ├── sampling/
│   │       │   ├── VoxelSamplerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   ├── PerLabelVoxelSampler_CPU.cpp
│   │       │   │   └── UniformVoxelSampler_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   ├── PerLabelVoxelSampler_CUDA.cu
│   │       │   │   └── UniformVoxelSampler_CUDA.cu
│   │       │   └── interface/
│   │       │       ├── PerLabelVoxelSampler.cpp
│   │       │       └── UniformVoxelSampler.cpp
│   │       ├── segmentation/
│   │       │   ├── BackgroundSubtractingObjectSegmenter.cpp
│   │       │   ├── ColourAppearanceModel.cpp
│   │       │   ├── SegmentationUtil.cpp
│   │       │   └── Segmenter.cpp
│   │       ├── selectiontransformers/
│   │       │   ├── SelectionTransformerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VoxelToCubeSelectionTransformer_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── VoxelToCubeSelectionTransformer_CUDA.cu
│   │       │   └── interface/
│   │       │       ├── SelectionTransformer.cpp
│   │       │       ├── SelectionTransformerVisitor.cpp
│   │       │       └── VoxelToCubeSelectionTransformer.cpp
│   │       ├── selectors/
│   │       │   ├── LeapSelector.cpp
│   │       │   ├── NullSelector.cpp
│   │       │   ├── PickingSelector.cpp
│   │       │   ├── SelectorVisitor.cpp
│   │       │   └── TouchSelector.cpp
│   │       ├── slamstate/
│   │       │   └── SLAMState.cpp
│   │       ├── smoothing/
│   │       │   ├── LabelSmootherFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── LabelSmoother_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── LabelSmoother_CUDA.cu
│   │       │   └── interface/
│   │       │       └── LabelSmoother.cpp
│   │       ├── touch/
│   │       │   ├── TouchDescriptorCalculator.cpp
│   │       │   ├── TouchDetector.cpp
│   │       │   └── TouchSettings.cpp
│   │       ├── util/
│   │       │   └── LabelManager.cpp
│   │       └── visualisation/
│   │           ├── SemanticVisualiserFactory.cpp
│   │           ├── VisualisationGenerator.cpp
│   │           ├── cpu/
│   │           │   └── SemanticVisualiser_CPU.cpp
│   │           ├── cuda/
│   │           │   └── SemanticVisualiser_CUDA.cu
│   │           └── interface/
│   │               └── SemanticVisualiser.cpp
│   ├── tvginput/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── tvginput/
│   │   │       ├── InputState.h
│   │   │       ├── JoystickAxis.h
│   │   │       ├── JoystickButton.h
│   │   │       ├── Keycode.h
│   │   │       └── MouseButton.h
│   │   └── src/
│   │       └── InputState.cpp
│   ├── tvgplot/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── tvgplot/
│   │   │       ├── PaletteGenerator.h
│   │   │       └── PlotWindow.h
│   │   └── src/
│   │       ├── PaletteGenerator.cpp
│   │       └── PlotWindow.cpp
│   └── tvgutil/
│       ├── CMakeLists.txt
│       ├── include/
│       │   └── tvgutil/
│       │       ├── boost/
│       │       │   └── WrappedAsio.h
│       │       ├── commands/
│       │       │   ├── Command.h
│       │       │   ├── CommandManager.h
│       │       │   ├── NoOpCommand.h
│       │       │   └── SeqCommand.h
│       │       ├── containers/
│       │       │   ├── LimitedContainer.h
│       │       │   ├── MapUtil.h
│       │       │   ├── PooledQueue.h
│       │       │   └── PriorityQueue.h
│       │       ├── filesystem/
│       │       │   ├── FilesystemUtil.h
│       │       │   ├── PathFinder.h
│       │       │   └── SequentialPathGenerator.h
│       │       ├── misc/
│       │       │   ├── ArgUtil.h
│       │       │   ├── ConversionUtil.h
│       │       │   ├── ExclusiveHandle.h
│       │       │   ├── IDAllocator.h
│       │       │   ├── SettingsContainer.h
│       │       │   └── ThreadPool.h
│       │       ├── net/
│       │       │   ├── AckMessage.h
│       │       │   ├── ClientHandler.h
│       │       │   ├── Message.h
│       │       │   ├── Server.h
│       │       │   └── SimpleMessage.h
│       │       ├── numbers/
│       │       │   ├── NumberSequenceGenerator.h
│       │       │   └── RandomNumberGenerator.h
│       │       ├── persistence/
│       │       │   ├── LineUtil.h
│       │       │   ├── PropertyUtil.h
│       │       │   └── SerializationUtil.h
│       │       ├── statistics/
│       │       │   ├── Histogram.h
│       │       │   └── ProbabilityMassFunction.h
│       │       └── timing/
│       │           ├── AverageTimer.h
│       │           ├── TimeUtil.h
│       │           └── Timer.h
│       └── src/
│           ├── commands/
│           │   ├── Command.cpp
│           │   ├── CommandManager.cpp
│           │   ├── NoOpCommand.cpp
│           │   └── SeqCommand.cpp
│           ├── filesystem/
│           │   ├── FilesystemUtil.cpp
│           │   ├── PathFinder.cpp
│           │   └── SequentialPathGenerator.cpp
│           ├── misc/
│           │   ├── IDAllocator.cpp
│           │   ├── SettingsContainer.cpp
│           │   └── ThreadPool.cpp
│           ├── net/
│           │   ├── AckMessage.cpp
│           │   ├── ClientHandler.cpp
│           │   └── Message.cpp
│           ├── numbers/
│           │   └── RandomNumberGenerator.cpp
│           └── persistence/
│               ├── LineUtil.cpp
│               └── PropertyUtil.cpp
├── pages/
│   └── mainpage.dox
├── require-devenv.sh
├── require-msbuild.sh
├── require-vsdevcmd.sh
├── run-spaintgui.sh
├── spaintdocs
├── tests/
│   ├── CMakeLists.txt
│   ├── scratch/
│   │   ├── CMakeLists.txt
│   │   ├── alglib/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── arrayfire/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── boost/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── cuda/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── main.cpp
│   │   │   ├── multiply.cu
│   │   │   ├── multiply.cuh
│   │   │   ├── test.cu
│   │   │   └── test.h
│   │   ├── eigen/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── infermous/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── infinitam/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── leap/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── lodepng/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── opencv/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── ovr/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── rafl/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── sdl/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── tbb/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── tvgutil/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── vicon/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── voice/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   └── zed/
│   │       ├── CMakeLists.txt
│   │       └── main.cpp
│   └── unit/
│       ├── CMakeLists.txt
│       ├── evaluation/
│       │   ├── CMakeLists.txt
│       │   ├── test_CartesianProductParameterSetGenerator.cpp
│       │   ├── test_ConfusionMatrixUtil.cpp
│       │   ├── test_CoordinateDescentParameterOptimiser.cpp
│       │   ├── test_CrossValidationSplitGenerator.cpp
│       │   ├── test_PerformanceMeasureUtil.cpp
│       │   └── test_RandomPermutationAndDivisionSplitGenerator.cpp
│       ├── infermous/
│       │   ├── CMakeLists.txt
│       │   └── test_CRFUtil.cpp
│       ├── itmx/
│       │   ├── CMakeLists.txt
│       │   └── test_ColourConversion.cpp
│       ├── orx/
│       │   ├── CMakeLists.txt
│       │   ├── HelperFunctions.h
│       │   ├── test_DualNumber.cpp
│       │   ├── test_DualQuaternion.cpp
│       │   └── test_GeometryUtil.cpp
│       ├── rafl/
│       │   ├── CMakeLists.txt
│       │   └── test_UnitCircleExampleGenerator.cpp
│       ├── rigging/
│       │   ├── CMakeLists.txt
│       │   └── test_CompositeCamera.cpp
│       ├── spaint/
│       │   ├── CMakeLists.txt
│       │   └── test_ImageProcessor.cpp
│       └── tvgutil/
│           ├── CMakeLists.txt
│           ├── test_ArgUtil.cpp
│           ├── test_CommandManager.cpp
│           ├── test_LimitedContainer.cpp
│           ├── test_MapUtil.cpp
│           ├── test_PriorityQueue.cpp
│           └── test_RandomNumberGenerator.cpp
└── update-voice-grammar.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: true
AlignEscapedNewlinesLeft: false
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: false
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping: {
  AfterClass: true,
  AfterControlStatement: true,
  AfterFunction: true,
  AfterNamespace: false,
  AfterStruct: true,
  AfterUnion: true,
  BeforeCatch: true,
  BeforeElse: true,
}
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: false
IndentWidth: 2
IndentWrappedFunctionNames: true
KeepEmptyLinesAtTheStartOfBlocks: true
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 2
UseTab: Never


================================================
FILE: .gitignore
================================================
build*/
compile_commands.json
docs/
install/
libraries/alglib/
libraries/arrayfire*/
libraries/boost_1_*/
libraries/boost-setup/
libraries/ceres-solver-1.11.0/
libraries/Eigen-3.2.2/
libraries/glew-1.12.0/
libraries/glog-0.3.4/
libraries/lodepng*/
libraries/opencv*/
libraries/SDL2-2.0.*/
libraries/setup/boost_1_58_0/
libraries/tbb43_20150611oss/
libraries/vicon/
libraries/*.log
*.tags
tags
tests/mike/
*.swp

# QtCreator CMake
CMakeLists.txt.user*

# CLion
\.idea/


================================================
FILE: CMakeLists.txt
================================================
#######################################
# Top-level CMakeLists.txt for spaint #
#######################################

cmake_minimum_required(VERSION 2.8)

PROJECT(spaint)

#############################
# Enable C++11 if requested #
#############################

INCLUDE(cmake/OfferC++11Support.cmake)

#################################
# Add additional compiler flags #
#################################

IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-local-typedefs")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")

# If on Mac OS X 10.9 (Mavericks), disable the annoying deprecation warnings (e.g. for GLU).
IF(${CMAKE_SYSTEM} MATCHES "Darwin-13.")
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
ENDIF()

#########################################
# Specify the default install directory #
#########################################

IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  SET(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/install CACHE PATH "" FORCE)
ENDIF()

##########################
# Specify subdirectories #
##########################

ADD_SUBDIRECTORY(modules)

OPTION(BUILD_APPS "Build the applications?" ON)
OPTION(BUILD_AUXILIARY_APPS "Build the auxiliary applications?" ON)
OPTION(BUILD_EVALUATION_MODULES "Build the evaluation modules?" ON)
OPTION(BUILD_GROVE "Build grove?" OFF)
OPTION(BUILD_GROVE_APPS "Build the applications associated with grove?" OFF)
OPTION(BUILD_INFERMOUS "Build infermous?" OFF)
OPTION(BUILD_RAFL_APPS "Build the applications associated with rafl?" OFF)
OPTION(BUILD_RELOCVIS "Build relocvis?" OFF)
OPTION(BUILD_SPAINT "Build spaint?" ON)
OPTION(BUILD_SPAINT_APPS "Build the applications associated with spaint?" ON)
OPTION(BUILD_SPAINTGUI_DEBUGHOOKS "Build the debug hooks in spaintgui?" OFF)
OPTION(BUILD_TESTS "Build the tests?" ON)

IF(BUILD_APPS)
  ADD_SUBDIRECTORY(apps)
ENDIF(BUILD_APPS)

IF(BUILD_TESTS)
  ENABLE_TESTING()
  ADD_SUBDIRECTORY(tests)
ENDIF()


================================================
FILE: LICENCE
================================================
LICENCE

SemanticPaint © 2015-2018, Torr Vision Group, The University of Oxford (the "Software")

The Software remains the property of the University of Oxford ("the University").

The Software is distributed "AS IS" under this Licence solely for non-commercial use in the hope that it will be useful, but in order that the University as a charitable foundation protects its assets for the benefit of its educational and research purposes, the University makes clear that no condition is made or to be implied, nor is any warranty given or to be implied, as to the accuracy of the Software, or that it will be suitable for any particular purpose or for use under any specific conditions. Furthermore, the University disclaims all responsibility for the use which is made of the Software. It further disclaims any liability for the outcomes arising from using the Software.

The Licensee agrees to indemnify the University and hold the University harmless from and against any and all claims, damages and liabilities asserted by third parties (including claims for negligence), which arise directly or indirectly from the use of the Software or the sale of any products based on the Software.

No part of the Software may be reproduced, modified, transmitted or transferred in any form or by any means, electronic or mechanical, without the express permission of the University. The permission of the University is not required if the said reproduction, modification, transmission or transference is done without financial return, the conditions of this Licence are imposed upon the receiver of the product, and all original and amended source code is included in any transmitted product. You may be held legally responsible for any copyright infringement that is caused or encouraged by your failure to abide by these terms and conditions.

You are not permitted under this Licence to use this Software commercially. Use for which any financial return is received shall be defined as commercial use, and includes:

(1)	integration of all or part of the source code or the Software into a product for sale or license by or on behalf of Licensee to third parties or 
(2)	use of the Software or any derivative of it for research with the final aim of developing software products for sale or license to a third party or 
(3)	use of the Software or any derivative of it for research with the final aim of developing non-software products for sale or license to a third party, or 
(4)	use of the Software to provide any service to an external organisation for which payment is received. 

If you are interested in using the Software commercially, please contact Torr Vision Group directly to negotiate a licence.

Contact details are: philip.torr@eng.ox.ac.uk.


================================================
FILE: README
================================================
This is the software bundle "SemanticPaint", created by:

Stuart Golodetz <smg@robots.ox.ac.uk>
Michael Sapienza <michael.sapienza@eng.ox.ac.uk>
Tommaso Cavallari <tommaso@tommasocavallari.com>
Nicholas A Lord <nicklord@robots.ox.ac.uk>
Julien Valentin <julien.valentin@eng.ox.ac.uk>
Vibhav Vineet <vibhav.vineet@gmail.com>
Ming-Ming Cheng <cmm.thu@qq.com>
Anurag Arnab <anurag.arnab@gmail.com>
Stephen Hicks <stephen.hicks@ndcn.ox.ac.uk>
Shahram Izadi <shahrami@microsoft.com>
Philip H S Torr <philip.torr@eng.ox.ac.uk>

It is built on top of InfiniTAM v3.5, a highly-efficient,
open-source 3D reconstruction engine developed by Oxford's
Active Vision Group. For more details about InfiniTAM v3.5,
please get in touch with one of the following people:

Victor Adrian Prisacariu <victor@robots.ox.ac.uk>
Olaf Kaehler <olaf@robots.ox.ac.uk>
Stuart Golodetz <smg@robots.ox.ac.uk>
Tommaso Cavallari <tommaso@tommasocavallari.com>

1. Building the System
----------------------

1.1 Overview

SemanticPaint builds with CMake 3.8.2 and above on Windows, Ubuntu and Mac OS X.
It has been tested on recent versions of all three operating systems, but may
require additional work to build on older versions.

1.2 Dependencies

SemanticPaint depends on various 3rd party libraries. Some of these are
required, in the sense that SemanticPaint will not function without them;
others are optional, but skipping them will reduce functionality.

Suitable versions of the required dependencies and some of the optional
dependencies have been included in the repository, so SemanticPaint should
build "out of the box". However, most users will probably want to install
the remaining optional libraries in order to enable full functionality.

  - ArrayFire (version 3.3.2)
    Status: Optional (needed for touch interaction and median filtering)
    Default: Disabled
    Flag: WITH_ARRAYFIRE

  - Boost (version 1.58.0)
    Status: Required

  - CUDA (version 7.5 or above)
    Status: Optional (needed for GPU acceleration)
    Default: Enabled
    Flag: WITH_CUDA

  - Eigen (version 3.2.2)
    Status: Required

  - GLEW (version 1.12.0)
    Status: Required on Windows/Ubuntu

  - InfiniTAM (version 3.5)
    Status: Required

  - Leap Motion SDK (version 2.2.1.24116)
    Status: Optional (needed for experimental Leap Motion support)
    Default: Disabled
    Flag: WITH_LEAP

  - Oculus SDK (version 0.5.0.1)
    Status: Optional (needed for Oculus Rift support)
    Default: Disabled
    Flag: WITH_OVR

  - OpenCV (version 3.1.0)
    Status: Optional (needed for feature inspection mode)
    Default: Disabled
    Flag: WITH_OPENCV

  - OpenGL
    Status: Required

  - OpenMP
    Status: Optional, but recommended (needed for faster training/prediction)
    Default: Disabled
    Flag: WITH_OPENMP
    Notes: Doesn't work on Mac OS X

  - OpenNI (version 2)
    Status: Optional, but recommended (needed for live reconstruction)
    Default: Disabled
    Flag: WITH_OPENNI

  - SDL (version 2-2.0.7)
    Status: Required

  - Vicon SDK
    Status: Optional (needed for the Vicon tracker)
    Default: Disabled
    Flag: WITH_VICON

1.3 Build Process

Common steps on all platforms:

  a) Choose a root directory, hereafter referred to as <root>.

  b) Clone the InfiniTAM repository into <root>/InfiniTAM.

  c) Build the infinitam_v3.5 branch of InfiniTAM using CMake (using <root>/InfiniTAM/InfiniTAM/build as your build directory).

  d) Clone SemanticPaint into <root>/spaint, e.g.

     $ git clone git@github.com:torrvision/spaint.git spaint

  e) Change to the spaint directory:

     $ cd spaint

1.3.1 Build Process (Windows)

  f) Using a Bash shell (e.g. Git Bash, provided with msysgit), run the top-level build script, e.g. for VS2013:

    $ ./build-win.sh 12 Release

  g) Run the CMake GUI and specify <root>/spaint/build as the build directory.

  h) Enable any optional libraries you want and supply the paths.

  i) Reconfigure and regenerate the Visual Studio solution.

  j) Build with the optional libraries enabled (just run the above build command again).

1.3.2 Build Process (Unix)

  f) Run the top-level build script:

     $ ./build-nix.sh "Unix Makefiles" Release

  g) Change to the build directory and run ccmake:

     $ cd build
     $ ccmake ..

  h) Enable any optional libraries you want and supply the paths.

  i) Reconfigure and regenerate the makefile.

  j) Build with the optional libraries enabled, e.g.

     $ make -j4

2. Running the System
---------------------

The build process will build various applications, libraries and test
programs in <root>/build. The main application can be found at:

<root>/build/bin/apps/spaintgui/spaintgui

It can be run "out of the box" from any working directory for live
reconstruction, provided you have built with OpenNI support.

If you want to reconstruct from data stored on disk (e.g. the Teddy
sequence that is used in InfiniTAM), you can call the application
as follows:

$ ./spaintgui -c <path>/Teddy/calib.txt -r <path>/Teddy/Frames/%04i.ppm -d <path>/Teddy/Frames/%04i.pgm

The arguments specify a text file containing calibration parameters,
and masks for the RGB and depth images in the input sequence.

Note that spaintgui also supports its own saving/loading of sequences
to/from the <root>/build/bin/apps/spaintgui/sequences subdirectory.
These can be loaded straightforwardly via:

$ ./spaintgui -s <sequence name>

3. Additional Documentation
---------------------------

Further details about the original concept for SemanticPaint can be
found in the following paper:

SemanticPaint: Interactive 3D Labeling and Learning at your Fingertips.
ACM Transactions on Graphics, 34(5), August 2015.

There is also a technical report that describes this implementation of
the SemanticPaint concept:

SemanticPaint: A Framework for the Interactive Segmentation of 3D Scenes.
arXiv e-print 1510.03727, October 2015.

4. Troubleshooting Tips
-----------------------

If you have any trouble with the build, here are some of the likely causes:

* The CMake executable is not on your path.
* The MSBuild executable is not on your path. (Windows)
* The Visual C++ compiler (cl.exe) is not on your path. (Windows)
* The latest Visual Studio updates have not been installed. (Windows)
* You're using a version of CMake that has a CUDA compilation bug (e.g. an early version of 3.11). Try CMake 3.9 instead. (Windows)
* You built Boost other than with the build script (which contains some bug fixes). Please use the build script :)

History:

2017-AUG-08: second public release
2015-SEP-26: first public release
2015-JUL-23: initial draft


================================================
FILE: README.md
================================================
# SemanticPaint: A Framework for Interactive, Real-Time 3D Scene Segmentation

![teaser](teaser.png)

*Project page:* [http://www.robots.ox.ac.uk/~tvg/projects/SemanticPaint/index.php](http://www.robots.ox.ac.uk/~tvg/projects/SemanticPaint/index.php)

This is an open-source, real-time implementation of the interactive *SemanticPaint* system for geometric reconstruction, object-class segmentation and learning of 3D scenes, originally published in [Valentin15]. Using our system, a user can walk into a room wearing a depth camera and a virtual reality headset, and both densely reconstruct the 3D scene [Newcombe11,Niessner13,Kaehler15] and interactively segment the environment into object classes such as 'chair', 'floor' and 'table'. The user interacts *physically* with the real-world scene, touching objects and using voice commands to assign them appropriate labels. These user-generated labels are leveraged by an online random forest-based machine learning algorithm, which is used to predict labels for previously unseen parts of the scene. The entire pipeline runs in real time, and the user stays 'in the loop' throughout the process, receiving immediate feedback about the progress of the labelling and interacting with the scene as necessary to refine the predicted segmentation.

This version of the *SemanticPaint* concept was implemented by [Stuart Golodetz](http://research.gxstudios.net) and [Michael Sapienza](http://sites.google.com/site/mikesapi), under the supervision of [Professor Philip Torr](http://www.robots.ox.ac.uk/~tvg). More recently, it has been significantly extended by Tommaso Cavallari, Stuart Golodetz and Nick Lord, with the most significant change being the addition of our [Grove relocaliser](http://www.robots.ox.ac.uk/~tvg/projects/RFAdaptation/index.php), as described in [Cavallari17].

Our framework is built on top of [InfiniTAM v3.5](http://www.robots.ox.ac.uk/~victor/infinitam/index.html), a highly efficient, open-source 3D reconstruction engine developed by Oxford's [Active Vision Group](http://www.robots.ox.ac.uk/OxVisionLib). Anyone interested in InfiniTAM should contact [Victor Adrian Prisacariu](mailto:victor@viprad.net).

The original concept for *SemanticPaint* was developed by a large number of people both at the University of Oxford and at Microsoft Research: Julien Valentin, Vibhav Vineet, Ming-Ming Cheng, David Kim, Shahram Izadi, Jamie Shotton, Pushmeet Kohli, Matthias Niessner, Antonio Criminisi and Philip H S Torr.

## Acknowledgements

We gratefully acknowledge the help of Julien Valentin, for his help in getting us up to speed with the project, of Victor Adrian Prisacariu and Olaf Kaehler, for implementing the 3D reconstruction engine on which our work is based, without which our work would not be possible, of Anurag Arnab, for his help with the saving and loading of scenes, and of Stephen Hicks and Joram van Rheede, for helping us to exhibit our work at SIGGRAPH 2015.

## Context

Scene understanding has many applications both within Computer Vision and beyond, but our primary motivation comes from a project led by [Stephen Hicks](http://www.ndcn.ox.ac.uk/team/stephen-hicks) to build augmented-reality glasses for the partially-sighted. Please read about it [here](http://www.va-st.com/smart-specs/).

## Publications

If you build on this framework for your research, please consider citing both our technical report that describes this implementation of the *SemanticPaint* concept, and the original research paper by Valentin *et al.*:
```
@techreport{Golodetz2015,
  author = {Stuart Golodetz* and Michael Sapienza* and Julien P C Valentin and Vibhav Vineet and Ming-Ming Cheng and Anurag Arnab and Victor A Prisacariu and Olaf K{\"a}hler and Carl Yuheng Ren and David W Murray and Shahram Izadi and Philip H S Torr},
  title = {{SemanticPaint: A Framework for the Interactive Segmentation of 3D Scenes}},
  institution = {Department of Engineering Science, University of Oxford},
  number = {TVG-2015-1},
  note = {Released as arXiv e-print 1510.03727},
  month = {October},
  year = {2015}
}
```

```
@article{Valentin2015,
  author = {Julien Valentin and Vibhav Vineet and Ming-Ming Cheng and David Kim and Jamie Shotton and Pushmeet Kohli and Matthias Niessner and Antonio Criminisi and Shahram Izadi and Philip H S Torr},
  title = {{SemanticPaint: Interactive 3D Labeling and Learning at your Fingertips}},
  journal = {ACM Transactions on Graphics},
  volume = {34},
  number = {5},
  year = {2015}
}
```

If you make use of or build on our Grove relocaliser, please consider citing:
```
@inproceedings{Cavallari2017,
  author = {Tommaso Cavallari and Stuart Golodetz* and Nicholas A Lord* and Julien Valentin and Luigi Di Stefano and Philip H S Torr},
  title = {{On-the-Fly Adaptation of Regression Forests for Online Camera Relocalisation}},
  booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year = {2017}
}

@article{Cavallari2019PAMI,
  author = {Tommaso Cavallari* and Stuart Golodetz* and Nicholas A Lord* and Julien Valentin* and Victor A Prisacariu and Luigi Di Stefano and Philip H S Torr},
  title = {{Real-Time RGB-D Camera Pose Estimation in Novel Scenes using a Relocalisation Cascade}},
  journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
  volume = {Early Access},
  year = {2019}
}

@inproceedings{Cavallari20193DV,
  author = {Tommaso Cavallari* and Luca Bertinetto and Jishnu Mukhoti and Philip Torr and Stuart Golodetz*},
  title = {{Let's Take This Online: Adapting Scene Coordinate Regression Network Predictions for Online RGB-D Camera Relocalisation}},
  booktitle = {Proceedings of the International Conference on 3D Vision (3DV)},
  year = {2019}
}
```

If you make use of or build on our Collaborative SLAM approach, please consider citing:
```
@article{Golodetz2018,
  author = {Stuart Golodetz* and Tommaso Cavallari* and Nicholas A Lord* and Victor A Prisacariu and David W Murray and Philip H S Torr},
  title = {{Collaborative Large-Scale Dense 3D Reconstruction with Online Inter-Agent Pose Optimisation}},
  journal = {IEEE Transactions on Visualization and Computer Graphics},
  volume = {24},
  number = {11},
  pages = {2895-2905},
  month = {November},
  year = {2018}
}
```

# Installation Guide

## 1. Building the System

### 1.1 Overview

SemanticPaint builds with CMake 3.8.2 and above on Windows, Ubuntu and Mac OS X.
It has been tested on recent versions of all three operating systems, but may
require additional work to build on older versions.

### 1.2 Dependencies

SemanticPaint depends on various 3rd party libraries. Some of these are
required, in the sense that SemanticPaint will not function without them;
others are optional, but skipping them will reduce functionality.

Suitable versions of the required dependencies and some of the optional
dependencies have been included in the repository, so SemanticPaint should
build "out of the box". However, most users will probably want to install
the remaining optional libraries in order to enable full functionality.

```
  - ArrayFire (version 3.3.2)
    Status: Optional (needed for touch interaction and median filtering)
    Default: Disabled
    Flag: WITH_ARRAYFIRE

  - Boost (version 1.58.0)
    Status: Required

  - CUDA (version 7.5 or above)
    Status: Optional (needed for GPU acceleration)
    Default: Enabled
    Flag: WITH_CUDA

  - Eigen (version 3.2.2)
    Status: Required

  - GLEW (version 1.12.0)
    Status: Required on Windows/Ubuntu

  - InfiniTAM (version 3.5)
    Status: Required

  - Leap Motion SDK (version 2.2.1.24116)
    Status: Optional (needed for experimental Leap Motion support)
    Default: Disabled
    Flag: WITH_LEAP

  - Oculus SDK (version 0.5.0.1)
    Status: Optional (needed for Oculus Rift support)
    Default: Disabled
    Flag: WITH_OVR

  - OpenCV (version 3.1.0)
    Status: Optional (needed for feature inspection mode)
    Default: Disabled
    Flag: WITH_OPENCV

  - OpenGL
    Status: Required

  - OpenMP
    Status: Optional, but recommended (needed for faster training/prediction)
    Default: Disabled
    Flag: WITH_OPENMP
    Notes: Doesn't work on Mac OS X

  - OpenNI (version 2)
    Status: Optional, but recommended (needed for live reconstruction)
    Default: Disabled
    Flag: WITH_OPENNI

  - SDL (version 2-2.0.7)
    Status: Required

  - Vicon SDK
    Status: Optional (needed for the Vicon tracker)
    Default: Disabled
    Flag: WITH_VICON
```

### 1.3 Build Process

Common steps on all platforms:

  1. Choose a root directory, hereafter referred to as `<root>`.

  2. Clone the InfiniTAM repository into `<root>/InfiniTAM`.

  3. Build the infinitam_v3.5 branch of InfiniTAM using CMake (using `<root>/InfiniTAM/InfiniTAM/build` as your build directory).

  4. Clone SemanticPaint into `<root>/spaint`, e.g.

     ```
     $ git clone git@github.com:torrvision/spaint.git spaint
     ```

  5. Change to the spaint directory:

     ```
     $ cd spaint
     ```

#### 1.3.1 Build Process (Windows)

  1. Using a Bash shell (e.g. Git Bash, provided with msysgit), run the top-level build script, e.g. for VS2013:

     ```
     $ ./build-win.sh 12 Release
     ```

  2. Run the CMake GUI and specify `<root>/spaint/build` as the build directory.

  3. Enable any optional libraries you want and supply the paths.

  4. Reconfigure and regenerate the Visual Studio solution.

  5. Build with the optional libraries enabled (just run the above build command again).

#### 1.3.2 Build Process (Unix)

  1. Run the top-level build script:

     ```
     $ ./build-nix.sh "Unix Makefiles" Release
     ```

  2. Change to the build directory and run ccmake:

     ```
     $ cd build
     ```

     ```
     $ ccmake ..
     ```

  3. Enable any optional libraries you want and supply the paths.

  4. Reconfigure and regenerate the makefile.

  5. Build with the optional libraries enabled, e.g.

     ```
     $ make -j4
     ```

## 2. Running the System

The build process will build various applications, libraries and test
programs in `<root>/build`. The main application can be found at:

```
<root>/build/bin/apps/spaintgui/spaintgui
```

It can be run "out of the box" from any working directory for live
reconstruction, provided you have built with OpenNI support.

If you want to reconstruct from data stored on disk (e.g. the Teddy
sequence that is used in InfiniTAM), you can call the application
as follows:

```
$ ./spaintgui -c <path> Teddy/calib.txt -r <path> Teddy/Frames/%04i.ppm -d <path>Teddy/Frames/%04i.pgm
```

The arguments specify a text file containing calibration parameters,
and masks for the RGB and depth images in the input sequence.

Note that spaintgui also supports its own saving/loading of sequences
to/from the `<root>/build/bin/apps/spaintgui/sequences` subdirectory.
These can be loaded straightforwardly via:

```
$ ./spaintgui -s <sequence name>
```

## 3. Troubleshooting Tips

If you have any trouble with the build, here are some of the likely causes:

* The CMake executable is not on your path.
* The MSBuild executable is not on your path. (Windows)
* The Visual C++ compiler (cl.exe) is not on your path. (Windows)
* The latest Visual Studio updates have not been installed. (Windows)
* You're using a version of CMake that has a CUDA compilation bug (e.g. an early version of 3.11). Try CMake 3.9 instead. (Windows)
* You built Boost other than with the build script (which contains some bug fixes). Please use the build script :)

# Licence

SemanticPaint © 2015-2018, Torr Vision Group, The University of Oxford (the "Software")

The Software remains the property of the University of Oxford ("the University").

The Software is distributed "AS IS" under this Licence solely for non-commercial use in the hope that it will be useful, but in order that the University as a charitable foundation protects its assets for the benefit of its educational and research purposes, the University makes clear that no condition is made or to be implied, nor is any warranty given or to be implied, as to the accuracy of the Software, or that it will be suitable for any particular purpose or for use under any specific conditions. Furthermore, the University disclaims all responsibility for the use which is made of the Software. It further disclaims any liability for the outcomes arising from using the Software.

The Licensee agrees to indemnify the University and hold the University harmless from and against any and all claims, damages and liabilities asserted by third parties (including claims for negligence), which arise directly or indirectly from the use of the Software or the sale of any products based on the Software.

No part of the Software may be reproduced, modified, transmitted or transferred in any form or by any means, electronic or mechanical, without the express permission of the University. The permission of the University is not required if the said reproduction, modification, transmission or transference is done without financial return, the conditions of this Licence are imposed upon the receiver of the product, and all original and amended source code is included in any transmitted product. You may be held legally responsible for any copyright infringement that is caused or encouraged by your failure to abide by these terms and conditions.

You are not permitted under this Licence to use this Software commercially. Use for which any financial return is received shall be defined as commercial use, and includes:

1. integration of all or part of the source code or the Software into a product for sale or license by or on behalf of Licensee to third parties or 
2. use of the Software or any derivative of it for research with the final aim of developing software products for sale or license to a third party or 
3. use of the Software or any derivative of it for research with the final aim of developing non-software products for sale or license to a third party, or 
4. use of the Software to provide any service to an external organisation for which payment is received. 

If you are interested in using the Software commercially, please contact Torr Vision Group directly to negotiate a licence.

Contact details are: [philip.torr@eng.ox.ac.uk](mailto:philip.torr@eng.ox.ac.uk).

# History

* 2018-OCT-17: third public release
* 2017-AUG-08: second public release
* 2015-SEP-26: first public release
* 2015-JUL-23: initial draft

# References

* [Cavallari17] Tommaso Cavallari, Stuart Golodetz*, Nicholas Lord*, Julien Valentin, Luigi Di Stefano and Philip Torr. On-the-Fly Adaptation of Regression Forests for Online Camera Relocalisation. CVPR, 2017.
* [Kaehler15] Olaf Kaehler, Victor Adrian Prisacariu, Carl Yuheng Ren, Xin Sun, Philip Torr and David Murray. Very High Frame Rate Volumetric Integration of Depth Images on Mobile Devices. IEEE Transactions on Visualization and Computer Graphics, 21(11), November 2015.
* [Newcombe11] Richard Newcombe, Shahram Izadi, Otmar Hilliges, David Molyneaux, David Kim, Andrew Davison, Pushmeet Kohli, Jamie Shotton, Steve Hodges and Andrew Fitzgibbon. KinectFusion: Real-Time Dense Surface Mapping and Tracking. ISMAR, 2011.
* [Niessner13] Matthias Niessner, Michael Zollhoefer, Shahram Izadi, and Marc Stamminger. Real-time 3D Reconstruction at Scale using Voxel Hashing. ACM Transactions on Graphics, 32(6):169, 2013.
* [Valentin15] Julien Valentin, Vibhav Vineet, Ming-Ming Cheng, David Kim, Shahram Izadi, Jamie Shotton, Pushmeet Kohli, Matthias Niessner, Antonio Criminisi, and Philip H S Torr. SemanticPaint: Interactive 3D Labeling and Learning at your Fingertips. ACM Transactions on Graphics, 34(5), August 2015.


================================================
FILE: apps/CMakeLists.txt
================================================
##################################
# CMakeLists.txt for spaint/apps #
##################################

IF(BUILD_AUXILIARY_APPS)
  ADD_SUBDIRECTORY(combineglobalposes)

  IF(BUILD_EVALUATION_MODULES AND BUILD_SPAINT AND WITH_ARRAYFIRE AND WITH_OPENCV)
    ADD_SUBDIRECTORY(touchtrain)
  ENDIF()

  IF(BUILD_GROVE AND BUILD_GROVE_APPS)
    IF(WITH_SCOREFORESTS)
      ADD_SUBDIRECTORY(relocconverter)
    ENDIF()

    IF(WITH_OPENCV)
      IF(WITH_VTK)
        ADD_SUBDIRECTORY(forestmodevis)
      ENDIF()

      IF(BUILD_RELOCVIS)
        ADD_SUBDIRECTORY(relocvis)
      ENDIF()
    ENDIF()

    IF(BUILD_EVALUATION_MODULES)
      IF(WITH_OPENCV)
        ADD_SUBDIRECTORY(prepare_7scenes)
      ENDIF()

      ADD_SUBDIRECTORY(relocicpeval)
      ADD_SUBDIRECTORY(relocnovelposes)
      ADD_SUBDIRECTORY(relocopt)
      ADD_SUBDIRECTORY(relocperf)
    ENDIF()
  ENDIF()

  IF(BUILD_RAFL_APPS)
    IF(BUILD_EVALUATION_MODULES)
      ADD_SUBDIRECTORY(raflperf)

      IF(WITH_OPENCV)
        ADD_SUBDIRECTORY(raflvis)
      ENDIF()
    ENDIF()
  ENDIF()
ENDIF()

IF(BUILD_GROVE AND BUILD_GROVE_APPS AND WITH_OPENCV)
  ADD_SUBDIRECTORY(relocgui)
ENDIF()

IF(BUILD_SPAINT AND BUILD_SPAINT_APPS)
  ADD_SUBDIRECTORY(spaintgui)
ENDIF()


================================================
FILE: apps/combineglobalposes/CMakeLists.txt
================================================
##############################################
# CMakeLists.txt for apps/combineglobalposes #
##############################################

###########################
# Specify the target name #
###########################

SET(targetname combineglobalposes)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseInfiniTAM.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)

#############################
# Specify the project files #
#############################

##
SET(sources
main.cpp
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP(sources FILES ${sources})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/itmx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/orx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/spaint/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetCUDAAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} spaint itmx orx tvgutil)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkInfiniTAM.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/combineglobalposes/main.cpp
================================================
/**
 * combineglobalposes: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.
 */

#include <fstream>
#include <iostream>

#include <boost/lexical_cast.hpp>

#include <orx/geometry/GeometryUtil.h>
using namespace orx;

#include <spaint/collaboration/CollaborativePoseOptimiser.h>
using namespace spaint;

#include <tvgutil/filesystem/PathFinder.h>
using namespace tvgutil;

namespace bf = boost::filesystem;

int main(int argc, char *argv[])
{
  // This application can be used to combine a set of global pose files produced by our collaborative mapping approach.
  std::vector<std::string> args(argv, argv + argc);
  if(args.size() < 4)
  {
    std::cout << "Usage: combineglobalposes <primary scene ID> <specifier 1> <specifier 2> [<specifier 3> ...]\n";
    return EXIT_FAILURE;
  }

  // Start a collaborative pose optimiser that aims to find the poses of all scenes relative to the specified primary scene.
  const std::string primarySceneID = args[1];
  CollaborativePoseOptimiser_Ptr poseOptimiser(new CollaborativePoseOptimiser(primarySceneID));
  poseOptimiser->start("Output");

  // For each global pose file specified:
  for(int i = 2; i < argc; ++i)
  {
    // Determine the path to the file. If the file doesn't exist, print a warning and skip it.
    bf::path p = find_subdir_from_executable("..") / "spaintgui" / "global_poses" / (args[i] + ".txt");
    if(!bf::exists(p))
    {
      std::cout << "Warning: " << p.string() << " not found\n";
      continue;
    }

    // Otherwise, read in all of the poses from the file, which are specified relative to the file's primary scene.
    std::cout << "Processing " << p << "\n\n";

    std::string filePrimarySceneID;
    std::vector<std::pair<std::string,DualQuatd> > fileRelativePoses;

    std::ifstream fs(p.string().c_str());
    std::string id;
    DualQuatd dq;
    while(fs >> id >> dq)
    {
      std::cout << "Read " << id << ' ' << dq << '\n';
      fileRelativePoses.push_back(std::make_pair(id, dq));

      // If this scene's pose relative to the file's primary scene is the identity, this is almost certainly the file's primary scene, so record that fact.
      if(DualQuatd::close(dq, DualQuatd::identity()))
      {
        std::cout << "Found file's primary scene: " << id << '\n';
        filePrimarySceneID = id;
      }
    }

    std::cout << '\n';

    // If we were unable to find the file's primary scene, print a warning and continue to the next global pose file.
    if(filePrimarySceneID == "")
    {
      std::cout << "Warning: Could not find file's primary scene, skipping poses in file\n";
      continue;
    }

    // Otherwise, add to the pose optimiser a relative transform from the coordinate system of the file's primary scene to that of each non-primary scene in the file.
    // FIXME: Currently, we are forced to add each relative transform multiple times, since the pose optimiser only works with confident edges.
    for(size_t i = 0, size = fileRelativePoses.size(); i < size; ++i)
    {
      if(fileRelativePoses[i].first == filePrimarySceneID) continue;

      for(int j = 0; j < CollaborativePoseOptimiser::confidence_threshold(); ++j)
      {
        poseOptimiser->add_relative_transform_sample(
          fileRelativePoses[i].first, filePrimarySceneID, GeometryUtil::dual_quat_to_pose(fileRelativePoses[i].second), CM_BATCH
        );
      }
    }
  }

  // Make sure the pose optimiser finishes running before we exit. The computed poses will be saved to disk automatically when the pose optimiser's destructor runs.
  boost::this_thread::sleep_for(boost::chrono::seconds(2));

  return 0;
}


================================================
FILE: apps/forestmodevis/CMakeLists.txt
================================================
####################################
# CMakeLists.txt for apps/relocvis #
####################################

###########################
# Specify the target name #
###########################

SET(targetname forestmodevis)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseVTK.cmake)

#############################
# Specify the project files #
#############################

##
SET(sources
main.cpp
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP(sources FILES ${sources})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} tvgutil)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkVTK.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/forestmodevis/main.cpp
================================================
/**
 * forestmodevis: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.
 */

#include <Eigen/Geometry>
#include <algorithm>
#include <boost/filesystem.hpp>
#include <boost/lexical_cast.hpp>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <map>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/viz.hpp>
#include <opencv2/viz/widget_accessor.hpp>
#include <sstream>
#include <vtkActor.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkTransform.h>
#include <vtkTransformPolyDataFilter.h>

#include "tvgutil/filesystem/PathFinder.h"
#include "tvgutil/filesystem/SequentialPathGenerator.h"
#include "tvgutil/timing/TimeUtil.h"

namespace fs = boost::filesystem;
using namespace cv::viz;
using namespace tvgutil;

static const int NTREES = 5;

struct Mode
{
  cv::Vec3f position;
  cv::Matx33f covariance;
};

void readModes(const std::string &modesFile, std::vector<std::vector<Mode>> &modes)
{
  modes.clear();
  modes.resize(NTREES);

  std::ifstream inModes(modesFile);
  for(int treeIdx = 0; treeIdx < NTREES; ++treeIdx)
  {
    int nbModes, leafIdx;
    inModes >> nbModes >> leafIdx;
    for(int modeIdx = 0; modeIdx < nbModes; ++modeIdx)
    {
      int nbInliers;
      Mode mode;
      inModes >> nbInliers;
      for(int i = 0; i < 3; ++i) inModes >> mode.position.val[i];
      for(int i = 0; i < 9; ++i) inModes >> mode.covariance.val[i];

      modes[treeIdx].push_back(mode);
    }
  }
}

void readExamples(const std::string &examplesFile, std::vector<std::vector<cv::Point3d>> &examples)
{
  examples.clear();
  examples.resize(NTREES);

  std::ifstream inExamples(examplesFile);
  for(int treeIdx = 0; treeIdx < NTREES; ++treeIdx)
  {
    int nbExamples;
    inExamples >> nbExamples;
//    std::cout << examplesFile << " - Nb examples for tree " << treeIdx << ": " << nbExamples << '\n';

    for(int exampleIdx = 0; exampleIdx < nbExamples; ++exampleIdx)
    {
      cv::Point3d example;

      inExamples >> example.x >> example.y >> example.z;

//      std::cout << example << '\n';

      examples[treeIdx].push_back(example);
    }
  }
}

class WCovarianceEllipsoid : public Widget3D
{
public:
  WCovarianceEllipsoid(const cv::Vec3f &position, const cv::Matx33f &covariance, Color color = Color::white())
  {
    // Compute the transformation parameters
    cv::Mat eVals;
    cv::Mat eVecs;
    cv::eigen(covariance, eVals, eVecs);
    cv::sqrt(eVals, eVals);

    auto scalingTransform =
        Eigen::Scaling(std::sqrt(covariance.val[0]) * 2.0f, std::sqrt(covariance.val[4]) * 2.0f, std::sqrt(covariance.val[8]) * 2.0f);
    //    auto scalingTransform = Eigen::Scaling(
    //        Eigen::Map<Eigen::Vector3f>(eVals.ptr<float>()));
    auto rotation = Eigen::AngleAxisf(Eigen::Map<Eigen::Matrix3f>(eVecs.ptr<float>()));
    auto translation = Eigen::Translation3f(Eigen::Map<const Eigen::Vector3f>(position.val));

    Eigen::Affine3f affineTransform = translation * scalingTransform * rotation;

    // row major
    Eigen::Matrix4d transformMat = affineTransform.matrix().transpose().cast<double>();

    vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
    sphereSource->SetCenter(0.0, 0.0, 0.0);
    sphereSource->SetPhiResolution(180);
    sphereSource->SetThetaResolution(360);
    sphereSource->SetRadius(1.0);

    vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();
    transform->SetMatrix(transformMat.data());

    vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter = vtkSmartPointer<vtkTransformPolyDataFilter>::New();
    transformFilter->SetInputConnection(sphereSource->GetOutputPort());
    transformFilter->SetTransform(transform);
    transformFilter->Update();
    // Set up the actor to display the transformed polydata

    vtkSmartPointer<vtkPolyDataMapper> transformedMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    transformedMapper->SetInputConnection(transformFilter->GetOutputPort());

    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(transformedMapper);
    actor->GetProperty()->SetColor(color.val[2] / 255, color.val[1] / 255, color.val[0] / 255);

    WidgetAccessor::setProp(*this, actor);
  }
};

struct VisualizationCookie
{
  Viz3d *visualizer;
  std::vector<Color> treeColours;
  std::vector<std::vector<Mode>> modesByTree;
  SequentialPathGenerator *pathGenerator;
  WMesh *mesh;
  std::string baseName;
  std::vector<std::string> widgetNames;
  std::string animationModesBaseName;
  std::string animationExamplesBaseName;
};

std::vector<std::string>
    drawModes(const std::vector<Mode> &modes, const std::string &nameBase, const Color &color, Viz3d &visualizer)
{
  std::vector<std::string> widgetNames;

  for(size_t modeIdx = 0; modeIdx < modes.size(); ++modeIdx)
  {
    const Mode &mode = modes[modeIdx];
    const std::string modeName = nameBase + '_' + boost::lexical_cast<std::string>(modeIdx);
    widgetNames.push_back(modeName);

    WCovarianceEllipsoid ellipsoid(mode.position, mode.covariance, color);
    visualizer.showWidget(modeName, ellipsoid);
  }

  return widgetNames;
}

std::vector<std::string> drawExamples(const std::vector<cv::Point3d> &examples,
                                      const std::string &nameBase,
                                      const Color &color,
                                      Viz3d &visualizer)
{
  std::vector<std::string> widgetNames;

  for(size_t exampleIdx = 0; exampleIdx < examples.size(); ++exampleIdx)
  {
    const cv::Point3d &example = examples[exampleIdx];

    const std::string exampleName = nameBase + '_' + boost::lexical_cast<std::string>(exampleIdx);
    widgetNames.push_back(exampleName);

    WSphere sphere(example, 0.01, 10, color);
    visualizer.showWidget(exampleName, sphere);
  }

  return widgetNames;
}

static void vizCallbackSingleModes(const KeyboardEvent &event, void *c)
{
  const VisualizationCookie *cookie = static_cast<VisualizationCookie *>(c);

  if(event.action == KeyboardEvent::KEY_UP && event.code == 't')
  {
    std::cout << "Saving screenshots from current viewpoint.\n";

    Viz3d &visualizer = *cookie->visualizer;

    // Clean the visualizer
    for(const auto &x : cookie->widgetNames)
    {
      visualizer.removeWidget(x);
    }

    for(size_t treeIdx = 2; treeIdx < cookie->modesByTree.size(); ++treeIdx)
    {
      std::vector<std::string> modeNames =
          drawModes(cookie->modesByTree[treeIdx], "wModes_", cookie->treeColours[treeIdx], visualizer);

      visualizer.saveScreenshot(cookie->baseName + "_" + boost::lexical_cast<std::string>(treeIdx) + ".png");

      for(const auto &x : modeNames)
      {
        visualizer.removeWidget(x);
      }
    }
  }
}

static void vizCallbackAnimation(const KeyboardEvent &event, void *c)
{
  const VisualizationCookie *cookie = static_cast<VisualizationCookie *>(c);

  if(event.action == KeyboardEvent::KEY_UP && event.code == 't')
  {
    std::cout << "Saving screenshots from current viewpoint.\n";

    Viz3d &visualizer = *cookie->visualizer;

    // Clean the visualizer
    for(const auto &x : cookie->widgetNames)
    {
      visualizer.removeWidget(x);
    }

    fs::path currentModeFileName = cookie->pathGenerator->make_path(cookie->animationModesBaseName);
    fs::path currentExamplesFileName = cookie->pathGenerator->make_path(cookie->animationExamplesBaseName);

    while(fs::is_regular_file(currentModeFileName))
    {
      std::vector<std::vector<Mode>> currentModes;
      readModes(currentModeFileName.string(), currentModes);

      std::vector<std::vector<cv::Point3d>> currentExamples;
      readExamples(currentExamplesFileName.string(), currentExamples);

      for(size_t treeIdx = 2; treeIdx < currentModes.size(); ++treeIdx)
      {
//        // Draw modes
//        {
//          std::vector<std::string> modeNames =
//              drawModes(currentModes[treeIdx], "wModes_", cookie->treeColours[treeIdx], visualizer);

//          fs::path screenshotPath = cookie->pathGenerator->make_path(
//              "modes_" + boost::lexical_cast<std::string>(treeIdx) + '_' + cookie->animationModesBaseName + ".png");
//          std::cout << "Saving screenshot: " << screenshotPath << '\n';

//          visualizer.saveScreenshot(screenshotPath.string());

//          for(const auto &x : modeNames)
//          {
//            visualizer.removeWidget(x);
//          }
//        }

//        // Draw examples
//        {
//          std::vector<std::string> exampleNames = drawExamples(currentExamples[treeIdx], "wExamples_", cookie->treeColours[treeIdx], visualizer);

//          fs::path screenshotPath = cookie->pathGenerator->make_path(
//              "examples_" + boost::lexical_cast<std::string>(treeIdx) + '_' + cookie->animationModesBaseName + ".png");
//          std::cout << "Saving screenshot: " << screenshotPath << '\n';

//          visualizer.saveScreenshot(screenshotPath.string());

//          for(const auto &x : exampleNames)
//          {
//            visualizer.removeWidget(x);
//          }
//        }

        // Draw combined
        {
          std::vector<std::string> exampleNames = drawExamples(currentExamples[treeIdx], "wExamples_", cookie->treeColours[treeIdx], visualizer);
          std::vector<std::string> modeNames = drawModes(currentModes[treeIdx], "wModes_", Color::gold(), visualizer);

          fs::path screenshotPath = cookie->pathGenerator->make_path(
              "combined_" + boost::lexical_cast<std::string>(treeIdx) + '_' + cookie->animationModesBaseName + ".png");
          std::cout << "Saving screenshot: " << screenshotPath << '\n';

          visualizer.saveScreenshot(screenshotPath.string());

          for(const auto &x : exampleNames)
          {
            visualizer.removeWidget(x);
          }

          for(const auto &x : modeNames)
          {
            visualizer.removeWidget(x);
          }
        }

      }

      cookie->pathGenerator->increment_index();
      currentModeFileName = cookie->pathGenerator->make_path(cookie->animationModesBaseName);
      currentExamplesFileName = cookie->pathGenerator->make_path(cookie->animationExamplesBaseName);
    }
  }
}

int main(int argc, char *argv[])
{
  if(argc < 3)
  {
    std::cout << "Usage: " << argv[0] << " mesh.obj modes.txt\n";
    return 1;
  }

  const std::string meshFile = argv[1];
  const std::string modesFile = argv[2];

  VisualizationCookie cookie;

  if(argc > 3)
  {
    cookie.animationModesBaseName = argv[3];
    cookie.animationExamplesBaseName = argv[4];
  }

  // Load mesh
  Mesh mesh = Mesh::load(meshFile, Mesh::LOAD_OBJ);
  WMesh wMesh(mesh);

  // Load modes
  // To visualize Kabsch modes
  // static const int NTREES = 3;

  readModes(modesFile, cookie.modesByTree);

  // Show everything
  Viz3d visualizer("Modes Visualizer");
  visualizer.showWidget("wMesh", wMesh);

  //  std::vector<Color> treeColors { Color::red(), Color::green(), Color::blue(), Color::magenta(), Color::cyan() };
  cookie.treeColours.push_back(Color::blue());
  cookie.treeColours.push_back(Color::green());
  cookie.treeColours.push_back(Color::red());
  cookie.treeColours.push_back(Color::magenta());
  cookie.treeColours.push_back(Color::cyan());

  // Here we draw all modes for visualization purpose.
  static const int INITIAL_TREE = 2;
  for(int treeIdx = INITIAL_TREE; treeIdx < NTREES; ++treeIdx)
  {
    Color color = cookie.treeColours[treeIdx];
    for(size_t modeIdx = 0; modeIdx < cookie.modesByTree[treeIdx].size(); ++modeIdx)
    {
      const Mode &mode = cookie.modesByTree[treeIdx][modeIdx];
      const std::string modeName =
          "wMode_" + boost::lexical_cast<std::string>(treeIdx) + '_' + boost::lexical_cast<std::string>(modeIdx);
      cookie.widgetNames.push_back(modeName);

      WCovarianceEllipsoid ellipsoid(mode.position, mode.covariance, color);
      visualizer.showWidget(modeName, ellipsoid);
    }
  }

  SequentialPathGenerator spg("./clusters");

  cookie.visualizer = &visualizer;
  cookie.pathGenerator = &spg;
  cookie.mesh = &wMesh;
  cookie.baseName = fs::path(modesFile).stem().string();

//  visualizer.registerKeyboardCallback(vizCallbackSingleModes, &cookie);
  visualizer.registerKeyboardCallback(vizCallbackAnimation, &cookie);

  //  WCovarianceEllipsoid test(cv::Vec3f(), cv::Matx33f(), Color::bluberry());
  //  visualizer.showWidget("test", test);

  visualizer.spin();

  return 0;
}


================================================
FILE: apps/prepare_7scenes/CMakeLists.txt
================================================
###########################################
# CMakeLists.txt for apps/prepare_7scenes #
###########################################

###########################
# Specify the target name #
###########################

SET(targetname prepare_7scenes)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenCV.cmake)

#############################
# Specify the project files #
#############################

##
SET(toplevel_sources main.cpp)

SET(toplevel_headers)

#################################################################
# Collect the project files into sources, headers and templates #
#################################################################

SET(sources
${toplevel_sources}
)

SET(headers
${toplevel_headers}
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP("" FILES ${toplevel_sources} ${toplevel_headers})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} tvgutil)

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkOpenCV.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/prepare_7scenes/main.cpp
================================================
/**
 * prepare_7scenes: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.
 */

#include <fstream>
#include <iostream>
#include <map>
#include <vector>

#include <boost/assign/list_of.hpp>
#include <boost/filesystem.hpp>
using boost::assign::list_of;

#include <opencv2/opencv.hpp>

#include <tvgutil/filesystem/SequentialPathGenerator.h>
using namespace tvgutil;

//#################### NAMESPACE ALIASES ####################

namespace bf = boost::filesystem;

//#################### FUNCTIONS ####################

void copy_rgbd_pose_frame(const SequentialPathGenerator &inputPathGenerator,
                          const SequentialPathGenerator &outputPathGenerator,
                          const std::string &depthMask,
                          const std::string &rgbMask,
                          const std::string &poseMask)
{
  // The colour image can just be copied.
  bf::copy_file(inputPathGenerator.make_path(rgbMask), outputPathGenerator.make_path(rgbMask));

  // Same as the pose file.
  bf::copy_file(inputPathGenerator.make_path(poseMask), outputPathGenerator.make_path(poseMask));

  // The depth image needs extra care (need to set pixels with value == 65535 to 0).
  cv::Mat depthImage = cv::imread(inputPathGenerator.make_path(depthMask).string(), cv::IMREAD_ANYDEPTH);

  cv::Mat invalidMask = depthImage == 65535;
  depthImage.setTo(0, invalidMask);

  cv::imwrite(outputPathGenerator.make_path(depthMask).string(), depthImage);
}

void process_splits(const bf::path &sequencePath,
                    const std::vector<std::string> &splitNames,
                    const bf::path &outputPath,
                    int singleSplitLength,
                    const std::string &depthMask,
                    const std::string &rgbMask,
                    const std::string &poseMask)
{
  SequentialPathGenerator outputPathGenerator(outputPath);

  for(size_t splitIdx = 0; splitIdx < splitNames.size(); ++splitIdx)
  {
    const bf::path splitFolder = sequencePath / splitNames[splitIdx];
    SequentialPathGenerator splitPathGenerator(splitFolder);

    std::cout << "Processing images from: " << splitFolder << '\n';

    for(int i = 0; i < singleSplitLength; ++i)
    {
      copy_rgbd_pose_frame(splitPathGenerator, outputPathGenerator, depthMask, rgbMask, poseMask);

      // Increment indices.
      splitPathGenerator.increment_index();
      outputPathGenerator.increment_index();
    }
  }
}

/**
 * \brief Outputs the specified error message and terminates the program with the specified exit code.
 *
 * \param message The error message.
 * \param code    The exit code.
 */
void quit(const std::string &message, int code = EXIT_FAILURE)
{
  std::cerr << message << '\n';
  exit(code);
}

//#################### MAIN ####################

int main(int argc, char *argv[]) try
{
  if(argc != 2)
  {
    quit(std::string("Usage: ") + argv[0] + " 7scenes_root.");
  }

  const bf::path datasetRoot = argv[1];
  if(!bf::is_directory(datasetRoot))
  {
    quit("The specified root folder does not exist.");
  }

  std::cout << "Preparing 7scenes dataset in: " << datasetRoot << '\n';

  // Filaname masks.
  const std::string depthFileMask = "frame-%06d.depth.png";
  const std::string poseFileMask = "frame-%06d.pose.txt";
  const std::string rgbFileMask = "frame-%06d.color.png";

  const std::string trainingFolderName = "train";
  const std::string testingFolderName = "test";

  // Dataset-specific informations.
  std::vector<std::string> sequenceNames = list_of<std::string>()("chess")("fire")("heads")("office")("pumpkin")("redkitchen")("stairs");
  std::vector<int> sequenceSplitLengths = list_of<int>(1000)(1000)(1000)(1000)(1000)(1000)(500);

  std::map<std::string, std::vector<std::string> > trainingSplits;
  std::map<std::string, std::vector<std::string> > testingSplits;

  // Chess
  trainingSplits[sequenceNames[0]].push_back("seq-01");
  trainingSplits[sequenceNames[0]].push_back("seq-02");
  trainingSplits[sequenceNames[0]].push_back("seq-04");
  trainingSplits[sequenceNames[0]].push_back("seq-06");

  testingSplits[sequenceNames[0]].push_back("seq-03");
  testingSplits[sequenceNames[0]].push_back("seq-05");

  // Fire
  trainingSplits[sequenceNames[1]].push_back("seq-01");
  trainingSplits[sequenceNames[1]].push_back("seq-02");

  testingSplits[sequenceNames[1]].push_back("seq-03");
  testingSplits[sequenceNames[1]].push_back("seq-04");

  // Heads
  trainingSplits[sequenceNames[2]].push_back("seq-02");

  testingSplits[sequenceNames[2]].push_back("seq-01");

  // Office
  trainingSplits[sequenceNames[3]].push_back("seq-01");
  trainingSplits[sequenceNames[3]].push_back("seq-03");
  trainingSplits[sequenceNames[3]].push_back("seq-04");
  trainingSplits[sequenceNames[3]].push_back("seq-05");
  trainingSplits[sequenceNames[3]].push_back("seq-08");
  trainingSplits[sequenceNames[3]].push_back("seq-10");

  testingSplits[sequenceNames[3]].push_back("seq-02");
  testingSplits[sequenceNames[3]].push_back("seq-06");
  testingSplits[sequenceNames[3]].push_back("seq-07");
  testingSplits[sequenceNames[3]].push_back("seq-09");

  // Pumpkin
  trainingSplits[sequenceNames[4]].push_back("seq-02");
  trainingSplits[sequenceNames[4]].push_back("seq-03");
  trainingSplits[sequenceNames[4]].push_back("seq-06");
  trainingSplits[sequenceNames[4]].push_back("seq-08");

  testingSplits[sequenceNames[4]].push_back("seq-01");
  testingSplits[sequenceNames[4]].push_back("seq-07");

  // Redkitchen
  trainingSplits[sequenceNames[5]].push_back("seq-01");
  trainingSplits[sequenceNames[5]].push_back("seq-02");
  trainingSplits[sequenceNames[5]].push_back("seq-05");
  trainingSplits[sequenceNames[5]].push_back("seq-07");
  trainingSplits[sequenceNames[5]].push_back("seq-08");
  trainingSplits[sequenceNames[5]].push_back("seq-11");
  trainingSplits[sequenceNames[5]].push_back("seq-13");

  testingSplits[sequenceNames[5]].push_back("seq-03");
  testingSplits[sequenceNames[5]].push_back("seq-04");
  testingSplits[sequenceNames[5]].push_back("seq-06");
  testingSplits[sequenceNames[5]].push_back("seq-12");
  testingSplits[sequenceNames[5]].push_back("seq-14");

  // Stairs
  trainingSplits[sequenceNames[6]].push_back("seq-02");
  trainingSplits[sequenceNames[6]].push_back("seq-03");
  trainingSplits[sequenceNames[6]].push_back("seq-05");
  trainingSplits[sequenceNames[6]].push_back("seq-06");

  testingSplits[sequenceNames[6]].push_back("seq-01");
  testingSplits[sequenceNames[6]].push_back("seq-04");

  // First of all, check that every folder exists and create training and testing subfolders.
  for(size_t sequenceIdx = 0; sequenceIdx < sequenceNames.size(); ++sequenceIdx)
  {
    const std::string &sequenceName = sequenceNames[sequenceIdx];
    const bf::path sequenceRoot = datasetRoot / sequenceName;

    std::cout << "Checking folder structure for sequence " << sequenceName << " in: " << sequenceRoot << '\n';

    // Check for the root.
    if(!bf::is_directory(sequenceRoot))
    {
      quit(sequenceRoot.string() + " does not exist.");
    }

    // Check for the subfolders.
    const std::vector<std::string> &sequenceTrainingSplits = trainingSplits[sequenceName];
    for(size_t splitIdx = 0; splitIdx < sequenceTrainingSplits.size(); ++splitIdx)
    {
      const bf::path splitFolder = sequenceRoot / sequenceTrainingSplits[splitIdx];
      if(!bf::is_directory(splitFolder))
      {
        quit(splitFolder.string() + " does not exist.");
      }
    }

    const std::vector<std::string> &sequenceTestingSplits = testingSplits[sequenceName];
    for(size_t splitIdx = 0; splitIdx < sequenceTestingSplits.size(); ++splitIdx)
    {
      const bf::path splitFolder = sequenceRoot / sequenceTestingSplits[splitIdx];
      if(!bf::is_directory(splitFolder))
      {
        quit(splitFolder.string() + " does not exist.");
      }
    }

    // Create train and test subfolders.
    std::cout << "Creating train and test subfolders.\n";
    bf::create_directory(sequenceRoot / trainingFolderName);
    bf::create_directory(sequenceRoot / testingFolderName);
  }

  // Create calibration file.
  const std::string calibrationFile = "calib.txt";
  const bf::path calibrationFileName = datasetRoot / calibrationFile;

  {
    std::cout << "Creating calibration file: " << calibrationFileName << '\n';

    std::ofstream calibrationFile(calibrationFileName.string().c_str());
    calibrationFile << "640 480\n"
                    << "585 585\n"
                    << "320 240\n"
                    << '\n'
                    << "640 480\n"
                    << "585 585\n"
                    << "320 240\n"
                    << '\n'
                    << "1 0 0 0\n"
                    << "0 1 0 0\n"
                    << "0 0 1 0\n"
                    << '\n'
                    << "affine 0.001 0\n";
  }

  // Now prepare each sequence.
  for(size_t sequenceIdx = 0; sequenceIdx < sequenceNames.size(); ++sequenceIdx)
  {
    const std::string &sequenceName = sequenceNames[sequenceIdx];
    const bf::path sequenceRoot = datasetRoot / sequenceName;

    // Training splits.
    const bf::path trainingPath = sequenceRoot / trainingFolderName;
    std::cout << "Preparing training sequence: " << trainingPath << '\n';
    bf::copy_file(calibrationFileName, trainingPath / calibrationFile);
    process_splits(sequenceRoot,
                   trainingSplits[sequenceName],
                   trainingPath,
                   sequenceSplitLengths[sequenceIdx],
                   depthFileMask,
                   rgbFileMask,
                   poseFileMask);

    // Testing splits.
    const bf::path testingPath = sequenceRoot / testingFolderName;
    std::cout << "Preparing testing sequence: " << testingPath << '\n';
    bf::copy_file(calibrationFileName, testingPath / calibrationFile);
    process_splits(sequenceRoot,
                   testingSplits[sequenceName],
                   testingPath,
                   sequenceSplitLengths[sequenceIdx],
                   depthFileMask,
                   rgbFileMask,
                   poseFileMask);
  }

  return EXIT_SUCCESS;
}
catch(std::exception &e)
{
  std::cerr << e.what() << '\n';
  return EXIT_FAILURE;
}


================================================
FILE: apps/raflperf/CMakeLists.txt
================================================
####################################
# CMakeLists.txt for apps/raflperf #
####################################

###########################
# Specify the target name #
###########################

SET(targetname raflperf)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)

#############################
# Specify the project files #
#############################

##
SET(sources
main.cpp
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP(sources FILES ${sources})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/evaluation/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/rafl/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/raflevaluation/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} evaluation rafl raflevaluation tvgutil)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/raflperf/main.cpp
================================================
/**
 * raflperf: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.
 */

#include <boost/assign/list_of.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
using boost::assign::list_of;
using boost::assign::map_list_of;

#include <evaluation/core/ParamSetUtil.h>
#include <evaluation/core/PerformanceTable.h>
#include <evaluation/splitgenerators/CrossValidationSplitGenerator.h>
#include <evaluation/splitgenerators/RandomPermutationAndDivisionSplitGenerator.h>
#include <evaluation/util/CartesianProductParameterSetGenerator.h>
using namespace evaluation;

#include <rafl/examples/ExampleUtil.h>
#include <rafl/examples/UnitCircleExampleGenerator.h>
using namespace rafl;

#include <raflevaluation/RandomForestEvaluator.h>
using namespace raflevaluation;

#include <tvgutil/timing/Timer.h>
#include <tvgutil/timing/TimeUtil.h>
using namespace tvgutil;

//#################### TYPEDEFS ####################

typedef int Label;
typedef boost::shared_ptr<const Example<Label> > Example_CPtr;

//#################### FUNCTIONS ####################

int main(int argc, char *argv[])
{
#if WITH_OPENMP
  omp_set_nested(1);
#endif

  const unsigned int seed = 12345;

  if(argc != 1 && argc != 4)
  {
    std::cerr << "Usage: raflperf [<training set file> <test set file> <output path>]\n";
    return EXIT_FAILURE;
  }

  std::vector<Example_CPtr> examples;
  std::vector<ParamSet> params;
  std::string outputResultPath;

  if(argc == 1)
  {
#define CLASS_IMBALANCE_TEST

    // Generate a set of labels.
    std::set<Label> classLabels;
    classLabels.insert(1);
    classLabels.insert(3);
    classLabels.insert(5);
    classLabels.insert(7);

    // Generate examples around the unit circle.
    UnitCircleExampleGenerator<Label> uceg(classLabels, seed);

#ifdef CLASS_IMBALANCE_TEST
    const int biasedClass = 7;
    std::set<Label> biasedClassLabels;
    biasedClassLabels.insert(biasedClass);

    std::set<Label> unbiasedClassLabels = classLabels;
    unbiasedClassLabels.erase(biasedClass);

    examples = uceg.generate_examples(unbiasedClassLabels, 1000);
    std::vector<Example_CPtr> biasedExamples = uceg.generate_examples(biasedClassLabels, 100000);
    examples.insert(examples.end(), biasedExamples.begin(), biasedExamples.end());
#else
    examples = uceg.generate_examples(classLabels, 1000);
#endif

    params = CartesianProductParameterSetGenerator()
      .add_param("treeCount", list_of<size_t>(2))
      .add_param("splitBudget", list_of<size_t>(1048576/2))
      .add_param("candidateCount", list_of<int>(256))
      .add_param("decisionFunctionGeneratorParams", list_of<std::string>(""))
      .add_param("decisionFunctionGeneratorType", list_of<std::string>("FeatureThresholding"))
      .add_param("gainThreshold", list_of<float>(0.0f))
      .add_param("maxClassSize", list_of<size_t>(1000))
      .add_param("maxTreeHeight", list_of<size_t>(20))
      .add_param("randomSeed", list_of<unsigned int>(seed))
      .add_param("seenExamplesThreshold", list_of<size_t>(50))
      .add_param("splittabilityThreshold", list_of<float>(0.8f))
      .add_param("usePMFReweighting", list_of<bool>(false)(true))
      .generate_param_sets();

    outputResultPath = "UnitCircleExampleGenerator-Results.txt";
  }
  else if(argc == 4)
  {
    std::string trainingSetPath = argv[1];
    std::string testingSetPath = argv[2];
    outputResultPath = argv[3];

    std::cout << "Training set: " << trainingSetPath << '\n';
    std::cout << "Testing set: " << testingSetPath << '\n';

    examples = ExampleUtil::load_examples<Label>(trainingSetPath);
    std::vector<Example_CPtr> testingExamples = ExampleUtil::load_examples<Label>(testingSetPath);

    examples.insert(examples.end(), testingExamples.begin(), testingExamples.end());
    std::cout << "Number of examples = " << examples.size() << '\n';

    // Generate the parameter sets with which to test the random forest.
    params = CartesianProductParameterSetGenerator()
      .add_param("treeCount", list_of<size_t>(8))
      .add_param("splitBudget", list_of<size_t>(1048576/2))
      .add_param("candidateCount", list_of<int>(256))
      .add_param("decisionFunctionGeneratorParams", list_of<std::string>(""))
      .add_param("decisionFunctionGeneratorType", list_of<std::string>("FeatureThresholding"))
      .add_param("gainThreshold", list_of<float>(0.0f))
      .add_param("maxClassSize", list_of<size_t>(100000))
      .add_param("maxTreeHeight", list_of<size_t>(1000000))
      .add_param("randomSeed", list_of<unsigned int>(seed))
      .add_param("seenExamplesThreshold", list_of<size_t>(512))
      .add_param("splittabilityThreshold", list_of<float>(0.8f))
      .add_param("usePMFReweighting", list_of<bool>(false)(true))
      .generate_param_sets();
  }

  // Register the relevant decision function generators with the factory.
  DecisionFunctionGeneratorFactory<Label>::instance().register_rafl_makers();

  // Construct the split generator.
#if 0
  const size_t foldCount = 2;
  SplitGenerator_Ptr splitGenerator(new CrossValidationSplitGenerator(seed, foldCount));
#else
  const size_t splitCount = 5;
  const float ratio = 0.5f;
  SplitGenerator_Ptr splitGenerator(new RandomPermutationAndDivisionSplitGenerator(seed, splitCount, ratio));
#endif

  // Time the random forest.
  Timer<boost::chrono::milliseconds> timer("ForestEvaluation");

  // Evaluate the random forest on the various different parameter sets.
  PerformanceTable results(list_of("Accuracy"));
  boost::shared_ptr<RandomForestEvaluator<Label> > evaluator;
  for(size_t n = 0, size = params.size(); n < size; ++n)
  {
    evaluator.reset(new RandomForestEvaluator<Label>(splitGenerator, params[n]));
    PerformanceResult result = evaluator->evaluate(examples);
    results.record_performance(params[n], result);
  }

  timer.stop();
  std::cout << timer << '\n';

  // Output the performance table to the screen.
  results.output(std::cout);

  // Time-stamp the results file.
  outputResultPath += "-" + TimeUtil::get_iso_timestamp();

  // Output the performance table to the results file.
  std::ofstream resultsFile(outputResultPath.c_str());
  if(!resultsFile)
  {
    std::cout << "Warning could not open file for writing...\n";
  }
  else
  {
    results.output(resultsFile);
  }

  return 0;
}


================================================
FILE: apps/raflvis/CMakeLists.txt
================================================
###################################
# CMakeLists.txt for apps/raflvis #
###################################

###########################
# Specify the target name #
###########################

SET(targetname raflvis)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)

#############################
# Specify the project files #
#############################

##
SET(sources
main.cpp
)

SET(headers
TestDecisionFunctionGenerator.h
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP(sources FILES ${sources})
SOURCE_GROUP(headers FILES ${headers})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/evaluation/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/rafl/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgplot/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} evaluation rafl tvgplot tvgutil)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkOpenCV.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/raflvis/TestDecisionFunctionGenerator.h
================================================
/**
 * raflvis: TestDecisionFunctionGenerator.h
 * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.
 */

#ifndef H_RAFLVIS_TESTDECISIONFUNCTIONGENERATOR
#define H_RAFLVIS_TESTDECISIONFUNCTIONGENERATOR

#include <rafl/decisionfunctions/CompositeDecisionFunctionGenerator.h>
#include <rafl/decisionfunctions/FeatureThresholdingDecisionFunctionGenerator.h>
#include <rafl/decisionfunctions/PairwiseOpAndThresholdDecisionFunctionGenerator.h>
using namespace rafl;

/**
 * \brief An instance of this class can be used to test composite decision function generation.
 */
template <typename Label>
class TestDecisionFunctionGenerator : public CompositeDecisionFunctionGenerator<Label>
{
  //#################### TYPEDEFS ####################
private:
  typedef boost::shared_ptr<DecisionFunctionGenerator<Label> > DecisionFunctionGenerator_Ptr;
  typedef boost::shared_ptr<const DecisionFunctionGenerator<Label> > DecisionFunctionGenerator_CPtr;

  //#################### CONSTRUCTORS ####################
public:
  /**
   * \brief Constructs a test decision function generator.
   */
  TestDecisionFunctionGenerator()
  {
    std::pair<int,int> featureIndexRange(0, 1);
    this->add_generator(DecisionFunctionGenerator_CPtr(new FeatureThresholdingDecisionFunctionGenerator<Label>(featureIndexRange)));
    this->add_generator(DecisionFunctionGenerator_CPtr(new PairwiseOpAndThresholdDecisionFunctionGenerator<Label>(featureIndexRange)));
  }

  //#################### PUBLIC STATIC MEMBER FUNCTIONS ####################
public:
  /**
   * \brief Makes a test decision function generator.
   *
   * \param params  The parameters to the decision function generator.
   * \return        The decision function generator.
   */
  static DecisionFunctionGenerator_Ptr maker(const std::string& params)
  {
    return DecisionFunctionGenerator_Ptr(new TestDecisionFunctionGenerator<Label>);
  }

  //#################### PUBLIC MEMBER FUNCTIONS ####################
public:
  /** Override */
  virtual std::string get_params() const
  {
    return "";
  }

  /**
   * \brief Gets the type of the decision function generator.
   *
   * \return  The type of the decision function generator.
   */
  static std::string get_static_type()
  {
    return "Test";
  }

  /** Override */
  virtual std::string get_type() const
  {
    return get_static_type();
  }
};

#endif


================================================
FILE: apps/raflvis/main.cpp
================================================
/**
 * raflvis: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.
 */

#include <boost/assign/list_of.hpp>
#include <boost/format.hpp>
using boost::assign::list_of;

#include <evaluation/core/ParamSetUtil.h>
#include <evaluation/core/PerformanceMeasure.h>
#include <evaluation/util/CartesianProductParameterSetGenerator.h>
#include <evaluation/util/ConfusionMatrixUtil.h>
using namespace evaluation;

#include <rafl/choppers/HeightLimitingTreeChopper.h>
#include <rafl/choppers/TimeBasedTreeChopper.h>
#include <rafl/core/RandomForest.h>
#include <rafl/examples/ExampleUtil.h>
#include <rafl/examples/UnitCircleExampleGenerator.h>
using namespace rafl;

#include <tvgplot/PaletteGenerator.h>
#include <tvgplot/PlotWindow.h>
using namespace tvgplot;

#include <tvgutil/persistence/SerializationUtil.h>
using namespace tvgutil;

#include "TestDecisionFunctionGenerator.h"

//#################### TYPEDEFS ####################

typedef int Label;

typedef boost::shared_ptr<const Example<Label> > Example_CPtr;

typedef DecisionTree<Label> DT;
typedef RandomForest<Label> RF;
typedef boost::shared_ptr<RF> RF_Ptr;

typedef boost::shared_ptr<const TreeChopper<Label> > TreeChopper_CPtr;

//#################### TYPES ####################

/**
 * \brief An instance of this class can be used to pick random elements from a set.
 */
template <typename T>
class SetSampler
{
  //~~~~~~~~~~~~~~~~~~~~ PRIVATE VARIABLES ~~~~~~~~~~~~~~~~~~~~
private:
  /** The random number generator used to generate random indices for sampling. */
  tvgutil::RandomNumberGenerator m_rng;

  //~~~~~~~~~~~~~~~~~~~~ CONSTRUCTORS ~~~~~~~~~~~~~~~~~~~~
public:
  /**
   * \brief Constructs a set sampler.
   *
   * \param seed  The seed for the random number generator.
   */
  explicit SetSampler(unsigned int seed)
  : m_rng(seed)
  {}

  //~~~~~~~~~~~~~~~~~~~~ PUBLIC MEMBER FUNCTIONS ~~~~~~~~~~~~~~~~~~~~
public:
  /**
   * \brief Picks a random element from the specified set.
   *
   * \param s The set from which to sample.
   * \return  The sampled element.
   */
  T get_sample(const std::set<T>& s)
  {
    int randomIndex = m_rng.generate_int_from_uniform(0, static_cast<int>(s.size()) - 1);
    typename std::set<T>::const_iterator it(s.begin());
    std::advance(it, randomIndex);
    return *it;
  }
};

//#################### FUNCTIONS ####################

/**
 * \brief Makes a 2D descriptor.
 *
 * \param x The x component of the descriptor.
 * \param y The y component of the descriptor.
 * \return  The descriptor.
 */
static Descriptor_CPtr make_2d_descriptor(float x, float y)
{
  Descriptor_Ptr d(new Descriptor(2));
  (*d)[0] = x;
  (*d)[1] = y;
  return d;
}

/**
 * \brief Generates a grid of 2D descriptors over the (min,min)-(max,max) bounding box, with the specified spacing.
 *
 * \param min     The minimum coordinate in the box in both the x and y directions.
 * \param max     The maximum coordinate in the box in both the x and y directions.
 * \param spacing The spacing between the individual descriptors.
 * \return        The grid of descriptors.
 */
static std::vector<Descriptor_CPtr> generate_2d_descriptor_grid(float min, float max, float spacing)
{
  std::vector<Descriptor_CPtr> descriptors;
  for(float x = min; x < max; x += spacing)
  {
    for(float y = min; y < max; y += spacing)
    {
      descriptors.push_back(make_2d_descriptor(x, y));
    }
  }
  return descriptors;
}

/**
 * \brief Rotates a set of 2D examples by a specified angle.
 *
 * \param examples   The set of examples.
 * \param angle      The angle by which to rotate each example (in radians).
 * \return           The rotated set of examples.
 */
static std::vector<Example_CPtr> rotate_examples(const std::vector<Example_CPtr> examples, float angle)
{
  std::vector<Example_CPtr> rotatedExamples;
  for(size_t i = 0, size = examples.size(); i < size; ++i)
  {
    const Descriptor_CPtr& desc = examples[i]->get_descriptor();
    const float x = (*desc)[0], y = (*desc)[1];
    const float rx = x * cosf(angle) - y * sinf(angle);
    const float ry = x * sinf(angle) + y * cosf(angle);
    rotatedExamples.push_back(Example_CPtr(new Example<Label>(make_2d_descriptor(rx,ry), examples[i]->get_label())));
  }
  return rotatedExamples;
}

/**
 * \brief Evaluates the accuracy of the random forest on a set of examples.
 *
 * \param forest    The random forest.
 * \param examples  The set of examples.
 * \return          The accuracy of the random forest on the examples.
 */
static float evaluate_forest_accuracy(const RF_Ptr& forest, const std::vector<Example_CPtr>& examples)
{
  std::set<Label> classLabels;
  size_t examplesSize = examples.size();
  std::vector<Label> expectedLabels(examplesSize), predictedLabels(examplesSize);

  for(size_t i = 0; i < examplesSize; ++i)
  {
    const Example<Label>& example = *examples[i];
    predictedLabels[i] = forest->predict(example.get_descriptor());
    expectedLabels[i] = example.get_label();
    classLabels.insert(expectedLabels[i]);
  }

  Eigen::MatrixXf confusionMatrix = ConfusionMatrixUtil::make_confusion_matrix(classLabels, expectedLabels, predictedLabels);
  return ConfusionMatrixUtil::calculate_accuracy(ConfusionMatrixUtil::normalise_rows_L1(confusionMatrix));
}

int main(int argc, char *argv[])
{
//#define CLASS_IMBALANCE_TEST
#define EXAMPLE_ROTATION_TEST

  // The seed for the random number generator.
  const unsigned int seed = 1234;

  // Generate a set of labels.
#if defined(CLASS_IMBALANCE_TEST)
  const int labelCount = 5;
#elif defined(EXAMPLE_ROTATION_TEST)
  const int labelCount = 5;
#else
  const int labelCount = 20;
#endif
  std::set<Label> classLabels;
  for(int i = 0; i < labelCount; ++i) classLabels.insert(i);

#ifndef CLASS_IMBALANCE_TEST
  // Initialise the set sampler.
  SetSampler<Label> classLabelSampler(seed);
#endif

  // Generate a subset of the labels that are currently observable.
#ifdef CLASS_IMBALANCE_TEST
  std::set<Label> unbiasedClassLabels;
  for(int i = 0; i < labelCount - 1; ++i) unbiasedClassLabels.insert(i);
  std::set<Label> biasedClassLabels;
  biasedClassLabels.insert(labelCount - 1);
#else
  const int currentLabelCount = 2;
  std::set<Label> currentClassLabels;
  for(int i = 0; i < currentLabelCount; ++i) currentClassLabels.insert(i);
#endif

  // Generate the palettes.
  std::map<std::string,cv::Scalar> basicPalette = PaletteGenerator::generate_basic_rgba_palette();
  std::map<Label,cv::Scalar> randomPalette = PaletteGenerator::generate_random_rgba_palette<Label>(classLabels, seed);

  // Initialise a unit example generator.
  const float lowerSTD = 0.05f;
  const float upperSTD = 0.18f;
  UnitCircleExampleGenerator<Label> uceg(classLabels, seed, lowerSTD, upperSTD);

  // Generate the parameter set with which to train the random forest (note that we're using the parameter set generator for convenience only).
  std::vector<ParamSet> params = CartesianProductParameterSetGenerator()
    .add_param("candidateCount", list_of<int>(256))
    .add_param("decisionFunctionGeneratorParams", list_of<std::string>(""))
    .add_param("decisionFunctionGeneratorType", list_of<std::string>(PairwiseOpAndThresholdDecisionFunctionGenerator<Label>::get_static_type()))
    .add_param("gainThreshold", list_of<float>(0.0f))
    .add_param("maxClassSize", list_of<size_t>(10000))
    .add_param("maxTreeHeight", list_of<size_t>(20))
    .add_param("randomSeed", list_of<unsigned int>(seed))
    .add_param("seenExamplesThreshold", list_of<size_t>(50))
    .add_param("splittabilityThreshold", list_of<float>(0.5f))
    .add_param("usePMFReweighting", list_of<bool>(true))
    .generate_param_sets();

  // Register the relevant decision function generators with the factory.
  DecisionFunctionGeneratorFactory<Label>::instance().register_rafl_makers();

  // Initialise the online random forest with the specified parameters.
  const size_t treeCount = 2;
  DT::Settings settings(params[0]);
  RF_Ptr randomForest(new RF(treeCount, settings));

  // Create the tree chopper.
  const size_t maxTreeHeight = 5;
  const size_t timePeriod = 20;
  TimeBasedTreeChopper<Label> treeChopper(TreeChopper_CPtr(new HeightLimitingTreeChopper<Label>(maxTreeHeight, seed)), timePeriod);

  // Generate the windows into which we will display the output of the random forest.
  PlotWindow accuracyPlot("ClassificationAccuracy");
  PlotWindow decisionBoundaryPlot("DecisionBoundary");
  PlotWindow featureSpacePlot("UnitCircleExampleGenerator");

  // Set the initial and maximum time delays between learning iterations (in milliseconds).
  int timeDelay = 20;
  const int maxDelay = 3000;

  // Create an OpenCV trackbar to allow the user to vary the time delay on the fly.
  cv::createTrackbar("Delay", "DecisionBoundary", &timeDelay, maxDelay);

  // Generate a dense set of points covering a square bounding box in the 2D plane.
  const float minVal = -2.5f;
  const float maxVal = 2.5f;
  const float spacing = 0.03f;
  std::vector<Descriptor_CPtr> descriptorGrid = generate_2d_descriptor_grid(minVal, maxVal, spacing);

  // Evaluate the accuracy of the random forest as we add new examples to it over a specified number of learning rounds, and visualise the results.
  std::vector<float> accuracyOverTime;
  const size_t maxLearningRounds = 500;
  for(size_t roundCount = 0; roundCount < maxLearningRounds; ++roundCount)
  {
#if defined(CLASS_IMBALANCE_TEST)
    // Generate a set of examples with an unbalanced number of class labels.
    std::vector<Example_CPtr> currentExamples = uceg.generate_examples(unbiasedClassLabels, 30);
    std::vector<Example_CPtr> currentBiasedExamples = uceg.generate_examples(biasedClassLabels, 3000);
    currentExamples.insert(currentExamples.end(), currentBiasedExamples.begin(), currentBiasedExamples.end());
#elif defined(EXAMPLE_ROTATION_TEST)
    // Rotate the examples by an angle that increases by 10 degrees every 20 rounds until it hits a maximum of 90 degrees.
    static int degreeAngle = 0;
    if(roundCount % 20 == 0) degreeAngle = std::min(90, degreeAngle + 10);
    float radianAngle = static_cast<float>(degreeAngle * M_PI / 180.0);
    std::vector<Example_CPtr> currentExamples = rotate_examples(uceg.generate_examples(classLabels, 50), radianAngle);

    // Chop old trees in the forest as necessary to make the forest adapt better to the new examples as the rotation increases.
    treeChopper.chop_tree_if_necessary(randomForest);
#else
    // Add an additional current class label after every 20 rounds of training.
    if(roundCount % 20 == 0) currentClassLabels.insert(classLabelSampler.get_sample(classLabels));

    // Generate a set of examples from each current class around the unit circle.
    std::vector<Example_CPtr> currentExamples = uceg.generate_examples(currentClassLabels, 50);
#endif

    // Draw the generated points in the feature space plot.
    for(size_t i = 1, iend = currentExamples.size(); i < iend; ++i)
    {
      const Example<Label>& example = *currentExamples[i];
      const Descriptor& descriptor = *example.get_descriptor();
      featureSpacePlot.draw_cartesian_circle(cv::Point2f(descriptor[0], descriptor[1]), randomPalette[example.get_label()], 2, 2);
    }
    featureSpacePlot.draw_cartesian_axes(basicPalette["Red"]);
    featureSpacePlot.refresh();

    // Add the set of examples to the random forest.
    randomForest->add_examples(currentExamples);

    // Predict the labels of the examples passed to the forest under the current hypothesis.
    accuracyOverTime.push_back(evaluate_forest_accuracy(randomForest, currentExamples));

    // Train the random forest by splitting up to the specified number of leaf nodes, and output forest statistics each time the forest
    // has split some nodes in order to help diagnose the learning.
    static const size_t splitBudget = 1;
    if(randomForest->train(splitBudget)) randomForest->output_statistics(std::cout);

    // Plot a line graph showing the accuracy of the forest on the training examples over time.
    accuracyPlot.draw_line_graph(accuracyOverTime, basicPalette["Blue"]);

    // Draw the accuracy values on the same plot as the line graph.
    boost::format threeDecimalPlaces("%0.3f");
    std::string currentAccuracy = (threeDecimalPlaces % accuracyOverTime.back()).str();
    std::string cumulativeAverageAccuracy = (threeDecimalPlaces % static_cast<float>(std::accumulate(accuracyOverTime.begin(), accuracyOverTime.end(), 0.0f) / accuracyOverTime.size())).str();
    accuracyPlot.draw_canvas_text( std::string("CurAccuracy") + currentAccuracy, cv::Point2i(10, accuracyPlot.canvas_height() - 50), basicPalette["White"]);
    accuracyPlot.draw_canvas_text( std::string("AvgAccuracy") + cumulativeAverageAccuracy, cv::Point2i(10, accuracyPlot.canvas_height() - 10), basicPalette["White"]);
    accuracyPlot.refresh();

    // Draw the current decision boundary of the random forest by predicting the labels of the dense set of points generated in the 2D plane.
    for(size_t i = 1, iend = descriptorGrid.size(); i < iend; ++i)
    {
      const Descriptor_CPtr& descriptor = descriptorGrid[i];
      decisionBoundaryPlot.draw_cartesian_circle(cv::Point2f((*descriptor)[0],(*descriptor)[1]), randomPalette[randomForest->predict(descriptor)], 2, 2);
    }
    decisionBoundaryPlot.refresh();

    // Process keyboard input.
    if(cv::waitKey(timeDelay) == 'q') break;

    // Clear the relevant plots.
    featureSpacePlot.clear_figure();
    accuracyPlot.clear_figure();

#ifndef CLASS_IMBALANCE_TEST
    // Remove a current class label after every 40 rounds of training.
    if(roundCount % 40 == 0) currentClassLabels.erase(classLabelSampler.get_sample(classLabels));
#endif

    if(roundCount % 50 == 0)
    {
      const std::string path = "./randomForest" + boost::lexical_cast<std::string>(roundCount) + ".rf";
      SerializationUtil::save_text(path, *randomForest);
      randomForest = SerializationUtil::load_text(path, randomForest);
    }
  }

#undef CLASS_IMBALANCE_TEST

  return 0;
}


================================================
FILE: apps/relocconverter/CMakeLists.txt
================================================
##########################################
# CMakeLists.txt for apps/relocconverter #
##########################################

###########################
# Specify the target name #
###########################

SET(targetname relocconverter)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseCUDA.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseGrove.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseInfiniTAM.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)

#############################
# Specify the project files #
#############################

##
SET(sources
main.cpp
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP(sources FILES ${sources})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/itmx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/orx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/spaint/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetCUDAAppTarget.cmake)
TARGET_LINK_LIBRARIES(${targetname} spaint orx tvgutil tvginput)

#################################
# Specify the libraries to link #
#################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkGrove.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkInfiniTAM.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)


================================================
FILE: apps/relocconverter/main.cpp
================================================
/**
 * relocconverter: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.
 */

#include <grove/features/interface/RGBDPatchFeatureCalculator.h>
#include <grove/forests/DecisionForestFactory.h>

#include <iostream>

#include <DatasetRGBDInfiniTAM.hpp>

#include <boost/random.hpp>

using namespace grove;

int main(int argc, char *argv[])
{
  static const int nbTrees = 5;
  const float proportionOfDataGivenToLearner = 1.0f;
  const std::string learnerType = "DFBP";
  const bool loadSavedForest = true;
  const int learnFromTree = 0;
  const bool loadFeatures = false;
  const int randomSeed = 42;

  if (argc < 4)
  {
    std::cerr << "Usage: " << argv[0]
        << " \"scoreforest config file\" \"7scenes base path\" \"output forest filename\""
        << std::endl;
    return 1;
  }

  const std::string configFile = argv[1];
  const std::string dataPath = argv[2];
  const std::string outputFile = argv[3];

  boost::shared_ptr<DatasetRGBD7Scenes> m_dataset(
      new DatasetRGBD7Scenes(configFile, dataPath, nbTrees,
          proportionOfDataGivenToLearner, learnerType, loadSavedForest,
          learnFromTree, loadFeatures, randomSeed));
  m_dataset->LoadForest();

  auto scoreForest = DecisionForestFactory<RGBDPatchDescriptor, nbTrees>::make_forest(*m_dataset->GetForest(), ORUtils::DeviceType::DEVICE_CPU);

  std::cout << "Saving forest in: " << outputFile << std::endl;
  scoreForest->save_structure_to_file(outputFile);

#if 0
  // Randomly select one prediction per tree
  boost::mt19937 rng(42);

  std::vector<GPUForestPrediction> predictions;
  std::vector<size_t> predictionIndices;
  for (size_t i = 0; i < m_scoreForest->get_nb_trees(); ++i)
  {
    boost::uniform_int<size_t> dist(0,
        m_scoreForest->get_nb_leaves_in_tree(i) - 1);

    size_t predictionIdx = 0;
    GPUForestPrediction p;
    p.nbModes = 0;
    while (p.nbModes < 5)
    {
      predictionIdx = dist(rng);
      std::cout << "Selecting prediction " << predictionIdx << " for tree " << i
      << '\n';
      p = m_scoreForest->get_prediction(i, predictionIdx);
    }

    predictions.push_back(p);
    predictionIndices.push_back(predictionIdx);
  }

  // For each prediction print centroids, covariances, nbInliers
  for (size_t predictionIdx = 0; predictionIdx < m_scoreForest->get_nb_trees();
      ++predictionIdx)
  {
    const GPUForestPrediction &p = predictions[predictionIdx];
    std::cout << p.nbModes << ' ' << predictionIndices[predictionIdx] << '\n';
    for(int modeIdx = 0; modeIdx < p.nbModes; ++modeIdx)
    {
      const GPUForestMode &m = p.modes[modeIdx];
      std::cout << m.nbInliers << ' ' << m.position.x << ' ' << m.position.y << ' ' << m.position.z << ' ';

      // Invet and transpose the covariance to print it in row-major
      Matrix3f posCovariance;
      m.positionInvCovariance.inv(posCovariance);
      posCovariance = posCovariance.t();

      for(int i = 0; i < 9; ++i)
      std::cout << posCovariance.m[i] << ' ';
      std::cout << '\n';
    }
    std::cout << '\n';
  }

#endif

  return 0;
}


================================================
FILE: apps/relocgui/CMakeLists.txt
================================================
####################################
# CMakeLists.txt for apps/relocgui #
####################################

###########################
# Specify the target name #
###########################

SET(targetname relocgui)

################################
# Specify the libraries to use #
################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseCUDA.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseEigen.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseGrove.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseInfiniTAM.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseOpenMP.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseTorch.cmake)

#############################
# Specify the project files #
#############################

##
SET(toplevel_sources
  main.cpp
  RelocaliserApplication.cpp
)

SET(toplevel_headers
  RelocaliserApplication.h
)

#################################################################
# Collect the project files into sources, headers and templates #
#################################################################

SET(sources
${toplevel_sources}
)

SET(headers
${toplevel_headers}
)

#############################
# Specify the source groups #
#############################

SOURCE_GROUP("" FILES ${toplevel_sources} ${toplevel_headers})

##########################################
# Specify additional include directories #
##########################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/itmx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/orx/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvginput/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/modules/tvgutil/include)

##########################################
# Specify the target and where to put it #
##########################################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SetCUDAAppTarget.cmake)

#################################
# Specify the libraries to link #
#################################

TARGET_LINK_LIBRARIES(${targetname} itmx orx tvginput tvgutil)

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkGrove.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkBoost.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkInfiniTAM.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkOpenCV.cmake)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/LinkTorch.cmake)

#########################################
# Copy resource files to the build tree #
#########################################

ADD_CUSTOM_COMMAND(TARGET ${targetname} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/apps/relocgui/resources" "$<TARGET_FILE_DIR:${targetname}>/resources")

IF(MSVC_IDE)
  ADD_CUSTOM_COMMAND(TARGET ${targetname} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/apps/relocgui/resources" "${PROJECT_BINARY_DIR}/apps/relocgui/resources")
ENDIF()

#############################
# Specify things to install #
#############################

INCLUDE(${PROJECT_SOURCE_DIR}/cmake/InstallApp.cmake)
INSTALL(DIRECTORY "${PROJECT_SOURCE_DIR}/apps/relocgui/resources" DESTINATION "bin/apps/relocgui")


================================================
FILE: apps/relocgui/RelocaliserApplication.cpp
================================================
/**
 * relocgui: RelocaliserApplication.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.
 */

#include "RelocaliserApplication.h"

#include <iostream>
#include <stdexcept>

#include <boost/make_shared.hpp>

#include <Eigen/Geometry>

#include <grove/relocalisation/ScoreRelocaliserFactory.h>

#include <ITMLib/Engines/ViewBuilding/ITMViewBuilderFactory.h>
#include <ITMLib/Objects/Camera/ITMCalibIO.h>

#include <orx/base/MemoryBlockFactory.h>
#include <orx/persistence/PosePersister.h>

#include <tvgutil/filesystem/PathFinder.h>
#include <tvgutil/timing/AverageTimer.h>
#include <tvgutil/timing/TimeUtil.h>

namespace bf = boost::filesystem;

using namespace ITMLib;
using namespace ORUtils;

using namespace grove;
using namespace itmx;
using namespace orx;
using namespace tvgutil;

namespace relocgui {

//#################### ANONYMOUS FREE FUNCTIONS ####################

namespace {

/**
 * \brief Computes the angular separation between two rotation matrices.
 *
 * \param r1 The first rotation matrix.
 * \param r2 The second rotation matrix.
 *
 * \return The angle of the transformation mapping r1 to r2.
 */
float angular_separation(const Eigen::Matrix3f &r1, const Eigen::Matrix3f &r2)
{
  // First calculate the rotation matrix which maps r1 to r2.
  Eigen::Matrix3f dr = r2 * r1.transpose();

  Eigen::AngleAxisf aa(dr);
  return aa.angle();
}

/**
 * \brief Check whether a pose matrix is similar enough to a ground truth pose matrix.
 *
 * \param gtPose               The ground truth pose matrix.
 * \param testPose             The candidate pose matrix.
 * \param translationMaxError  The maximum difference (in m) between the translation components of the two matrices.
 * \param angleMaxError        The maximum angular difference between the two rotation components (when converted to the
 *                             axis-angle representation).
 *
 * \return Whether or not the two poses differ for less or equal than translationMaxError and angleMaxError.
 */
bool pose_matches(const Matrix4f &gtPose, const Matrix4f &testPose, float translationMaxError, float angleMaxError)
{
  // Both our Matrix type and Eigen's are column major, so we can just use Map here.
  const Eigen::Map<const Eigen::Matrix4f> gtPoseEigen(gtPose.m);
  const Eigen::Map<const Eigen::Matrix4f> testPoseEigen(testPose.m);

  const Eigen::Matrix3f gtR = gtPoseEigen.block<3, 3>(0, 0);
  const Eigen::Matrix3f testR = testPoseEigen.block<3, 3>(0, 0);
  const Eigen::Vector3f gtT = gtPoseEigen.block<3, 1>(0, 3);
  const Eigen::Vector3f testT = testPoseEigen.block<3, 1>(0, 3);

  const float translationError = (gtT - testT).norm();
  const float angleError = angular_separation(gtR, testR);

  return translationError <= translationMaxError && angleError <= angleMaxError;
}

/**
 * \brief Read a 4x4 pose matrix from a text file.
 *
 * \param fileName Path to the text file.
 *
 * \return The pose matrix.
 *
 * \throws std::runtime_error if the file is missing or has the wrong format.
 */
Matrix4f read_pose_from_file(const bf::path &fileName)
{
  if(!bf::is_regular(fileName)) throw std::runtime_error("File not found: " + fileName.string());

  std::ifstream in(fileName.string().c_str());

  Matrix4f res;
  in >> res(0, 0) >> res(1, 0) >> res(2, 0) >> res(3, 0);
  in >> res(0, 1) >> res(1, 1) >> res(2, 1) >> res(3, 1);
  in >> res(0, 2) >> res(1, 2) >> res(2, 2) >> res(3, 2);
  in >> res(0, 3) >> res(1, 3) >> res(2, 3) >> res(3, 3);

  if(!in) throw std::runtime_error("Error reading a pose matrix from: " + fileName.string());

  return res;
}
}

//#################### CONSTRUCTOR ####################

RelocaliserApplication::RelocaliserApplication(const std::string &calibrationPath,
                                               const std::string &trainingPath,
                                               const std::string &testingPath,
                                               const SettingsContainer_CPtr &settings)
  : m_calibrationFilePath(calibrationPath)
  , m_saveRelocalisedPoses(true)
  , m_settingsContainer(settings)
  , m_testSequencePath(testingPath)
  , m_trainSequencePath(trainingPath)
{
  // Read camera calibration parameters.
  if(!ITMLib::readRGBDCalib(m_calibrationFilePath.string().c_str(), m_cameraCalibration))
  {
    throw std::invalid_argument("Couldn't read calibration parameters.");
  }

  // Check that training and testing folders exist.
  if(!bf::is_directory(m_trainSequencePath))
  {
    throw std::invalid_argument("The specified training path does not exist.");
  }

  if(!bf::is_directory(m_testSequencePath))
  {
    throw std::invalid_argument("The specified testing path does not exist.");
  }

  // Setup the image masks.
  m_depthImageMask = m_settingsContainer->get_first_value<std::string>("depthImageMask", "frame-%06d.depth.png");
  m_poseFileMask = m_settingsContainer->get_first_value<std::string>("poseFileMask", "frame-%06d.pose.txt");
  m_rgbImageMask = m_settingsContainer->get_first_value<std::string>("rgbImageMask", "frame-%06d.color.png");

  // Create the folder that will store the relocalised poses.
  if(m_saveRelocalisedPoses)
  {
    const std::string experimentTag =
        m_settingsContainer->get_first_value<std::string>("experimentTag", TimeUtil::get_iso_timestamp());
    m_outputPosesPath = find_subdir_from_executable("reloc_poses") / experimentTag;

    std::cout << "Saving output poses in: " << m_outputPosesPath << '\n';
    if(!bf::is_directory(m_outputPosesPath))
    {
      bf::create_directories(m_outputPosesPath);
    }
  }

  // Set up the path generators.
  m_outputPosesPathGenerator = boost::make_shared<SequentialPathGenerator>(m_outputPosesPath);
  m_testingSequencePathGenerator = boost::make_shared<SequentialPathGenerator>(m_testSequencePath);
  m_trainingSequencePathGenerator = boost::make_shared<SequentialPathGenerator>(m_trainSequencePath);

  // We try to run everything on the GPU.
  const DeviceType deviceType = DEVICE_CUDA;

  // Setup the relocaliser.
  m_relocaliser = ScoreRelocaliserFactory::make_score_relocaliser("forest", "ScoreRelocaliser.", m_settingsContainer, deviceType);

  // Create a ViewBuilder to convert the depth image to float (might to it with OpenCV as well but this is easier).
  m_viewBuilder.reset(ITMViewBuilderFactory::MakeViewBuilder(m_cameraCalibration, deviceType));

  // Allocate the ITM Images used to train/test the relocaliser (empty for now, will be resized later).
  const MemoryBlockFactory& mbf = MemoryBlockFactory::instance();
  m_currentDepthImage = mbf.make_image<float>();
  m_currentRawDepthImage = mbf.make_image<short>();
  m_currentRgbImage = mbf.make_image<Vector4u>();
}

void RelocaliserApplication::run()
{
  boost::optional<RelocalisationExample> currentExample;

  std::cout << "Start training.\n";

  // First of all, train the relocaliser processing each image from the training folder.
  AverageTimer<boost::chrono::milliseconds> trainingTimer("Training Timer");
  while((currentExample = read_example(m_trainingSequencePathGenerator)))
  {
    trainingTimer.start_sync();

    prepare_example_images(*currentExample);

    // Now train the relocaliser.
    m_relocaliser->train(m_currentRgbImage.get(),
                         m_currentDepthImage.get(),
                         m_cameraCalibration.intrinsics_d.projectionParamsSimple.all,
                         currentExample->cameraPose);

    // Finally, increment the index.
    m_trainingSequencePathGenerator->increment_index();

    // Stop the timer before the visualization calls.
    trainingTimer.stop_sync();

    // Update UI
    show_example(*currentExample);
  }

  std::cout << "Training done, processed " << m_trainingSequencePathGenerator->get_index() << " RGB-D image pairs.\n";

  // Now test the relocaliser accumulating the number of successful relocalisations.
  uint32_t successfulExamples = 0;
  AverageTimer<boost::chrono::milliseconds> testingTimer("Testing Timer");
  while((currentExample = read_example(m_testingSequencePathGenerator)))
  {
    testingTimer.start_sync();
    prepare_example_images(*currentExample);

    // Now relocalise.
    std::vector<Relocaliser::Result> relocaliserResults =
        m_relocaliser->relocalise(m_currentRgbImage.get(),
                                  m_currentDepthImage.get(),
                                  m_cameraCalibration.intrinsics_d.projectionParamsSimple.all);

    // This will store the relocalised pose (if we were successful).
    Matrix4f inverseCameraPose;
    inverseCameraPose.setValues(std::numeric_limits<float>::quiet_NaN());

    if(!relocaliserResults.empty())
    {
      inverseCameraPose = relocaliserResults[0].pose.GetInvM();
    }

    // Save the pose if required.
    if(m_saveRelocalisedPoses)
    {
      PosePersister::save_pose_on_thread(inverseCameraPose,
                                         m_outputPosesPathGenerator->make_path("pose-%06i.reloc.txt"));
    }

    // Check whether the relocalisation succeeded or not by looking at the ground truth pose (using the 7-scenes
    // 5cm/5deg criterion).
    static const float translationMaxError = 0.05f;
    static const float angleMaxError = 5.f * static_cast<float>(M_PI) / 180.f;
    const bool relocalisationSucceeded =
        pose_matches(currentExample->cameraPose.GetInvM(), inverseCameraPose, translationMaxError, angleMaxError);

    // Update stats.
    successfulExamples += relocalisationSucceeded;

    // Increment path generator indices.
    m_testingSequencePathGenerator->increment_index();
    m_outputPosesPathGenerator->increment_index();

    // Stop the timer before the visualization calls.
    testingTimer.stop_sync();

    // Show the example and print whether the relocalisation succeeded or not.
    show_example(*currentExample, relocalisationSucceeded ? "Relocalisation OK" : "Relocalisation Failed");
  }

  const int testedExamples = m_testingSequencePathGenerator->get_index();
  std::cout << "Testing done.\n\nEvaluated " << testedExamples << " RGBD frames.\n";
  std::cout << successfulExamples
            << " frames were relocalised correctly (<=5cm translational and <=5deg angular error).\n";
  const float accuracy =
      100.f * (testedExamples > 0 ? static_cast<float>(successfulExamples) / static_cast<float>(testedExamples) : 0.0f);
  std::cout << "Overall accuracy: " << accuracy << "%\n";
  std::cout << trainingTimer << '\n';
  std::cout << testingTimer << '\n';
}

//#################### PRIVATE MEMBER FUNCTIONS ####################

boost::optional<RelocaliserApplication::RelocalisationExample>
    RelocaliserApplication::read_example(const RelocaliserApplication::SequentialPathGenerator_Ptr &pathGenerator) const
{
  bf::path currentDepthPath = pathGenerator->make_path(m_depthImageMask);
  bf::path currentRgbPath = pathGenerator->make_path(m_rgbImageMask);
  bf::path currentPosePath = pathGenerator->make_path(m_poseFileMask);

  if(bf::is_regular(currentDepthPath) && bf::is_regular(currentRgbPath) && bf::is_regular(currentPosePath))
  {
    RelocalisationExample example;

    // Read the images.
    example.depthImage = cv::imread(currentDepthPath.string().c_str(), cv::IMREAD_ANYDEPTH);
    example.rgbImage = cv::imread(currentRgbPath.string().c_str());

    // The files store the inverse camera pose.
    example.cameraPose.SetInvM(read_pose_from_file(currentPosePath));

    // Convert from BGR to RGBA.
    cv::cvtColor(example.rgbImage, example.rgbImage, CV_BGR2RGBA);

    return example;
  }

  return boost::none;
}

void RelocaliserApplication::prepare_example_images(const RelocaliserApplication::RelocalisationExample &currentExample)
{
  const Vector2i depthImageDims(currentExample.depthImage.cols, currentExample.depthImage.rows);
  const Vector2i rgbImageDims(currentExample.rgbImage.cols, currentExample.rgbImage.rows);

  // Copy the Mats into the ITM images (the depth image needs conversion to float according to the calibration).

  // Resize them (usually NOOP).
  m_currentRawDepthImage->ChangeDims(depthImageDims);
  m_currentDepthImage->ChangeDims(depthImageDims);
  m_currentRgbImage->ChangeDims(rgbImageDims);

  // Perform copy using a Mat wrapper.
  currentExample.depthImage.convertTo(
      cv::Mat(depthImageDims.y, depthImageDims.x, CV_16SC1, m_currentRawDepthImage->GetData(MEMORYDEVICE_CPU)), CV_16S);
  currentExample.rgbImage.copyTo(
      cv::Mat(rgbImageDims.y, rgbImageDims.x, CV_8UC4, m_currentRgbImage->GetData(MEMORYDEVICE_CPU)));

  // Update them on the device.
  m_currentRawDepthImage->UpdateDeviceFromHost();
  m_currentRgbImage->UpdateDeviceFromHost();

  // Use the viewBuilder to prepare the depth image.
  m_viewBuilder->ConvertDepthAffineToFloat(
      m_currentDepthImage.get(), m_currentRawDepthImage.get(), m_cameraCalibration.disparityCalib.GetParams());
}

void RelocaliserApplication::show_example(const RelocalisationExample &example, const std::string &uiText) const
{
  static const std::string WINDOW_NAME = "Relocalisation GUI";

  // Setup a named window.
  cv::namedWindow(WINDOW_NAME, CV_WINDOW_AUTOSIZE);

  // Allocate a canvas big enough to hold the colour and depth image side by side.
  cv::Mat canvas = cv::Mat::zeros(std::max(example.depthImage.rows, example.rgbImage.rows),
                                  example.depthImage.cols + example.rgbImage.cols,
                                  CV_8UC3);

  // Copy the colour image to its location on the canvas (converting it into BGR format since that's what OpenCV uses
  // for visualization).
  cv::cvtColor(example.rgbImage, canvas(cv::Rect(0, 0, example.rgbImage.cols, example.rgbImage.rows)), CV_RGBA2BGR);

  // Normalize the depth image (black is very close, white is far away) and copy it to its location on the canvas.
  cv::Mat processedDepth;
  cv::normalize(example.depthImage, processedDepth, 0, 255, cv::NORM_MINMAX, CV_8U);
  cv::cvtColor(processedDepth,
               canvas(cv::Rect(example.rgbImage.cols, 0, example.depthImage.cols, example.depthImage.rows)),
               CV_GRAY2BGR);

  // Draw the text in the top-left corner, if required.
  if(!uiText.empty())
  {
    const double fontSize = 1.5;
    const int thickness = 2;

    // Compute the text's bounding box (we actually only care about its height).
    int baseLine = 0;
    cv::Size textSize = cv::getTextSize(uiText, cv::FONT_HERSHEY_SIMPLEX, fontSize, thickness, &baseLine);

    // Write the text on the image applying a "Poor man's shadow effect".
    cv::putText(canvas,
                uiText,
                cv::Point(12, 12 + textSize.height),
                cv::FONT_HERSHEY_SIMPLEX,
                fontSize,
                cv::Scalar::all(0),
                thickness);
    cv::putText(canvas,
                uiText,
                cv::Point(10, 10 + textSize.height),
                cv::FONT_HERSHEY_SIMPLEX,
                fontSize,
                cv::Scalar::all(255),
                thickness);
  }

  // Actualy show the image.
  cv::imshow(WINDOW_NAME, canvas);
  cv::waitKey(1);
}
}


================================================
FILE: apps/relocgui/RelocaliserApplication.h
================================================
/**
 * relocgui: RelocaliserApplication.h
 * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.
 */

#ifndef H_RELOCGUI_RELOCALISERAPPLICATION
#define H_RELOCGUI_RELOCALISERAPPLICATION

#include <string>

#include <boost/filesystem.hpp>
#include <boost/optional.hpp>
#include <boost/shared_ptr.hpp>

#include <opencv2/opencv.hpp>

#include <ITMLib/Objects/Camera/ITMRGBDCalib.h>

#include <ORUtils/SE3Pose.h>

#include <itmx/base/ITMObjectPtrTypes.h>

#include <orx/base/ORImagePtrTypes.h>
#include <orx/relocalisation/Relocaliser.h>

#include <tvgutil/misc/SettingsContainer.h>

#include <tvgutil/filesystem/SequentialPathGenerator.h>

namespace relocgui {

/**
 * \brief An instance of this class allows the evaluation of the grove relocaliser on a 7-scenes-like RGB-D sequence.
 *
 * The application expects to be provided with the path to a camera calibration file, and the paths to the training and
 * testing splits of the RGB-D sequence. Each split has the following layout on disk:
 *
 * frame-000000.color.png // Colour image.
 * frame-000000.depth.png // Depth image (each pixel representing a depth encoded as an unsigned short value).
 * frame-000000.pose.txt  // 4x4 camera-to-world transformation matrix.
 * frame-000001.color.png // ...
 * .
 * .
 * .
 * frame-NNNNNN.pose.txt  // ...
 *
 * By default the application computes the percentage of testing frames relocalised correctly against the ground truth
 * pose (according to Shotton et al's 5cm/5deg metric). The application also saves the relocalised pose for each frame
 * of the testing sequence in the reloc_poses/experimentTag subfolder of the current executable using the following
 * filename pattern: pose-%06i.reloc.txt
 */
class RelocaliserApplication
{
  //#################### NESTED TYPES ####################
private:
  struct RelocalisationExample
  {
    /** Ground truth camera pose associated to the example (world-to-camera). */
    ORUtils::SE3Pose cameraPose;

    /** Depth image (single channel, uint16_t, can be converted to metric values according to the camera calibration
     * file). */
    cv::Mat depthImage;

    /** Colour image in uint8_t RGBA format. */
    cv::Mat rgbImage;
  };

  //#################### TYPEDEFS ####################
private:
  typedef boost::shared_ptr<tvgutil::SequentialPathGenerator> SequentialPathGenerator_Ptr;

public:
  //#################### CONSTRUCTOR ####################
  /**
   * \brief Constructs an instance of the RelocaliserApplication.
   *
   * \param calibrationPath Path to a camera calibration file in the InfiniTAM format.
   * \param trainingPath    Path to a training split of a 7-scenes-like sequence.
   * \param testingPath     Path to a testing split of a 7-scenes-like sequence.
   * \param settings        A container of settings for the relocaliser.
   *
   * \throws std::invalid_argument if the paths are incorrect.
   */
  RelocaliserApplication(const std::string &calibrationPath,
                         const std::string &trainingPath,
                         const std::string &testingPath,
                         const tvgutil::SettingsContainer_CPtr &settings);

  //#################### PUBLIC MEMBER FUNCTIONS ####################
public:
  /**
   * \brief Run the evaluation, first training the relocaliser using the training split then relocalising each frame of
   *        the testing split.
   */
  void run();

  //#################### PRIVATE MEMBER FUNCTIONS ####################
private:
  /**
   * \brief Tries to read a RGB-D example from the 7-scenes-like sequence contained in the folder specified by the
   * pathGenerator.
   *
   * \param pathGenerator The path generator used to obtain the current file names for RGB, depth and pose files.
   *
   * \return An example if found, boost::none if the index contained in the pathGenerator is greater than the number of
   * examples in the folder.
   */
  boost::optional<RelocalisationExample> read_example(const SequentialPathGenerator_Ptr &pathGenerator) const;

  /**
   * \brief Convert the images contained in the example to ORUtil's image format and copy them on the GPU.
   *
   * \param example The example to convert.
   */
  void prepare_example_images(const RelocalisationExample &example);

  /**
   * \brief Visualise the RGB-D frame for an example.
   *
   * \param example The example to visualise in a window.
   * \param uiText  Optional text to superimpose to the example.
   */
  void show_example(const RelocalisationExample &example, const std::string &uiText = "") const;

  //#################### PRIVATE MEMBER VARIABLES ####################
private:
  /** The path to a camera calibration file. */
  boost::filesystem::path m_calibrationFilePath;

  /** The camera calibration informations. */
  ITMLib::ITMRGBDCalib m_cameraCalibration;

  /** The (printf-like) mask used to generate the depth image filenames. */
  std::string m_depthImageMask;

  /** The path to a folder wherein to save the relocalised poses. */
  boost::filesystem::path m_outputPosesPath;

  /** A path generator used to generate the filenames for the relocalised poses. */
  SequentialPathGenerator_Ptr m_outputPosesPathGenerator;

  /** The (printf-like) mask used to generate the pose filenames. */
  std::string m_poseFileMask;

  /** The relocaliser being tested. */
  orx::Relocaliser_Ptr m_relocaliser;

  /** The (printf-like) mask used to generate the RGB image filenames. */
  std::string m_rgbImageMask;

  /** Whether or not to save the relocalised poses on disk. */
  bool m_saveRelocalisedPoses;

  /** The container storing the relocaliser's settings (and miscellaneous data such as the experimentTag). */
  tvgutil::SettingsContainer_CPtr m_settingsContainer;

  /** A path generator used to generate testing example filenames. */
  SequentialPathGenerator_Ptr m_testingSequencePathGenerator;

  /** The path to a testing split of a 7-scenes-like sequence. */
  boost::filesystem::path m_testSequencePath;

  /** A path generator used to generate training example filenames. */
  SequentialPathGenerator_Ptr m_trainingSequencePathGenerator;

  /** The path to a training split of a 7-scenes-like sequence. */
  boost::filesystem::path m_trainSequencePath;

  /** A viewbuilder used to convert the depth from short ints to metric values. */
  ViewBuilder_Ptr m_viewBuilder;

  //#################### PRIVATE MEMBER VARIABLES ####################
private:
  //
  // The variables below are overwritten for each example. Kept as members to avoid reallocating them every time, since
  // it's expensive on the GPU.
  //
  /** The current depth image in metres. */
  ORFloatImage_Ptr m_currentDepthImage;

  /** The current depth image in short format. */
  ORShortImage_Ptr m_currentRawDepthImage;

  /** The current colour image. */
  ORUChar4Image_Ptr m_currentRgbImage;
};

}

#endif


================================================
FILE: apps/relocgui/main.cpp
================================================
/**
 * relocgui: main.cpp
 * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.
 */

#include <boost/program_options.hpp>

#include <tvgutil/misc/SettingsContainer.h>
using namespace tvgutil;

#include "RelocaliserApplication.h"

//#################### NAMESPACE ALIASES ####################

namespace po = boost::program_options;

//#################### TYPES ####################

/**
 * \brief This struct holds user-specifiable arguments.
 */
struct CommandLineArguments
{
  std::string calibrationFilename;
  std::string experimentTag;
  std::string testFolder;
  std::string trainFolder;
};

//#################### FUNCTIONS ####################

/**
 * \brief Adds all options in a set of parsed options to a settings container object.
 *
 * \param parsedOptions The set of parsed options.
 * \param settings      The settings container object.
 */
void add_options_to_settings(const po::parsed_options &parsedOptions, const SettingsContainer_Ptr &settings)
{
  for(size_t i = 0, optionCount = parsedOptions.options.size(); i < optionCount; ++i)
  {
    const po::basic_option<char> &option = parsedOptions.options[i];

    // Add all the specified values for the option in the correct order.
    for(size_t j = 0, valueCount = option.value.size(); j < valueCount; ++j)
    {
      settings->add_value(option.string_key, option.value[j]);
    }
  }
}

/**
 * \brief Parses any command-line arguments passed in by the user and adds them to the application settings.
 *
 * \param argc      The command-line argument count.
 * \param argv      The raw command-line arguments.
 * \param args      The parsed command-line arguments.
 * \param settings  The application settings.
 * \return          true, if the program should continue after parsing the command-line arguments, or false otherwise.
 */
bool parse_command_line(int argc, char *argv[], CommandLineArguments &args, const SettingsContainer_Ptr &settings)
{
  // Specify the possible options.
  po::options_description genericOptions("Generic options");
  genericOptions.add_options()
      ("help", "produce help message")
      ("configFile,f", po::value<std::string>(), "additional parameters filename")
      ("experimentTag", po::value<std::string>(&args.experimentTag)->default_value(""), "experiment tag")
      ;

  po::options_description diskSequenceOptions("Disk sequence options");
  diskSequenceOptions.add_options()
      ("calib,c", po::value<std::string>(&args.calibrationFilename)->required(), "calibration filename")
      ("test", po::value<std::string>(&args.testFolder)->required(), "path to the folder containing the training sequence")
      ("train", po::value<std::string>(&args.trainFolder)->required(), "path to the folder containing the training sequence")
      ;

  po::options_description options;
  options.add(genericOptions);
  options.add(diskSequenceOptions);

  // Parse the command line.
  po::parsed_options parsedCommandLineOptions = po::parse_command_line(argc, argv, options);

  // Add all options to the settings.
  add_options_to_settings(parsedCommandLineOptions, settings);

  // Also store them in the variable map.
  po::variables_map vm;
  po::store(parsedCommandLineOptions, vm);

  // If a configuration file was specified:
  if(vm.count("configFile"))
  {
    // Parse additional options from the configuration file and add any registered options to the variables map.
    // These will be post-processed (if necessary) and added to the settings later. Unregistered options are
    // also allowed: we add these directly to the settings without post-processing.
    po::parsed_options parsedConfigFileOptions =
        po::parse_config_file<char>(vm["configFile"].as<std::string>().c_str(), options, true);

    // Store registered options in the variables map.
    po::store(parsedConfigFileOptions, vm);

    // Add all remaining options to the settings.
    add_options_to_settings(parsedConfigFileOptions, settings);
  }

  po::notify(vm);

  std::cout << "Global settings:\n" << *settings << '\n';

  // If the user specifies the --help flag, print a help message.
  if(vm.count("help"))
  {
    std::cout << options << '\n';
    return false;
  }

  return true;
}

int main(int argc, char *argv[]) try
{
  // Construct the settings object for the application.
  SettingsContainer_Ptr settings(new SettingsContainer);

  // Parse the command-line arguments.
  CommandLineArguments args;
  if(!parse_command_line(argc, argv, args, settings))
  {
    return 0;
  }

  relocgui::RelocaliserApplication app(args.calibrationFilename, args.trainFolder, args.testFolder, settings);
  app.run();

  return EXIT_SUCCESS;
}
catch(std::exception &e)
{
  std::cerr << e.what() << '\n';
  return EXIT_FAILURE;
}


================================================
FILE: apps/relocgui/resources/DefaultRelocalisationForest.rf
================================================
5
17247 8624
17237 8619
17855 8928
16933 8467
15509 7755
1 -1 75 -19
3 -1 224 -56
6901 -1 182 8
5 -1 67 65
2797 -1 102 18
7 -1 196 -1
1341 -1 173 -156
9 -1 186 -20
765 -1 215 0
11 -1 16 -133
395 -1 35 20
13 -1 242 55
197 -1 253 -169
15 -1 226 -153
181 -1 199 -71
17 -1 136 10
55 -1 85 156
19 -1 60 33
47 -1 179 -165
21 -1 101 -160
33 -1 170 -186
23 -1 202 -38
29 -1 2 -360
25 -1 204 -172
27 -1 101 -336
-1 0 0 0
-1 1 0 0
-1 2 0 0
-1 3 0 0
-1 4 0 0
31 -1 44 24
-1 5 0 0
-1 6 0 0
35 -1 220 -187
39 -1 242 -43
-1 7 0 0
37 -1 179 -186
-1 8 0 0
-1 9 0 0
41 -1 149 -91
45 -1 37 -53
-1 10 0 0
43 -1 222 1
-1 11 0 0
-1 12 0 0
-1 13 0 0
-1 14 0 0
-1 15 0 0
49 -1 243 -106
51 -1 7 39
-1 19 0 0
-1 16 0 0
53 -1 151 16
-1 17 0 0
-1 18 0 0
57 -1 147 -15
149 -1 228 22
59 -1 229 -97
109 -1 83 -1344
61 -1 66 32
85 -1 162 -45
63 -1 171 -98
77 -1 0 -243
65 -1 30 -162
71 -1 83 33
67 -1 105 -148
69 -1 124 -78
-1 20 0 0
-1 21 0 0
-1 22 0 0
-1 23 0 0
73 -1 7 -120
75 -1 139 -103
-1 24 0 0
-1 25 0 0
-1 26 0 0
-1 27 0 0
79 -1 96 -595
81 -1 67 -1025
-1 28 0 0
-1 29 0 0
-1 30 0 0
83 -1 142 -125
-1 31 0 0
-1 32 0 0
87 -1 219 -155
99 -1 61 -342
89 -1 154 -28
93 -1 47 0
91 -1 47 -42
-1 35 0 0
-1 33 0 0
-1 34 0 0
95 -1 138 -107
97 -1 7 14
-1 36 0 0
-1 37 0 0
-1 38 0 0
-1 39 0 0
101 -1 228 -84
103 -1 224 -97
-1 40 0 0
-1 41 0 0
105 -1 61 64
107 -1 225 -6
-1 42 0 0
-1 43 0 0
-1 44 0 0
-1 45 0 0
111 -1 17 9
125 -1 141 -92
113 -1 136 4
123 -1 154 7
115 -1 151 -38
119 -1 78 -160
-1 46 0 0
117 -1 83 -1878
-1 47 0 0
-1 48 0 0
-1 49 0 0
121 -1 50 57
-1 50 0 0
-1 51 0 0
-1 52 0 0
-1 53 0 0
127 -1 119 -137
137 -1 158 -81
129 -1 178 -121
133 -1 44 128
131 -1 157 -1
-1 56 0 0
-1 54 0 0
-1 55 0 0
135 -1 155 -153
-1 59 0 0
-1 57 0 0
-1 58 0 0
139 -1 170 -90
143 -1 162 -17
141 -1 189 -2
-1 62 0 0
-1 60 0 0
-1 61 0 0
145 -1 135 -49
147 -1 149 -26
-1 63 0 0
-1 64 0 0
-1 65 0 0
-1 66 0 0
151 -1 38 80
173 -1 56 292
153 -1 181 0
163 -1 106 5
155 -1 16 -395
161 -1 231 -155
157 -1 224 -132
159 -1 147 -4
-1 67 0 0
-1 68 0 0
-1 69 0 0
-1 70 0 0
-1 71 0 0
-1 72 0 0
165 -1 243 -27
167 -1 57 103
-1 73 0 0
-1 74 0 0
169 -1 85 271
-1 78 0 0
171 -1 180 -88
-1 77 0 0
-1 75 0 0
-1 76 0 0
175 -1 67 -1284
-1 83 0 0
177 -1 207 -131
179 -1 172 -158
-1 79 0 0
-1 80 0 0
-1 81 0 0
-1 82 0 0
183 -1 140 46
195 -1 178 57
185 -1 89 -20
187 -1 134 -105
-1 84 0 0
-1 85 0 0
189 -1 37 -52
191 -1 241 52
-1 86 0 0
-1 87 0 0
193 -1 74 -154
-1 90 0 0
-1 88 0 0
-1 89 0 0
-1 91 0 0
-1 92 0 0
199 -1 254 -181
223 -1 132 -90
201 -1 61 -57
209 -1 102 24
-1 93 0 0
203 -1 157 -48
205 -1 30 782
-1 97 0 0
207 -1 128 -181
-1 96 0 0
-1 94 0 0
-1 95 0 0
211 -1 40 33
217 -1 165 -131
213 -1 197 -157
215 -1 114 -59
-1 98 0 0
-1 99 0 0
-1 100 0 0
-1 101 0 0
219 -1 167 -87
221 -1 95 31
-1 102 0 0
-1 103 0 0
-1 104 0 0
-1 105 0 0
225 -1 171 -84
317 -1 85 60
227 -1 87 -116
287 -1 0 713
229 -1 135 -124
253 -1 56 33
231 -1 35 66
243 -1 250 -92
233 -1 155 -120
241 -1 245 -40
235 -1 214 -89
239 -1 58 -194
237 -1 168 -81
-1 108 0 0
-1 106 0 0
-1 107 0 0
-1 109 0 0
-1 110 0 0
-1 111 0 0
-1 112 0 0
245 -1 148 -12
249 -1 212 -23
-1 113 0 0
247 -1 154 -109
-1 114 0 0
-1 115 0 0
251 -1 109 -98
-1 118 0 0
-1 116 0 0
-1 117 0 0
255 -1 154 -70
275 -1 83 77
257 -1 123 -70
267 -1 165 -108
259 -1 246 -104
261 -1 186 -96
-1 119 0 0
-1 120 0 0
263 -1 103 -46
265 -1 133 -92
-1 121 0 0
-1 122 0 0
-1 123 0 0
-1 124 0 0
269 -1 61 20
-1 129 0 0
271 -1 166 -108
273 -1 61 62
-1 125 0 0
-1 126 0 0
-1 127 0 0
-1 128 0 0
277 -1 228 -159
283 -1 155 -96
-1 130 0 0
279 -1 67 35
281 -1 240 -50
-1 133 0 0
-1 131 0 0
-1 132 0 0
285 -1 126 -13
-1 136 0 0
-1 134 0 0
-1 135 0 0
289 -1 246 -135
313 -1 85 24
291 -1 131 -33
297 -1 51 108
-1 137 0 0
293 -1 2 723
295 -1 233 -36
-1 140 0 0
-1 138 0 0
-1 139 0 0
299 -1 25 27
309 -1 159 -169
301 -1 228 -168
305 -1 177 -142
-1 141 0 0
303 -1 213 -164
-1 142 0 0
-1 143 0 0
-1 144 0 0
307 -1 131 -16
-1 145 0 0
-1 146 0 0
-1 147 0 0
311 -1 221 -19
-1 148 0 0
-1 149 0 0
-1 150 0 0
315 -1 38 664
-1 151 0 0
-1 152 0 0
319 -1 0 -20
367 -1 31 443
321 -1 83 -1144
349 -1 202 -59
323 -1 136 2
331 -1 33 42
325 -1 153 -114
327 -1 249 -167
-1 153 0 0
-1 154 0 0
-1 155 0 0
329 -1 208 -100
-1 156 0 0
-1 157 0 0
333 -1 205 -30
345 -1 109 -119
335 -1 97 41
339 -1 192 -70
337 -1 63 0
-1 160 0 0
-1 158 0 0
-1 159 0 0
341 -1 93 -55
343 -1 53 -11
-1 161 0 0
-1 162 0 0
-1 163 0 0
-1 164 0 0
-1 165 0 0
347 -1 241 -59
-1 166 0 0
-1 167 0 0
351 -1 105 154
359 -1 183 3
353 -1 95 10
357 -1 249 -85
355 -1 135 -60
-1 170 0 0
-1 168 0 0
-1 169 0 0
-1 171 0 0
-1 172 0 0
361 -1 75 -246
-1 177 0 0
-1 173 0 0
363 -1 178 -28
365 -1 8 -17
-1 176 0 0
-1 174 0 0
-1 175 0 0
369 -1 202 -59
-1 192 0 0
371 -1 141 -63
383 -1 132 4
373 -1 102 8
379 -1 218 -93
-1 178 0 0
375 -1 58 98
377 -1 62 42
-1 181 0 0
-1 179 0 0
-1 180 0 0
381 -1 158 -6
-1 184 0 0
-1 182 0 0
-1 183 0 0
385 -1 177 -133
391 -1 156 5
-1 185 0 0
387 -1 251 -4
389 -1 213 -62
-1 188 0 0
-1 186 0 0
-1 187 0 0
-1 189 0 0
393 -1 185 -44
-1 190 0 0
-1 191 0 0
397 -1 145 -118
629 -1 83 34
399 -1 130 5
497 -1 187 -18
401 -1 124 110
443 -1 143 -32
403 -1 145 -182
435 -1 87 183
405 -1 241 -65
411 -1 143 -30
407 -1 25 -69
409 -1 28 -1952
-1 193 0 0
-1 194 0 0
-1 195 0 0
-1 196 0 0
413 -1 203 -151
423 -1 94 -12
415 -1 156 -37
417 -1 253 -163
-1 197 0 0
-1 198 0 0
-1 199 0 0
419 -1 155 -103
-1 200 0 0
421 -1 211 -45
-1 201 0 0
-1 202 0 0
425 -1 221 0
427 -1 117 -2701
-1 203 0 0
-1 204 0 0
-1 205 0 0
429 -1 130 0
431 -1 74 -151
433 -1 72 -1237
-1 206 0 0
-1 207 0 0
-1 208 0 0
-1 209 0 0
437 -1 162 -44
-1 214 0 0
439 -1 29 0
441 -1 241 -170
-1 210 0 0
-1 211 0 0
-1 212 0 0
-1 213 0 0
445 -1 145 -162
459 -1 4 -201
447 -1 150 -17
453 -1 202 -144
-1 215 0 0
449 -1 96 -446
-1 216 0 0
451 -1 255 0
-1 217 0 0
-1 218 0 0
-1 219 0 0
455 -1 143 -47
457 -1 13 -78
-1 222 0 0
-1 220 0 0
-1 221 0 0
461 -1 27 -1809
495 -1 92 34
463 -1 52 -63
477 -1 233 -14
-1 223 0 0
465 -1 32 -2335
467 -1 56 -21
471 -1 61 -38
469 -1 220 -18
-1 226 0 0
-1 224 0 0
-1 225 0 0
473 -1 232 -148
475 -1 46 31
-1 227 0 0
-1 228 0 0
-1 229 0 0
-1 230 0 0
479 -1 210 -34
485 -1 16 -372
-1 231 0 0
481 -1 168 5
-1 232 0 0
483 -1 254 19
-1 233 0 0
-1 234 0 0
487 -1 159 19
491 -1 186 8
489 -1 233 -6
-1 237 0 0
-1 235 0 0
-1 236 0 0
493 -1 91 -331
-1 240 0 0
-1 238 0 0
-1 239 0 0
-1 241 0 0
-1 242 0 0
499 -1 134 -50
565 -1 108 -332
501 -1 3 68
531 -1 11 23
503 -1 133 -12
523 -1 225 -24
505 -1 132 -17
515 -1 124 19
507 -1 221 -48
513 -1 24 10
-1 243 0 0
509 -1 92 -549
-1 244 0 0
511 -1 146 -41
-1 245 0 0
-1 246 0 0
-1 247 0 0
-1 248 0 0
517 -1 34 -37
519 -1 179 -8
-1 249 0 0
-1 250 0 0
-1 251 0 0
521 -1 28 -219
-1 252 0 0
-1 253 0 0
-1 254 0 0
525 -1 184 -81
527 -1 53 -223
-1 258 0 0
529 -1 14 -297
-1 257 0 0
-1 255 0 0
-1 256 0 0
533 -1 199 9
555 -1 85 -1509
535 -1 82 55
545 -1 205 12
537 -1 124 -663
-1 264 0 0
539 -1 203 -53
541 -1 237 -99
-1 259 0 0
-1 260 0 0
-1 261 0 0
543 -1 201 -23
-1 262 0 0
-1 263 0 0
547 -1 47 -275
551 -1 133 -62
-1 265 0 0
549 -1 151 -50
-1 266 0 0
-1 267 0 0
-1 268 0 0
553 -1 172 -72
-1 269 0 0
-1 270 0 0
-1 271 0 0
557 -1 56 49
559 -1 88 -202
-1 276 0 0
-1 272 0 0
561 -1 0 -62
563 -1 93 -62
-1 275 0 0
-1 273 0 0
-1 274 0 0
567 -1 228 3
599 -1 16 53
569 -1 228 -2
579 -1 229 15
571 -1 157 -20
577 -1 173 1
573 -1 140 -49
575 -1 103 -515
-1 277 0 0
-1 278 0 0
-1 279 0 0
-1 280 0 0
-1 281 0 0
-1 282 0 0
581 -1 108 -373
595 -1 21 10
583 -1 239 -69
589 -1 73 0
585 -1 108 -418
-1 286 0 0
587 -1 162 -19
-1 285 0 0
-1 283 0 0
-1 284 0 0
-1 287 0 0
591 -1 167 13
593 -1 74 -375
-1 290 0 0
-1 288 0 0
-1 289 0 0
597 -1 229 33
-1 293 0 0
-1 291 0 0
-1 292 0 0
601 -1 243 -135
623 -1 16 574
-1 294 0 0
603 -1 61 89
605 -1 154 -27
617 -1 85 -104
607 -1 4 -110
613 -1 115 7
609 -1 151 -18
611 -1 172 -75
-1 295 0 0
-1 296 0 0
-1 297 0 0
-1 298 0 0
615 -1 140 -2
-1 301 0 0
-1 299 0 0
-1 300 0 0
619 -1 216 -34
-1 305 0 0
-1 302 0 0
621 -1 241 -49
-1 303 0 0
-1 304 0 0
625 -1 147 -23
-1 309 0 0
-1 306 0 0
627 -1 170 20
-1 307 0 0
-1 308 0 0
631 -1 253 -187
723 -1 239 -110
633 -1 32 -326
639 -1 7 0
-1 310 0 0
635 -1 145 -218
-1 311 0 0
637 -1 15 -84
-1 312 0 0
-1 313 0 0
641 -1 108 -296
705 -1 219 -146
643 -1 162 -39
671 -1 196 -13
645 -1 139 -174
659 -1 155 3
-1 314 0 0
647 -1 202 -127
649 -1 80 -2133
653 -1 72 -1878
-1 315 0 0
651 -1 72 -2274
-1 316 0 0
-1 317 0 0
655 -1 132 -12
657 -1 186 39
-1 318 0 0
-1 319 0 0
-1 320 0 0
-1 321 0 0
661 -1 250 -111
669 -1 146 -157
663 -1 181 9
667 -1 218 -98
665 -1 229 0
-1 324 0 0
-1 322 0 0
-1 323 0 0
-1 325 0 0
-1 326 0 0
-1 327 0 0
-1 328 0 0
673 -1 145 -135
693 -1 228 20
675 -1 15 -104
683 -1 127 -24
677 -1 41 -7
679 -1 145 -185
-1 329 0 0
-1 330 0 0
-1 331 0 0
681 -1 164 -70
-1 332 0 0
-1 333 0 0
685 -1 212 58
689 -1 179 -42
687 -1 2 -267
-1 336 0 0
-1 334 0 0
-1 335 0 0
-1 337 0 0
691 -1 197 -23
-1 338 0 0
-1 339 0 0
695 -1 153 0
701 -1 253 -93
-1 340 0 0
697 -1 108 -128
-1 341 0 0
699 -1 165 -76
-1 342 0 0
-1 343 0 0
703 -1 157 58
-1 346 0 0
-1 344 0 0
-1 345 0 0
707 -1 61 30
711 -1 9 126
-1 347 0 0
709 -1 130 -96
-1 348 0 0
-1 349 0 0
713 -1 200 48
-1 356 0 0
715 -1 249 -128
-1 355 0 0
-1 350 0 0
717 -1 83 -1314
719 -1 220 -85
721 -1 132 0
-1 351 0 0
-1 352 0 0
-1 353 0 0
-1 354 0 0
725 -1 124 36
743 -1 195 -154
727 -1 229 -49
731 -1 61 665
-1 357 0 0
729 -1 202 -101
-1 358 0 0
-1 359 0 0
733 -1 231 -152
-1 366 0 0
735 -1 167 -114
737 -1 96 -80
-1 360 0 0
-1 361 0 0
739 -1 178 -11
-1 365 0 0
741 -1 139 -101
-1 364 0 0
-1 362 0 0
-1 363 0 0
-1 367 0 0
745 -1 114 593
747 -1 166 -67
-1 378 0 0
749 -1 154 -20
755 -1 16 368
751 -1 45 29
-1 371 0 0
753 -1 121 -77
-1 370 0 0
-1 368 0 0
-1 369 0 0
757 -1 85 162
-1 377 0 0
759 -1 204 -15
763 -1 67 -1393
-1 372 0 0
761 -1 114 47
-1 373 0 0
-1 374 0 0
-1 375 0 0
-1 376 0 0
767 -1 132 -151
1027 -1 85 0
769 -1 155 3
851 -1 107 63
771 -1 2 176
805 -1 195 6
773 -1 230 -8
801 -1 239 -172
775 -1 194 3
787 -1 202 -2
777 -1 83 66
785 -1 164 -148
779 -1 201 -171
783 -1 204 -36
-1 379 0 0
781 -1 234 -126
-1 380 0 0
-1 381 0 0
-1 382 0 0
-1 383 0 0
-1 384 0 0
-1 385 0 0
789 -1 44 38
791 -1 142 11
-1 386 0 0
-1 387 0 0
793 -1 136 1
-1 393 0 0
795 -1 228 -28
-1 392 0 0
-1 388 0 0
797 -1 188 -2
799 -1 206 -148
-1 391 0 0
-1 389 0 0
-1 390 0 0
803 -1 159 -156
-1 396 0 0
-1 394 0 0
-1 395 0 0
807 -1 236 0
843 -1 207 -167
809 -1 252 -1
813 -1 168 -16
-1 397 0 0
811 -1 118 -37
-1 398 0 0
-1 399 0 0
815 -1 61 38
823 -1 107 -44
817 -1 54 12
-1 404 0 0
819 -1 205 -23
-1 403 0 0
821 -1 44 -17
-1 402 0 0
-1 400 0 0
-1 401 0 0
-1 405 0 0
825 -1 18 29
827 -1 26 0
837 -1 155 14
829 -1 191 -52
833 -1 40 32
-1 406 0 0
831 -1 189 -12
-1 407 0 0
-1 408 0 0
835 -1 51 0
-1 411 0 0
-1 409 0 0
-1 410 0 0
839 -1 34 0
841 -1 113 25
-1 412 0 0
-1 413 0 0
-1 414 0 0
-1 415 0 0
-1 416 0 0
845 -1 195 12
847 -1 167 -11
849 -1 130 -140
-1 417 0 0
-1 418 0 0
-1 419 0 0
-1 420 0 0
853 -1 132 -126
989 -1 202 -87
855 -1 155 3
883 -1 145 -107
857 -1 184 0
863 -1 166 6
859 -1 130 -61
861 -1 2 -1632
-1 421 0 0
-1 422 0 0
-1 423 0 0
-1 424 0 0
865 -1 72 -1585
879 -1 120 0
867 -1 197 -132
871 -1 241 -113
869 -1 124 0
-1 427 0 0
-1 425 0 0
-1 426 0 0
873 -1 30 -1522
-1 432 0 0
875 -1 61 0
877 -1 253 -145
-1 428 0 0
-1 429 0 0
-1 430 0 0
-1 431 0 0
881 -1 244 15
-1 435 0 0
-1 433 0 0
-1 434 0 0
885 -1 241 1
925 -1 214 -54
887 -1 246 -4
923 -1 217 -138
889 -1 28 -1456
907 -1 5 46
891 -1 92 -21
897 -1 213 -71
-1 436 0 0
893 -1 169 -33
-1 437 0 0
895 -1 148 -2
-1 438 0 0
-1 439 0 0
899 -1 143 -85
903 -1 20 -68
-1 440 0 0
901 -1 215 -25
-1 441 0 0
-1 442 0 0
905 -1 253 -81
-1 445 0 0
-1 443 0 0
-1 444 0 0
909 -1 166 5
919 -1 117 -352
911 -1 210 6
915 -1 117 -777
913 -1 58 -16
-1 448 0 0
-1 446 0 0
-1 447 0 0
-1 449 0 0
917 -1 182 8
-1 450 0 0
-1 451 0 0
-1 452 0 0
921 -1 145 -166
-1 453 0 0
-1 454 0 0
-1 455 0 0
-1 456 0 0
927 -1 254 -94
957 -1 186 -92
929 -1 38 0
939 -1 92 -41
931 -1 27 -260
937 -1 199 12
-1 457 0 0
933 -1 25 0
-1 458 0 0
935 -1 136 -5
-1 459 0 0
-1 460 0 0
-1 461 0 0
-1 462 0 0
941 -1 152 32
947 -1 2 -1638
943 -1 154 -85
-1 466 0 0
-1 463 0 0
945 -1 25 -65
-1 464 0 0
-1 465 0 0
949 -1 117 -1920
951 -1 46 -38
-1 467 0 0
-1 468 0 0
953 -1 183 82
955 -1 211 23
-1 469 0 0
-1 470 0 0
-1 471 0 0
-1 472 0 0
959 -1 161 71
963 -1 65 -97
961 -1 33 28
-1 475 0 0
-1 473 0 0
-1 474 0 0
965 -1 70 -307
979 -1 220 46
967 -1 101 0
973 -1 38 -81
969 -1 211 63
971 -1 202 29
-1 476 0 0
-1 477 0 0
-1 478 0 0
-1 479 0 0
975 -1 189 -53
977 -1 57 25
-1 480 0 0
-1 481 0 0
-1 482 0 0
-1 483 0 0
981 -1 43 -9
987 -1 200 -40
983 -1 147 -25
985 -1 23 -46
-1 484 0 0
-1 485 0 0
-1 486 0 0
-1 487 0 0
-1 488 0 0
-1 489 0 0
991 -1 32 127
999 -1 52 46
993 -1 3 196
997 -1 24 59
995 -1 198 4
-1 492 0 0
-1 490 0 0
-1 491 0 0
-1 493 0 0
-1 494 0 0
1001 -1 186 -90
1019 -1 189 16
1003 -1 250 -41
1005 -1 254 -117
-1 495 0 0
-1 496 0 0
-1 497 0 0
1007 -1 130 -28
1009 -1 107 232
1013 -1 158 14
1011 -1 182 0
-1 500 0 0
-1 498 0 0
-1 499 0 0
1015 -1 4 -77
1017 -1 243 10
-1 501 0 0
-1 502 0 0
-1 503 0 0
-1 504 0 0
1021 -1 229 -47
1025 -1 21 -37
-1 505 0 0
1023 -1 225 -99
-1 506 0 0
-1 507 0 0
-1 508 0 0
-1 509 0 0
1029 -1 124 18
1177 -1 239 -145
1031 -1 232 -89
1121 -1 237 -56
1033 -1 101 -65
1071 -1 137 -2
1035 -1 2 -1600
1047 -1 70 -1556
1037 -1 23 -81
1041 -1 143 -16
1039 -1 35 -124
-1 512 0 0
-1 510 0 0
-1 511 0 0
-1 513 0 0
1043 -1 239 -23
1045 -1 222 -13
-1 516 0 0
-1 514 0 0
-1 515 0 0
1049 -1 241 42
1061 -1 28 -554
1051 -1 162 70
-1 523 0 0
1053 -1 107 -30
1059 -1 194 113
1055 -1 34 -13
1057 -1 241 -159
-1 517 0 0
-1 518 0 0
-1 519 0 0
-1 520 0 0
-1 521 0 0
-1 522 0 0
1063 -1 225 -97
1067 -1 70 -119
1065 -1 104 13
-1 526 0 0
-1 524 0 0
-1 525 0 0
1069 -1 83 -37
-1 529 0 0
-1 527 0 0
-1 528 0 0
1073 -1 28 -226
1103 -1 211 2
1075 -1 152 76
1093 -1 156 -40
1077 -1 72 -158
-1 539 0 0
1079 -1 156 -57
1087 -1 151 -11
1081 -1 83 -80
1083 -1 160 -43
-1 530 0 0
-1 531 0 0
-1 532 0 0
1085 -1 189 -20
-1 533 0 0
-1 534 0 0
1089 -1 155 -46
1091 -1 147 -55
-1 535 0 0
-1 536 0 0
-1 537 0 0
-1 538 0 0
1095 -1 28 -49
1099 -1 47 -68
1097 -1 239 -58
-1 542 0 0
-1 540 0 0
-1 541 0 0
-1 543 0 0
1101 -1 158 29
-1 544 0 0
-1 545 0 0
1105 -1 78 -213
1111 -1 162 64
1107 -1 214 0
1109 -1 31 -74
-1 546 0 0
-1 547 0 0
-1 548 0 0
-1 549 0 0
1113 -1 208 53
1119 -1 72 -1175
1115 -1 68 -30
-1 553 0 0
1117 -1 82 -83
-1 552 0 0
-1 550 0 0
-1 551 0 0
-1 554 0 0
-1 555 0 0
1123 -1 85 -194
1143 -1 149 -12
1125 -1 2 -1016
1129 -1 52 -37
1127 -1 224 -98
-1 558 0 0
-1 556 0 0
-1 557 0 0
1131 -1 213 -152
1139 -1 162 3
-1 559 0 0
1133 -1 240 3
1135 -1 64 96
-1 563 0 0
1137 -1 74 -905
-1 562 0 0
-1 560 0 0
-1 561 0 0
-1 564 0 0
1141 -1 249 1
-1 565 0 0
-1 566 0 0
1145 -1 231 -90
1163 -1 241 15
1147 -1 108 -82
1155 -1 45 -78
1149 -1 239 -18
1151 -1 82 -42
-1 567 0 0
-1 568 0 0
-1 569 0 0
1153 -1 156 -32
-1 570 0 0
-1 571 0 0
1157 -1 46 101
1159 -1 55 -106
-1 572 0 0
-1 573 0 0
1161 -1 189 -2
-1 576 0 0
-1 574 0 0
-1 575 0 0
1165 -1 249 0
1175 -1 122 92
1167 -1 166 21
1169 -1 47 -107
-1 577 0 0
-1 578 0 0
1171 -1 215 2
1173 -1 159 -14
-1 579 0 0
-1 580 0 0
-1 581 0 0
-1 582 0 0
-1 583 0 0
-1 584 0 0
1179 -1 245 -1
1215 -1 7 -10
1181 -1 245 -5
1187 -1 87 -1556
1183 -1 6 -1212
-1 588 0 0
-1 585 0 0
1185 -1 126 16
-1 586 0 0
-1 587 0 0
1189 -1 232 -181
1201 -1 232 -167
1191 -1 98 8
1193 -1 114 -37
-1 589 0 0
-1 590 0 0
-1 591 0 0
1195 -1 112 35
1197 -1 213 -179
-1 595 0 0
-1 592 0 0
1199 -1 248 0
-1 593 0 0
-1 594 0 0
1203 -1 44 -23
1209 -1 103 -38
1205 -1 131 2
-1 599 0 0
-1 596 0 0
1207 -1 191 -1
-1 597 0 0
-1 598 0 0
1211 -1 6 -1008
1213 -1 152 -96
-1 600 0 0
-1 601 0 0
-1 602 0 0
-1 603 0 0
1217 -1 240 -43
1299 -1 152 42
1219 -1 232 -97
1239 -1 30 -1133
1221 -1 162 30
1225 -1 214 -43
1223 -1 53 37
-1 606 0 0
-1 604 0 0
-1 605 0 0
1227 -1 171 8
1237 -1 70 -87
1229 -1 163 5
1233 -1 87 -1078
-1 607 0 0
1231 -1 219 -103
-1 608 0 0
-1 609 0 0
-1 610 0 0
1235 -1 96 -46
-1 611 0 0
-1 612 0 0
-1 613 0 0
-1 614 0 0
1241 -1 202 61
1259 -1 28 -59
1243 -1 138 69
1253 -1 208 37
1245 -1 30 -1323
1251 -1 132 -56
1247 -1 249 0
-1 618 0 0
-1 615 0 0
1249 -1 196 6
-1 616 0 0
-1 617 0 0
-1 619 0 0
-1 620 0 0
-1 621 0 0
1255 -1 44 -56
-1 622 0 0
1257 -1 111 -7
-1 623 0 0
-1 624 0 0
1261 -1 145 -111
1281 -1 121 0
1263 -1 28 -297
1271 -1 143 -3
1265 -1 103 -997
1267 -1 232 -170
-1 625 0 0
-1 626 0 0
-1 627 0 0
1269 -1 97 61
-1 628 0 0
-1 629 0 0
1273 -1 179 33
1275 -1 143 2
-1 630 0 0
-1 631 0 0
1277 -1 28 -170
1279 -1 249 69
-1 632 0 0
-1 633 0 0
-1 634 0 0
-1 635 0 0
1283 -1 220 12
1293 -1 56 169
1285 -1 186 7
1291 -1 211 17
1287 -1 89 -9
1289 -1 30 -50
-1 636 0 0
-1 637 0 0
-1 638 0 0
-1 639 0 0
-1 640 0 0
-1 641 0 0
1295 -1 132 -65
-1 645 0 0
-1 642 0 0
1297 -1 182 18
-1 643 0 0
-1 644 0 0
1301 -1 38 54
1337 -1 183 -5
1303 -1 202 -9
1323 -1 0 -64
1305 -1 231 -11
1311 -1 109 -854
1307 -1 70 -72
-1 649 0 0
1309 -1 52 9
-1 648 0 0
-1 646 0 0
-1 647 0 0
1313 -1 108 -1542
1317 -1 67 0
1315 -1 141 8
-1 652 0 0
-1 650 0 0
-1 651 0 0
-1 653 0 0
1319 -1 2 28
1321 -1 96 -104
-1 656 0 0
-1 654 0 0
-1 655 0 0
1325 -1 70 -748
1331 -1 0 659
-1 657 0 0
1327 -1 17 0
1329 -1 97 11
-1 660 0 0
-1 658 0 0
-1 659 0 0
1333 -1 144 -31
-1 664 0 0
-1 661 0 0
1335 -1 83 72
-1 662 0 0
-1 663 0 0
-1 665 0 0
1339 -1 121 -94
-1 666 0 0
-1 667 0 0
1343 -1 39 150
1623 -1 152 -129
1345 -1 155 -28
1439 -1 244 -131
1347 -1 233 -18
1391 -1 166 -146
1349 -1 220 -83
1375 -1 206 -49
1351 -1 206 -30
1369 -1 197 -34
1353 -1 171 -188
1365 -1 233 -156
1355 -1 143 -150
1357 -1 202 -98
-1 668 0 0
-1 669 0 0
1359 -1 16 -33
1363 -1 147 -79
1361 -1 219 -29
-1 672 0 0
-1 670 0 0
-1 671 0 0
-1 673 0 0
-1 674 0 0
1367 -1 161 -173
-1 677 0 0
-1 675 0 0
-1 676 0 0
1371 -1 38 241
-1 681 0 0
1373 -1 86 -69
-1 680 0 0
-1 678 0 0
-1 679 0 0
1377 -1 152 -1
1385 -1 207 -10
1379 -1 178 -66
1383 -1 136 -177
1381 -1 14 -63
-1 684 0 0
-1 682 0 0
-1 683 0 0
-1 685 0 0
-1 686 0 0
-1 687 0 0
1387 -1 255 -153
1389 -1 160 -131
-1 690 0 0
-1 688 0 0
-1 689 0 0
1393 -1 241 -66
1419 -1 251 26
1395 -1 203 4
1407 -1 229 -161
1397 -1 151 3
1405 -1 81 -55
1399 -1 229 -184
1403 -1 65 -185
-1 691 0 0
1401 -1 66 40
-1 692 0 0
-1 693 0 0
-1 694 0 0
-1 695 0 0
-1 696 0 0
-1 697 0 0
1409 -1 175 -193
-1 704 0 0
1411 -1 213 -184
1413 -1 208 -132
-1 698 0 0
-1 699 0 0
1415 -1 233 -41
-1 703 0 0
1417 -1 136 6
-1 702 0 0
-1 700 0 0
-1 701 0 0
1421 -1 197 -39
-1 715 0 0
1423 -1 26 121
1433 -1 228 -2
1425 -1 75 -153
-1 710 0 0
1427 -1 147 -34
1429 -1 238 -113
-1 705 0 0
-1 706 0 0
-1 707 0 0
1431 -1 193 -6
-1 708 0 0
-1 709 0 0
1435 -1 244 -116
-1 714 0 0
-1 711 0 0
1437 -1 138 -6
-1 712 0 0
-1 713 0 0
1441 -1 186 -131
1561 -1 191 -78
1443 -1 202 5
1543 -1 85 296
1445 -1 83 278
1519 -1 81 -93
1447 -1 229 -199
1477 -1 55 -183
1449 -1 88 123
1455 -1 151 4
1451 -1 179 -38
-1 719 0 0
1453 -1 208 -144
-1 718 0 0
-1 716 0 0
-1 717 0 0
1457 -1 132 5
1467 -1 241 -133
1459 -1 184 4
-1 725 0 0
1461 -1 138 -181
-1 724 0 0
1463 -1 16 -405
1465 -1 242 -4
-1 720 0 0
-1 721 0 0
-1 722 0 0
-1 723 0 0
1469 -1 159 -27
1473 -1 131 -120
1471 -1 44 232
-1 728 0 0
-1 726 0 0
-1 727 0 0
1475 -1 231 -163
-1 731 0 0
-1 729 0 0
-1 730 0 0
1479 -1 233 -181
1507 -1 140 -198
1481 -1 64 -107
1499 -1 175 -200
1483 -1 140 -153
1489 -1 211 -196
-1 732 0 0
1485 -1 146 -188
-1 733 0 0
1487 -1 236 -36
-1 734 0 0
-1 735 0 0
1491 -1 30 -309
1493 -1 45 59
-1 736 0 0
-1 737 0 0
1495 -1 236 -17
1497 -1 84 -26
-1 738 0 0
-1 739 0 0
-1 740 0 0
-1 741 0 0
1501 -1 219 -152
1503 -1 233 -149
-1 742 0 0
-1 743 0 0
-1 744 0 0
1505 -1 188 -188
-1 745 0 0
-1 746 0 0
1509 -1 15 -21
1513 -1 132 -192
-1 747 0 0
1511 -1 37 -34
-1 748 0 0
-1 749 0 0
-1 750 0 0
1515 -1 249 -205
-1 751 0 0
1517 -1 193 -172
-1 752 0 0
-1 753 0 0
1521 -1 112 -1404
1529 -1 195 -165
1523 -1 95 50
1525 -1 17 -139
-1 754 0 0
-1 755 0 0
-1 756 0 0
1527 -1 189 -88
-1 757 0 0
-1 758 0 0
1531 -1 34 -58
1541 -1 227 -140
1533 -1 131 -15
1539 -1 237 -16
1535 -1 207 -86
-1 762 0 0
-1 759 0 0
1537 -1 28 -211
-1 760 0 0
-1 761 0 0
-1 763 0 0
-1 764 0 0
-1 765 0 0
-1 766 0 0
1545 -1 186 -17
1557 -1 25 426
1547 -1 202 0
-1 773 0 0
1549 -1 141 -17
1555 -1 216 -23
1551 -1 254 -174
1553 -1 94 31
-1 767 0 0
-1 768 0 0
-1 769 0 0
-1 770 0 0
-1 771 0 0
-1 772 0 0
1559 -1 96 -167
-1 776 0 0
-1 774 0 0
-1 775 0 0
1563 -1 138 0
1577 -1 247 -163
1565 -1 157 -31
-1 784 0 0
1567 -1 249 -197
1571 -1 229 -177
-1 777 0 0
1569 -1 245 -50
-1 778 0 0
-1 779 0 0
1573 -1 14 -117
1575 -1 139 -172
-1 780 0 0
-1 781 0 0
-1 782 0 0
-1 783 0 0
1579 -1 139 -227
1605 -1 219 -62
-1 785 0 0
1581 -1 69 13
1583 -1 193 -3
-1 798 0 0
1585 -1 127 -80
1603 -1 249 -188
1587 -1 186 -96
1601 -1 42 40
1589 -1 22 -131
1595 -1 241 -158
1591 -1 159 -66
1593 -1 153 -163
-1 786 0 0
-1 787 0 0
-1 788 0 0
-1 789 0 0
1597 -1 213 -211
1599 -1 117 -168
-1 790 0 0
-1 791 0 0
-1 792 0 0
-1 793 0 0
-1 794 0 0
-1 795 0 0
-1 796 0 0
-1 797 0 0
1607 -1 5 67
1617 -1 186 -175
1609 -1 136 0
-1 804 0 0
1611 -1 116 208
1615 -1 228 -182
1613 -1 229 -176
-1 801 0 0
-1 799 0 0
-1 800 0 0
-1 802 0 0
-1 803 0 0
-1 805 0 0
1619 -1 255 -14
-1 806 0 0
1621 -1 202 -131
-1 807 0 0
-1 808 0 0
1625 -1 187 0
2029 -1 154 -71
1627 -1 178 -82
1887 -1 203 -166
1629 -1 2 207
1761 -1 26 123
1631 -1 200 -3
1729 -1 123 102
1633 -1 214 -161
1711 -1 143 -155
1635 -1 254 -24
1669 -1 168 -6
1637 -1 149 -29
1659 -1 252 -50
1639 -1 124 789
1649 -1 131 26
1641 -1 55 219
1647 -1 157 -17
1643 -1 208 -154
1645 -1 84 -23
-1 809 0 0
-1 810 0 0
-1 811 0 0
-1 812 0 0
-1 813 0 0
-1 814 0 0
1651 -1 35 121
1657 -1 70 -84
1653 -1 25 110
1655 -1 196 -96
-1 815 0 0
-1 816 0 0
-1 817 0 0
-1 818 0 0
-1 819 0 0
-1 820 0 0
-1 821 0 0
1661 -1 44 88
-1 822 0 0
1663 -1 130 7
1665 -1 235 -206
1667 -1 104 -63
-1 823 0 0
-1 824 0 0
-1 825 0 0
-1 826 0 0
1671 -1 170 -64
1693 -1 59 325
1673 -1 23 122
1683 -1 120 175
1675 -1 159 -184
1679 -1 38 727
-1 827 0 0
1677 -1 221 -65
-1 828 0 0
-1 829 0 0
1681 -1 212 -46
-1 832 0 0
-1 830 0 0
-1 831 0 0
1685 -1 207 -146
1689 -1 114 414
-1 833 0 0
1687 -1 4 76
-1 834 0 0
-1 835 0 0
1691 -1 218 -147
-1 838 0 0
-1 836 0 0
-1 837 0 0
1695 -1 149 -37
1709 -1 228 45
1697 -1 198 -144
1703 -1 211 -21
1699 -1 29 131
1701 -1 244 -66
-1 839 0 0
-1 840 0 0
-1 841 0 0
-1 842 0 0
1705 -1 172 -163
1707 -1 136 9
-1 843 0 0
-1 844 0 0
-1 845 0 0
-1 846 0 0
-1 847 0 0
-1 848 0 0
1713 -1 181 1
1717 -1 212 -6
-1 849 0 0
1715 -1 207 -16
-1 850 0 0
-1 851 0 0
1719 -1 132 -166
1725 -1 155 -171
1721 -1 202 -118
1723 -1 165 -140
-1 852 0 0
-1 853 0 0
-1 854 0 0
-1 855 0 0
-1 856 0 0
1727 -1 92 158
-1 857 0 0
-1 858 0 0
1731 -1 29 282
1759 -1 169 -89
1733 -1 231 -171
-1 873 0 0
1735 -1 215 50
1743 -1 168 -6
1737 -1 178 -201
-1 863 0 0
-1 859 0 0
1739 -1 233 -4
1741 -1 21 -30
-1 862 0 0
-1 860 0 0
-1 861 0 0
1745 -1 255 -160
1747 -1 155 -176
-1 864 0 0
-1 865 0 0
1749 -1 75 -104
1753 -1 249 -2
-1 866 0 0
1751 -1 163 -80
-1 867 0 0
-1 868 0 0
1755 -1 58 104
1757 -1 23 82
-1 869 0 0
-1 870 0 0
-1 871 0 0
-1 872 0 0
-1 874 0 0
-1 875 0 0
1763 -1 205 24
1837 -1 182 -118
1765 -1 225 -173
1817 -1 187 -30
1767 -1 78 -99
1791 -1 195 -183
1769 -1 242 22
1775 -1 178 -15
1771 -1 112 -74
-1 879 0 0
-1 876 0 0
1773 -1 243 -5
-1 877 0 0
-1 878 0 0
1777 -1 124 154
1785 -1 157 -208
1779 -1 232 -173
1783 -1 83 180
1781 -1 162 -175
-1 882 0 0
-1 880 0 0
-1 881 0 0
-1 883 0 0
-1 884 0 0
-1 885 0 0
1787 -1 228 -173
-1 886 0 0
1789 -1 85 91
-1 887 0 0
-1 888 0 0
-1 889 0 0
1793 -1 213 -158
1795 -1 19 -50
1805 -1 114 91
1797 -1 92 130
1799 -1 56 171
-1 890 0 0
-1 891 0 0
1801 -1 73 -8
1803 -1 173 -62
-1 892 0 0
-1 893 0 0
-1 894 0 0
-1 895 0 0
1807 -1 203 -39
1811 -1 129 -8
1809 -1 70 -85
-1 898 0 0
-1 896 0 0
-1 897 0 0
1813 -1 85 108
1815 -1 229 -101
-1 899 0 0
-1 900 0 0
-1 901 0 0
-1 902 0 0
1819 -1 137 -133
1821 -1 229 36
-1 903 0 0
-1 904 0 0
1823 -1 153 24
1835 -1 141 8
1825 -1 201 -1
1831 -1 226 -4
1827 -1 227 -8
1829 -1 158 -7
-1 905 0 0
-1 906 0 0
-1 907 0 0
-1 908 0 0
-1 909 0 0
1833 -1 156 -105
-1 910 0 0
-1 911 0 0
-1 912 0 0
-1 913 0 0
1839 -1 56 236
1855 -1 56 517
1841 -1 26 167
1847 -1 120 407
1843 -1 165 -189
-1 917 0 0
-1 914 0 0
1845 -1 145 -166
-1 915 0 0
-1 916 0 0
1849 -1 31 -182
-1 922 0 0
1851 -1 225 -152
1853 -1 20 -125
-1 918 0 0
-1 919 0 0
-1 920 0 0
-1 921 0 0
1857 -1 219 -166
1879 -1 218 -49
1859 -1 150 -45
1867 -1 186 0
-1 923 0 0
1861 -1 2 -170
-1 924 0 0
1863 -1 74 -88
1865 -1 144 -61
-1 927 0 0
-1 925 0 0
-1 926 0 0
1869 -1 193 -73
1877 -1 162 -32
1871 -1 180 -35
1873 -1 103 -346
-1 928 0 0
-1 929 0 0
-1 930 0 0
1875 -1 220 -43
-1 931 0 0
-1 932 0 0
-1 933 0 0
-1 934 0 0
1881 -1 166 -65
1885 -1 85 622
-1 935 0 0
1883 -1 111 769
-1 936 0 0
-1 937 0 0
-1 938 0 0
-1 939 0 0
1889 -1 237 -135
1905 -1 136 1
1891 -1 224 -149
-1 948 0 0
1893 -1 119 -82
1899 -1 149 -194
1895 -1 239 -187
1897 -1 220 -116
-1 940 0 0
-1 941 0 0
-1 942 0 0
-1 943 0 0
1901 -1 136 -73
1903 -1 136 -117
-1 944 0 0
-1 945 0 0
-1 946 0 0
-1 947 0 0
1907 -1 165 -152
1977 -1 87 166
1909 -1 176 -80
1953 -1 30 206
1911 -1 233 12
1923 -1 208 19
1913 -1 200 -156
-1 955 0 0
1915 -1 156 -209
1919 -1 168 -36
-1 949 0 0
1917 -1 142 -8
-1 950 0 0
-1 951 0 0
-1 952 0 0
1921 -1 19 -42
-1 953 0 0
-1 954 0 0
1925 -1 85 528
1943 -1 197 -40
1927 -1 87 74
1941 -1 11 99
1929 -1 170 17
1935 -1 87 183
1931 -1 189 -2
1933 -1 197 -8
-1 956 0 0
-1 957 0 0
-1 958 0 0
-1 959 0 0
1937 -1 168 -17
1939 -1 254 -169
-1 960 0 0
-1 961 0 0
-1 962 0 0
-1 963 0 0
-1 964 0 0
-1 965 0 0
1945 -1 176 -1
1951 -1 136 -154
1947 -1 25 146
1949 -1 170 -34
-1 966 0 0
-1 967 0 0
-1 968 0 0
-1 969 0 0
-1 970 0 0
-1 971 0 0
1955 -1 145 -194
1975 -1 145 -162
-1 972 0 0
1957 -1 151 12
1959 -1 218 -45
1967 -1 227 7
1961 -1 175 -145
1965 -1 114 150
-1 973 0 0
1963 -1 163 10
-1 974 0 0
-1 975 0 0
-1 976 0 0
-1 977 0 0
1969 -1 244 -36
1973 -1 132 -155
1971 -1 0 -100
-1 980 0 0
-1 978 0 0
-1 979 0 0
-1 981 0 0
-1 982 0 0
-1 983 0 0
-1 984 0 0
1979 -1 229 -147
2019 -1 30 824
1981 -1 161 39
1993 -1 229 -27
1983 -1 67 126
1989 -1 242 -69
1985 -1 215 2
1987 -1 245 -31
-1 985 0 0
-1 986 0 0
-1 987 0 0
-1 988 0 0
-1 989 0 0
1991 -1 178 -114
-1 990 0 0
-1 991 0 0
1995 -1 120 472
2011 -1 234 -156
1997 -1 194 -38
-1 1000 0 0
1999 -1 85 190
2005 -1 123 79
2001 -1 228 -29
2003 -1 225 -123
-1 992 0 0
-1 993 0 0
-1 994 0 0
-1 995 0 0
2007 -1 179 29
2009 -1 171 -135
-1 996 0 0
-1 997 0 0
-1 998 0 0
-1 999 0 0
2013 -1 147 -174
2015 -1 186 12
-1 1001 0 0
-1 1002 0 0
2017 -1 177 4
-1 1005 0 0
-1 1003 0 0
-1 1004 0 0
2021 -1 181 -170
-1 1011 0 0
2023 -1 14 240
2025 -1 243 -5
-1 1006 0 0
-1 1007 0 0
2027 -1 169 -8
-1 1010 0 0
-1 1008 0 0
-1 1009 0 0
2031 -1 162 -78
2401 -1 182 -130
2033 -1 135 -58
2229 -1 242 -39
2035 -1 124 241
2161 -1 16 177
2037 -1 14 -120
2115 -1 24 610
2039 -1 178 -92
2075 -1 178 -49
2041 -1 189 -11
2065 -1 249 -135
2043 -1 65 -143
2053 -1 34 -76
2045 -1 74 -375
2049 -1 14 -319
-1 1012 0 0
2047 -1 42 -45
-1 1013 0 0
-1 1014 0 0
-1 1015 0 0
2051 -1 12 -218
-1 1016 0 0
-1 1017 0 0
2055 -1 227 -69
2059 -1 132 -83
2057 -1 152 6
-1 1020 0 0
-1 1018 0 0
-1 1019 0 0
2061 -1 210 -121
2063 -1 152 14
-1 1021 0 0
-1 1022 0 0
-1 1023 0 0
-1 1024 0 0
2067 -1 191 -65
2069 -1 211 -101
-1 1025 0 0
-1 1026 0 0
2071 -1 220 -109
2073 -1 81 -57
-1 1027 0 0
-1 1028 0 0
-1 1029 0 0
-1 1030 0 0
2077 -1 232 -147
2103 -1 212 -3
2079 -1 181 -30
2089 -1 70 -102
2081 -1 109 -87
2083 -1 229 -39
-1 1031 0 0
-1 1032 0 0
2085 -1 75 -64
2087 -1 168 -6
-1 1033 0 0
-1 1034 0 0
-1 1035 0 0
-1 1036 0 0
2091 -1 144 -57
2097 -1 146 -73
2093 -1 170 -132
2095 -1 20 -150
-1 1037 0 0
-1 1038 0 0
-1 1039 0 0
-1 1040 0 0
2099 -1 131 -15
2101 -1 149 -163
-1 1041 0 0
-1 1042 0 0
-1 1043 0 0
-1 1044 0 0
2105 -1 180 -37
2111 -1 38 -1388
-1 1045 0 0
2107 -1 119 -79
2109 -1 186 -62
-1 1048 0 0
-1 1046 0 0
-1 1047 0 0
-1 1049 0 0
2113 -1 11 113
-1 1050 0 0
-1 1051 0 0
2117 -1 165 -43
2151 -1 99 65
2119 -1 225 11
2139 -1 162 -178
2121 -1 249 -84
2133 -1 43 148
2123 -1 72 108
2129 -1 38 882
2125 -1 211 -127
2127 -1 200 14
-1 1052 0 0
-1 1053 0 0
-1 1054 0 0
-1 1055 0 0
2131 -1 124 519
-1 1058 0 0
-1 1056 0 0
-1 1057 0 0
-1 1059 0 0
2135 -1 29 281
-1 1060 0 0
2137 -1 31 86
-1 1061 0 0
-1 1062 0 0
2141 -1 25 447
2143 -1 124 601
-1 1063 0 0
-1 1064 0 0
2145 -1 182 -128
2149 -1 181 -85
-1 1065 0 0
2147 -1 101 359
-1 1066 0 0
-1 1067 0 0
-1 1068 0 0
-1 1069 0 0
2153 -1 103 -143
-1 1075 0 0
-1 1070 0 0
2155 -1 124 679
-1 1071 0 0
2157 -1 56 195
2159 -1 54 24
-1 1074 0 0
-1 1072 0 0
-1 1073 0 0
2163 -1 202 -189
2209 -1 250 -181
2165 -1 153 0
2169 -1 181 -11
-1 1076 0 0
2167 -1 132 12
-1 1077 0 0
-1 1078 0 0
2171 -1 24 663
2187 -1 15 -105
2173 -1 214 -28
2185 -1 237 -17
2175 -1 72 199
2179 -1 124 248
2177 -1 240 -35
-1 1081 0 0
-1 1079 0 0
-1 1080 0 0
2181 -1 169 -74
2183 -1 152 -60
-1 1082 0 0
-1 1083 0 0
-1 1084 0 0
-1 1085 0 0
-1 1086 0 0
-1 1087 0 0
2189 -1 184 -12
2195 -1 141 -147
2191 -1 164 -42
2193 -1 186 -13
-1 1088 0 0
-1 1089 0 0
-1 1090 0 0
-1 1091 0 0
2197 -1 173 -19
2203 -1 239 -107
2199 -1 147 3
2201 -1 186 -6
-1 1092 0 0
-1 1093 0 0
-1 1094 0 0
-1 1095 0 0
2205 -1 204 -26
2207 -1 197 0
-1 1096 0 0
-1 1097 0 0
-1 1098 0 0
-1 1099 0 0
2211 -1 239 -28
2217 -1 61 204
-1 1100 0 0
2213 -1 130 5
-1 1101 0 0
2215 -1 253 -171
-1 1102 0 0
-1 1103 0 0
2219 -1 196 22
2227 -1 57 531
2221 -1 192 -136
2225 -1 191 0
2223 -1 191 3
-1 1106 0 0
-1 1104 0 0
-1 1105 0 0
-1 1107 0 0
-1 1108 0 0
-1 1109 0 0
-1 1110 0 0
2231 -1 163 -11
2339 -1 229 -107
2233 -1 195 -180
2269 -1 88 118
-1 1111 0 0
2235 -1 38 742
2237 -1 155 -130
2263 -1 137 -31
2239 -1 146 -1
2251 -1 85 116
2241 -1 96 530
2247 -1 132 -155
2243 -1 206 -180
2245 -1 187 -4
-1 1112 0 0
-1 1113 0 0
-1 1114 0 0
-1 1115 0 0
-1 1116 0 0
2249 -1 135 -104
-1 1117 0 0
-1 1118 0 0
2253 -1 46 342
2257 -1 123 347
2255 -1 162 -31
-1 1121 0 0
-1 1119 0 0
-1 1120 0 0
2259 -1 124 94
2261 -1 89 -897
-1 1122 0 0
-1 1123 0 0
-1 1124 0 0
-1 1125 0 0
2265 -1 146 -23
2267 -1 220 -38
-1 1126 0 0
-1 1127 0 0
-1 1128 0 0
-1 1129 0 0
2271 -1 165 -16
2323 -1 249 -143
2273 -1 181 -30
2301 -1 195 -68
2275 -1 194 -14
2287 -1 31 160
2277 -1 103 -226
2283 -1 192 -124
2279 -1 154 -134
2281 -1 249 -7
-1 1130 0 0
-1 1131 0 0
-1 1132 0 0
-1 1133 0 0
2285 -1 162 10
-1 1136 0 0
-1 1134 0 0
-1 1135 0 0
2289 -1 214 -150
2295 -1 219 -8
2291 -1 38 103
2293 -1 192 -156
-1 1137 0 0
-1 1138 0 0
-1 1139 0 0
-1 1140 0 0
2297 -1 235 -161
2299 -1 30 -123
-1 1141 0 0
-1 1142 0 0
-1 1143 0 0
-1 1144 0 0
2303 -1 253 -166
2313 -1 153 -134
2305 -1 130 10
2307 -1 233 -23
-1 1145 0 0
-1 1146 0 0
2309 -1 248 0
2311 -1 188 -167
-1 1147 0 0
-1 1148 0 0
-1 1149 0 0
-1 1150 0 0
2315 -1 139 -170
2317 -1 170 -69
-1 1151 0 0
-1 1152 0 0
2319 -1 243 -10
2321 -1 154 -151
-1 1153 0 0
-1 1154 0 0
-1 1155 0 0
-1 1156 0 0
2325 -1 137 -24
2327 -1 125 201
-1 1157 0 0
-1 1158 0 0
2329 -1 146 15
2335 -1 131 -8
2331 -1 179 0
-1 1162 0 0
2333 -1 0 -271
-1 1161 0 0
-1 1159 0 0
-1 1160 0 0
-1 1163 0 0
2337 -1 117 -862
-1 1164 0 0
-1 1165 0 0
2341 -1 243 13
2359 -1 178 -30
2343 -1 239 -122
2353 -1 154 -125
2345 -1 229 -141
2347 -1 235 -15
-1 1166 0 0
-1 1167 0 0
2349 -1 246 -11
2351 -1 1 -9
-1 1168 0 0
-1 1169 0 0
-1 1170 0 0
-1 1171 0 0
2355 -1 92 149
-1 1175 0 0
2357 -1 159 -22
-1 1174 0 0
-1 1172 0 0
-1 1173 0 0
2361 -1 213 -145
2375 -1 167 -43
2363 -1 239 -100
2367 -1 115 574
2365 -1 39 164
-1 1178 0 0
-1 1176 0 0
-1 1177 0 0
2369 -1 147 2
-1 1183 0 0
2371 -1 245 -11
2373 -1 238 -38
-1 1179 0 0
-1 1180 0 0
-1 1181 0 0
-1 1182 0 0
2377 -1 227 -15
2385 -1 67 138
2379 -1 19 -47
2381 -1 39 140
-1 1184 0 0
-1 1185 0 0
2383 -1 162 -35
-1 1188 0 0
-1 1186 0 0
-1 1187 0 0
2387 -1 203 18
2395 -1 87 -137
2389 -1 116 87
2393 -1 226 -66
2391 -1 153 3
-1 1191 0 0
-1 1189 0 0
-1 1190 0 0
-1 1192 0 0
-1 1193 0 0
2397 -1 90 180
-1 1197 0 0
2399 -1 141 -85
-1 1196 0 0
-1 1194 0 0
-1 1195 0 0
2403 -1 87 -68
2499 -1 116 192
2405 -1 154 10
2491 -1 240 -39
2407 -1 108 -112
2453 -1 249 -159
2409 -1 138 -121
2439 -1 248 -24
2411 -1 85 248
2425 -1 203 14
2413 -1 226 -150
2423 -1 212 -32
2415 -1 244 -163
2419 -1 74 -91
2417 -1 94 51
-1 1200 0 0
-1 1198 0 0
-1 1199 0 0
2421 -1 179 -30
-1 1203 0 0
-1 1201 0 0
-1 1202 0 0
-1 1204 0 0
-1 1205 0 0
2427 -1 57 132
2435 -1 220 -120
2429 -1 196 -109
-1 1210 0 0
2431 -1 145 -141
2433 -1 17 -35
-1 1206 0 0
-1 1207 0 0
-1 1208 0 0
-1 1209 0 0
2437 -1 17 -41
-1 1213 0 0
-1 1211 0 0
-1 1212 0 0
2441 -1 142 -100
2443 -1 169 -15
-1 1214 0 0
-1 1215 0 0
2445 -1 67 155
2449 -1 186 -122
-1 1216 0 0
2447 -1 155 -24
-1 1217 0 0
-1 1218 0 0
-1 1219 0 0
2451 -1 68 104
-1 1220 0 0
-1 1221 0 0
2455 -1 74 -96
2473 -1 164 -57
2457 -1 215 -6
2469 -1 168 -133
2459 -1 231 -82
2465 -1 128 -145
2461 -1 136 -85
2463 -1 169 -75
-1 1222 0 0
-1 1223 0 0
-1 1224 0 0
-1 1225 0 0
-1 1226 0 0
2467 -1 169 10
-1 1227 0 0
-1 1228 0 0
-1 1229 0 0
2471 -1 64 -44
-1 1230 0 0
-1 1231 0 0
2475 -1 151 9
2483 -1 239 -156
2477 -1 111 157
2479 -1 156 38
-1 1232 0 0
-1 1233 0 0
2481 -1 255 20
-1 1236 0 0
-1 1234 0 0
-1 1235 0 0
-1 1237 0 0
2485 -1 186 -140
-1 1238 0 0
2487 -1 225 -1
2489 -1 211 -129
-1 1241 0 0
-1 1239 0 0
-1 1240 0 0
2493 -1 83 205
2495 -1 80 -86
-1 1242 0 0
-1 1243 0 0
-1 1244 0 0
2497 -1 150 -8
-1 1245 0 0
-1 1246 0 0
2501 -1 213 -127
2703 -1 65 -842
2503 -1 131 2
2599 -1 182 -1
2505 -1 130 -66
2557 -1 249 -10
2507 -1 173 13
2531 -1 245 -9
2509 -1 159 -26
2521 -1 225 -112
2511 -1 38 305
2517 -1 132 13
2513 -1 245 -55
2515 -1 234 -102
-1 1247 0 0
-1 1248 0 0
-1 1249 0 0
-1 1250 0 0
2519 -1 75 -141
-1 1253 0 0
-1 1251 0 0
-1 1252 0 0
2523 -1 143 14
2529 -1 255 11
2525 -1 240 -76
2527 -1 229 46
-1 1254 0 0
-1 1255 0 0
-1 1256 0 0
-1 1257 0 0
-1 1258 0 0
-1 1259 0 0
2533 -1 13 -171
2545 -1 131 -5
2535 -1 219 -129
2539 -1 67 154
-1 1260 0 0
2537 -1 173 -77
-1 1261 0 0
-1 1262 0 0
2541 -1 14 -33
2543 -1 25 238
-1 1263 0 0
-1 1264 0 0
-1 1265 0 0
-1 1266 0 0
2547 -1 136 3
2553 -1 38 122
2549 -1 238 -38
2551 -1 33 41
-1 1267 0 0
-1 1268 0 0
-1 1269 0 0
-1 1270 0 0
-1 1271 0 0
2555 -1 124 139
-1 1272 0 0
-1 1273 0 0
2559 -1 110 -36
2587 -1 73 27
2561 -1 180 2
2575 -1 116 93
2563 -1 222 3
2569 -1 147 -97
2565 -1 212 -74
2567 -1 201 8
-1 1274 0 0
-1 1275 0 0
-1 1276 0 0
-1 1277 0 0
2571 -1 186 -104
2573 -1 16 -127
-1 1278 0 0
-1 1279 0 0
-1 1280 0 0
-1 1281 0 0
2577 -1 111 119
2583 -1 118 -25
2579 -1 235 -91
2581 -1 124 135
-1 1282 0 0
-1 1283 0 0
-1 1284 0 0
-1 1285 0 0
2585 -1 38 168
-1 1288 0 0
-1 1286 0 0
-1 1287 0 0
2589 -1 155 -19
-1 1295 0 0
2591 -1 229 -3
2593 -1 18 52
-1 1289 0 0
-1 1290 0 0
2595 -1 7 6
2597 -1 246 74
-1 1291 0 0
-1 1292 0 0
-1 1293 0 0
-1 1294 0 0
2601 -1 157 -17
2659 -1 46 -18
2603 -1 146 -29
2631 -1 229 -82
2605 -1 221 -16
2619 -1 229 -87
2607 -1 227 -11
2613 -1 173 -82
2609 -1 157 -129
2611 -1 85 126
-1 1296 0 0
-1 1297 0 0
-1 1298 0 0
-1 1299 0 0
2615 -1 55 -106
2617 -1 142 -10
-1 1300 0 0
-1 1301 0 0
-1 1302 0 0
-1 1303 0 0
2621 -1 150 62
2625 -1 220 -84
2623 -1 127 -170
-1 1306 0 0
-1 1304 0 0
-1 1305 0 0
2627 -1 141 -4
2629 -1 168 -106
-1 1307 0 0
-1 1308 0 0
-1 1309 0 0
-1 1310 0 0
2633 -1 165 -7
2645 -1 141 12
2635 -1 29 127
2641 -1 236 74
2637 -1 87 -117
2639 -1 87 -114
-1 1311 0 0
-1 1312 0 0
-1 1313 0 0
-1 1314 0 0
2643 -1 90 117
-1 1317 0 0
-1 1315 0 0
-1 1316 0 0
2647 -1 145 -86
2653 -1 228 33
2649 -1 248 22
2651 -1 178 21
-1 1318 0 0
-1 1319 0 0
-1 1320 0 0
-1 1321 0 0
2655 -1 225 -113
2657 -1 213 -54
-1 1322 0 0
-1 1323 0 0
-1 1324 0 0
-1 1325 0 0
2661 -1 38 59
2679 -1 144 -10
2663 -1 143 -4
2671 -1 20 -253
2665 -1 174 -66
2667 -1 38 -125
-1 1326 0 0
-1 1327 0 0
-1 1328 0 0
2669 -1 39 105
-1 1329 0 0
-1 1330 0 0
-1 1331 0 0
2673 -1 186 -40
2675 -1 109 -98
2677 -1 223 32
-1 1332 0 0
-1 1333 0 0
-1 1334 0 0
-1 1335 0 0
2681 -1 132 -99
2695 -1 229 147
2683 -1 240 -19
2689 -1 128 -137
2685 -1 56 138
2687 -1 172 -97
-1 1336 0 0
-1 1337 0 0
-1 1338 0 0
-1 1339 0 0
2691 -1 218 -50
2693 -1 197 -91
-1 1340 0 0
-1 1341 0 0
-1 1342 0 0
-1 1343 0 0
2697 -1 40 104
-1 1348 0 0
2699 -1 213 -83
2701 -1 102 96
-1 1344 0 0
-1 1345 0 0
-1 1346 0 0
-1 1347 0 0
2705 -1 162 88
2733 -1 56 594
2707 -1 63 379
2727 -1 148 11
2709 -1 56 647
2721 -1 247 -179
2711 -1 37 -238
-1 1355 0 0
2713 -1 33 226
2715 -1 210 -22
-1 1349 0 0
-1 1350 0 0
2717 -1 116 260
2719 -1 242 -93
-1 1351 0 0
-1 1352 0 0
-1 1353 0 0
-1 1354 0 0
-1 1356 0 0
2723 -1 38 365
-1 1357 0 0
2725 -1 122 -1159
-1 1358 0 0
-1 1359 0 0
2729 -1 54 205
-1 1363 0 0
-1 1360 0 0
2731 -1 109 -1175
-1 1361 0 0
-1 1362 0 0
2735 -1 188 0
2779 -1 2 884
2737 -1 189 55
2755 -1 51 392
2739 -1 130 -37
2751 -1 38 206
2741 -1 137 -20
2747 -1 142 -144
2743 -1 250 -37
2745 -1 233 -77
-1 1364 0 0
-1 1365 0 0
-1 1366 0 0
-1 1367 0 0
-1 1368 0 0
2749 -1 153 -72
-1 1369 0 0
-1 1370 0 0
2753 -1 215 -56
-1 1373 0 0
-1 1371 0 0
-1 1372 0 0
2757 -1 65 -67
2767 -1 92 509
2759 -1 189 75
2763 -1 104 30
2761 -1 186 -59
-1 1376 0 0
-1 1374 0 0
-1 1375 0 0
2765 -1 105 -75
-1 1379 0 0
-1 1377 0 0
-1 1378 0 0
2769 -1 242 -37
2775 -1 226 34
2771 -1 239 -89
2773 -1 255 41
-1 1380 0 0
-1 1381 0 0
-1 1382 0 0
-1 1383 0 0
2777 -1 151 12
-1 1386 0 0
-1 1384 0 0
-1 1385 0 0
2781 -1 169 -24
2795 -1 227 -5
2783 -1 44 328
2789 -1 124 670
-1 1387 0 0
2785 -1 75 -131
-1 1388 0 0
2787 -1 195 -44
-1 1389 0 0
-1 1390 0 0
2791 -1 79 -82
2793 -1 157 -25
-1 1391 0 0
-1 1392 0 0
-1 1393 0 0
-1 1394 0 0
-1 1395 0 0
-1 1396 0 0
2799 -1 235 107
4709 -1 195 -74
2801 -1 114 -92
4315 -1 153 5
2803 -1 198 -49
3293 -1 107 63
2805 -1 140 64
2919 -1 78 229
2807 -1 158 -91
2897 -1 90 -138
2809 -1 101 -287
2839 -1 179 -52
2811 -1 218 6
2829 -1 85 -98
2813 -1 91 -14
2821 -1 96 -157
2815 -1 100 -27
2819 -1 241 42
-1 1397 0 0
2817 -1 3 -108
-1 1398 0 0
-1 1399 0 0
-1 1400 0 0
-1 1401 0 0
2823 -1 234 42
2825 -1 58 -1382
-1 1402 0 0
-1 1403 0 0
2827 -1 84 -23
-1 1406 0 0
-1 1404 0 0
-1 1405 0 0
2831 -1 130 -71
2835 -1 219 18
-1 1407 0 0
2833 -1 143 1
-1 1408 0 0
-1 1409 0 0
2837 -1 141 -28
-1 1412 0 0
-1 1410 0 0
-1 1411 0 0
2841 -1 146 20
2873 -1 202 -105
2843 -1 241 6
2861 -1 151 -13
2845 -1 25 -1299
2855 -1 176 -10
2847 -1 191 25
2851 -1 83 -95
2849 -1 164 -116
-1 1415 0 0
-1 1413 0 0
-1 1414 0 0
2853 -1 244 -69
-1 1418 0 0
-1 1416 0 0
-1 1417 0 0
2857 -1 160 -8
2859 -1 84 -17
-1 1419 0 0
-1 1420 0 0
-1 1421 0 0
-1 1422 0 0
2863 -1 85 -1529
2865 -1 250 -11
-1 1423 0 0
-1 1424 0 0
2867 -1 202 -7
2869 -1 169 -97
-1 1425 0 0
-1 1426 0 0
2871 -1 177 -47
-1 1429 0 0
-1 1427 0 0
-1 1428 0 0
2875 -1 34 -33
2879 -1 172 28
2877 -1 109 -200
-1 1432 0 0
-1 1430 0 0
-1 1431 0 0
2881 -1 165 -37
2893 -1 132 66
2883 -1 88 8
2885 -1 253 15
-1 1433 0 0
-1 1434 0 0
2887 -1 27 -192
-1 1439 0 0
2889 -1 192 -28
2891 -1 159 18
-1 1435 0 0
-1 1436 0 0
-1 1437 0 0
-1 1438 0 0
2895 -1 113 -1275
-1 1442 0 0
-1 1440 0 0
-1 1441 0 0
2899 -1 227 -84
2917 -1 39 -1256
2901 -1 24 -1630
2909 -1 214 101
2903 -1 119 -134
2907 -1 233 -114
-1 1443 0 0
2905 -1 81 -40
-1 1444 0 0
-1 1445 0 0
-1 1446 0 0
-1 1447 0 0
2911 -1 57 -1314
2913 -1 186 -47
-1 1448 0 0
-1 1449 0 0
2915 -1 255 37
-1 1452 0 0
-1 1450 0 0
-1 1451 0 0
-1 1453 0 0
-1 1454 0 0
2921 -1 87 -15
3211 -1 78 493
2923 -1 255 51
3097 -1 2 302
2925 -1 75 -141
3047 -1 83 -1360
2927 -1 177 103
2987 -1 61 -370
2929 -1 83 -386
2957 -1 39 -720
2931 -1 174 94
2943 -1 28 -417
2933 -1 83 -816
2939 -1 113 -1522
2935 -1 75 -433
2937 -1 243 35
-1 1455 0 0
-1 1456 0 0
-1 1457 0 0
-1 1458 0 0
2941 -1 102 -1986
-1 1461 0 0
-1 1459 0 0
-1 1460 0 0
2945 -1 73 23
2951 -1 51 60
2947 -1 46 25
2949 -1 131 -14
-1 1462 0 0
-1 1463 0 0
-1 1464 0 0
-1 1465 0 0
2953 -1 34 -539
2955 -1 51 261
-1 1466 0 0
-1 1467 0 0
-1 1468 0 0
-1 1469 0 0
2959 -1 53 16
2973 -1 51 -208
2961 -1 75 -679
2967 -1 138 143
2963 -1 51 -1156
2965 -1 144 39
-1 1470 0 0
-1 1471 0 0
-1 1472 0 0
-1 1473 0 0
2969 -1 39 -1097
2971 -1 32 -682
-1 1474 0 0
-1 1475 0 0
-1 1476 0 0
-1 1477 0 0
2975 -1 92 -425
2981 -1 186 137
2977 -1 92 -587
2979 -1 66 -403
-1 1478 0 0
-1 1479 0 0
-1 1480 0 0
-1 1481 0 0
2983 -1 103 -456
2985 -1 51 -143
-1 1482 0 0
-1 1483 0 0
-1 1484 0 0
-1 1485 0 0
2989 -1 130 41
3019 -1 164 168
2991 -1 194 30
3005 -1 135 95
2993 -1 192 -29
2999 -1 202 48
2995 -1 155 -59
2997 -1 242 23
-1 1486 0 0
-1 1487 0 0
-1 1488 0 0
-1 1489 0 0
3001 -1 83 -565
3003 -1 94 -958
-1 1490 0 0
-1 1491 0 0
-1 1492 0 0
-1 1493 0 0
3007 -1 61 -1299
3013 -1 111 -947
3009 -1 172 108
3011 -1 69 -261
-1 1494 0 0
-1 1495 0 0
-1 1496 0 0
-1 1497 0 0
3015 -1 181 166
3017 -1 48 -713
-1 1498 0 0
-1 1499 0 0
-1 1500 0 0
-1 1501 0 0
3021 -1 4 -37
3035 -1 18 -252
3023 -1 107 -1838
3029 -1 38 105
3025 -1 95 -549
3027 -1 152 -13
-1 1502 0 0
-1 1503 0 0
-1 1504 0 0
-1 1505 0 0
3031 -1 237 0
3033 -1 188 51
-1 1506 0 0
-1 1507 0 0
-1 1508 0 0
-1 1509 0 0
3037 -1 141 185
3043 -1 138 214
3039 -1 179 158
3041 -1 244 28
-1 1510 0 0
-1 1511 0 0
-1 1512 0 0
-1 1513 0 0
3045 -1 38 -89
-1 1516 0 0
-1 1514 0 0
-1 1515 0 0
3049 -1 192 136
3079 -1 201 222
3051 -1 177 -45
3067 -1 238 20
3053 -1 178 109
3057 -1 132 116
3055 -1 191 48
-1 1519 0 0
-1 1517 0 0
-1 1518 0 0
3059 -1 167 87
3065 -1 199 -3
3061 -1 229 13
3063 -1 185 4
-1 1520 0 0
-1 1521 0 0
-1 1522 0 0
-1 1523 0 0
-1 1524 0 0
-1 1525 0 0
3069 -1 153 -13
-1 1532 0 0
3071 -1 128 122
3075 -1 84 -10
3073 -1 248 39
-1 1528 0 0
-1 1526 0 0
-1 1527 0 0
3077 -1 224 5
-1 1531 0 0
-1 1529 0 0
-1 1530 0 0
3081 -1 83 -386
-1 1542 0 0
3083 -1 166 -25
3089 -1 138 195
-1 1533 0 0
3085 -1 167 87
3087 -1 2 -217
-1 1536 0 0
-1 1534 0 0
-1 1535 0 0
3091 -1 9 -57
-1 1541 0 0
3093 -1 163 53
3095 -1 248 67
-1 1537 0 0
-1 1538 0 0
-1 1539 0 0
-1 1540 0 0
3099 -1 75 -636
3179 -1 21 842
3101 -1 75 -1483
3145 -1 61 -309
3103 -1 114 -155
3125 -1 172 32
3105 -1 173 42
3117 -1 222 9
3107 -1 153 -49
3111 -1 40 0
-1 1543 0 0
3109 -1 123 227
-1 1544 0 0
-1 1545 0 0
3113 -1 21 23
3115 -1 18 -1772
-1 1546 0 0
-1 1547 0 0
-1 1548 0 0
-1 1549 0 0
3119 -1 54 -43
3123 -1 236 25
-1 1550 0 0
3121 -1 220 81
-1 1551 0 0
-1 1552 0 0
-1 1553 0 0
-1 1554 0 0
3127 -1 195 146
3137 -1 16 -203
3129 -1 0 -326
3135 -1 226 39
3131 -1 30 -6
3133 -1 194 136
-1 1555 0 0
-1 1556 0 0
-1 1557 0 0
-1 1558 0 0
-1 1559 0 0
-1 1560 0 0
3139 -1 135 36
3141 -1 249 175
-1 1561 0 0
-1 1562 0 0
3143 -1 114 -1076
-1 1565 0 0
-1 1563 0 0
-1 1564 0 0
3147 -1 65 -54
3163 -1 138 133
3149 -1 75 -357
3155 -1 177 26
-1 1566 0 0
3151 -1 198 60
3153 -1 49 -27
-1 1569 0 0
-1 1567 0 0
-1 1568 0 0
3157 -1 52 12
3159 -1 248 14
-1 1570 0 0
-1 1571 0 0
3161 -1 193 80
-1 1574 0 0
-1 1572 0 0
-1 1573 0 0
3165 -1 51 -93
3177 -1 57 -253
3167 -1 75 -45
3173 -1 23 240
3169 -1 71 32
3171 -1 141 19
-1 1575 0 0
-1 1576 0 0
-1 1577 0 0
-1 1578 0 0
3175 -1 213 -10
-1 1581 0 0
-1 1579 0 0
-1 1580 0 0
-1 1582 0 0
-1 1583 0 0
3181 -1 82 -1097
3203 -1 191 52
3183 -1 238 54
3187 -1 2 763
3185 -1 15 499
-1 1586 0 0
-1 1584 0 0
-1 1585 0 0
3189 -1 202 7
3201 -1 53 6
3191 -1 173 32
3197 -1 212 13
3193 -1 45 15
3195 -1 245 18
-1 1587 0 0
-1 1588 0 0
-1 1589 0 0
-1 1590 0 0
3199 -1 135 91
-1 1593 0 0
-1 1591 0 0
-1 1592 0 0
-1 1594 0 0
-1 1595 0 0
3205 -1 173 20
3209 -1 101 103
-1 1596 0 0
3207 -1 21 1257
-1 1597 0 0
-1 1598 0 0
-1 1599 0 0
-1 1600 0 0
3213 -1 90 -1144
3243 -1 34 958
3215 -1 29 89
3221 -1 83 -74
3217 -1 98 434
-1 1604 0 0
3219 -1 195 9
-1 1603 0 0
-1 1601 0 0
-1 1602 0 0
3223 -1 218 24
3237 -1 159 22
3225 -1 83 -128
3233 -1 0 397
3227 -1 46 39
3231 -1 25 -95
3229 -1 78 421
-1 1607 0 0
-1 1605 0 0
-1 1606 0 0
-1 1608 0 0
-1 1609 0 0
3235 -1 149 57
-1 1612 0 0
-1 1610 0 0
-1 1611 0 0
3239 -1 75 -245
-1 1616 0 0
3241 -1 178 15
-1 1615 0 0
-1 1613 0 0
-1 1614 0 0
3245 -1 145 31
3283 -1 128 0
3247 -1 29 101
3271 -1 188 -2
3249 -1 38 755
3265 -1 77 107
3251 -1 129 195
3259 -1 59 -1079
3253 -1 153 9
-1 1621 0 0
3255 -1 203 53
3257 -1 31 803
-1 1617 0 0
-1 1618 0 0
-1 1619 0 0
-1 1620 0 0
-1 1622 0 0
3261 -1 131 51
3263 -1 99 -87
-1 1625 0 0
-1 1623 0 0
-1 1624 0 0
3267 -1 98 798
-1 1629 0 0
3269 -1 111 -1256
-1 1628 0 0
-1 1626 0 0
-1 1627 0 0
3273 -1 15 12
3275 -1 194 32
-1 1630 0 0
-1 1631 0 0
3277 -1 213 37
3281 -1 146 16
-1 1632 0 0
3279 -1 27 -21
-1 1633 0 0
-1 1634 0 0
-1 1635 0 0
-1 1636 0 0
3285 -1 143 66
3287 -1 232 32
-1 1637 0 0
-1 1638 0 0
3289 -1 226 38
-1 1642 0 0
-1 1639 0 0
3291 -1 70 -1183
-1 1640 0 0
-1 1641 0 0
3295 -1 175 6
3979 -1 198 13
3297 -1 30 -88
3665 -1 24 0
3299 -1 246 -23
3483 -1 75 -48
3301 -1 85 -43
3385 -1 175 -4
3303 -1 173 -75
3341 -1 132 68
3305 -1 165 5
3319 -1 207 -26
3307 -1 210 11
3313 -1 241 69
3309 -1 39 -7
-1 1646 0 0
3311 -1 132 -29
-1 1645 0 0
-1 1643 0 0
-1 1644 0 0
3315 -1 4 -1578
-1 1650 0 0
-1 1647 0 0
3317 -1 144 -39
-1 1648 0 0
-1 1649 0 0
3321 -1 212 61
3333 -1 221 -109
3323 -1 68 0
3329 -1 196 -64
3325 -1 28 -112
3327 -1 215 -13
-1 1651 0 0
-1 1652 0 0
-1 1653 0 0
-1 1654 0 0
-1 1655 0 0
3331 -1 237 85
-1 1656 0 0
-1 1657 0 0
-1 1658 0 0
3335 -1 134 -27
3337 -1 188 -24
3339 -1 234 -12
-1 1659 0 0
-1 1660 0 0
-1 1661 0 0
-1 1662 0 0
3343 -1 246 -68
3369 -1 134 -22
3345 -1 167 -2
3359 -1 225 62
3347 -1 2 -44
3353 -1 239 42
3349 -1 164 -75
3351 -1 32 -115
-1 1663 0 0
-1 1664 0 0
-1 1665 0 0
-1 1666 0 0
3355 -1 36 -24
3357 -1 21 -63
-1 1667 0 0
-1 1668 0 0
-1 1669 0 0
-1 1670 0 0
3361 -1 203 -42
3367 -1 144 -21
3363 -1 70 -607
3365 -1 85 66
-1 1671 0 0
-1 1672 0 0
-1 1673 0 0
-1 1674 0 0
-1 1675 0 0
-1 1676 0 0
3371 -1 239 66
3381 -1 146 121
3373 -1 182 -52
3375 -1 126 0
-1 1677 0 0
-1 1678 0 0
3377 -1 220 -11
3379 -1 47 45
-1 1679 0 0
-1 1680 0 0
-1 1681 0 0
-1 1682 0 0
3383 -1 227 -45
-1 1685 0 0
-1 1683 0 0
-1 1684 0 0
3387 -1 29 65
3433 -1 241 7
3389 -1 97 -18
3415 -1 234 55
3391 -1 249 -36
3405 -1 186 -83
3393 -1 205 -6
3399 -1 186 -14
3395 -1 227 -80
3397 -1 141 -32
-1 1686 0 0
-1 1687 0 0
-1 1688 0 0
-1 1689 0 0
3401 -1 189 51
3403 -1 130 64
-1 1690 0 0
-1 1691 0 0
-1 1692 0 0
-1 1693 0 0
3407 -1 210 107
3409 -1 247 29
-1 1694 0 0
-1 1695 0 0
3411 -1 189 23
3413 -1 162 29
-1 1696 0 0
-1 1697 0 0
-1 1698 0 0
-1 1699 0 0
3417 -1 149 29
3429 -1 233 -19
3419 -1 246 0
3425 -1 202 65
3421 -1 237 -13
3423 -1 197 -45
-1 1700 0 0
-1 1701 0 0
-1 1702 0 0
-1 1703 0 0
3427 -1 51 106
-1 1706 0 0
-1 1704 0 0
-1 1705 0 0
3431 -1 114 10
-1 1709 0 0
-1 1707 0 0
-1 1708 0 0
3435 -1 210 5
3465 -1 27 274
3437 -1 188 0
3451 -1 99 0
3439 -1 133 -80
3445 -1 177 2
3441 -1 240 0
3443 -1 75 -144
-1 1710 0 0
-1 1711 0 0
-1 1712 0 0
-1 1713 0 0
3447 -1 210 0
3449 -1 162 -127
-1 1714 0 0
-1 1715 0 0
-1 1716 0 0
-1 1717 0 0
3453 -1 132 -106
3459 -1 128 21
3455 -1 213 -49
3457 -1 71 7
-1 1718 0 0
-1 1719 0 0
-1 1720 0 0
-1 1721 0 0
3461 -1 16 -828
3463 -1 99 21
-1 1722 0 0
-1 1723 0 0
-1 1724 0 0
-1 1725 0 0
3467 -1 241 84
3481 -1 172 7
3469 -1 232 -8
3475 -1 157 74
3471 -1 139 -32
3473 -1 178 9
-1 1726 0 0
-1 1727 0 0
-1 1728 0 0
-1 1729 0 0
3477 -1 232 17
3479 -1 124 30
-1 1730 0 0
-1 1731 0 0
-1 1732 0 0
-1 1733 0 0
-1 1734 0 0
-1 1735 0 0
3485 -1 0 349
3557 -1 203 1
3487 -1 21 -51
3539 -1 77 -40
3489 -1 128 75
3513 -1 178 25
3491 -1 130 23
3505 -1 116 20
3493 -1 182 -6
3499 -1 186 56
3495 -1 101 -670
3497 -1 196 6
-1 1736 0 0
-1 1737 0 0
-1 1738 0 0
-1 1739 0 0
3501 -1 109 -147
3503 -1 63 18
-1 1740 0 0
-1 1741 0 0
-1 1742 0 0
-1 1743 0 0
3507 -1 85 0
3511 -1 220 77
3509 -1 70 -79
-1 1746 0 0
-1 1744 0 0
-1 1745 0 0
-1 1747 0 0
-1 1748 0 0
3515 -1 96 256
3527 -1 127 -59
3517 -1 53 7
3523 -1 119 1012
3519 -1 230 -16
3521 -1 47 15
-1 1749 0 0
-1 1750 0 0
-1 1751 0 0
-1 1752 0 0
3525 -1 24 -17
-1 1755 0 0
-1 1753 0 0
-1 1754 0 0
3529 -1 97 39
3535 -1 52 -1261
3531 -1 12 -94
3533 -1 163 35
-1 1756 0 0
-1 1757 0 0
-1 1758 0 0
-1 1759 0 0
-1 1760 0 0
3537 -1 14 154
-1 1761 0 0
-1 1762 0 0
3541 -1 21 -120
3547 -1 155 72
-1 1763 0 0
3543 -1 63 -18
-1 1764 0 0
3545 -1 9 49
-1 1765 0 0
-1 1766 0 0
3549 -1 127 165
3555 -1 27 216
3551 -1 154 18
-1 1770 0 0
3553 -1 29 -26
-1 1769 0 0
-1 1767 0 0
-1 1768 0 0
-1 1771 0 0
-1 1772 0 0
3559 -1 197 0
3611 -1 124 0
3561 -1 175 -5
3585 -1 27 6
3563 -1 222 55
3573 -1 113 0
3565 -1 245 -105
3571 -1 249 -56
3567 -1 19 8
3569 -1 16 -11
-1 1773 0 0
-1 1774 0 0
-1 1775 0 0
-1 1776 0 0
-1 1777 0 0
-1 1778 0 0
3575 -1 186 0
3581 -1 16 -38
3577 -1 197 -40
3579 -1 5 15
-1 1779 0 0
-1 1780 0 0
-1 1781 0 0
-1 1782 0 0
-1 1783 0 0
3583 -1 62 -25
-1 1784 0 0
-1 1785 0 0
3587 -1 118 7
3599 -1 72 -70
3589 -1 224 3
3595 -1 141 -26
3591 -1 157 4
3593 -1 0 0
-1 1786 0 0
-1 1787 0 0
-1 1788 0 0
-1 1789 0 0
-1 1790 0 0
3597 -1 88 23
-1 1791 0 0
-1 1792 0 0
3601 -1 172 -5
3607 -1 7 -38
3603 -1 177 -2
3605 -1 246 -9
-1 1793 0 0
-1 1794 0 0
-1 1795 0 0
-1 1796 0 0
3609 -1 254 4
-1 1799 0 0
-1 1797 0 0
-1 1798 0 0
3613 -1 194 -5
3641 -1 210 21
3615 -1 142 10
3629 -1 73 27
3617 -1 2 42
3623 -1 241 -72
3619 -1 241 -38
3621 -1 146 -7
-1 1800 0 0
-1 1801 0 0
-1 1802 0 0
-1 1803 0 0
3625 -1 251 17
3627 -1 203 72
-1 1804 0 0
-1 1805 0 0
-1 1806 0 0
-1 1807 0 0
3631 -1 211 25
3637 -1 132 -56
3633 -1 165 -79
3635 -1 180 3
-1 1808 0 0
-1 1809 0 0
-1 1810 0 0
-1 1811 0 0
-1 1812 0 0
3639 -1 225 -5
-1 1813 0 0
-1 1814 0 0
3643 -1 108 -24
3657 -1 43 87
3645 -1 124 29
3651 -1 182 -12
3647 -1 108 -27
3649 -1 45 7
-1 1815 0 0
-1 1816 0 0
-1 1817 0 0
-1 1818 0 0
3653 -1 154 4
3655 -1 115 12
-1 1819 0 0
-1 1820 0 0
-1 1821 0 0
-1 1822 0 0
3659 -1 145 63
-1 1827 0 0
3661 -1 34 29
3663 -1 190 6
-1 1823 0 0
-1 1824 0 0
-1 1825 0 0
-1 1826 0 0
3667 -1 239 97
3827 -1 16 -14
3669 -1 96 -25
3775 -1 52 45
3671 -1 178 29
3727 -1 90 13
3673 -1 138 38
3703 -1 237 67
3675 -1 197 -64
3689 -1 28 -484
3677 -1 152 -100
3683 -1 75 -164
3679 -1 65 -1920
3681 -1 35 85
-1 1828 0 0
-1 1829 0 0
-1 1830 0 0
-1 1831 0 0
3685 -1 245 -84
3687 -1 88 53
-1 1832 0 0
-1 1833 0 0
-1 1834 0 0
-1 1835 0 0
3691 -1 88 -15
3697 -1 219 15
3693 -1 165 -41
3695 -1 169 142
-1 1836 0 0
-1 1837 0 0
-1 1838 0 0
-1 1839 0 0
3699 -1 229 92
3701 -1 213 80
-1 1840 0 0
-1 1841 0 0
-1 1842 0 0
-1 1843 0 0
3705 -1 123 17
3717 -1 138 13
3707 -1 243 213
3711 -1 254 -16
3709 -1 158 48
-1 1846 0 0
-1 1844 0 0
-1 1845 0 0
3713 -1 202 102
3715 -1 167 29
-1 1847 0 0
-1 1848 0 0
-1 1849 0 0
-1 1850 0 0
3719 -1 88 126
3723 -1 31 0
3721 -1 165 142
-1 1853 0 0
-1 1851 0 0
-1 1852 0 0
3725 -1 85 50
-1 1856 0 0
-1 1854 0 0
-1 1855 0 0
3729 -1 108 52
3759 -1 141 -29
3731 -1 120 0
3745 -1 182 61
3733 -1 75 -275
3739 -1 132 -8
3735 -1 175 61
3737 -1 109 -45
-1 1857 0 0
-1 1858 0 0
-1 1859 0 0
-1 1860 0 0
3741 -1 218 2
3743 -1 39 22
-1 1861 0 0
-1 1862 0 0
-1 1863 0 0
-1 1864 0 0
3747 -1 108 323
3753 -1 25 -63
3749 -1 149 26
3751 -1 247 39
-1 1865 0 0
-1 1866 0 0
-1 1867 0 0
-1 1868 0 0
3755 -1 16 449
3757 -1 108 505
-1 1869 0 0
-1 1870 0 0
-1 1871 0 0
-1 1872 0 0
3761 -1 179 134
3767 -1 133 95
3763 -1 183 116
-1 1876 0 0
3765 -1 182 154
-1 1875 0 0
-1 1873 0 0
-1 1874 0 0
3769 -1 184 -21
-1 1881 0 0
3771 -1 173 130
3773 -1 220 25
-1 1877 0 0
-1 1878 0 0
-1 1879 0 0
-1 1880 0 0
3777 -1 213 132
3815 -1 21 107
3779 -1 241 152
3803 -1 75 -134
3781 -1 183 77
3793 -1 2 11
3783 -1 153 105
3787 -1 186 100
3785 -1 2 -511
-1 1884 0 0
-1 1882 0 0
-1 1883 0 0
3789 -1 158 60
3791 -1 75 -1144
-1 1885 0 0
-1 1886 0 0
-1 1887 0 0
-1 1888 0 0
3795 -1 47 -38
3799 -1 144 119
-1 1889 0 0
3797 -1 153 5
-1 1890 0 0
-1 1891 0 0
-1 1892 0 0
3801 -1 146 53
-1 1893 0 0
-1 1894 0 0
3805 -1 164 10
3809 -1 153 6
3807 -1 115 -34
-1 1897 0 0
-1 1895 0 0
-1 1896 0 0
3811 -1 141 9
3813 -1 20 -74
-1 1898 0 0
-1 1899 0 0
-1 1900 0 0
-1 1901 0 0
3817 -1 227 15
3823 -1 67 42
3819 -1 130 67
3821 -1 16 -192
-1 1902 0 0
-1 1903 0 0
-1 1904 0 0
-1 1905 0 0
-1 1906 0 0
3825 -1 144 -3
-1 1907 0 0
-1 1908 0 0
3829 -1 40 -24
3909 -1 228 3
3831 -1 228 -101
3869 -1 136 48
3833 -1 31 -321
3841 -1 77 -513
3835 -1 47 -459
3839 -1 34 -75
-1 1909 0 0
3837 -1 130 -144
-1 1910 0 0
-1 1911 0 0
-1 1912 0 0
-1 1913 0 0
3843 -1 213 124
3855 -1 121 -214
3845 -1 254 101
3851 -1 141 141
3847 -1 55 -581
3849 -1 132 107
-1 1914 0 0
-1 1915 0 0
-1 1916 0 0
-1 1917 0 0
3853 -1 135 83
-1 1920 0 0
-1 1918 0 0
-1 1919 0 0
3857 -1 228 91
3863 -1 183 33
3859 -1 204 3
3861 -1 198 44
-1 1921 0 0
-1 1922 0 0
-1 1923 0 0
-1 1924 0 0
3865 -1 2 -88
3867 -1 213 4
-1 1925 0 0
-1 1926 0 0
-1 1927 0 0
-1 1928 0 0
3871 -1 108 -347
3895 -1 132 146
3873 -1 253 -34
3883 -1 189 29
3875 -1 87 -1600
3877 -1 183 36
-1 1929 0 0
-1 1930 0 0
3879 -1 120 40
3881 -1 165 69
-1 1931 0 0
-1 1932 0 0
-1 1933 0 0
-1 1934 0 0
3885 -1 27 -43
3891 -1 247 51
3887 -1 251 41
3889 -1 70 -29
-1 1935 0 0
-1 1936 0 0
-1 1937 0 0
-1 1938 0 0
3893 -1 178 -10
-1 1941 0 0
-1 1939 0 0
-1 1940 0 0
3897 -1 159 50
3907 -1 158 61
3899 -1 28 -244
3905 -1 129 25
3901 -1 184 47
3903 -1 158 27
-1 1942 0 0
-1 1943 0 0
-1 1944 0 0
-1 1945 0 0
-1 1946 0 0
-1 1947 0 0
-1 1948 0 0
-1 1949 0 0
3911 -1 107 0
3947 -1 72 141
3913 -1 205 -92
3927 -1 141 117
-1 1950 0 0
3915 -1 31 139
3917 -1 52 -36
3923 -1 42 -27
3919 -1 153 65
3921 -1 61 146
-1 1951 0 0
-1 1952 0 0
-1 1953 0 0
-1 1954 0 0
-1 1955 0 0
3925 -1 194 1
-1 1956 0 0
-1 1957 0 0
3929 -1 234 -60
3941 -1 46 45
3931 -1 228 -140
3935 -1 4 28
-1 1958 0 0
3933 -1 149 -17
-1 1959 0 0
-1 1960 0 0
3937 -1 83 0
3939 -1 28 -125
-1 1961 0 0
-1 1962 0 0
-1 1963 0 0
-1 1964 0 0
-1 1965 0 0
3943 -1 184 135
-1 1966 0 0
3945 -1 15 -116
-1 1967 0 0
-1 1968 0 0
3949 -1 175 97
3967 -1 71 464
3951 -1 241 95
3961 -1 135 178
3953 -1 0 395
3957 -1 212 28
3955 -1 200 3
-1 1971 0 0
-1 1969 0 0
-1 1970 0 0
3959 -1 166 16
-1 1974 0 0
-1 1972 0 0
-1 1973 0 0
3963 -1 128 86
-1 1978 0 0
3965 -1 194 89
-1 1977 0 0
-1 1975 0 0
-1 1976 0 0
3969 -1 202 26
3975 -1 170 81
3971 -1 18 320
-1 1982 0 0
3973 -1 131 26
-1 1981 0 0
-1 1979 0 0
-1 1980 0 0
3977 -1 24 44
-1 1985 0 0
-1 1983 0 0
-1 1984 0 0
3981 -1 142 -68
4161 -1 156 117
3983 -1 85 166
4019 -1 72 0
3985 -1 186 -143
4007 -1 129 -71
3987 -1 219 -89
3989 -1 135 -108
-1 1986 0 0
-1 1987 0 0
3991 -1 75 -237
3999 -1 48 81
-1 1988 0 0
3993 -1 29 51
3995 -1 161 -123
3997 -1 186 -89
-1 1989 0 0
-1 1990 0 0
-1 1991 0 0
-1 1992 0 0
4001 -1 242 11
-1 1997 0 0
4003 -1 211 -101
-1 1996 0 0
-1 1993 0 0
4005 -1 5 0
-1 1994 0 0
-1 1995 0 0
4009 -1 125 114
4015 -1 250 -9
4011 -1 213 0
4013 -1 167 -6
-1 1998 0 0
-1 1999 0 0
-1 2000 0 0
-1 2001 0 0
-1 2002 0 0
4017 -1 70 -102
-1 2003 0 0
-1 2004 0 0
4021 -1 145 -15
4097 -1 72 374
4023 -1 124 559
4055 -1 130 27
4025 -1 130 41
4047 -1 255 34
4027 -1 183 -6
4039 -1 151 77
4029 -1 239 -89
4033 -1 92 177
-1 2005 0 0
4031 -1 47 -28
-1 2006 0 0
-1 2007 0 0
4035 -1 131 0
4037 -1 30 -140
-1 2008 0 0
-1 2009 0 0
-1 2010 0 0
-1 2011 0 0
4041 -1 85 75
-1 2016 0 0
4043 -1 238 -16
4045 -1 145 -31
-1 2012 0 0
-1 2013 0 0
-1 2014 0 0
-1 2015 0 0
4049 -1 161 77
-1 2021 0 0
4051 -1 167 -48
-1 2020 0 0
-1 2017 0 0
4053 -1 194 -9
-1 2018 0 0
-1 2019 0 0
4057 -1 132 -31
4083 -1 143 -41
4059 -1 241 -109
4069 -1 21 -80
4061 -1 50 -24
4065 -1 25 455
-1 2022 0 0
4063 -1 24 77
-1 2023 0 0
-1 2024 0 0
4067 -1 202 -23
-1 2027 0 0
-1 2025 0 0
-1 2026 0 0
4071 -1 16 -48
4077 -1 15 0
4073 -1 60 -1858
4075 -1 16 119
-1 2028 0 0
-1 2029 0 0
-1 2030 0 0
-1 2031 0 0
4079 -1 114 178
4081 -1 2 467
-1 2032 0 0
-1 2033 0 0
-1 2034 0 0
-1 2035 0 0
4085 -1 143 -87
4089 -1 137 130
-1 2036 0 0
4087 -1 250 28
-1 2037 0 0
-1 2038 0 0
4091 -1 242 65
-1 2043 0 0
4093 -1 139 -56
4095 -1 85 134
-1 2039 0 0
-1 2040 0 0
-1 2041 0 0
-1 2042 0 0
4099 -1 123 -108
4143 -1 29 202
4101 -1 30 86
4119 -1 40 9
4103 -1 134 0
4117 -1 102 -1144
4105 -1 68 213
4111 -1 249 4
4107 -1 183 -3
4109 -1 202 -18
-1 2044 0 0
-1 2045 0 0
-1 2046 0 0
-1 2047 0 0
4113 -1 134 1
4115 -1 247 -34
-1 2048 0 0
-1 2049 0 0
-1 2050 0 0
-1 2051 0 0
-1 2052 0 0
-1 2053 0 0
4121 -1 39 54
4133 -1 4 244
4123 -1 186 25
4129 -1 4 140
4125 -1 75 -63
4127 -1 159 47
-1 2054 0 0
-1 2055 0 0
-1 2056 0 0
-1 2057 0 0
4131 -1 215 4
-1 2060 0 0
-1 2058 0 0
-1 2059 0 0
4135 -1 157 43
4141 -1 27 -92
4137 -1 119 84
4139 -1 39 116
-1 2061 0 0
-1 2062 0 0
-1 2063 0 0
-1 2064 0 0
-1 2065 0 0
-1 2066 0 0
4145 -1 111 1311
4157 -1 220 108
4147 -1 46 460
-1 2073 0 0
4149 -1 153 -37
4153 -1 125 -97
-1 2067 0 0
4151 -1 75 -968
-1 2068 0 0
-1 2069 0 0
-1 2070 0 0
4155 -1 39 -12
-1 2071 0 0
-1 2072 0 0
4159 -1 108 713
-1 2076 0 0
-1 2074 0 0
-1 2075 0 0
4163 -1 198 127
4283 -1 203 126
4165 -1 111 554
4241 -1 137 45
4167 -1 241 -73
4213 -1 111 1177
4169 -1 83 103
4183 -1 179 69
4171 -1 254 -7
4175 -1 195 -17
4173 -1 9 -29
-1 2079 0 0
-1 2077 0 0
-1 2078 0 0
4177 -1 146 -99
4179 -1 39 233
-1 2080 0 0
-1 2081 0 0
4181 -1 72 -446
-1 2084 0 0
-1 2082 0 0
-1 2083 0 0
4185 -1 78 -19
4199 -1 51 326
4187 -1 178 -20
4193 -1 30 46
4189 -1 167 58
4191 -1 221 52
-1 2085 0 0
-1 2086 0 0
-1 2087 0 0
-1 2088 0 0
4195 -1 35 -137
4197 -1 122 -19
-1 2089 0 0
-1 2090 0 0
-1 2091 0 0
-1 2092 0 0
4201 -1 249 51
4207 -1 186 86
4203 -1 79 -38
4205 -1 229 127
-1 2093 0 0
-1 2094 0 0
-1 2095 0 0
-1 2096 0 0
4209 -1 245 88
4211 -1 75 -1148
-1 2097 0 0
-1 2098 0 0
-1 2099 0 0
-1 2100 0 0
4215 -1 29 -55
4235 -1 56 765
4217 -1 0 166
4225 -1 177 105
4219 -1 211 131
4223 -1 100 431
4221 -1 48 22
-1 2103 0 0
-1 2101 0 0
-1 2102 0 0
-1 2104 0 0
-1 2105 0 0
4227 -1 172 -37
4233 -1 62 -25
4229 -1 133 15
4231 -1 25 815
-1 2106 0 0
-1 2107 0 0
-1 2108 0 0
-1 2109 0 0
-1 2110 0 0
-1 2111 0 0
4237 -1 110 -6
-1 2115 0 0
4239 -1 75 -490
-1 2114 0 0
-1 2112 0 0
-1 2113 0 0
4243 -1 92 363
4269 -1 137 122
4245 -1 233 145
4261 -1 229 7
4247 -1 178 -18
4255 -1 165 4
4249 -1 60 23
4251 -1 195 140
-1 2116 0 0
-1 2117 0 0
4253 -1 75 -539
-1 2120 0 0
-1 2118 0 0
-1 2119 0 0
4257 -1 216 82
4259 -1 183 170
-1 2121 0 0
-1 2122 0 0
-1 2123 0 0
-1 2124 0 0
-1 2125 0 0
4263 -1 20 116
4265 -1 131 144
4267 -1 228 32
-1 2126 0 0
-1 2127 0 0
-1 2128 0 0
-1 2129 0 0
4271 -1 249 0
4275 -1 212 11
-1 2130 0 0
4273 -1 105 22
-1 2131 0 0
-1 2132 0 0
4277 -1 181 136
4281 -1 147 18
4279 -1 65 -80
-1 2135 0 0
-1 2133 0 0
-1 2134 0 0
-1 2136 0 0
-1 2137 0 0
4285 -1 52 106
4299 -1 98 14
4287 -1 255 96
4293 -1 4 -113
-1 2138 0 0
4289 -1 152 30
-1 2139 0 0
4291 -1 232 1
-1 2140 0 0
-1 2141 0 0
4295 -1 221 108
4297 -1 39 195
-1 2142 0 0
-1 2143 0 0
-1 2144 0 0
-1 2145 0 0
4301 -1 211 119
4313 -1 146 21
4303 -1 219 36
4309 -1 149 163
4305 -1 102 -1200
-1 2149 0 0
-1 2146 0 0
4307 -1 82 -78
-1 2147 0 0
-1 2148 0 0
4311 -1 83 236
-1 2152 0 0
-1 2150 0 0
-1 2151 0 0
-1 2153 0 0
-1 2154 0 0
4317 -1 139 130
4513 -1 142 3
4319 -1 225 166
4421 -1 111 -222
4321 -1 153 -35
4395 -1 119 -302
4323 -1 147 81
4349 -1 213 140
4325 -1 197 104
4335 -1 140 86
4327 -1 198 -46
4331 -1 220 71
-1 2155 0 0
4329 -1 80 -67
-1 2156 0 0
-1 2157 0 0
4333 -1 242 104
-1 2160 0 0
-1 2158 0 0
-1 2159 0 0
4337 -1 133 120
4339 -1 111 0
-1 2161 0 0
-1 2162 0 0
4341 -1 4 -238
-1 2168 0 0
4343 -1 245 -72
4345 -1 170 -59
-1 2163 0 0
-1 2164 0 0
-1 2165 0 0
4347 -1 107 -103
-1 2166 0 0
-1 2167 0 0
4351 -1 141 70
4381 -1 240 31
4353 -1 107 -1694
4373 -1 92 11
4355 -1 178 37
4357 -1 87 -200
-1 2169 0 0
-1 2170 0 0
4359 -1 209 -1
4365 -1 231 109
4361 -1 196 -24
4363 -1 59 0
-1 2171 0 0
-1 2172 0 0
-1 2173 0 0
-1 2174 0 0
4367 -1 47 17
4371 -1 107 -71
4369 -1 155 10
-1 2177 0 0
-1 2175 0 0
-1 2176 0 0
-1 2178 0 0
-1 2179 0 0
4375 -1 76 -25
4379 -1 153 -16
4377 -1 98 10
-1 2182 0 0
-1 2180 0 0
-1 2181 0 0
-1 2183 0 0
-1 2184 0 0
4383 -1 156 101
4391 -1 196 1
4385 -1 113 0
4389 -1 175 41
4387 -1 155 4
-1 2187 0 0
-1 2185 0 0
-1 2186 0 0
-1 2188 0 0
-1 2189 0 0
-1 2190 0 0
4393 -1 107 -28
-1 2191 0 0
-1 2192 0 0
4397 -1 157 -18
4399 -1 159 150
-1 2193 0 0
-1 2194 0 0
4401 -1 228 4
4409 -1 124 -233
4403 -1 68 -74
4407 -1 150 40
-1 2195 0 0
4405 -1 150 13
-1 2196 0 0
-1 2197 0 0
-1 2198 0 0
-1 2199 0 0
4411 -1 235 184
4415 -1 197 194
-1 2200 0 0
4413 -1 81 -42
-1 2201 0 0
-1 2202 0 0
4417 -1 7 -41
4419 -1 124 -65
-1 2203 0 0
-1 2204 0 0
-1 2205 0 0
-1 2206 0 0
4423 -1 206 182
4475 -1 138 7
4425 -1 216 -9
4455 -1 239 107
4427 -1 183 4
4443 -1 232 68
4429 -1 104 -136
-1 2215 0 0
4431 -1 112 -244
4433 -1 174 143
-1 2207 0 0
-1 2208 0 0
4435 -1 158 -43
4439 -1 78 -122
-1 2209 0 0
4437 -1 160 33
-1 2210 0 0
-1 2211 0 0
-1 2212 0 0
4441 -1 14 -78
-1 2213 0 0
-1 2214 0 0
-1 2216 0 0
4445 -1 132 121
4447 -1 1 0
4449 -1 220 -3
-1 2217 0 0
-1 2218 0 0
4451 -1 97 -38
4453 -1 131 -2
-1 2219 0 0
-1 2220 0 0
-1 2221 0 0
-1 2222 0 0
4457 -1 180 -2
4459 -1 149 143
-1 2223 0 0
-1 2224 0 0
4461 -1 172 172
4471 -1 75 -95
-1 2225 0 0
4463 -1 12 -162
4465 -1 141 9
4469 -1 21 -34
4467 -1 9 -50
-1 2228 0 0
-1 2226 0 0
-1 2227 0 0
-1 2229 0 0
-1 2230 0 0
4473 -1 155 167
-1 2233 0 0
-1 2231 0 0
-1 2232 0 0
4477 -1 131 -5
4497 -1 61 359
4479 -1 185 -6
4491 -1 219 124
4481 -1 44 -72
4487 -1 151 31
4483 -1 127 -158
4485 -1 189 117
-1 2234 0 0
-1 2235 0 0
-1 2236 0 0
-1 2237 0 0
4489 -1 157 -18
-1 2240 0 0
-1 2238 0 0
-1 2239 0 0
-1 2241 0 0
4493 -1 157 7
4495 -1 116 -58
-1 2244 0 0
-1 2242 0 0
-1 2243 0 0
4499 -1 254 64
4511 -1 178 120
4501 -1 124 0
4505 -1 203 177
-1 2245 0 0
4503 -1 21 -1677
-1 2246 0 0
-1 2247 0 0
4507 -1 215 24
-1 2251 0 0
4509 -1 129 44
-1 2250 0 0
-1 2248 0 0
-1 2249 0 0
-1 2252 0 0
-1 2253 0 0
4515 -1 186 177
4571 -1 154 87
4517 -1 145 70
4563 -1 141 56
4519 -1 192 59
4537 -1 88 -995
4521 -1 85 65
4529 -1 246 48
4523 -1 131 115
4527 -1 130 104
4525 -1 211 -8
-1 2256 0 0
-1 2254 0 0
-1 2255 0 0
-1 2257 0 0
-1 2258 0 0
4531 -1 125 -384
4535 -1 92 126
-1 2259 0 0
4533 -1 130 63
-1 2260 0 0
-1 2261 0 0
-1 2262 0 0
-1 2263 0 0
4539 -1 90 -1221
4547 -1 179 64
4541 -1 227 50
-1 2268 0 0
4543 -1 133 157
4545 -1 38 -1819
-1 2264 0 0
-1 2265 0 0
-1 2266 0 0
-1 2267 0 0
4549 -1 0 -289
4559 -1 124 -1299
4551 -1 53 29
4553 -1 120 111
-1 2269 0 0
-1 2270 0 0
4555 -1 149 25
4557 -1 72 -95
-1 2271 0 0
-1 2272 0 0
-1 2273 0 0
-1 2274 0 0
-1 2275 0 0
4561 -1 61 55
-1 2276 0 0
-1 2277 0 0
-1 2278 0 0
4565 -1 22 -47
4567 -1 68 -155
4569 -1 4 -69
-1 2279 0 0
-1 2280 0 0
-1 2281 0 0
-1 2282 0 0
4573 -1 213 193
4663 -1 107 0
4575 -1 14 15
4653 -1 185 20
4577 -1 225 168
4633 -1 130 146
4579 -1 225 85
4621 -1 243 115
4581 -1 247 26
4597 -1 181 86
4583 -1 199 122
4589 -1 75 -1111
4585 -1 198 54
-1 2286 0 0
4587 -1 174 32
-1 2285 0 0
-1 2283 0 0
-1 2284 0 0
4591 -1 156 1
4593 -1 51 0
-1 2287 0 0
-1 2288 0 0
4595 -1 74 -197
-1 2291 0 0
-1 2289 0 0
-1 2290 0 0
4599 -1 96 -129
4611 -1 56 58
4601 -1 42 -147
4607 -1 247 29
4603 -1 198 33
4605 -1 87 -587
-1 2292 0 0
-1 2293 0 0
-1 2294 0 0
-1 2295 0 0
-1 2296 0 0
4609 -1 245 17
-1 2297 0 0
-1 2298 0 0
4613 -1 130 87
4617 -1 160 64
-1 2299 0 0
4615 -1 228 146
-1 2300 0 0
-1 2301 0 0
4619 -1 96 -208
-1 2304 0 0
-1 2302 0 0
-1 2303 0 0
4623 -1 192 31
4631 -1 205 84
4625 -1 96 -926
4627 -1 192 183
-1 2305 0 0
-1 2306 0 0
4629 -1 245 32
-1 2309 0 0
-1 2307 0 0
-1 2308 0 0
-1 2310 0 0
-1 2311 0 0
4635 -1 129 55
-1 2322 0 0
4637 -1 168 27
4647 -1 155 11
4639 -1 219 104
4641 -1 224 75
-1 2312 0 0
-1 2313 0 0
4643 -1 174 45
4645 -1 213 108
-1 2314 0 0
-1 2315 0 0
-1 2316 0 0
-1 2317 0 0
4649 -1 160 0
-1 2321 0 0
4651 -1 134 54
-1 2320 0 0
-1 2318 0 0
-1 2319 0 0
4655 -1 219 198
4661 -1 181 36
4657 -1 191 3
4659 -1 183 65
-1 2323 0 0
-1 2324 0 0
-1 2325 0 0
-1 2326 0 0
-1 2327 0 0
-1 2328 0 0
4665 -1 115 -329
4685 -1 186 -2
4667 -1 218 126
4671 -1 225 199
-1 2329 0 0
4669 -1 109 -105
-1 2330 0 0
-1 2331 0 0
4673 -1 179 113
-1 2339 0 0
4675 -1 229 78
4683 -1 224 119
4677 -1 107 -25
4681 -1 216 7
4679 -1 132 139
-1 2334 0 0
-1 2332 0 0
-1 2333 0 0
-1 2335 0 0
-1 2336 0 0
-1 2337 0 0
-1 2338 0 0
4687 -1 245 38
4697 -1 52 -12
4689 -1 61 479
4691 -1 234 159
-1 2340 0 0
-1 2341 0 0
4693 -1 88 85
4695 -1 109 -179
-1 2342 0 0
-1 2343 0 0
-1 2344 0 0
-1 2345 0 0
4699 -1 180 9
4705 -1 38 481
4701 -1 233 136
4703 -1 199 111
-1 2346 0 0
-1 2347 0 0
-1 2348 0 0
-1 2349 0 0
4707 -1 228 90
-1 2352 0 0
-1 2350 0 0
-1 2351 0 0
4711 -1 183 -121
5401 -1 140 44
4713 -1 154 -19
5111 -1 189 32
4715 -1 114 114
4915 -1 173 -168
4717 -1 159 -12
4787 -1 229 -157
4719 -1 221 -14
4751 -1 51 -1556
4721 -1 172 8
4737 -1 249 -152
4723 -1 166 -180
4735 -1 162 -135
4725 -1 7 24
4727 -1 245 -18
-1 2353 0 0
-1 2354 0 0
4729 -1 162 -35
-1 2359 0 0
4731 -1 136 -3
-1 2358 0 0
4733 -1 132 -57
-1 2357 0 0
-1 2355 0 0
-1 2356 0 0
-1 2360 0 0
-1 2361 0 0
4739 -1 133 -112
4749 -1 111 66
4741 -1 114 62
4743 -1 243 -172
-1 2362 0 0
-1 2363 0 0
4745 -1 65 -109
4747 -1 162 -149
-1 2364 0 0
-1 2365 0 0
-1 2366 0 0
-1 2367 0 0
-1 2368 0 0
-1 2369 0 0
4753 -1 174 21
4763 -1 243 -130
4755 -1 197 -27
4757 -1 127 -120
-1 2370 0 0
-1 2371 0 0
-1 2372 0 0
4759 -1 124 -1645
4761 -1 52 94
-1 2375 0 0
-1 2373 0 0
-1 2374 0 0
4765 -1 200 5
4771 -1 186 49
4767 -1 122 -65
4769 -1 124 -1238
-1 2376 0 0
-1 2377 0 0
-1 2378 0 0
-1 2379 0 0
4773 -1 227 -85
-1 2388 0 0
4775 -1 198 -100
4783 -1 166 -161
4777 -1 191 3
4779 -1 143 -28
-1 2380 0 0
-1 2381 0 0
4781 -1 220 -155
-1 2384 0 0
-1 2382 0 0
-1 2383 0 0
-1 2385 0 0
4785 -1 87 -164
-1 2386 0 0
-1 2387 0 0
4789 -1 132 -29
4859 -1 206 -40
4791 -1 23 120
4831 -1 230 -18
4793 -1 198 4
4801 -1 189 -54
4795 -1 137 -8
4799 -1 214 -171
-1 2389 0 0
4797 -1 29 -1129
-1 2390 0 0
-1 2391 0 0
-1 2392 0 0
-1 2393 0 0
4803 -1 130 -41
4807 -1 252 -60
-1 2394 0 0
4805 -1 187 -16
-1 2395 0 0
-1 2396 0 0
4809 -1 26 173
4819 -1 122 -114
4811 -1 191 -4
4813 -1 31 -209
-1 2397 0 0
-1 2398 0 0
4815 -1 149 -164
4817 -1 114 258
-1 2399 0 0
-1 2400 0 0
-1 2401 0 0
-1 2402 0 0
4821 -1 7 41
4825 -1 232 2
4823 -1 160 -74
-1 2405 0 0
-1 2403 0 0
-1 2404 0 0
4827 -1 209 -46
4829 -1 28 -139
-1 2406 0 0
-1 2407 0 0
-1 2408 0 0
-1 2409 0 0
4833 -1 120 205
4843 -1 29 159
4835 -1 169 -138
-1 2415 0 0
4837 -1 44 166
4839 -1 193 -83
-1 2410 0 0
-1 2411 0 0
4841 -1 187 -1
-1 2414 0 0
-1 2412 0 0
-1 2413 0 0
4845 -1 88 96
4849 -1 116 147
4847 -1 158 -168
-1 2418 0 0
-1 2416 0 0
-1 2417 0 0
4851 -1 233 -165
-1 2424 0 0
4853 -1 31 -123
4855 -1 121 -82
-1 2419 0 0
-1 2420 0 0
4857 -1 184 -98
-1 2423 0 0
-1 2421 0 0
-1 2422 0 0
4861 -1 99 78
4873 -1 243 -122
4863 -1 74 -81
4871 -1 194 -124
4865 -1 151 5
-1 2429 0 0
4867 -1 51 130
-1 2428 0 0
-1 2425 0 0
4869 -1 128 0
-1 2426 0 0
-1 2427 0 0
-1 2430 0 0
-1 2431 0 0
4875 -1 150 1
4891 -1 197 -118
4877 -1 38 -1393
4883 -1 38 -1191
-1 2432 0 0
4879 -1 85 219
4881 -1 219 -9
-1 2435 0 0
-1 2433 0 0
-1 2434 0 0
4885 -1 115 148
4887 -1 83 198
-1 2436 0 0
-1 2437 0 0
4889 -1 92 157
-1 2440 0 0
-1 2438 0 0
-1 2439 0 0
4893 -1 29 278
4899 -1 105 -74
4895 -1 34 -124
-1 2444 0 0
-1 2441 0 0
4897 -1 165 -130
-1 2442 0 0
-1 2443 0 0
4901 -1 64 -1329
4909 -1 56 165
-1 2445 0 0
4903 -1 56 89
4905 -1 172 16
4907 -1 193 -90
-1 2446 0 0
-1 2447 0 0
-1 2448 0 0
-1 2449 0 0
4911 -1 85 -165
-1 2453 0 0
-1 2450 0 0
4913 -1 238 -147
-1 2451 0 0
-1 2452 0 0
4917 -1 195 -178
5001 -1 132 -118
4919 -1 208 -191
4969 -1 135 -171
4921 -1 39 123
4933 -1 152 -10
4923 -1 179 -195
4927 -1 252 -8
4925 -1 15 -29
-1 2456 0 0
-1 2454 0 0
-1 2455 0 0
4929 -1 133 -16
4931 -1 57 67
-1 2457 0 0
-1 2458 0 0
-1 2459 0 0
-1 2460 0 0
4935 -1 9 -97
4961 -1 238 -192
-1 2461 0 0
4937 -1 252 -21
4939 -1 201 -157
4949 -1 254 -156
4941 -1 156 1
4943 -1 145 -8
-1 2462 0 0
-1 2463 0 0
4945 -1 165 -77
4947 -1 125 81
-1 2464 0 0
-1 2465 0 0
-1 2466 0 0
-1 2467 0 0
4951 -1 27 -136
4957 -1 210 -37
4953 -1 112 -44
4955 -1 2 -175
-1 2468 0 0
-1 2469 0 0
-1 2470 0 0
-1 2471 0 0
4959 -1 232 0
-1 2474 0 0
-1 2472 0 0
-1 2473 0 0
4963 -1 168 -23
-1 2479 0 0
4965 -1 234 0
4967 -1 153 -90
-1 2475 0 0
-1 2476 0 0
-1 2477 0 0
-1 2478 0 0
4971 -1 165 -106
4995 -1 129 -18
4973 -1 93 -70
4979 -1 236 -7
4975 -1 215 -71
4977 -1 255 -18
-1 2480 0 0
-1 2481 0 0
-1 2482 0 0
-1 2483 0 0
4981 -1 8 3
4985 -1 246 -169
-1 2484 0 0
4983 -1 164 -79
-1 2485 0 0
-1 2486 0 0
4987 -1 164 -174
4989 -1 187 -6
-1 2487 0 0
-1 2488 0 0
4991 -1 196 -14
4993 -1 225 -163
-1 2489 0 0
-1 2490 0 0
-1 2491 0 0
-1 2492 0 0
4997 -1 185 -101
4999 -1 103 -85
-1 2493 0 0
-1 2494 0 0
-1 2495 0 0
-1 2496 0 0
5003 -1 140 -136
5045 -1 149 3
5005 -1 30 -1529
5017 -1 211 -137
5007 -1 202 -3
5009 -1 75 -1376
-1 2497 0 0
-1 2498 0 0
-1 2499 0 0
5011 -1 18 63
5013 -1 75 -120
-1 2503 0 0
5015 -1 192 -67
-1 2502 0 0
-1 2500 0 0
-1 2501 0 0
5019 -1 78 -65
5039 -1 61 84
5021 -1 246 -9
-1 2514 0 0
5023 -1 132 -164
5035 -1 14 -44
5025 -1 220 -171
5029 -1 115 125
-1 2504 0 0
5027 -1 53 46
-1 2505 0 0
-1 2506 0 0
5031 -1 115 96
5033 -1 85 162
-1 2507 0 0
-1 2508 0 0
-1 2509 0 0
-1 2510 0 0
5037 -1 217 24
-1 2513 0 0
-1 2511 0 0
-1 2512 0 0
-1 2515 0 0
5041 -1 85 -1118
-1 2516 0 0
5043 -1 83 193
-1 2517 0 0
-1 2518 0 0
5047 -1 202 2
5069 -1 233 -145
5049 -1 237 -129
5061 -1 249 -143
-1 2519 0 0
5051 -1 241 -7
5053 -1 229 -117
5057 -1 138 -17
5055 -1 232 -26
-1 2522 0 0
-1 2520 0 0
-1 2521 0 0
5059 -1 162 -47
-1 2525 0 0
-1 2523 0 0
-1 2524 0 0
5063 -1 144 5
-1 2530 0 0
-1 2526 0 0
5065 -1 192 -163
-1 2527 0 0
5067 -1 178 -23
-1 2528 0 0
-1 2529 0 0
5071 -1 170 -149
5087 -1 239 -10
5073 -1 194 -142
5085 -1 45 47
5075 -1 146 -133
5079 -1 190 11
-1 2531 0 0
5077 -1 67 -95
-1 2532 0 0
-1 2533 0 0
5081 -1 184 -62
-1 2537 0 0
-1 2534 0 0
5083 -1 2 -1422
-1 2535 0 0
-1 2536 0 0
-1 2538 0 0
-1 2539 0 0
5089 -1 173 -116
5101 -1 251 -68
5091 -1 163 1
-1 2546 0 0
5093 -1 220 -131
5095 -1 85 -1060
-1 2540 0 0
-1 2541 0 0
5097 -1 55 -108
5099 -1 157 -26
-1 2542 0 0
-1 2543 0 0
-1 2544 0 0
-1 2545 0 0
5103 -1 124 -1179
5109 -1 211 -44
-1 2547 0 0
5105 -1 249 -126
5107 -1 235 -5
-1 2550 0 0
-1 2548 0 0
-1 2549 0 0
-1 2551 0 0
-1 2552 0 0
5113 -1 120 453
5305 -1 173 -75
5115 -1 175 -113
5277 -1 214 -34
5117 -1 96 -88
5173 -1 132 26
5119 -1 154 9
5169 -1 162 -30
5121 -1 186 -103
5153 -1 239 -13
5123 -1 31 -69
5135 -1 56 124
5125 -1 132 -6
-1 2559 0 0
5127 -1 40 -12
5131 -1 176 21
-1 2553 0 0
5129 -1 193 -112
-1 2554 0 0
-1 2555 0 0
5133 -1 30 -916
-1 2558 0 0
-1 2556 0 0
-1 2557 0 0
5137 -1 56 -1234
5145 -1 88 116
5139 -1 131 -91
5141 -1 237 12
-1 2560 0 0
-1 2561 0 0
5143 -1 56 92
-1 2564 0 0
-1 2562 0 0
-1 2563 0 0
5147 -1 68 -1376
5151 -1 243 -100
-1 2565 0 0
5149 -1 21 -49
-1 2566 0 0
-1 2567 0 0
-1 2568 0 0
-1 2569 0 0
5155 -1 30 -118
5163 -1 143 47
5157 -1 199 -91
-1 2574 0 0
5159 -1 75 -202
-1 2573 0 0
-1 2570 0 0
5161 -1 239 -98
-1 2571 0 0
-1 2572 0 0
5165 -1 216 -60
-1 2578 0 0
5167 -1 139 5
-1 2577 0 0
-1 2575 0 0
-1 2576 0 0
5171 -1 146 -116
-1 2581 0 0
-1 2579 0 0
-1 2580 0 0
5175 -1 241 -128
5235 -1 186 -84
5177 -1 51 96
5199 -1 161 -131
5179 -1 157 -30
5183 -1 197 -143
5181 -1 79 -172
-1 2584 0 0
-1 2582 0 0
-1 2583 0 0
5185 -1 202 30
5191 -1 85 421
5187 -1 224 17
-1 2588 0 0
5189 -1 34 -59
-1 2587 0 0
-1 2585 0 0
-1 2586 0 0
5193 -1 168 -37
-1 2593 0 0
5195 -1 226 -54
5197 -1 21 -47
-1 2589 0 0
-1 2590 0 0
-1 2591 0 0
-1 2592 0 0
5201 -1 155 -8
5209 -1 154 16
5203 -1 142 -182
5207 -1 87 -102
-1 2594 0 0
5205 -1 142 -139
-1 2595 0 0
-1 2596 0 0
-1 2597 0 0
-1 2598 0 0
5211 -1 135 -104
5225 -1 70 -1247
5213 -1 228 -62
5219 -1 195 -81
5215 -1 202 -74
5217 -1 170 -110
-1 2599 0 0
-1 2600 0 0
-1 2601 0 0
-1 2602 0 0
5221 -1 128 12
5223 -1 132 -128
-1 2603 0 0
-1 2604 0 0
-1 2605 0 0
-1 2606 0 0
5227 -1 196 -110
5229 -1 205 24
-1 2607 0 0
-1 2608 0 0
5231 -1 135 -115
5233 -1 143 32
-1 2609 0 0
-1 2610 0 0
-1 2611 0 0
-1 2612 0 0
5237 -1 103 -1458
5253 -1 173 -78
5239 -1 242 -88
5245 -1 4 -260
5241 -1 221 -39
5243 -1 46 27
-1 2613 0 0
-1 2614 0 0
-1 2615 0 0
-1 2616 0 0
-1 2617 0 0
5247 -1 136 33
5249 -1 57 89
-1 2621 0 0
5251 -1 160 6
-1 2620 0 0
-1 2618 0 0
-1 2619 0 0
5255 -1 31 -1571
5263 -1 185 -92
-1 2622 0 0
5257 -1 144 -43
-1 2623 0 0
5259 -1 20 -136
5261 -1 154 -16
-1 2626 0 0
-1 2624 0 0
-1 2625 0 0
5265 -1 229 -56
5271 -1 186 -62
5267 -1 204 -77
5269 -1 212 19
-1 2627 0 0
-1 2628 0 0
-1 2629 0 0
-1 2630 0 0
-1 2631 0 0
5273 -1 128 35
5275 -1 158 -6
-1 2634 0 0
-1 2632 0 0
-1 2633 0 0
5279 -1 167 -109
5283 -1 229 -59
5281 -1 70 -106
-1 2637 0 0
-1 2635 0 0
-1 2636 0 0
5285 -1 47 3
5297 -1 186 -49
5287 -1 62 434
5291 -1 227 -90
5289 -1 221 -18
-1 2640 0 0
-1 2638 0 0
-1 2639 0 0
-1 2641 0 0
5293 -1 45 416
-1 2642 0 0
5295 -1 26 459
-1 2643 0 0
-1 2644 0 0
5299 -1 240 1
5303 -1 197 -110
-1 2645 0 0
5301 -1 5 25
-1 2646 0 0
-1 2647 0 0
-1 2648 0 0
-1 2649 0 0
5307 -1 198 -67
5371 -1 179 -66
5309 -1 136 57
5351 -1 202 24
5311 -1 206 59
5337 -1 168 -90
5313 -1 236 -35
5329 -1 61 -1622
5315 -1 191 54
5323 -1 186 -96
5317 -1 61 111
5321 -1 68 -1536
5319 -1 168 -80
-1 2652 0 0
-1 2650 0 0
-1 2651 0 0
-1 2653 0 0
-1 2654 0 0
5325 -1 243 -110
5327 -1 51 -96
-1 2655 0 0
-1 2656 0 0
-1 2657 0 0
-1 2658 0 0
5331 -1 34 -115
5333 -1 68 -1252
-1 2659 0 0
-1 2660 0 0
5335 -1 129 -99
-1 2663 0 0
-1 2661 0 0
-1 2662 0 0
5339 -1 144 -14
5345 -1 242 94
5341 -1 6 -119
-1 2667 0 0
5343 -1 26 111
-1 2666 0 0
-1 2664 0 0
-1 2665 0 0
5347 -1 131 -53
-1 2671 0 0
5349 -1 46 56
-1 2670 0 0
-1 2668 0 0
-1 2669 0 0
5353 -1 69 -816
5365 -1 143 66
-1 2672 0 0
5355 -1 237 94
5357 -1 74 -124
-1 2678 0 0
5359 -1 132 17
5361 -1 152 -23
-1 2673 0 0
-1 2674 0 0
-1 2675 0 0
5363 -1 181 -42
-1 2676 0 0
-1 2677 0 0
5367 -1 237 57
5369 -1 165 58
-1 2679 0 0
-1 2680 0 0
-1 2681 0 0
-1 2682 0 0
5373 -1 241 -5
5383 -1 174 57
5375 -1 126 -33
5377 -1 83 82
-1 2683 0 0
-1 2684 0 0
5379 -1 32 -115
5381 -1 179 -95
-1 2685 0 0
-1 2686 0 0
-1 2687 0 0
-1 2688 0 0
5385 -1 253 42
5395 -1 239 -53
5387 -1 52 40
5393 -1 103 -143
-1 2689 0 0
5389 -1 220 -77
5391 -1 229 -2
-1 2692 0 0
-1 2690 0 0
-1 2691 0 0
-1 2693 0 0
-1 2694 0 0
5397 -1 106 48
5399 -1 31 -112
-1 2695 0 0
-1 2696 0 0
-1 2697 0 0
-1 2698 0 0
5403 -1 232 -11
6303 -1 200 124
5405 -1 241 -113
5773 -1 74 -10
5407 -1 23 690
5493 -1 142 32
5409 -1 51 83
5487 -1 40 935
5411 -1 208 -91
5431 -1 239 -152
5413 -1 130 -37
5419 -1 83 73
-1 2699 0 0
5415 -1 87 -127
-1 2700 0 0
5417 -1 215 -23
-1 2701 0 0
-1 2702 0 0
5421 -1 186 -6
5427 -1 219 -154
54
Download .txt
gitextract_o6q4pygz/

├── .clang-format
├── .gitignore
├── CMakeLists.txt
├── LICENCE
├── README
├── README.md
├── apps/
│   ├── CMakeLists.txt
│   ├── combineglobalposes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── forestmodevis/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── prepare_7scenes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── raflperf/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── raflvis/
│   │   ├── CMakeLists.txt
│   │   ├── TestDecisionFunctionGenerator.h
│   │   └── main.cpp
│   ├── relocconverter/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocgui/
│   │   ├── CMakeLists.txt
│   │   ├── RelocaliserApplication.cpp
│   │   ├── RelocaliserApplication.h
│   │   ├── main.cpp
│   │   └── resources/
│   │       └── DefaultRelocalisationForest.rf
│   ├── relocicpeval/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocnovelposes/
│   │   ├── CMakeLists.txt
│   │   └── main.cpp
│   ├── relocopt/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       ├── default_parameters.ini
│   │       └── evaluate_relocaliser.sh
│   ├── relocperf/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       ├── 12scenes_batch.sh
│   │       ├── 7scenes_batch.sh
│   │       ├── 7scenes_urls.txt
│   │       ├── Cascade_Fast-Intermediate_050.ini
│   │       ├── Cascade_Fast-Slow_050.ini
│   │       ├── Cascade_Fast-Slow_075.ini
│   │       ├── Cascade_Full_050_075.ini
│   │       ├── Default_NoRank.ini
│   │       ├── Default_Rank16.ini
│   │       ├── Fast_NoRank.ini
│   │       ├── Intermediate_NoRank.ini
│   │       └── Slow_Rank16.ini
│   ├── relocvis/
│   │   ├── CMakeLists.txt
│   │   ├── main.cpp
│   │   └── resources/
│   │       └── frustum.ply
│   ├── spaintgui/
│   │   ├── Application.cpp
│   │   ├── Application.h
│   │   ├── CMakeLists.txt
│   │   ├── CPUInstantiations.cpp
│   │   ├── CUDAInstantiations.cu
│   │   ├── commands/
│   │   │   ├── MarkVoxelsCommand.cpp
│   │   │   └── MarkVoxelsCommand.h
│   │   ├── core/
│   │   │   ├── CollaborativePipeline.cpp
│   │   │   ├── CollaborativePipeline.h
│   │   │   ├── Model.cpp
│   │   │   ├── Model.h
│   │   │   ├── MultiScenePipeline.cpp
│   │   │   ├── MultiScenePipeline.h
│   │   │   ├── ObjectivePipeline.cpp
│   │   │   ├── ObjectivePipeline.h
│   │   │   ├── SLAMPipeline.cpp
│   │   │   ├── SLAMPipeline.h
│   │   │   ├── SemanticPipeline.cpp
│   │   │   └── SemanticPipeline.h
│   │   ├── debugging/
│   │   │   ├── RelocaliserFiguresGenerator.cpp
│   │   │   └── RelocaliserFiguresGenerator.h
│   │   ├── main.cpp
│   │   ├── renderers/
│   │   │   ├── HeadlessRenderer.cpp
│   │   │   ├── HeadlessRenderer.h
│   │   │   ├── Renderer.cpp
│   │   │   ├── Renderer.h
│   │   │   ├── RiftRenderer.cpp
│   │   │   ├── RiftRenderer.h
│   │   │   ├── WindowedRenderer.cpp
│   │   │   └── WindowedRenderer.h
│   │   ├── resources/
│   │   │   ├── DefaultCalibration.txt
│   │   │   ├── DefaultRandomForest.rf
│   │   │   ├── DefaultRelocalisationForest.rf
│   │   │   ├── Labels.txt
│   │   │   ├── RaflSettings.xml
│   │   │   ├── TouchSettings.xml
│   │   │   ├── XtionCalibrationSMG.txt
│   │   │   ├── scripts/
│   │   │   │   ├── 7scenes.ini
│   │   │   │   ├── 7scenes_calib.txt
│   │   │   │   ├── 7scenes_convert_to_itm.m
│   │   │   │   ├── 7scenes_urls.txt
│   │   │   │   ├── 7scenes_validation_convert_to_itm.m
│   │   │   │   ├── 7scenes_validation_process_sequence.m
│   │   │   │   └── spaint_batch.sh
│   │   │   ├── spaint-pre.gram
│   │   │   └── trackerconfigs/
│   │   │       ├── ForceFail.xml
│   │   │       ├── Rift.xml
│   │   │       ├── ViconAbsolute.xml
│   │   │       ├── ViconRelative.xml
│   │   │       └── Zed.xml
│   │   ├── sequences/
│   │   │   ├── Sequence.cpp
│   │   │   ├── Sequence.h
│   │   │   ├── SpaintSequence.cpp
│   │   │   └── SpaintSequence.h
│   │   └── subwindows/
│   │       ├── Subwindow.cpp
│   │       ├── Subwindow.h
│   │       ├── SubwindowConfiguration.cpp
│   │       └── SubwindowConfiguration.h
│   └── touchtrain/
│       ├── CMakeLists.txt
│       ├── LabelledPath.h
│       ├── TouchTrainDataset.h
│       └── main.cpp
├── build-nix.sh
├── build-win.sh
├── clean.sh
├── cmake/
│   ├── CUDACheckCompute.cmake
│   ├── FindLibRoyale.cmake
│   ├── Flags.cmake
│   ├── InstallApp.cmake
│   ├── LinkALGLIB.cmake
│   ├── LinkArrayFire.cmake
│   ├── LinkBoost.cmake
│   ├── LinkCUDA.cmake
│   ├── LinkGLEW.cmake
│   ├── LinkGLUT.cmake
│   ├── LinkGrove.cmake
│   ├── LinkInfiniTAM.cmake
│   ├── LinkLeap.cmake
│   ├── LinkLibRoyale.cmake
│   ├── LinkLodePNG.cmake
│   ├── LinkOVR.cmake
│   ├── LinkOpenCV.cmake
│   ├── LinkOpenGL.cmake
│   ├── LinkOpenNI.cmake
│   ├── LinkRealSense.cmake
│   ├── LinkSDL.cmake
│   ├── LinkScoreForests.cmake
│   ├── LinkTBB.cmake
│   ├── LinkTorch.cmake
│   ├── LinkVTK.cmake
│   ├── LinkVicon.cmake
│   ├── LinkZed.cmake
│   ├── OfferC++11Support.cmake
│   ├── OfferFocusReacquisition.cmake
│   ├── OfferLowPowerSupport.cmake
│   ├── OfferLowUSBBandwidthSupport.cmake
│   ├── OfferPixelDebugging.cmake
│   ├── SetAppTarget.cmake
│   ├── SetCUDAAppTarget.cmake
│   ├── SetCUDALibTarget.cmake
│   ├── SetCUDAScratchTestTarget.cmake
│   ├── SetCUDAUnitTestTarget.cmake
│   ├── SetLibTarget.cmake
│   ├── SetScratchTestTarget.cmake
│   ├── SetUnitTestTarget.cmake
│   ├── UseALGLIB.cmake
│   ├── UseArrayFire.cmake
│   ├── UseBoost.cmake
│   ├── UseCUDA.cmake
│   ├── UseEigen.cmake
│   ├── UseGLEW.cmake
│   ├── UseGLUT.cmake
│   ├── UseGraphviz.cmake
│   ├── UseGrove.cmake
│   ├── UseInfiniTAM.cmake
│   ├── UseLeap.cmake
│   ├── UseLibRoyale.cmake
│   ├── UseLodePNG.cmake
│   ├── UseOVR.cmake
│   ├── UseOpenCV.cmake
│   ├── UseOpenGL.cmake
│   ├── UseOpenMP.cmake
│   ├── UseOpenNI.cmake
│   ├── UseRealSense.cmake
│   ├── UseSDL.cmake
│   ├── UseScoreForests.cmake
│   ├── UseTBB.cmake
│   ├── UseTorch.cmake
│   ├── UseVTK.cmake
│   ├── UseVicon.cmake
│   ├── UseZed.cmake
│   ├── VCLibraryHack.cmake
│   └── cuda_compute_capability.cpp
├── detect-osxversion.sh
├── detect-platform.sh
├── determine-cmakegenerator.sh
├── determine-vstoolsetstring.sh
├── helpers/
│   ├── GL/
│   │   ├── freeglut.h
│   │   ├── freeglut_ext.h
│   │   ├── freeglut_std.h
│   │   ├── glew.h
│   │   ├── glext.h
│   │   ├── glut.h
│   │   ├── glxew.h
│   │   ├── glxext.h
│   │   └── wglew.h
│   ├── cuda_drvapi_dynlink.c
│   ├── drvapi_error_string.h
│   ├── dynlink/
│   │   ├── cuda_drvapi_dynlink.h
│   │   ├── cuda_drvapi_dynlink_cuda.h
│   │   ├── cuda_drvapi_dynlink_d3d.h
│   │   └── cuda_drvapi_dynlink_gl.h
│   ├── dynlink_d3d10.h
│   ├── dynlink_d3d11.h
│   ├── exception.h
│   ├── helper_cuda.h
│   ├── helper_cuda_drvapi.h
│   ├── helper_cuda_gl.h
│   ├── helper_functions.h
│   ├── helper_image.h
│   ├── helper_math.h
│   ├── helper_string.h
│   ├── helper_timer.h
│   ├── multithreading.h
│   ├── nvMath.h
│   ├── nvMatrix.h
│   ├── nvQuaternion.h
│   ├── nvShaderUtils.h
│   ├── nvVector.h
│   ├── param.h
│   ├── paramgl.h
│   ├── rendercheck_d3d10.h
│   ├── rendercheck_d3d11.h
│   ├── rendercheck_d3d9.h
│   ├── rendercheck_gl.h
│   └── timer.h
├── libraries/
│   ├── build-SDL2-2.0.3-nix.sh
│   ├── build-SDL2-2.0.7-nix.sh
│   ├── build-SDL2-2.0.7-win.sh
│   ├── build-alglib-nix.sh
│   ├── build-alglib-win.sh
│   ├── build-boost_1_58_0-nix.sh
│   ├── build-boost_1_58_0-win.sh
│   ├── build-glew-1.12.0-nix.sh
│   ├── build-glew-1.12.0-win.sh
│   ├── build-lodepng-20160501-nix.sh
│   ├── build-lodepng-20160501-win.sh
│   ├── build-opencv-3.1.0-nix.sh
│   ├── build-opencv-3.1.0-win.sh
│   ├── extract-Eigen-3.2.2.sh
│   ├── extract-vicon-nix.sh
│   ├── extract-vicon-win.sh
│   ├── install-dependencies-nix.sh
│   └── setup/
│       └── glew-1.12.0/
│           └── glew-1.12.0.tgz
├── modules/
│   ├── CMakeLists.txt
│   ├── evaluation/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── evaluation/
│   │   │       ├── core/
│   │   │       │   ├── LearnerEvaluator.h
│   │   │       │   ├── ParamSetUtil.h
│   │   │       │   ├── PerformanceMeasure.h
│   │   │       │   ├── PerformanceMeasureUtil.h
│   │   │       │   ├── PerformanceResult.h
│   │   │       │   └── PerformanceTable.h
│   │   │       ├── splitgenerators/
│   │   │       │   ├── CrossValidationSplitGenerator.h
│   │   │       │   ├── RNGFunctor.h
│   │   │       │   ├── RandomPermutationAndDivisionSplitGenerator.h
│   │   │       │   └── SplitGenerator.h
│   │   │       └── util/
│   │   │           ├── CartesianProductParameterSetGenerator.h
│   │   │           ├── ConfusionMatrixUtil.h
│   │   │           ├── CoordinateDescentParameterOptimiser.h
│   │   │           ├── EpochBasedParameterOptimiser.h
│   │   │           └── RandomParameterOptimiser.h
│   │   └── src/
│   │       ├── core/
│   │       │   ├── ParamSetUtil.cpp
│   │       │   ├── PerformanceMeasure.cpp
│   │       │   ├── PerformanceMeasureUtil.cpp
│   │       │   └── PerformanceTable.cpp
│   │       ├── splitgenerators/
│   │       │   ├── CrossValidationSplitGenerator.cpp
│   │       │   ├── RNGFunctor.cpp
│   │       │   └── RandomPermutationAndDivisionSplitGenerator.cpp
│   │       └── util/
│   │           ├── CartesianProductParameterSetGenerator.cpp
│   │           ├── ConfusionMatrixUtil.cpp
│   │           ├── CoordinateDescentParameterOptimiser.cpp
│   │           ├── EpochBasedParameterOptimiser.cpp
│   │           └── RandomParameterOptimiser.cpp
│   ├── grove/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── grove/
│   │   │       ├── clustering/
│   │   │       │   ├── ExampleClustererFactory.h
│   │   │       │   ├── ExampleClustererFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ExampleClusterer_CPU.h
│   │   │       │   │   └── ExampleClusterer_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ExampleClusterer_CUDA.h
│   │   │       │   │   └── ExampleClusterer_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ExampleClusterer.h
│   │   │       │   │   └── ExampleClusterer.tpp
│   │   │       │   └── shared/
│   │   │       │       └── ExampleClusterer_Shared.h
│   │   │       ├── features/
│   │   │       │   ├── FeatureCalculatorFactory.h
│   │   │       │   ├── FeatureCalculatorFactory.tpp
│   │   │       │   ├── base/
│   │   │       │   │   ├── Descriptor.h
│   │   │       │   │   └── RGBDPatchFeatureDifferenceType.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator_CPU.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator_CUDA.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── RGBDPatchFeatureCalculator.h
│   │   │       │   │   └── RGBDPatchFeatureCalculator.tpp
│   │   │       │   └── shared/
│   │   │       │       └── RGBDPatchFeatureCalculator_Shared.h
│   │   │       ├── forests/
│   │   │       │   ├── DecisionForestFactory.h
│   │   │       │   ├── DecisionForestFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── DecisionForest_CPU.h
│   │   │       │   │   └── DecisionForest_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── DecisionForest_CUDA.h
│   │   │       │   │   └── DecisionForest_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── DecisionForest.h
│   │   │       │   │   └── DecisionForest.tpp
│   │   │       │   └── shared/
│   │   │       │       └── DecisionForest_Shared.h
│   │   │       ├── keypoints/
│   │   │       │   ├── Keypoint2D.h
│   │   │       │   └── Keypoint3DColour.h
│   │   │       ├── numbers/
│   │   │       │   ├── CPURNG.h
│   │   │       │   └── CUDARNG.h
│   │   │       ├── ransac/
│   │   │       │   ├── PreemptiveRansacFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── PreemptiveRansac_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── PreemptiveRansac_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── PreemptiveRansac.h
│   │   │       │   └── shared/
│   │   │       │       ├── PoseCandidate.h
│   │   │       │       └── PreemptiveRansac_Shared.h
│   │   │       ├── relocalisation/
│   │   │       │   ├── ScoreRelocaliserFactory.h
│   │   │       │   ├── base/
│   │   │       │   │   └── ScoreRelocaliserState.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ScoreForestRelocaliser_CPU.h
│   │   │       │   │   ├── ScoreGTRelocaliser_CPU.h
│   │   │       │   │   └── ScoreNetRelocaliser_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ScoreForestRelocaliser_CUDA.h
│   │   │       │   │   ├── ScoreGTRelocaliser_CUDA.h
│   │   │       │   │   └── ScoreNetRelocaliser_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ScoreForestRelocaliser.h
│   │   │       │   │   ├── ScoreGTRelocaliser.h
│   │   │       │   │   ├── ScoreNetRelocaliser.h
│   │   │       │   │   └── ScoreRelocaliser.h
│   │   │       │   └── shared/
│   │   │       │       ├── ScoreForestRelocaliser_Shared.h
│   │   │       │       ├── ScoreGTRelocaliser_Shared.h
│   │   │       │       └── ScoreNetRelocaliser_Shared.h
│   │   │       ├── reservoirs/
│   │   │       │   ├── ExampleReservoirsFactory.h
│   │   │       │   ├── ExampleReservoirsFactory.tpp
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── ExampleReservoirs_CPU.h
│   │   │       │   │   └── ExampleReservoirs_CPU.tpp
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── ExampleReservoirs_CUDA.h
│   │   │       │   │   └── ExampleReservoirs_CUDA.tcu
│   │   │       │   ├── interface/
│   │   │       │   │   ├── ExampleReservoirs.h
│   │   │       │   │   └── ExampleReservoirs.tpp
│   │   │       │   └── shared/
│   │   │       │       └── ExampleReservoirs_Shared.h
│   │   │       ├── scoreforests/
│   │   │       │   ├── Keypoint3DColourCluster.h
│   │   │       │   └── ScorePrediction.h
│   │   │       └── util/
│   │   │           └── Array.h
│   │   └── src/
│   │       ├── CPUInstantiations.cpp
│   │       ├── CUDAInstantiations.cu
│   │       ├── features/
│   │       │   └── FeatureCalculatorFactory.cpp
│   │       ├── numbers/
│   │       │   └── CPURNG.cpp
│   │       ├── ransac/
│   │       │   ├── PreemptiveRansacFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── PreemptiveRansac_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── PreemptiveRansac_CUDA.cu
│   │       │   └── interface/
│   │       │       └── PreemptiveRansac.cpp
│   │       └── relocalisation/
│   │           ├── ScoreRelocaliserFactory.cpp
│   │           ├── base/
│   │           │   └── ScoreRelocaliserState.cpp
│   │           ├── cpu/
│   │           │   ├── ScoreForestRelocaliser_CPU.cpp
│   │           │   ├── ScoreGTRelocaliser_CPU.cpp
│   │           │   └── ScoreNetRelocaliser_CPU.cpp
│   │           ├── cuda/
│   │           │   ├── ScoreForestRelocaliser_CUDA.cu
│   │           │   ├── ScoreGTRelocaliser_CUDA.cu
│   │           │   └── ScoreNetRelocaliser_CUDA.cu
│   │           └── interface/
│   │               ├── ScoreForestRelocaliser.cpp
│   │               ├── ScoreGTRelocaliser.cpp
│   │               ├── ScoreNetRelocaliser.cpp
│   │               └── ScoreRelocaliser.cpp
│   ├── infermous/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── infermous/
│   │   │       ├── base/
│   │   │       │   ├── CRF2D.h
│   │   │       │   ├── CRFUtil.h
│   │   │       │   ├── Grids.h
│   │   │       │   └── PairwisePotentialCalculator.h
│   │   │       └── engines/
│   │   │           └── MeanFieldInferenceEngine.h
│   │   └── src/
│   │       └── Dummy.cpp
│   ├── itmx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── itmx/
│   │   │       ├── base/
│   │   │       │   ├── ITMObjectPtrTypes.h
│   │   │       │   └── Settings.h
│   │   │       ├── graphviz/
│   │   │       │   └── GraphVisualiser.h
│   │   │       ├── imagesources/
│   │   │       │   ├── AsyncImageSourceEngine.h
│   │   │       │   ├── DepthCorruptingImageSourceEngine.h
│   │   │       │   ├── RemoteImageSourceEngine.h
│   │   │       │   ├── SemanticMaskingImageSourceEngine.h
│   │   │       │   ├── SingleRGBDImagePipe.h
│   │   │       │   └── ZedImageSourceEngine.h
│   │   │       ├── ocv/
│   │   │       │   └── OpenCVUtil.h
│   │   │       ├── picking/
│   │   │       │   ├── PickerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── Picker_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── Picker_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── Picker.h
│   │   │       │   └── shared/
│   │   │       │       └── Picker_Shared.h
│   │   │       ├── relocalisation/
│   │   │       │   ├── FernRelocaliser.h
│   │   │       │   ├── ICPRefiningRelocaliser.h
│   │   │       │   └── ICPRefiningRelocaliser.tpp
│   │   │       ├── remotemapping/
│   │   │       │   ├── BaseRGBDFrameMessage.h
│   │   │       │   ├── CompressedRGBDFrameHeaderMessage.h
│   │   │       │   ├── CompressedRGBDFrameMessage.h
│   │   │       │   ├── DepthCompressionType.h
│   │   │       │   ├── InteractionTypeMessage.h
│   │   │       │   ├── MappingClient.h
│   │   │       │   ├── MappingClientHandler.h
│   │   │       │   ├── MappingMessage.h
│   │   │       │   ├── MappingServer.h
│   │   │       │   ├── RGBCompressionType.h
│   │   │       │   ├── RGBDCalibrationMessage.h
│   │   │       │   ├── RGBDFrameCompressor.h
│   │   │       │   ├── RGBDFrameMessage.h
│   │   │       │   └── RenderingRequestMessage.h
│   │   │       ├── trackers/
│   │   │       │   ├── FallibleTracker.h
│   │   │       │   ├── GlobalTracker.h
│   │   │       │   ├── RemoteTracker.h
│   │   │       │   ├── RiftTracker.h
│   │   │       │   ├── TrackerFactory.h
│   │   │       │   ├── ViconTracker.h
│   │   │       │   └── ZedTracker.h
│   │   │       ├── util/
│   │   │       │   ├── CameraPoseConverter.h
│   │   │       │   ├── ColourConversion_Shared.h
│   │   │       │   ├── RGBDUtil.h
│   │   │       │   ├── ViconInterface.h
│   │   │       │   └── ZedCamera.h
│   │   │       └── visualisation/
│   │   │           ├── DepthVisualisationUtil.h
│   │   │           ├── DepthVisualisationUtil.tpp
│   │   │           ├── DepthVisualiserFactory.h
│   │   │           ├── cpu/
│   │   │           │   └── DepthVisualiser_CPU.h
│   │   │           ├── cuda/
│   │   │           │   └── DepthVisualiser_CUDA.h
│   │   │           ├── interface/
│   │   │           │   └── DepthVisualiser.h
│   │   │           └── shared/
│   │   │               └── DepthVisualiser_Shared.h
│   │   └── src/
│   │       ├── graphviz/
│   │       │   └── GraphVisualiser.cpp
│   │       ├── imagesources/
│   │       │   ├── AsyncImageSourceEngine.cpp
│   │       │   ├── DepthCorruptingImageSourceEngine.cpp
│   │       │   ├── RemoteImageSourceEngine.cpp
│   │       │   ├── SemanticMaskingImageSourceEngine.cpp
│   │       │   ├── SingleRGBDImagePipe.cpp
│   │       │   └── ZedImageSourceEngine.cpp
│   │       ├── ocv/
│   │       │   └── OpenCVUtil.cpp
│   │       ├── picking/
│   │       │   ├── PickerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── Picker_CPU.cpp
│   │       │   └── cuda/
│   │       │       └── Picker_CUDA.cu
│   │       ├── relocalisation/
│   │       │   └── FernRelocaliser.cpp
│   │       ├── remotemapping/
│   │       │   ├── BaseRGBDFrameMessage.cpp
│   │       │   ├── CompressedRGBDFrameHeaderMessage.cpp
│   │       │   ├── CompressedRGBDFrameMessage.cpp
│   │       │   ├── MappingClient.cpp
│   │       │   ├── MappingClientHandler.cpp
│   │       │   ├── MappingMessage.cpp
│   │       │   ├── MappingServer.cpp
│   │       │   ├── RGBDCalibrationMessage.cpp
│   │       │   ├── RGBDFrameCompressor.cpp
│   │       │   ├── RGBDFrameMessage.cpp
│   │       │   └── RenderingRequestMessage.cpp
│   │       ├── trackers/
│   │       │   ├── GlobalTracker.cpp
│   │       │   ├── RemoteTracker.cpp
│   │       │   ├── RiftTracker.cpp
│   │       │   ├── TrackerFactory.cpp
│   │       │   ├── ViconTracker.cpp
│   │       │   └── ZedTracker.cpp
│   │       ├── util/
│   │       │   ├── CameraPoseConverter.cpp
│   │       │   ├── RGBDUtil.cpp
│   │       │   ├── ViconInterface.cpp
│   │       │   └── ZedCamera.cpp
│   │       └── visualisation/
│   │           ├── DepthVisualiserFactory.cpp
│   │           ├── cpu/
│   │           │   └── DepthVisualiser_CPU.cpp
│   │           └── cuda/
│   │               └── DepthVisualiser_CUDA.cu
│   ├── oglx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── oglx/
│   │   │       ├── FrameBuffer.h
│   │   │       ├── OpenGLUtil.h
│   │   │       ├── QuadricRenderer.h
│   │   │       ├── WrappedGL.h
│   │   │       └── WrappedGLUT.h
│   │   └── src/
│   │       ├── FrameBuffer.cpp
│   │       ├── OpenGLUtil.cpp
│   │       └── QuadricRenderer.cpp
│   ├── orx/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── orx/
│   │   │       ├── base/
│   │   │       │   ├── MemoryBlockFactory.h
│   │   │       │   ├── ORImagePtrTypes.h
│   │   │       │   └── ORMemoryBlockPtrTypes.h
│   │   │       ├── geometry/
│   │   │       │   ├── DualNumber.h
│   │   │       │   ├── DualQuaternion.h
│   │   │       │   ├── GeometryUtil.h
│   │   │       │   └── Screw.h
│   │   │       ├── persistence/
│   │   │       │   ├── ImagePersister.h
│   │   │       │   └── PosePersister.h
│   │   │       └── relocalisation/
│   │   │           ├── BackgroundRelocaliser.h
│   │   │           ├── CascadeRelocaliser.h
│   │   │           ├── EnsembleRelocaliser.h
│   │   │           ├── NullRelocaliser.h
│   │   │           ├── RefiningRelocaliser.h
│   │   │           └── Relocaliser.h
│   │   └── src/
│   │       ├── base/
│   │       │   └── MemoryBlockFactory.cpp
│   │       ├── geometry/
│   │       │   └── GeometryUtil.cpp
│   │       ├── persistence/
│   │       │   ├── ImagePersister.cpp
│   │       │   └── PosePersister.cpp
│   │       └── relocalisation/
│   │           ├── BackgroundRelocaliser.cpp
│   │           ├── CascadeRelocaliser.cpp
│   │           ├── EnsembleRelocaliser.cpp
│   │           ├── NullRelocaliser.cpp
│   │           ├── RefiningRelocaliser.cpp
│   │           └── Relocaliser.cpp
│   ├── rafl/
│   │   ├── CMakeLists.txt
│   │   ├── README.txt
│   │   ├── include/
│   │   │   └── rafl/
│   │   │       ├── base/
│   │   │       │   └── Descriptor.h
│   │   │       ├── choppers/
│   │   │       │   ├── CyclicTreeChopper.h
│   │   │       │   ├── HeightLimitingTreeChopper.h
│   │   │       │   ├── RandomTreeChopper.h
│   │   │       │   ├── TimeBasedTreeChopper.h
│   │   │       │   └── TreeChopper.h
│   │   │       ├── core/
│   │   │       │   ├── DecisionTree.h
│   │   │       │   └── RandomForest.h
│   │   │       ├── decisionfunctions/
│   │   │       │   ├── CompositeDecisionFunctionGenerator.h
│   │   │       │   ├── DecisionFunction.h
│   │   │       │   ├── DecisionFunctionGenerator.h
│   │   │       │   ├── DecisionFunctionGeneratorFactory.h
│   │   │       │   ├── FeatureBasedDecisionFunctionGenerator.h
│   │   │       │   ├── FeatureThresholdingDecisionFunction.h
│   │   │       │   ├── FeatureThresholdingDecisionFunctionGenerator.h
│   │   │       │   ├── PairwiseOpAndThresholdDecisionFunction.h
│   │   │       │   └── PairwiseOpAndThresholdDecisionFunctionGenerator.h
│   │   │       └── examples/
│   │   │           ├── Example.h
│   │   │           ├── ExampleReservoir.h
│   │   │           ├── ExampleUtil.h
│   │   │           └── UnitCircleExampleGenerator.h
│   │   └── src/
│   │       └── decisionfunctions/
│   │           ├── FeatureThresholdingDecisionFunction.cpp
│   │           └── PairwiseOpAndThresholdDecisionFunction.cpp
│   ├── raflevaluation/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── raflevaluation/
│   │   │       └── RandomForestEvaluator.h
│   │   └── src/
│   │       └── Dummy.cpp
│   ├── rigging/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── rigging/
│   │   │       ├── Camera.h
│   │   │       ├── CompositeCamera.h
│   │   │       ├── DerivedCamera.h
│   │   │       ├── MoveableCamera.h
│   │   │       └── SimpleCamera.h
│   │   └── src/
│   │       ├── CompositeCamera.cpp
│   │       ├── DerivedCamera.cpp
│   │       └── SimpleCamera.cpp
│   ├── spaint/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── spaint/
│   │   │       ├── collaboration/
│   │   │       │   ├── CollaborationMode.h
│   │   │       │   ├── CollaborativePoseOptimiser.h
│   │   │       │   └── CollaborativeRelocalisation.h
│   │   │       ├── features/
│   │   │       │   ├── FeatureCalculatorFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VOPFeatureCalculator_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VOPFeatureCalculator_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── FeatureCalculator.h
│   │   │       │   │   └── VOPFeatureCalculator.h
│   │   │       │   └── shared/
│   │   │       │       └── VOPFeatureCalculator_Shared.h
│   │   │       ├── fiducials/
│   │   │       │   ├── ArUcoFiducialDetector.h
│   │   │       │   ├── AveragingFiducial.h
│   │   │       │   ├── Fiducial.h
│   │   │       │   ├── FiducialDetector.h
│   │   │       │   ├── FiducialMeasurement.h
│   │   │       │   ├── FiducialPoseEstimator.h
│   │   │       │   ├── SimpleFiducial.h
│   │   │       │   └── ViconFiducialDetector.h
│   │   │       ├── imageprocessing/
│   │   │       │   ├── ImageProcessorFactory.h
│   │   │       │   ├── MedianFilterer.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── ImageProcessor_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── ImageProcessor_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── ImageProcessor.h
│   │   │       │   └── shared/
│   │   │       │       └── ImageProcessor_Shared.h
│   │   │       ├── markers/
│   │   │       │   ├── VoxelMarkerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VoxelMarker_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VoxelMarker_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── VoxelMarker.h
│   │   │       │   └── shared/
│   │   │       │       ├── VoxelMarker_Settings.h
│   │   │       │       └── VoxelMarker_Shared.h
│   │   │       ├── ogl/
│   │   │       │   └── CameraRenderer.h
│   │   │       ├── pipelinecomponents/
│   │   │       │   ├── CollaborativeComponent.h
│   │   │       │   ├── CollaborativeContext.h
│   │   │       │   ├── ObjectSegmentationComponent.h
│   │   │       │   ├── ObjectSegmentationContext.h
│   │   │       │   ├── PropagationComponent.h
│   │   │       │   ├── PropagationContext.h
│   │   │       │   ├── SLAMComponent.h
│   │   │       │   ├── SLAMContext.h
│   │   │       │   ├── SemanticSegmentationComponent.h
│   │   │       │   ├── SemanticSegmentationContext.h
│   │   │       │   ├── SmoothingComponent.h
│   │   │       │   └── SmoothingContext.h
│   │   │       ├── propagation/
│   │   │       │   ├── LabelPropagatorFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── LabelPropagator_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── LabelPropagator_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── LabelPropagator.h
│   │   │       │   └── shared/
│   │   │       │       └── LabelPropagator_Shared.h
│   │   │       ├── randomforest/
│   │   │       │   ├── ForestUtil.h
│   │   │       │   └── SpaintDecisionFunctionGenerator.h
│   │   │       ├── relocalisation/
│   │   │       │   └── RelocaliserFactory.h
│   │   │       ├── sampling/
│   │   │       │   ├── VoxelSamplerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   ├── PerLabelVoxelSampler_CPU.h
│   │   │       │   │   └── UniformVoxelSampler_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   ├── PerLabelVoxelSampler_CUDA.h
│   │   │       │   │   └── UniformVoxelSampler_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── PerLabelVoxelSampler.h
│   │   │       │   │   └── UniformVoxelSampler.h
│   │   │       │   └── shared/
│   │   │       │       ├── PerLabelVoxelSampler_Shared.h
│   │   │       │       └── UniformVoxelSampler_Shared.h
│   │   │       ├── segmentation/
│   │   │       │   ├── BackgroundSubtractingObjectSegmenter.h
│   │   │       │   ├── ColourAppearanceModel.h
│   │   │       │   ├── SegmentationUtil.h
│   │   │       │   └── Segmenter.h
│   │   │       ├── selectiontransformers/
│   │   │       │   ├── SelectionTransformerFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── VoxelToCubeSelectionTransformer_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── VoxelToCubeSelectionTransformer_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   ├── SelectionTransformer.h
│   │   │       │   │   ├── SelectionTransformerVisitor.h
│   │   │       │   │   └── VoxelToCubeSelectionTransformer.h
│   │   │       │   └── shared/
│   │   │       │       └── VoxelToCubeSelectionTransformer_Shared.h
│   │   │       ├── selectors/
│   │   │       │   ├── LeapSelector.h
│   │   │       │   ├── NullSelector.h
│   │   │       │   ├── PickingSelector.h
│   │   │       │   ├── Selector.h
│   │   │       │   ├── SelectorVisitor.h
│   │   │       │   └── TouchSelector.h
│   │   │       ├── slamstate/
│   │   │       │   └── SLAMState.h
│   │   │       ├── smoothing/
│   │   │       │   ├── LabelSmootherFactory.h
│   │   │       │   ├── cpu/
│   │   │       │   │   └── LabelSmoother_CPU.h
│   │   │       │   ├── cuda/
│   │   │       │   │   └── LabelSmoother_CUDA.h
│   │   │       │   ├── interface/
│   │   │       │   │   └── LabelSmoother.h
│   │   │       │   └── shared/
│   │   │       │       └── LabelSmoother_Shared.h
│   │   │       ├── touch/
│   │   │       │   ├── TouchDescriptorCalculator.h
│   │   │       │   ├── TouchDetector.h
│   │   │       │   └── TouchSettings.h
│   │   │       ├── util/
│   │   │       │   ├── CameraFactory.h
│   │   │       │   ├── LabelManager.h
│   │   │       │   ├── SpaintSurfel.h
│   │   │       │   ├── SpaintSurfelScene.h
│   │   │       │   ├── SpaintVoxel.h
│   │   │       │   └── SpaintVoxelScene.h
│   │   │       └── visualisation/
│   │   │           ├── SemanticVisualiserFactory.h
│   │   │           ├── VisualisationGenerator.h
│   │   │           ├── cpu/
│   │   │           │   └── SemanticVisualiser_CPU.h
│   │   │           ├── cuda/
│   │   │           │   └── SemanticVisualiser_CUDA.h
│   │   │           ├── interface/
│   │   │           │   └── SemanticVisualiser.h
│   │   │           └── shared/
│   │   │               ├── SemanticVisualiser_Settings.h
│   │   │               └── SemanticVisualiser_Shared.h
│   │   └── src/
│   │       ├── collaboration/
│   │       │   └── CollaborativePoseOptimiser.cpp
│   │       ├── features/
│   │       │   ├── FeatureCalculatorFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VOPFeatureCalculator_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── VOPFeatureCalculator_CUDA.cu
│   │       │   └── interface/
│   │       │       └── VOPFeatureCalculator.cpp
│   │       ├── fiducials/
│   │       │   ├── ArUcoFiducialDetector.cpp
│   │       │   ├── AveragingFiducial.cpp
│   │       │   ├── Fiducial.cpp
│   │       │   ├── FiducialDetector.cpp
│   │       │   ├── FiducialMeasurement.cpp
│   │       │   ├── FiducialPoseEstimator.cpp
│   │       │   ├── SimpleFiducial.cpp
│   │       │   └── ViconFiducialDetector.cpp
│   │       ├── imageprocessing/
│   │       │   ├── ImageProcessorFactory.cpp
│   │       │   ├── MedianFilterer.cpp
│   │       │   ├── cpu/
│   │       │   │   └── ImageProcessor_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── ImageProcessor_CUDA.cu
│   │       │   └── interface/
│   │       │       └── ImageProcessor.cpp
│   │       ├── markers/
│   │       │   ├── VoxelMarkerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VoxelMarker_CPU.cpp
│   │       │   └── cuda/
│   │       │       └── VoxelMarker_CUDA.cu
│   │       ├── ogl/
│   │       │   └── CameraRenderer.cpp
│   │       ├── pipelinecomponents/
│   │       │   ├── CollaborativeComponent.cpp
│   │       │   ├── CollaborativeContext.cpp
│   │       │   ├── ObjectSegmentationComponent.cpp
│   │       │   ├── ObjectSegmentationContext.cpp
│   │       │   ├── PropagationComponent.cpp
│   │       │   ├── SLAMComponent.cpp
│   │       │   ├── SLAMContext.cpp
│   │       │   ├── SemanticSegmentationComponent.cpp
│   │       │   └── SmoothingComponent.cpp
│   │       ├── propagation/
│   │       │   ├── LabelPropagatorFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── LabelPropagator_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── LabelPropagator_CUDA.cu
│   │       │   └── interface/
│   │       │       └── LabelPropagator.cpp
│   │       ├── randomforest/
│   │       │   ├── ForestUtil.cpp
│   │       │   └── SpaintDecisionFunctionGenerator.cpp
│   │       ├── relocalisation/
│   │       │   └── RelocaliserFactory.cpp
│   │       ├── sampling/
│   │       │   ├── VoxelSamplerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   ├── PerLabelVoxelSampler_CPU.cpp
│   │       │   │   └── UniformVoxelSampler_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   ├── PerLabelVoxelSampler_CUDA.cu
│   │       │   │   └── UniformVoxelSampler_CUDA.cu
│   │       │   └── interface/
│   │       │       ├── PerLabelVoxelSampler.cpp
│   │       │       └── UniformVoxelSampler.cpp
│   │       ├── segmentation/
│   │       │   ├── BackgroundSubtractingObjectSegmenter.cpp
│   │       │   ├── ColourAppearanceModel.cpp
│   │       │   ├── SegmentationUtil.cpp
│   │       │   └── Segmenter.cpp
│   │       ├── selectiontransformers/
│   │       │   ├── SelectionTransformerFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── VoxelToCubeSelectionTransformer_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── VoxelToCubeSelectionTransformer_CUDA.cu
│   │       │   └── interface/
│   │       │       ├── SelectionTransformer.cpp
│   │       │       ├── SelectionTransformerVisitor.cpp
│   │       │       └── VoxelToCubeSelectionTransformer.cpp
│   │       ├── selectors/
│   │       │   ├── LeapSelector.cpp
│   │       │   ├── NullSelector.cpp
│   │       │   ├── PickingSelector.cpp
│   │       │   ├── SelectorVisitor.cpp
│   │       │   └── TouchSelector.cpp
│   │       ├── slamstate/
│   │       │   └── SLAMState.cpp
│   │       ├── smoothing/
│   │       │   ├── LabelSmootherFactory.cpp
│   │       │   ├── cpu/
│   │       │   │   └── LabelSmoother_CPU.cpp
│   │       │   ├── cuda/
│   │       │   │   └── LabelSmoother_CUDA.cu
│   │       │   └── interface/
│   │       │       └── LabelSmoother.cpp
│   │       ├── touch/
│   │       │   ├── TouchDescriptorCalculator.cpp
│   │       │   ├── TouchDetector.cpp
│   │       │   └── TouchSettings.cpp
│   │       ├── util/
│   │       │   └── LabelManager.cpp
│   │       └── visualisation/
│   │           ├── SemanticVisualiserFactory.cpp
│   │           ├── VisualisationGenerator.cpp
│   │           ├── cpu/
│   │           │   └── SemanticVisualiser_CPU.cpp
│   │           ├── cuda/
│   │           │   └── SemanticVisualiser_CUDA.cu
│   │           └── interface/
│   │               └── SemanticVisualiser.cpp
│   ├── tvginput/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── tvginput/
│   │   │       ├── InputState.h
│   │   │       ├── JoystickAxis.h
│   │   │       ├── JoystickButton.h
│   │   │       ├── Keycode.h
│   │   │       └── MouseButton.h
│   │   └── src/
│   │       └── InputState.cpp
│   ├── tvgplot/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── tvgplot/
│   │   │       ├── PaletteGenerator.h
│   │   │       └── PlotWindow.h
│   │   └── src/
│   │       ├── PaletteGenerator.cpp
│   │       └── PlotWindow.cpp
│   └── tvgutil/
│       ├── CMakeLists.txt
│       ├── include/
│       │   └── tvgutil/
│       │       ├── boost/
│       │       │   └── WrappedAsio.h
│       │       ├── commands/
│       │       │   ├── Command.h
│       │       │   ├── CommandManager.h
│       │       │   ├── NoOpCommand.h
│       │       │   └── SeqCommand.h
│       │       ├── containers/
│       │       │   ├── LimitedContainer.h
│       │       │   ├── MapUtil.h
│       │       │   ├── PooledQueue.h
│       │       │   └── PriorityQueue.h
│       │       ├── filesystem/
│       │       │   ├── FilesystemUtil.h
│       │       │   ├── PathFinder.h
│       │       │   └── SequentialPathGenerator.h
│       │       ├── misc/
│       │       │   ├── ArgUtil.h
│       │       │   ├── ConversionUtil.h
│       │       │   ├── ExclusiveHandle.h
│       │       │   ├── IDAllocator.h
│       │       │   ├── SettingsContainer.h
│       │       │   └── ThreadPool.h
│       │       ├── net/
│       │       │   ├── AckMessage.h
│       │       │   ├── ClientHandler.h
│       │       │   ├── Message.h
│       │       │   ├── Server.h
│       │       │   └── SimpleMessage.h
│       │       ├── numbers/
│       │       │   ├── NumberSequenceGenerator.h
│       │       │   └── RandomNumberGenerator.h
│       │       ├── persistence/
│       │       │   ├── LineUtil.h
│       │       │   ├── PropertyUtil.h
│       │       │   └── SerializationUtil.h
│       │       ├── statistics/
│       │       │   ├── Histogram.h
│       │       │   └── ProbabilityMassFunction.h
│       │       └── timing/
│       │           ├── AverageTimer.h
│       │           ├── TimeUtil.h
│       │           └── Timer.h
│       └── src/
│           ├── commands/
│           │   ├── Command.cpp
│           │   ├── CommandManager.cpp
│           │   ├── NoOpCommand.cpp
│           │   └── SeqCommand.cpp
│           ├── filesystem/
│           │   ├── FilesystemUtil.cpp
│           │   ├── PathFinder.cpp
│           │   └── SequentialPathGenerator.cpp
│           ├── misc/
│           │   ├── IDAllocator.cpp
│           │   ├── SettingsContainer.cpp
│           │   └── ThreadPool.cpp
│           ├── net/
│           │   ├── AckMessage.cpp
│           │   ├── ClientHandler.cpp
│           │   └── Message.cpp
│           ├── numbers/
│           │   └── RandomNumberGenerator.cpp
│           └── persistence/
│               ├── LineUtil.cpp
│               └── PropertyUtil.cpp
├── pages/
│   └── mainpage.dox
├── require-devenv.sh
├── require-msbuild.sh
├── require-vsdevcmd.sh
├── run-spaintgui.sh
├── spaintdocs
├── tests/
│   ├── CMakeLists.txt
│   ├── scratch/
│   │   ├── CMakeLists.txt
│   │   ├── alglib/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── arrayfire/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── boost/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── cuda/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── main.cpp
│   │   │   ├── multiply.cu
│   │   │   ├── multiply.cuh
│   │   │   ├── test.cu
│   │   │   └── test.h
│   │   ├── eigen/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── infermous/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── infinitam/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── leap/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── lodepng/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── opencv/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── ovr/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── rafl/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── sdl/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── tbb/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── tvgutil/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── vicon/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   ├── voice/
│   │   │   ├── CMakeLists.txt
│   │   │   └── main.cpp
│   │   └── zed/
│   │       ├── CMakeLists.txt
│   │       └── main.cpp
│   └── unit/
│       ├── CMakeLists.txt
│       ├── evaluation/
│       │   ├── CMakeLists.txt
│       │   ├── test_CartesianProductParameterSetGenerator.cpp
│       │   ├── test_ConfusionMatrixUtil.cpp
│       │   ├── test_CoordinateDescentParameterOptimiser.cpp
│       │   ├── test_CrossValidationSplitGenerator.cpp
│       │   ├── test_PerformanceMeasureUtil.cpp
│       │   └── test_RandomPermutationAndDivisionSplitGenerator.cpp
│       ├── infermous/
│       │   ├── CMakeLists.txt
│       │   └── test_CRFUtil.cpp
│       ├── itmx/
│       │   ├── CMakeLists.txt
│       │   └── test_ColourConversion.cpp
│       ├── orx/
│       │   ├── CMakeLists.txt
│       │   ├── HelperFunctions.h
│       │   ├── test_DualNumber.cpp
│       │   ├── test_DualQuaternion.cpp
│       │   └── test_GeometryUtil.cpp
│       ├── rafl/
│       │   ├── CMakeLists.txt
│       │   └── test_UnitCircleExampleGenerator.cpp
│       ├── rigging/
│       │   ├── CMakeLists.txt
│       │   └── test_CompositeCamera.cpp
│       ├── spaint/
│       │   ├── CMakeLists.txt
│       │   └── test_ImageProcessor.cpp
│       └── tvgutil/
│           ├── CMakeLists.txt
│           ├── test_ArgUtil.cpp
│           ├── test_CommandManager.cpp
│           ├── test_LimitedContainer.cpp
│           ├── test_MapUtil.cpp
│           ├── test_PriorityQueue.cpp
│           └── test_RandomNumberGenerator.cpp
└── update-voice-grammar.sh
Download .txt
SYMBOL INDEX (1891 symbols across 576 files)

FILE: apps/combineglobalposes/main.cpp
  function main (line 22) | int main(int argc, char *argv[])

FILE: apps/forestmodevis/main.cpp
  type Mode (line 38) | struct Mode
  function readModes (line 44) | void readModes(const std::string &modesFile, std::vector<std::vector<Mod...
  function readExamples (line 67) | void readExamples(const std::string &examplesFile, std::vector<std::vect...
  class WCovarianceEllipsoid (line 92) | class WCovarianceEllipsoid : public Widget3D
    method WCovarianceEllipsoid (line 95) | WCovarianceEllipsoid(const cv::Vec3f &position, const cv::Matx33f &cov...
  type VisualizationCookie (line 141) | struct VisualizationCookie
  function drawModes (line 154) | std::vector<std::string>
  function drawExamples (line 172) | std::vector<std::string> drawExamples(const std::vector<cv::Point3d> &ex...
  function vizCallbackSingleModes (line 193) | static void vizCallbackSingleModes(const KeyboardEvent &event, void *c)
  function vizCallbackAnimation (line 224) | static void vizCallbackAnimation(const KeyboardEvent &event, void *c)
  function main (line 317) | int main(int argc, char *argv[])

FILE: apps/prepare_7scenes/main.cpp
  function copy_rgbd_pose_frame (line 26) | void copy_rgbd_pose_frame(const SequentialPathGenerator &inputPathGenera...
  function process_splits (line 47) | void process_splits(const bf::path &sequencePath,
  function quit (line 81) | void quit(const std::string &message, int code = EXIT_FAILURE)
  function main (line 89) | int main(int argc, char *argv[]) try

FILE: apps/raflperf/main.cpp
  function main (line 36) | int main(int argc, char *argv[])

FILE: apps/raflvis/TestDecisionFunctionGenerator.h
  type boost (line 23) | typedef boost::shared_ptr<const DecisionFunctionGenerator<Label> > Decis...
  function std (line 63) | static std::string get_static_type()

FILE: apps/raflvis/main.cpp
  class SetSampler (line 50) | class SetSampler
    method SetSampler (line 64) | explicit SetSampler(unsigned int seed)
    method T (line 76) | T get_sample(const std::set<T>& s)
  function Descriptor_CPtr (line 94) | static Descriptor_CPtr make_2d_descriptor(float x, float y)
  function generate_2d_descriptor_grid (line 110) | static std::vector<Descriptor_CPtr> generate_2d_descriptor_grid(float mi...
  function rotate_examples (line 130) | static std::vector<Example_CPtr> rotate_examples(const std::vector<Examp...
  function evaluate_forest_accuracy (line 151) | static float evaluate_forest_accuracy(const RF_Ptr& forest, const std::v...
  function main (line 169) | int main(int argc, char *argv[])

FILE: apps/relocconverter/main.cpp
  function main (line 17) | int main(int argc, char *argv[])

FILE: apps/relocgui/RelocaliserApplication.cpp
  type relocgui (line 37) | namespace relocgui {
    function angular_separation (line 51) | float angular_separation(const Eigen::Matrix3f &r1, const Eigen::Matri...
    function pose_matches (line 71) | bool pose_matches(const Matrix4f &gtPose, const Matrix4f &testPose, fl...
    function Matrix4f (line 97) | Matrix4f read_pose_from_file(const bf::path &fileName)

FILE: apps/relocgui/RelocaliserApplication.h
  function namespace (line 30) | namespace relocgui {

FILE: apps/relocgui/main.cpp
  type CommandLineArguments (line 22) | struct CommandLineArguments
  function add_options_to_settings (line 38) | void add_options_to_settings(const po::parsed_options &parsedOptions, co...
  function parse_command_line (line 61) | bool parse_command_line(int argc, char *argv[], CommandLineArguments &ar...
  function main (line 122) | int main(int argc, char *argv[]) try

FILE: apps/relocicpeval/main.cpp
  function find_sequence_names (line 43) | std::vector<std::string> find_sequence_names(const fs::path &dataset_path)
  function read_pose_from_file (line 76) | Eigen::Matrix4f read_pose_from_file(const fs::path &fileName)
  function angular_separation (line 106) | float angular_separation(const Eigen::Matrix3f &r1, const Eigen::Matrix3...
  function pose_difference (line 124) | void pose_difference(const Eigen::Matrix4f &poseA,
  function pose_matches (line 152) | bool pose_matches(const Eigen::Matrix4f &gtPose,
  function pose_matches (line 178) | bool pose_matches(const Eigen::Matrix4f &gtPose, const Eigen::Matrix4f &...
  function pose_file_matches (line 193) | bool pose_file_matches(const Eigen::Matrix4f &gtPose, const fs::path &po...
  function pose_file_matches (line 211) | bool pose_file_matches(const Eigen::Matrix4f &gtPose,
  type PosePairResult (line 225) | struct PosePairResult
  function SequenceResults (line 249) | SequenceResults evaluate_sequence(const fs::path &gtFolder, const fs::pa...
  function printWidth (line 308) | void printWidth(const T &item, int width, bool leftAlign = false)
  function main (line 313) | int main(int argc, char *argv[])

FILE: apps/relocnovelposes/main.cpp
  function find_sequence_names (line 38) | std::vector<std::string> find_sequence_names(const fs::path &dataset_path)
  function generate_path (line 62) | fs::path generate_path(const fs::path& basePath, const std::string& mask...
  function read_pose_from_file (line 70) | Eigen::Matrix4f read_pose_from_file(const fs::path &fileName)
  function read_sequence_trajectory (line 87) | std::vector<Eigen::Matrix4f> read_sequence_trajectory(const fs::path& ba...
  function angular_separation (line 104) | float angular_separation(const Eigen::Matrix3f& r1, const Eigen::Matrix3...
  function pose_matches (line 113) | bool pose_matches(const Eigen::Matrix4f& gtPose, const Eigen::Matrix4f& ...
  type TestICPPair (line 127) | struct TestICPPair
  type BinStats (line 143) | struct BinStats
    method BinStats (line 152) | BinStats()
  type ErrorThreshold (line 161) | struct ErrorThreshold
    method ErrorThreshold (line 167) | ErrorThreshold(float translationMaxError_, T angleMaxError_)
  function classify_poses (line 172) | std::vector<BinnedPoses> classify_poses(
  function compute_bin_stats (line 243) | std::vector<BinStats> compute_bin_stats(const std::vector<BinnedPoses>& ...
  function printWidth (line 273) | void printWidth(const T &item, int width, bool leftAlign = false)
  function main (line 279) | int main(int argc, char *argv[])

FILE: apps/relocopt/main.cpp
  type Arguments (line 38) | struct Arguments
    method Arguments (line 49) | Arguments()
  function grove_cost_fn (line 58) | float grove_cost_fn(const Arguments& args, const ParamSet& params)
  function parse_command_line (line 141) | bool parse_command_line(int argc, char *argv[], Arguments& args)
  function main (line 188) | int main(int argc, char *argv[])

FILE: apps/relocperf/main.cpp
  function find_sequence_names (line 42) | std::vector<std::string> find_sequence_names(const fs::path& datasetRoot)
  function read_pose_from_file (line 74) | Eigen::Matrix4f read_pose_from_file(const fs::path& filename)
  function angular_separation (line 109) | float angular_separation(const Eigen::Matrix3f& r1, const Eigen::Matrix3...
  function pose_matches (line 137) | bool pose_matches(const Eigen::Matrix4f& gtPose, const Eigen::Matrix4f& ...
  function pose_matches (line 169) | bool pose_matches(const Eigen::Matrix4f& gtPose, const Eigen::Matrix4f& ...
  function pose_file_matches (line 184) | bool pose_file_matches(const Eigen::Matrix4f& gtPose, const fs::path& po...
  function pose_file_matches (line 202) | bool pose_file_matches(const Eigen::Matrix4f& gtPose, const fs::path& po...
  type SequenceResults (line 216) | struct SequenceResults
    method SequenceResults (line 306) | SequenceResults()
  type Comparer (line 331) | struct Comparer
  function SequenceResults (line 354) | SequenceResults evaluate_sequence(const fs::path& gtFolder, const fs::pa...
    method SequenceResults (line 306) | SequenceResults()
  function printWidth (line 493) | void printWidth(const T& item, int width, bool leftAlign = false)
  function main (line 498) | int main(int argc, char *argv[])

FILE: apps/relocvis/main.cpp
  function generate_path (line 26) | fs::path generate_path(const fs::path basePath, const std::string &mask,
  function read_pose_from_file (line 35) | Eigen::Matrix4f read_pose_from_file(const fs::path &fileName)
  function read_sequence_trajectory (line 52) | std::vector<Eigen::Matrix4f> read_sequence_trajectory(const fs::path &ba...
  function eigen_to_cv (line 70) | cv::Affine3f eigen_to_cv(const Eigen::Matrix4f &eigM)
  function eigen_to_cv (line 83) | std::vector<cv::Affine3f> eigen_to_cv(
  function subsample_trajectory (line 96) | std::vector<cv::Affine3f> subsample_trajectory(
  function split_trajectory (line 109) | std::vector<std::vector<cv::Affine3f>> split_trajectory(
  function angular_separation (line 125) | float angular_separation(const Eigen::Matrix3f& r1, const Eigen::Matrix3...
  function pose_matches (line 134) | bool pose_matches(const Eigen::Matrix4f &gtPose,
  type TestICPPair (line 150) | struct TestICPPair
  type ErrorThreshold (line 160) | struct ErrorThreshold
  function classify_poses (line 167) | std::vector<std::vector<TestICPPair>> classify_poses(
  function prune_near_poses (line 225) | std::vector<std::vector<TestICPPair> > prune_near_poses(
  function prune_near_poses (line 266) | std::vector<TestICPPair> prune_near_poses(const std::vector<TestICPPair>...
  function printWidth (line 298) | void printWidth(const T &item, int width, bool leftAlign = false)
  type Cookie (line 304) | struct Cookie
  function key_cb (line 311) | void key_cb(const KeyboardEvent& event, void* cookie_v)
  function main (line 325) | int main(int argc, char *argv[])

FILE: apps/spaintgui/Application.cpp
  function Subwindow (line 234) | Subwindow& Application::get_active_subwindow()
  function Subwindow (line 239) | const Subwindow& Application::get_active_subwindow() const
  function VoxelRenderState_CPtr (line 244) | VoxelRenderState_CPtr Application::get_monocular_render_state() const
  function SubwindowConfiguration_Ptr (line 249) | SubwindowConfiguration_Ptr Application::get_subwindow_configuration(size...

FILE: apps/spaintgui/Application.h
  function class (line 34) | class Application

FILE: apps/spaintgui/CPUInstantiations.cpp
  class ITMDenseMapper<SpaintVoxel,ITMVoxelIndex> (line 18) | class ITMDenseMapper<SpaintVoxel,ITMVoxelIndex>
  class ITMMeshingEngine_CPU<SpaintVoxel,ITMVoxelIndex> (line 19) | class ITMMeshingEngine_CPU<SpaintVoxel,ITMVoxelIndex>
  class ITMSceneReconstructionEngine_CPU<SpaintVoxel,ITMVoxelIndex> (line 20) | class ITMSceneReconstructionEngine_CPU<SpaintVoxel,ITMVoxelIndex>
  class ITMSwappingEngine_CPU<SpaintVoxel,ITMVoxelIndex> (line 21) | class ITMSwappingEngine_CPU<SpaintVoxel,ITMVoxelIndex>
  class ITMVisualisationEngine_CPU<SpaintVoxel,ITMVoxelIndex> (line 22) | class ITMVisualisationEngine_CPU<SpaintVoxel,ITMVoxelIndex>
  class ICPRefiningRelocaliser<SpaintVoxel,ITMVoxelIndex> (line 23) | class ICPRefiningRelocaliser<SpaintVoxel,ITMVoxelIndex>

FILE: apps/spaintgui/commands/MarkVoxelsCommand.h
  function class (line 16) | class MarkVoxelsCommand : public tvgutil::Command

FILE: apps/spaintgui/core/CollaborativePipeline.h
  function class (line 17) | class CollaborativePipeline : public MultiScenePipeline

FILE: apps/spaintgui/core/Model.cpp
  function LabelManager_Ptr (line 73) | const LabelManager_Ptr& Model::get_label_manager()
  function LabelManager_CPtr (line 78) | LabelManager_CPtr Model::get_label_manager() const
  function MappingServer_Ptr (line 83) | const MappingServer_Ptr& Model::get_mapping_server()
  function MappingServer_CPtr (line 88) | MappingServer_CPtr Model::get_mapping_server() const
  function SelectionTransformer_CPtr (line 104) | SelectionTransformer_CPtr Model::get_selection_transformer() const
  function Selector_CPtr (line 109) | Selector_CPtr Model::get_selector() const
  function Settings_CPtr (line 119) | const Settings_CPtr& Model::get_settings() const
  function TrackerFactory (line 129) | const TrackerFactory& Model::get_tracker_factory() const
  function ViconInterface_Ptr (line 135) | const ViconInterface_Ptr& Model::get_vicon()
  function ViconInterface_CPtr (line 140) | ViconInterface_CPtr Model::get_vicon() const
  function VisualisationGenerator_CPtr (line 146) | VisualisationGenerator_CPtr Model::get_visualisation_generator() const
  function Relocaliser_Ptr (line 219) | Relocaliser_Ptr& Model::get_relocaliser(const std::string& sceneID)
  function Relocaliser_CPtr (line 224) | Relocaliser_CPtr Model::get_relocaliser(const std::string& sceneID) const
  function SLAMState_Ptr (line 234) | const SLAMState_Ptr& Model::get_slam_state(const std::string& sceneID)
  function SLAMState_CPtr (line 239) | SLAMState_CPtr Model::get_slam_state(const std::string& sceneID) const

FILE: apps/spaintgui/core/Model.h
  type boost (line 38) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<spaint::SpaintVoxel...
  type spaint (line 39) | typedef spaint::Selector::Selection Selection;
  type boost (line 40) | typedef boost::shared_ptr<const Selection> Selection_CPtr;
  type boost (line 41) | typedef boost::shared_ptr<const ITMLib::ITMSurfelVisualisationEngine<spa...
  type ITMLib (line 42) | typedef ITMLib::ITMVisualisationEngine<spaint::SpaintVoxel,ITMVoxelIndex...
  type boost (line 43) | typedef boost::shared_ptr<VoxelVisualisationEngine> VoxelVisualisationEn...
  type boost (line 44) | typedef boost::shared_ptr<const VoxelVisualisationEngine> VoxelVisualisa...

FILE: apps/spaintgui/core/MultiScenePipeline.cpp
  function Model_Ptr (line 52) | const Model_Ptr& MultiScenePipeline::get_model()
  function Model_CPtr (line 57) | Model_CPtr MultiScenePipeline::get_model() const

FILE: apps/spaintgui/core/MultiScenePipeline.h
  type Mode (line 27) | enum Mode

FILE: apps/spaintgui/core/ObjectivePipeline.h
  function class (line 14) | class ObjectivePipeline : public MultiScenePipeline

FILE: apps/spaintgui/core/SLAMPipeline.h
  function class (line 16) | class SLAMPipeline : public MultiScenePipeline

FILE: apps/spaintgui/core/SemanticPipeline.h
  function class (line 16) | class SemanticPipeline : public MultiScenePipeline

FILE: apps/spaintgui/debugging/RelocaliserFiguresGenerator.h
  type RelocaliserFiguresGenerator (line 15) | struct RelocaliserFiguresGenerator

FILE: apps/spaintgui/main.cpp
  type CommandLineArguments (line 79) | struct CommandLineArguments
    method add_to_settings (line 136) | void add_to_settings(const Settings_Ptr& settings)
  function add_unregistered_options_to_settings (line 199) | void add_unregistered_options_to_settings(const po::parsed_options& pars...
  function ImageSourceEngine (line 223) | ImageSourceEngine *check_camera_subengine(ImageSourceEngine *cameraSuben...
  function copy_scene_params (line 238) | void copy_scene_params(const Settings_Ptr& settings)
  function parse_command_line (line 665) | bool parse_command_line(int argc, char *argv[], CommandLineArguments& ar...
  function quit (line 768) | void quit(const std::string& message, int code = EXIT_FAILURE)
  function main (line 775) | int main(int argc, char *argv[])

FILE: apps/spaintgui/renderers/HeadlessRenderer.cpp
  function VoxelRenderState_CPtr (line 19) | VoxelRenderState_CPtr HeadlessRenderer::get_monocular_render_state(size_...

FILE: apps/spaintgui/renderers/HeadlessRenderer.h
  function class (line 15) | class HeadlessRenderer : public Renderer

FILE: apps/spaintgui/renderers/Renderer.cpp
  class SelectorRenderer (line 43) | class SelectorRenderer : public SelectionTransformerVisitor, public Sele...
    method SelectorRenderer (line 57) | SelectorRenderer(const Renderer *base, const Vector3f& colour)
    method visit (line 65) | virtual void visit(const LeapSelector& selector) const
    method visit (line 117) | virtual void visit(const PickingSelector& selector) const
    method visit (line 127) | virtual void visit(const TouchSelector& selector) const
    method visit (line 167) | virtual void visit(const VoxelToCubeSelectionTransformer& transformer)...
    method render_orb (line 180) | void render_orb(const Eigen::Vector3f& centre, double radius) const
  function ORUChar4Image_CPtr (line 213) | ORUChar4Image_CPtr Renderer::capture_screenshot() const
  function Vector2f (line 234) | Vector2f Renderer::compute_fractional_window_position(int x, int y) const
  function SubwindowConfiguration_Ptr (line 245) | const SubwindowConfiguration_Ptr& Renderer::get_subwindow_configuration()
  function SubwindowConfiguration_CPtr (line 250) | SubwindowConfiguration_CPtr Renderer::get_subwindow_configuration() const
  function Model_CPtr (line 323) | Model_CPtr Renderer::get_model() const
  function SDL_Window (line 328) | SDL_Window *Renderer::get_window() const
  function Vector2i (line 333) | const Vector2i& Renderer::get_window_viewport_size() const

FILE: apps/spaintgui/renderers/Renderer.h
  function class (line 28) | class Renderer

FILE: apps/spaintgui/renderers/RiftRenderer.cpp
  function VoxelRenderState_CPtr (line 136) | VoxelRenderState_CPtr RiftRenderer::get_monocular_render_state(size_t su...

FILE: apps/spaintgui/renderers/RiftRenderer.h
  function class (line 22) | class RiftRenderer : public Renderer

FILE: apps/spaintgui/renderers/WindowedRenderer.cpp
  function VoxelRenderState_CPtr (line 51) | VoxelRenderState_CPtr WindowedRenderer::get_monocular_render_state(size_...

FILE: apps/spaintgui/renderers/WindowedRenderer.h
  function class (line 16) | class WindowedRenderer : public Renderer

FILE: apps/spaintgui/sequences/Sequence.h
  function class (line 17) | class Sequence
  type boost (line 94) | typedef boost::shared_ptr<const Sequence> Sequence_CPtr;

FILE: apps/spaintgui/sequences/SpaintSequence.cpp
  function ImageSourceEngine (line 72) | ImageSourceEngine *SpaintSequence::make_image_source_engine(const std::s...

FILE: apps/spaintgui/sequences/SpaintSequence.h
  function class (line 14) | class SpaintSequence : public Sequence

FILE: apps/spaintgui/subwindows/Subwindow.cpp
  function Vector2f (line 35) | const Vector2f& Subwindow::bottom_right() const
  function CompositeCamera_Ptr (line 45) | const CompositeCamera_Ptr& Subwindow::get_camera() const
  function ITMIntrinsics (line 50) | ITMIntrinsics Subwindow::get_camera_intrinsics() const
  function ORUChar4Image_Ptr (line 65) | const ORUChar4Image_Ptr& Subwindow::get_image()
  function ORUChar4Image_CPtr (line 70) | ORUChar4Image_CPtr Subwindow::get_image() const
  function Vector2i (line 75) | const Vector2i& Subwindow::get_original_image_size() const
  function SurfelRenderState_Ptr (line 95) | SurfelRenderState_Ptr& Subwindow::get_surfel_render_state(int viewIndex)
  function SurfelRenderState_CPtr (line 100) | SurfelRenderState_CPtr Subwindow::get_surfel_render_state(int viewIndex)...
  function VoxelRenderState_Ptr (line 110) | VoxelRenderState_Ptr& Subwindow::get_voxel_render_state(int viewIndex)
  function VoxelRenderState_CPtr (line 115) | VoxelRenderState_CPtr Subwindow::get_voxel_render_state(int viewIndex) c...
  function Vector2f (line 168) | const Vector2f& Subwindow::top_left() const

FILE: apps/spaintgui/subwindows/Subwindow.h
  function class (line 17) | class Subwindow

FILE: apps/spaintgui/subwindows/SubwindowConfiguration.cpp
  type SubwindowSpecifier (line 16) | struct SubwindowSpecifier
    method SubwindowSpecifier (line 28) | SubwindowSpecifier(const std::string& sceneID, const VisualisationGene...
  function SubwindowConfiguration_Ptr (line 37) | SubwindowConfiguration_Ptr SubwindowConfiguration::make_default(size_t s...
  function Subwindow (line 121) | Subwindow& SubwindowConfiguration::subwindow(size_t i)
  function Subwindow (line 126) | const Subwindow& SubwindowConfiguration::subwindow(size_t i) const

FILE: apps/spaintgui/subwindows/SubwindowConfiguration.h
  function class (line 15) | class SubwindowConfiguration
  type boost (line 89) | typedef boost::shared_ptr<SubwindowConfiguration> SubwindowConfiguration...
  type boost (line 90) | typedef boost::shared_ptr<const SubwindowConfiguration> SubwindowConfigu...

FILE: apps/touchtrain/TouchTrainDataset.h
  function std (line 169) | static std::vector<LabelledPath<Label> > generate_labelled_image_paths(c...

FILE: apps/touchtrain/main.cpp
  function generate_examples (line 48) | std::vector<boost::shared_ptr<const Example<Label> > > generate_examples...
  function main (line 65) | int main(int argc, char *argv[])

FILE: cmake/cuda_compute_capability.cpp
  function main (line 18) | int main() {

FILE: helpers/GL/glew.h
  type wchar_t (line 141) | typedef unsigned short wchar_t;
  type __int64 (line 154) | typedef __int64 ptrdiff_t;
  type _W64 (line 156) | typedef _W64 int ptrdiff_t;
  type GLenum (line 225) | typedef unsigned int GLenum;
  type GLbitfield (line 226) | typedef unsigned int GLbitfield;
  type GLuint (line 227) | typedef unsigned int GLuint;
  type GLint (line 228) | typedef int GLint;
  type GLsizei (line 229) | typedef int GLsizei;
  type GLboolean (line 230) | typedef unsigned char GLboolean;
  type GLbyte (line 231) | typedef signed char GLbyte;
  type GLshort (line 232) | typedef short GLshort;
  type GLubyte (line 233) | typedef unsigned char GLubyte;
  type GLushort (line 234) | typedef unsigned short GLushort;
  type GLulong (line 235) | typedef unsigned long GLulong;
  type GLfloat (line 236) | typedef float GLfloat;
  type GLclampf (line 237) | typedef float GLclampf;
  type GLdouble (line 238) | typedef double GLdouble;
  type GLclampd (line 239) | typedef double GLclampd;
  type GLvoid (line 240) | typedef void GLvoid;
  type __int64 (line 243) | typedef __int64 GLint64EXT;
  type GLuint64EXT (line 244) | typedef unsigned __int64 GLuint64EXT;
  type GLint64EXT (line 246) | typedef signed long long GLint64EXT;
  type GLuint64EXT (line 247) | typedef unsigned long long GLuint64EXT;
  type GLint64EXT (line 253) | typedef int64_t GLint64EXT;
  type GLuint64EXT (line 254) | typedef uint64_t GLuint64EXT;
  type GLint64EXT (line 256) | typedef GLint64EXT  GLint64;
  type GLuint64EXT (line 257) | typedef GLuint64EXT GLuint64;
  type __GLsync (line 258) | struct __GLsync
  type GLsizeiptr (line 1607) | typedef ptrdiff_t GLsizeiptr;
  type GLintptr (line 1608) | typedef ptrdiff_t GLintptr;
  type GLvoid (line 1627) | typedef GLvoid *(GLAPIENTRY *PFNGLMAPBUFFERPROC)(GLenum target, GLenum a...
  type GLchar (line 1744) | typedef char GLchar;
  type GLchar (line 2113) | typedef GLint(GLAPIENTRY *PFNGLGETFRAGDATALOCATIONPROC)(GLuint, const GL...
  type GLvoid (line 3511) | typedef GLvoid *(GLAPIENTRY *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLi...
  type GLcharARB (line 3895) | typedef char GLcharARB;
  type GLhandleARB (line 3896) | typedef unsigned int GLhandleARB;
  type const (line 4001) | typedef GLuint(GLAPIENTRY *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, ...
  type const (line 4002) | typedef GLint(GLAPIENTRY *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint ...
  type GLsizeiptrARB (line 4878) | typedef ptrdiff_t GLsizeiptrARB;
  type GLintptrARB (line 4879) | typedef ptrdiff_t GLintptrARB;
  type GLvoid (line 4890) | typedef GLvoid *(GLAPIENTRY *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenu...
  type GLenum (line 5683) | typedef GLuint(GLAPIENTRY *PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, co...
  type GLvoid (line 6271) | typedef GLvoid *(GLAPIENTRY *PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, ...
  type GLvoid (line 6272) | typedef GLvoid *(GLAPIENTRY *PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buf...
  type GLuint (line 8093) | typedef GLboolean(GLAPIENTRY *PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n...
  type GLhalf (line 9591) | typedef unsigned short GLhalf;
  type GLuint (line 10634) | typedef GLboolean(GLAPIENTRY *PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n,...
  type GLEWContextStruct (line 13981) | struct GLEWContextStruct

FILE: helpers/GL/glext.h
  type GLchar (line 3335) | typedef char GLchar;
  type GLintptr (line 3340) | typedef ptrdiff_t GLintptr;
  type GLsizeiptr (line 3341) | typedef ptrdiff_t GLsizeiptr;
  type GLintptrARB (line 3346) | typedef ptrdiff_t GLintptrARB;
  type GLsizeiptrARB (line 3347) | typedef ptrdiff_t GLsizeiptrARB;
  type GLcharARB (line 3352) | typedef char GLcharARB;
  type GLhandleARB (line 3353) | typedef unsigned int GLhandleARB;
  type GLhalfARB (line 3358) | typedef unsigned short GLhalfARB;
  type GLhalfNV (line 3362) | typedef unsigned short GLhalfNV;
  type GLint64EXT (line 3366) | typedef signed long long GLint64EXT;
  type GLuint64EXT (line 3367) | typedef unsigned long long GLuint64EXT;
  type GLvoid (line 3684) | typedef GLvoid *(APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum acc...
  type GLvoid (line 4303) | typedef GLvoid *(APIENTRYP PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum ...
  type GLuint (line 4685) | typedef GLboolean(APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, ...
  type GLuint (line 5975) | typedef GLboolean(APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, c...
  type GLvoid (line 6139) | typedef GLuint(APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, cons...
  type GLvoid (line 6679) | typedef GLvoid *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);

FILE: helpers/GL/glut.h
  type wchar_t (line 43) | typedef unsigned short wchar_t;

FILE: helpers/GL/glxew.h
  type XID (line 101) | typedef XID GLXDrawable;
  type XID (line 102) | typedef XID GLXPixmap;
  type __glXcontextRec (line 104) | struct __glXcontextRec
  type __GLXcontextRec (line 106) | struct __GLXcontextRec
  type Display (line 153) | typedef Display *(* PFNGLXGETCURRENTDISPLAYPROC)(void);
  type XID (line 223) | typedef XID GLXFBConfigID;
  type XID (line 224) | typedef XID GLXWindow;
  type XID (line 225) | typedef XID GLXPbuffer;
  type __GLXFBConfigRec (line 226) | struct __GLXFBConfigRec
  type GLXPbufferClobberEvent (line 227) | typedef struct
  type GLXEvent (line 241) | typedef union __GLXEvent
  type GLXFBConfig (line 247) | typedef GLXFBConfig *(* PFNGLXCHOOSEFBCONFIGPROC)(Display *dpy, int scre...
  type GLXContext (line 248) | typedef GLXContext(* PFNGLXCREATENEWCONTEXTPROC)(Display *dpy, GLXFBConf...
  type GLXPbuffer (line 249) | typedef GLXPbuffer(* PFNGLXCREATEPBUFFERPROC)(Display *dpy, GLXFBConfig ...
  type GLXPixmap (line 250) | typedef GLXPixmap(* PFNGLXCREATEPIXMAPPROC)(Display *dpy, GLXFBConfig co...
  type GLXWindow (line 251) | typedef GLXWindow(* PFNGLXCREATEWINDOWPROC)(Display *dpy, GLXFBConfig co...
  type GLXDrawable (line 255) | typedef GLXDrawable(* PFNGLXGETCURRENTREADDRAWABLEPROC)(void);
  type GLXFBConfig (line 257) | typedef GLXFBConfig *(* PFNGLXGETFBCONFIGSPROC)(Display *dpy, int screen...
  type XVisualInfo (line 259) | typedef XVisualInfo *(* PFNGLXGETVISUALFROMFBCONFIGPROC)(Display *dpy, G...
  type Bool (line 260) | typedef Bool(* PFNGLXMAKECONTEXTCURRENTPROC)(Display *display, GLXDrawab...
  type XID (line 444) | typedef XID GLXContextID;
  type GLXContextID (line 447) | typedef GLXContextID(* PFNGLXGETCONTEXTIDEXTPROC)(const GLXContext conte...
  type GLXContext (line 448) | typedef GLXContext(* PFNGLXIMPORTCONTEXTEXTPROC)(Display *dpy, GLXContex...
  type GLXPixmap (line 539) | typedef GLXPixmap(* PFNGLXCREATEGLXPIXMAPMESAPROC)(Display *dpy, XVisual...
  type Bool (line 552) | typedef Bool(* PFNGLXRELEASEBUFFERSMESAPROC)(Display *dpy, GLXDrawable d);
  type GLboolean (line 568) | typedef GLboolean(* PFNGLXSET3DFXMODEMESAPROC)(GLint mode);
  type Bool (line 622) | typedef Bool(* PFNGLXGETMSCRATEOMLPROC)(Display *dpy, GLXDrawable drawab...
  type Bool (line 623) | typedef Bool(* PFNGLXGETSYNCVALUESOMLPROC)(Display *dpy, GLXDrawable dra...
  type Bool (line 625) | typedef Bool(* PFNGLXWAITFORMSCOMLPROC)(Display *dpy, GLXDrawable drawab...
  type Bool (line 626) | typedef Bool(* PFNGLXWAITFORSBCOMLPROC)(Display *dpy, GLXDrawable drawab...
  type XID (line 709) | typedef XID GLXFBConfigIDSGIX;
  type __GLXFBConfigRec (line 710) | struct __GLXFBConfigRec
  type GLXFBConfigSGIX (line 712) | typedef GLXFBConfigSGIX *(* PFNGLXCHOOSEFBCONFIGSGIXPROC)(Display *dpy, ...
  type GLXContext (line 713) | typedef GLXContext(* PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)(Display *dpy...
  type GLXPixmap (line 714) | typedef GLXPixmap(* PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)(Display *dp...
  type GLXFBConfigSGIX (line 716) | typedef GLXFBConfigSGIX(* PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)(Display *...
  type XVisualInfo (line 717) | typedef XVisualInfo *(* PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)(Display *dp...
  type XID (line 761) | typedef XID GLXPbufferSGIX;
  type GLXBufferClobberEventSGIX (line 762) | typedef struct
  type GLXPbuffer (line 777) | typedef GLXPbuffer(* PFNGLXCREATEGLXPBUFFERSGIXPROC)(Display *dpy, GLXFB...
  type Bool (line 799) | typedef Bool(* PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)(Display *dpy, int scr...
  type GLXDrawable (line 874) | typedef GLXDrawable(* PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
  type Bool (line 875) | typedef Bool(* PFNGLXMAKECURRENTREADSGIPROC)(Display *dpy, GLXDrawable d...
  type Status (line 917) | typedef Status(* PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display *dpy, Window ...
  type GLXEWContextStruct (line 1041) | struct GLXEWContextStruct
  type GLXEWContext (line 1096) | typedef struct GLXEWContextStruct GLXEWContext;

FILE: helpers/GL/glxext.h
  type XID (line 257) | typedef XID GLXVideoSourceSGIX;
  type XID (line 261) | typedef XID GLXFBConfigIDSGIX;
  type __GLXFBConfigRec (line 262) | struct __GLXFBConfigRec
  type XID (line 266) | typedef XID GLXPbufferSGIX;
  type GLXBufferClobberEventSGIX (line 267) | typedef struct
  type GLXVideoDeviceNV (line 291) | typedef unsigned int GLXVideoDeviceNV;
  type Bool (line 420) | typedef Bool(* PFNGLXMAKECURRENTREADSGIPROC)(Display *dpy, GLXDrawable d...
  type GLXDrawable (line 421) | typedef GLXDrawable(* PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
  type GLXVideoSourceSGIX (line 431) | typedef GLXVideoSourceSGIX(* PFNGLXCREATEGLXVIDEOSOURCESGIXPROC)(Display...
  type Display (line 449) | typedef Display *(* PFNGLXGETCURRENTDISPLAYEXTPROC)(void);
  type GLXContextID (line 451) | typedef GLXContextID(* PFNGLXGETCONTEXTIDEXTPROC)(const GLXContext conte...
  type GLXContext (line 452) | typedef GLXContext(* PFNGLXIMPORTCONTEXTEXTPROC)(Display *dpy, GLXContex...
  type GLXFBConfigSGIX (line 467) | typedef GLXFBConfigSGIX *(* PFNGLXCHOOSEFBCONFIGSGIXPROC)(Display *dpy, ...
  type GLXPixmap (line 468) | typedef GLXPixmap(* PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)(Display *dp...
  type GLXContext (line 469) | typedef GLXContext(* PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)(Display *dpy...
  type XVisualInfo (line 470) | typedef XVisualInfo *(* PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)(Display *dp...
  type GLXFBConfigSGIX (line 471) | typedef GLXFBConfigSGIX(* PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)(Display *...
  type GLXPbufferSGIX (line 483) | typedef GLXPbufferSGIX(* PFNGLXCREATEGLXPBUFFERSGIXPROC)(Display *dpy, G...
  type Bool (line 520) | typedef Bool(* PFNGLXASSOCIATEDMPBUFFERSGIXPROC)(Display *dpy, GLXPbuffe...
  type Bool (line 539) | typedef Bool(* PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)(Display *dpy, int scr...
  type Status (line 547) | typedef Status(* PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display *dpy, Window ...
  type GLXPixmap (line 563) | typedef GLXPixmap(* PFNGLXCREATEGLXPIXMAPMESAPROC)(Display *dpy, XVisual...
  type Bool (line 571) | typedef Bool(* PFNGLXRELEASEBUFFERSMESAPROC)(Display *dpy, GLXDrawable d...
  type Bool (line 579) | typedef Bool(* PFNGLXSET3DFXMODEMESAPROC)(int mode);
  type Bool (line 599) | typedef Bool(* PFNGLXGETSYNCVALUESOMLPROC)(Display *dpy, GLXDrawable dra...
  type Bool (line 600) | typedef Bool(* PFNGLXGETMSCRATEOMLPROC)(Display *dpy, GLXDrawable drawab...
  type Bool (line 602) | typedef Bool(* PFNGLXWAITFORMSCOMLPROC)(Display *dpy, GLXDrawable drawab...
  type Bool (line 603) | typedef Bool(* PFNGLXWAITFORSBCOMLPROC)(Display *dpy, GLXDrawable drawab...
  type GLXHyperpipeNetworkSGIX (line 613) | typedef struct
  type GLXHyperpipeConfigSGIX (line 619) | typedef struct
  type GLXPipeRect (line 628) | typedef struct
  type GLXPipeRectLimits (line 635) | typedef struct
  type GLXHyperpipeNetworkSGIX (line 651) | typedef GLXHyperpipeNetworkSGIX *(* PFNGLXQUERYHYPERPIPENETWORKSGIXPROC)...
  type GLXHyperpipeConfigSGIX (line 653) | typedef GLXHyperpipeConfigSGIX *(* PFNGLXQUERYHYPERPIPECONFIGSGIXPROC)(D...
  type Bool (line 706) | typedef Bool(* PFNGLXJOINSWAPGROUPNVPROC)(Display *dpy,
  type Bool (line 710) | typedef Bool(* PFNGLXBINDSWAPBARRIERNVPROC)(Display *dpy,
  type Bool (line 714) | typedef Bool(* PFNGLXQUERYSWAPGROUPNVPROC)(Display *dpy,
  type Bool (line 719) | typedef Bool(* PFNGLXQUERYMAXSWAPGROUPSNVPROC)(Display *dpy,
  type Bool (line 724) | typedef Bool(* PFNGLXQUERYFRAMECOUNTNVPROC)(Display *dpy,
  type Bool (line 728) | typedef Bool(* PFNGLXRESETFRAMECOUNTNVPROC)(Display *dpy, int screen);

FILE: helpers/GL/wglew.h
  type const (line 177) | typedef HPBUFFERARB(WINAPI *PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPi...
  type const (line 248) | typedef BOOL (WINAPI *PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int...
  type const (line 249) | typedef BOOL (WINAPI *PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int ...
  type const (line 250) | typedef BOOL (WINAPI *PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int ...
  type const (line 444) | typedef HPBUFFEREXT(WINAPI *PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPi...
  type const (line 511) | typedef BOOL (WINAPI *PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hdc, const int...
  type const (line 560) | typedef BOOL (WINAPI *PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, i...
  type USHORT (line 579) | typedef BOOL (WINAPI *PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries,...
  type const (line 580) | typedef BOOL (WINAPI *PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int...
  type WGLEWContextStruct (line 791) | struct WGLEWContextStruct
  type WGLEWContext (line 931) | typedef struct WGLEWContextStruct WGLEWContext;

FILE: helpers/cuda_drvapi_dynlink.c
  type HMODULE (line 208) | typedef HMODULE CUDADRIVER;
  function CUresult (line 210) | static CUresult LOAD_LIBRARY(CUDADRIVER *pInstance)
  function CUresult (line 251) | static CUresult LOAD_LIBRARY(CUDADRIVER *pInstance)
  function CUresult (line 297) | CUresult CUDAAPI cuInit(unsigned int Flags, int cudaVersion)

FILE: helpers/drvapi_error_string.h
  type s_CudaErrorStr (line 22) | typedef struct

FILE: helpers/dynlink/cuda_drvapi_dynlink_cuda.h
  type CUdeviceptr (line 51) | typedef unsigned long long CUdeviceptr;
  type CUdeviceptr (line 53) | typedef unsigned int CUdeviceptr;
  type CUdevice (line 58) | typedef int CUdevice;
  type CUctx_st (line 59) | struct CUctx_st
  type CUmod_st (line 60) | struct CUmod_st
  type CUfunc_st (line 61) | struct CUfunc_st
  type CUarray_st (line 62) | struct CUarray_st
  type CUtexref_st (line 63) | struct CUtexref_st
  type CUsurfref_st (line 64) | struct CUsurfref_st
  type CUevent_st (line 65) | struct CUevent_st
  type CUstream_st (line 66) | struct CUstream_st
  type CUgraphicsResource_st (line 67) | struct CUgraphicsResource_st
  type CUuuid (line 69) | typedef struct CUuuid_st                                  /**< CUDA defi...
  type CUctx_flags (line 77) | typedef enum CUctx_flags_enum
  type CUevent_flags (line 99) | typedef enum CUevent_flags_enum
  type CUarray_format (line 109) | typedef enum CUarray_format_enum
  type CUaddress_mode (line 124) | typedef enum CUaddress_mode_enum
  type CUfilter_mode (line 135) | typedef enum CUfilter_mode_enum
  type CUdevice_attribute (line 144) | typedef enum CUdevice_attribute_enum
  type CUdevprop (line 200) | typedef struct CUdevprop_st
  type CUfunction_attribute (line 217) | typedef enum CUfunction_attribute_enum
  type CUfunc_cache (line 273) | typedef enum CUfunc_cache_enum
  type CUmemorytype (line 283) | typedef enum CUmemorytype_enum
  type CUcomputemode (line 297) | typedef enum CUcomputemode_enum
  type CUjit_option (line 311) | typedef enum CUjit_option_enum
  type CUjit_target (line 403) | typedef enum CUjit_target_enum
  type CUjit_fallback (line 416) | typedef enum CUjit_fallback_enum
  type CUgraphicsRegisterFlags (line 427) | typedef enum CUgraphicsRegisterFlags_enum
  type CUgraphicsMapResourceFlags (line 438) | typedef enum CUgraphicsMapResourceFlags_enum
  type CUarray_cubemap_face (line 448) | typedef enum CUarray_cubemap_face_enum
  type CUlimit (line 461) | typedef enum CUlimit_enum
  type CUresult (line 471) | typedef enum cudaError_enum
  type CUDA_MEMCPY2D (line 814) | typedef struct CUDA_MEMCPY2D_st
  type CUDA_MEMCPY3D (line 841) | typedef struct CUDA_MEMCPY3D_st
  type CUDA_MEMCPY3D_PEER (line 875) | typedef struct CUDA_MEMCPY3D_PEER_st
  type CUDA_ARRAY_DESCRIPTOR (line 909) | typedef struct CUDA_ARRAY_DESCRIPTOR_st
  type CUDA_ARRAY3D_DESCRIPTOR (line 921) | typedef struct CUDA_ARRAY3D_DESCRIPTOR_st
  type CUdeviceptr (line 1027) | typedef unsigned int CUdeviceptr;
  type CUDA_MEMCPY2D (line 1029) | typedef struct CUDA_MEMCPY2D_st
  type CUDA_MEMCPY3D (line 1051) | typedef struct CUDA_MEMCPY3D_st
  type CUDA_ARRAY_DESCRIPTOR (line 1082) | typedef struct CUDA_ARRAY_DESCRIPTOR_st
  type CUDA_ARRAY3D_DESCRIPTOR (line 1091) | typedef struct CUDA_ARRAY3D_DESCRIPTOR_st
  type CUresult (line 1168) | typedef CUresult  CUDAAPI tcuInit(unsigned int Flags);
  type CUresult (line 1173) | typedef CUresult  CUDAAPI tcuDriverGetVersion(int *driverVersion);
  type CUresult (line 1181) | typedef CUresult  CUDAAPI tcuDeviceGet(CUdevice *device, int ordinal);
  type CUresult (line 1182) | typedef CUresult  CUDAAPI tcuDeviceGetCount(int *count);
  type CUresult (line 1183) | typedef CUresult  CUDAAPI tcuDeviceGetName(char *name, int len, CUdevice...
  type CUresult (line 1184) | typedef CUresult  CUDAAPI tcuDeviceComputeCapability(int *major, int *mi...
  type CUresult (line 1186) | typedef CUresult  CUDAAPI tcuDeviceTotalMem(size_t *bytes, CUdevice dev);
  type CUresult (line 1188) | typedef CUresult  CUDAAPI tcuDeviceTotalMem(unsigned int *bytes, CUdevic...
  type CUresult (line 1191) | typedef CUresult  CUDAAPI tcuDeviceGetProperties(CUdevprop *prop, CUdevi...
  type CUresult (line 1192) | typedef CUresult  CUDAAPI tcuDeviceGetAttribute(int *pi, CUdevice_attrib...
  type CUresult (line 1200) | typedef CUresult  CUDAAPI tcuCtxCreate(CUcontext *pctx, unsigned int fla...
  type CUresult (line 1201) | typedef CUresult  CUDAAPI tcuCtxDestroy(CUcontext ctx);
  type CUresult (line 1202) | typedef CUresult  CUDAAPI tcuCtxAttach(CUcontext *pctx, unsigned int fla...
  type CUresult (line 1203) | typedef CUresult  CUDAAPI tcuCtxDetach(CUcontext ctx);
  type CUresult (line 1204) | typedef CUresult  CUDAAPI tcuCtxPushCurrent(CUcontext ctx);
  type CUresult (line 1205) | typedef CUresult  CUDAAPI tcuCtxPopCurrent(CUcontext *pctx);
  type CUresult (line 1207) | typedef CUresult  CUDAAPI tcuCtxSetCurrent(CUcontext ctx);
  type CUresult (line 1208) | typedef CUresult  CUDAAPI tcuCtxGetCurrent(CUcontext *pctx);
  type CUresult (line 1210) | typedef CUresult  CUDAAPI tcuCtxGetDevice(CUdevice *device);
  type CUresult (line 1211) | typedef CUresult  CUDAAPI tcuCtxSynchronize(void);
  type CUresult (line 1220) | typedef CUresult  CUDAAPI tcuModuleLoad(CUmodule *module, const char *fn...
  type CUresult (line 1221) | typedef CUresult  CUDAAPI tcuModuleLoadData(CUmodule *module, const void...
  type CUresult (line 1222) | typedef CUresult  CUDAAPI tcuModuleLoadDataEx(CUmodule *module, const vo...
  type CUresult (line 1223) | typedef CUresult  CUDAAPI tcuModuleLoadFatBinary(CUmodule *module, const...
  type CUresult (line 1224) | typedef CUresult  CUDAAPI tcuModuleUnload(CUmodule hmod);
  type CUresult (line 1225) | typedef CUresult  CUDAAPI tcuModuleGetFunction(CUfunction *hfunc, CUmodu...
  type CUresult (line 1228) | typedef CUresult  CUDAAPI tcuModuleGetGlobal(CUdeviceptr *dptr, size_t *...
  type CUresult (line 1230) | typedef CUresult  CUDAAPI tcuModuleGetGlobal(CUdeviceptr *dptr, unsigned...
  type CUresult (line 1233) | typedef CUresult  CUDAAPI tcuModuleGetTexRef(CUtexref *pTexRef, CUmodule...
  type CUresult (line 1234) | typedef CUresult  CUDAAPI tcuModuleGetSurfRef(CUsurfref *pSurfRef, CUmod...
  type CUresult (line 1242) | typedef CUresult CUDAAPI tcuMemGetInfo(size_t *free, size_t *total);
  type CUresult (line 1243) | typedef CUresult CUDAAPI tcuMemAlloc(CUdeviceptr *dptr, size_t bytesize);
  type CUresult (line 1244) | typedef CUresult CUDAAPI tcuMemGetAddressRange(CUdeviceptr *pbase, size_...
  type CUresult (line 1245) | typedef CUresult CUDAAPI tcuMemAllocPitch(CUdeviceptr *dptr,
  type CUresult (line 1254) | typedef CUresult CUDAAPI tcuMemGetInfo(unsigned int *free, unsigned int ...
  type CUresult (line 1255) | typedef CUresult CUDAAPI tcuMemAlloc(CUdeviceptr *dptr, unsigned int byt...
  type CUresult (line 1256) | typedef CUresult CUDAAPI tcuMemGetAddressRange(CUdeviceptr *pbase, unsig...
  type CUresult (line 1257) | typedef CUresult CUDAAPI tcuMemAllocPitch(CUdeviceptr *dptr,
  type CUresult (line 1267) | typedef CUresult CUDAAPI tcuMemFree(CUdeviceptr dptr);
  type CUresult (line 1270) | typedef CUresult CUDAAPI tcuMemAllocHost(void **pp, size_t bytesize);
  type CUresult (line 1272) | typedef CUresult CUDAAPI tcuMemAllocHost(void **pp, unsigned int bytesize);
  type CUresult (line 1275) | typedef CUresult CUDAAPI tcuMemFreeHost(void *p);
  type CUresult (line 1276) | typedef CUresult CUDAAPI tcuMemHostAlloc(void **pp, size_t bytesize, uns...
  type CUresult (line 1278) | typedef CUresult CUDAAPI tcuMemHostGetDevicePointer(CUdeviceptr *pdptr, ...
  type CUresult (line 1279) | typedef CUresult CUDAAPI tcuMemHostGetFlags(unsigned int *pFlags, void *p);
  type CUresult (line 1281) | typedef CUresult CUDAAPI tcuMemHostRegister(void *p, size_t bytesize, un...
  type CUresult (line 1282) | typedef CUresult CUDAAPI tcuMemHostUnregister(void *p);
  type CUresult (line 1283) | typedef CUresult CUDAAPI tcuMemcpy(CUdeviceptr dst, CUdeviceptr src, siz...
  type CUresult (line 1284) | typedef CUresult CUDAAPI tcuMemcpyPeer(CUdeviceptr dstDevice, CUcontext ...
  type CUresult (line 1298) | typedef CUresult  CUDAAPI tcuMemcpyHtoD(CUdeviceptr dstDevice, const voi...
  type CUresult (line 1299) | typedef CUresult  CUDAAPI tcuMemcpyDtoH(void *dstHost, CUdeviceptr srcDe...
  type CUresult (line 1302) | typedef CUresult  CUDAAPI tcuMemcpyDtoD(CUdeviceptr dstDevice, CUdevicep...
  type CUresult (line 1305) | typedef CUresult  CUDAAPI tcuMemcpyDtoA(CUarray dstArray, size_t dstOffs...
  type CUresult (line 1306) | typedef CUresult  CUDAAPI tcuMemcpyAtoD(CUdeviceptr dstDevice, CUarray s...
  type CUresult (line 1309) | typedef CUresult  CUDAAPI tcuMemcpyHtoA(CUarray dstArray, size_t dstOffs...
  type CUresult (line 1310) | typedef CUresult  CUDAAPI tcuMemcpyAtoH(void *dstHost, CUarray srcArray,...
  type CUresult (line 1313) | typedef CUresult  CUDAAPI tcuMemcpyAtoA(CUarray dstArray, size_t dstOffs...
  type CUresult (line 1316) | typedef CUresult  CUDAAPI tcuMemcpyHtoD(CUdeviceptr dstDevice, const voi...
  type CUresult (line 1317) | typedef CUresult  CUDAAPI tcuMemcpyDtoH(void *dstHost, CUdeviceptr srcDe...
  type CUresult (line 1320) | typedef CUresult  CUDAAPI tcuMemcpyDtoD(CUdeviceptr dstDevice, CUdevicep...
  type CUresult (line 1323) | typedef CUresult  CUDAAPI tcuMemcpyDtoA(CUarray dstArray, unsigned int d...
  type CUresult (line 1324) | typedef CUresult  CUDAAPI tcuMemcpyAtoD(CUdeviceptr dstDevice, CUarray s...
  type CUresult (line 1327) | typedef CUresult  CUDAAPI tcuMemcpyHtoA(CUarray dstArray, unsigned int d...
  type CUresult (line 1328) | typedef CUresult  CUDAAPI tcuMemcpyAtoH(void *dstHost, CUarray srcArray,...
  type CUresult (line 1331) | typedef CUresult  CUDAAPI tcuMemcpyAtoA(CUarray dstArray, unsigned int d...
  type CUresult (line 1336) | typedef CUresult  CUDAAPI tcuMemcpy2D(const CUDA_MEMCPY2D *pCopy);
  type CUresult (line 1337) | typedef CUresult  CUDAAPI tcuMemcpy2DUnaligned(const CUDA_MEMCPY2D *pCopy);
  type CUresult (line 1341) | typedef CUresult  CUDAAPI tcuMemcpy3D(const CUDA_MEMCPY3D *pCopy);
  type CUresult (line 1357) | typedef CUresult  CUDAAPI tcuMemcpyHtoDAsync(CUdeviceptr dstDevice,
  type CUresult (line 1359) | typedef CUresult  CUDAAPI tcuMemcpyDtoHAsync(void *dstHost,
  type CUresult (line 1363) | typedef CUresult  CUDAAPI tcuMemcpyDtoDAsync(CUdeviceptr dstDevice,
  type CUresult (line 1367) | typedef CUresult  CUDAAPI tcuMemcpyHtoAAsync(CUarray dstArray, size_t ds...
  type CUresult (line 1369) | typedef CUresult  CUDAAPI tcuMemcpyAtoHAsync(void *dstHost, CUarray srcA...
  type CUresult (line 1374) | typedef CUresult  CUDAAPI tcuMemcpyHtoDAsync(CUdeviceptr dstDevice,
  type CUresult (line 1376) | typedef CUresult  CUDAAPI tcuMemcpyDtoHAsync(void *dstHost,
  type CUresult (line 1380) | typedef CUresult  CUDAAPI tcuMemcpyDtoDAsync(CUdeviceptr dstDevice,
  type CUresult (line 1384) | typedef CUresult  CUDAAPI tcuMemcpyHtoAAsync(CUarray dstArray, unsigned ...
  type CUresult (line 1386) | typedef CUresult  CUDAAPI tcuMemcpyAtoHAsync(void *dstHost, CUarray srcA...
  type CUresult (line 1391) | typedef CUresult  CUDAAPI tcuMemcpy2DAsync(const CUDA_MEMCPY2D *pCopy, C...
  type CUresult (line 1394) | typedef CUresult  CUDAAPI tcuMemcpy3DAsync(const CUDA_MEMCPY3D *pCopy, C...
  type CUresult (line 1401) | typedef CUresult  CUDAAPI tcuMemsetD8(CUdeviceptr dstDevice, unsigned ch...
  type CUresult (line 1402) | typedef CUresult  CUDAAPI tcuMemsetD16(CUdeviceptr dstDevice, unsigned s...
  type CUresult (line 1403) | typedef CUresult  CUDAAPI tcuMemsetD32(CUdeviceptr dstDevice, unsigned i...
  type CUresult (line 1406) | typedef CUresult  CUDAAPI tcuMemsetD2D8(CUdeviceptr dstDevice, unsigned ...
  type CUresult (line 1407) | typedef CUresult  CUDAAPI tcuMemsetD2D16(CUdeviceptr dstDevice, unsigned...
  type CUresult (line 1408) | typedef CUresult  CUDAAPI tcuMemsetD2D32(CUdeviceptr dstDevice, unsigned...
  type CUresult (line 1410) | typedef CUresult  CUDAAPI tcuMemsetD2D8(CUdeviceptr dstDevice, unsigned ...
  type CUresult (line 1411) | typedef CUresult  CUDAAPI tcuMemsetD2D16(CUdeviceptr dstDevice, unsigned...
  type CUresult (line 1412) | typedef CUresult  CUDAAPI tcuMemsetD2D32(CUdeviceptr dstDevice, unsigned...
  type CUresult (line 1422) | typedef CUresult CUDAAPI tcuFuncSetBlockShape(CUfunction hfunc, int x, i...
  type CUresult (line 1423) | typedef CUresult CUDAAPI tcuFuncSetSharedSize(CUfunction hfunc, unsigned...
  type CUresult (line 1424) | typedef CUresult CUDAAPI tcuFuncGetAttribute(int *pi, CUfunction_attribu...
  type CUresult (line 1425) | typedef CUresult CUDAAPI tcuFuncSetCacheConfig(CUfunction hfunc, CUfunc_...
  type CUresult (line 1426) | typedef CUresult CUDAAPI tcuLaunchKernel(CUfunction f,
  type CUresult (line 1438) | typedef CUresult  CUDAAPI tcuArrayCreate(CUarray *pHandle, const CUDA_AR...
  type CUresult (line 1439) | typedef CUresult  CUDAAPI tcuArrayGetDescriptor(CUDA_ARRAY_DESCRIPTOR *p...
  type CUresult (line 1440) | typedef CUresult  CUDAAPI tcuArrayDestroy(CUarray hArray);
  type CUresult (line 1442) | typedef CUresult  CUDAAPI tcuArray3DCreate(CUarray *pHandle, const CUDA_...
  type CUresult (line 1443) | typedef CUresult  CUDAAPI tcuArray3DGetDescriptor(CUDA_ARRAY3D_DESCRIPTO...
  type CUresult (line 1451) | typedef CUresult  CUDAAPI tcuTexRefCreate(CUtexref *pTexRef);
  type CUresult (line 1452) | typedef CUresult  CUDAAPI tcuTexRefDestroy(CUtexref hTexRef);
  type CUresult (line 1454) | typedef CUresult  CUDAAPI tcuTexRefSetArray(CUtexref hTexRef, CUarray hA...
  type CUresult (line 1457) | typedef CUresult  CUDAAPI tcuTexRefSetAddress(size_t *ByteOffset, CUtexr...
  type CUresult (line 1458) | typedef CUresult  CUDAAPI tcuTexRefSetAddress2D(CUtexref hTexRef, const ...
  type CUresult (line 1460) | typedef CUresult  CUDAAPI tcuTexRefSetAddress(unsigned int *ByteOffset, ...
  type CUresult (line 1461) | typedef CUresult  CUDAAPI tcuTexRefSetAddress2D(CUtexref hTexRef, const ...
  type CUresult (line 1464) | typedef CUresult  CUDAAPI tcuTexRefSetFormat(CUtexref hTexRef, CUarray_f...
  type CUresult (line 1465) | typedef CUresult  CUDAAPI tcuTexRefSetAddressMode(CUtexref hTexRef, int ...
  type CUresult (line 1466) | typedef CUresult  CUDAAPI tcuTexRefSetFilterMode(CUtexref hTexRef, CUfil...
  type CUresult (line 1467) | typedef CUresult  CUDAAPI tcuTexRefSetFlags(CUtexref hTexRef, unsigned i...
  type CUresult (line 1469) | typedef CUresult  CUDAAPI tcuTexRefGetAddress(CUdeviceptr *pdptr, CUtexr...
  type CUresult (line 1470) | typedef CUresult  CUDAAPI tcuTexRefGetArray(CUarray *phArray, CUtexref h...
  type CUresult (line 1471) | typedef CUresult  CUDAAPI tcuTexRefGetAddressMode(CUaddress_mode *pam, C...
  type CUresult (line 1472) | typedef CUresult  CUDAAPI tcuTexRefGetFilterMode(CUfilter_mode *pfm, CUt...
  type CUresult (line 1473) | typedef CUresult  CUDAAPI tcuTexRefGetFormat(CUarray_format *pFormat, in...
  type CUresult (line 1474) | typedef CUresult  CUDAAPI tcuTexRefGetFlags(unsigned int *pFlags, CUtexr...
  type CUresult (line 1482) | typedef CUresult  CUDAAPI tcuSurfRefSetArray(CUsurfref hSurfRef, CUarray...
  type CUresult (line 1483) | typedef CUresult  CUDAAPI tcuSurfRefGetArray(CUarray *phArray, CUsurfref...
  type CUresult (line 1491) | typedef CUresult  CUDAAPI tcuParamSetSize(CUfunction hfunc, unsigned int...
  type CUresult (line 1492) | typedef CUresult  CUDAAPI tcuParamSeti(CUfunction hfunc, int offset, uns...
  type CUresult (line 1493) | typedef CUresult  CUDAAPI tcuParamSetf(CUfunction hfunc, int offset, flo...
  type CUresult (line 1494) | typedef CUresult  CUDAAPI tcuParamSetv(CUfunction hfunc, int offset, voi...
  type CUresult (line 1495) | typedef CUresult  CUDAAPI tcuParamSetTexRef(CUfunction hfunc, int texuni...
  type CUresult (line 1504) | typedef CUresult CUDAAPI tcuLaunch(CUfunction f);
  type CUresult (line 1505) | typedef CUresult CUDAAPI tcuLaunchGrid(CUfunction f, int grid_width, int...
  type CUresult (line 1506) | typedef CUresult CUDAAPI tcuLaunchGridAsync(CUfunction f, int grid_width...
  type CUresult (line 1513) | typedef CUresult CUDAAPI tcuEventCreate(CUevent *phEvent, unsigned int F...
  type CUresult (line 1514) | typedef CUresult CUDAAPI tcuEventRecord(CUevent hEvent, CUstream hStream);
  type CUresult (line 1515) | typedef CUresult CUDAAPI tcuEventQuery(CUevent hEvent);
  type CUresult (line 1516) | typedef CUresult CUDAAPI tcuEventSynchronize(CUevent hEvent);
  type CUresult (line 1517) | typedef CUresult CUDAAPI tcuEventDestroy(CUevent hEvent);
  type CUresult (line 1518) | typedef CUresult CUDAAPI tcuEventElapsedTime(float *pMilliseconds, CUeve...
  type CUresult (line 1525) | typedef CUresult CUDAAPI  tcuStreamCreate(CUstream *phStream, unsigned i...
  type CUresult (line 1526) | typedef CUresult CUDAAPI  tcuStreamQuery(CUstream hStream);
  type CUresult (line 1527) | typedef CUresult CUDAAPI  tcuStreamSynchronize(CUstream hStream);
  type CUresult (line 1528) | typedef CUresult CUDAAPI  tcuStreamDestroy(CUstream hStream);
  type CUresult (line 1535) | typedef CUresult CUDAAPI tcuGraphicsUnregisterResource(CUgraphicsResourc...
  type CUresult (line 1536) | typedef CUresult CUDAAPI tcuGraphicsSubResourceGetMappedArray(CUarray *p...
  type CUresult (line 1539) | typedef CUresult CUDAAPI tcuGraphicsResourceGetMappedPointer(CUdeviceptr...
  type CUresult (line 1541) | typedef CUresult CUDAAPI tcuGraphicsResourceGetMappedPointer(CUdeviceptr...
  type CUresult (line 1544) | typedef CUresult CUDAAPI tcuGraphicsResourceSetMapFlags(CUgraphicsResour...
  type CUresult (line 1545) | typedef CUresult CUDAAPI tcuGraphicsMapResources(unsigned int count, CUg...
  type CUresult (line 1546) | typedef CUresult CUDAAPI tcuGraphicsUnmapResources(unsigned int count, C...
  type CUresult (line 1553) | typedef CUresult CUDAAPI tcuGetExportTable(const void **ppExportTable, c...
  type CUresult (line 1561) | typedef CUresult CUDAAPI tcuCtxSetLimit(CUlimit limit, size_t value);
  type CUresult (line 1562) | typedef CUresult CUDAAPI tcuCtxGetLimit(size_t *pvalue, CUlimit limit);

FILE: helpers/dynlink/cuda_drvapi_dynlink_d3d.h
  type CUd3d9register_flags (line 32) | typedef enum CUd3d9register_flags_enum
  type CUd3d9map_flags (line 41) | typedef enum CUd3d9map_flags_enum
  type CUresult (line 49) | typedef CUresult CUDAAPI tcuD3D9Begin(IDirect3DDevice9 *pDevice);
  type CUresult (line 50) | typedef CUresult CUDAAPI tcuD3D9End(void);
  type CUresult (line 51) | typedef CUresult CUDAAPI tcuD3D9RegisterVertexBuffer(IDirect3DVertexBuff...
  type CUresult (line 52) | typedef CUresult CUDAAPI tcuD3D9MapVertexBuffer(CUdeviceptr *pDevPtr, un...
  type CUresult (line 53) | typedef CUresult CUDAAPI tcuD3D9UnmapVertexBuffer(IDirect3DVertexBuffer9...
  type CUresult (line 54) | typedef CUresult CUDAAPI tcuD3D9UnregisterVertexBuffer(IDirect3DVertexBu...
  type CUresult (line 57) | typedef CUresult CUDAAPI tcuD3D9GetDirect3DDevice(IDirect3DDevice9 **ppD...
  type CUresult (line 58) | typedef CUresult CUDAAPI tcuD3D9RegisterResource(IDirect3DResource9 *pRe...
  type CUresult (line 59) | typedef CUresult CUDAAPI tcuD3D9UnregisterResource(IDirect3DResource9 *p...
  type CUresult (line 61) | typedef CUresult CUDAAPI tcuD3D9MapResources(unsigned int count, IDirect...
  type CUresult (line 62) | typedef CUresult CUDAAPI tcuD3D9UnmapResources(unsigned int count, IDire...
  type CUresult (line 63) | typedef CUresult CUDAAPI tcuD3D9ResourceSetMapFlags(IDirect3DResource9 *...
  type CUresult (line 65) | typedef CUresult CUDAAPI tcuD3D9ResourceGetSurfaceDimensions(unsigned in...
  type CUresult (line 66) | typedef CUresult CUDAAPI tcuD3D9ResourceGetMappedArray(CUarray *pArray, ...
  type CUresult (line 67) | typedef CUresult CUDAAPI tcuD3D9ResourceGetMappedPointer(CUdeviceptr *pD...
  type CUresult (line 68) | typedef CUresult CUDAAPI tcuD3D9ResourceGetMappedSize(unsigned int *pSiz...
  type CUresult (line 69) | typedef CUresult CUDAAPI tcuD3D9ResourceGetMappedPitch(unsigned int *pPi...
  type CUresult (line 72) | typedef CUresult CUDAAPI tcuD3D9GetDevice(CUdevice *pCudaDevice, const c...
  type CUresult (line 73) | typedef CUresult CUDAAPI tcuD3D9CtxCreate(CUcontext *pCtx, CUdevice *pCu...
  type CUresult (line 74) | typedef CUresult CUDAAPI tcuGraphicsD3D9RegisterResource(CUgraphicsResou...
  type CUresult (line 88) | typedef CUresult CUDAAPI tcuD3D10GetDevice(CUdevice *pCudaDevice, IDXGIA...
  type CUresult (line 89) | typedef CUresult CUDAAPI tcuD3D10CtxCreate(CUcontext *pCtx, CUdevice *pC...
  type CUresult (line 90) | typedef CUresult CUDAAPI tcuGraphicsD3D10RegisterResource(CUgraphicsReso...
  type CUresult (line 103) | typedef CUresult CUDAAPI tcuD3D11GetDevice(CUdevice *pCudaDevice, IDXGIA...
  type CUresult (line 104) | typedef CUresult CUDAAPI tcuD3D11CtxCreate(CUcontext *pCtx, CUdevice *pC...
  type CUresult (line 105) | typedef CUresult CUDAAPI tcuGraphicsD3D11RegisterResource(CUgraphicsReso...

FILE: helpers/dynlink/cuda_drvapi_dynlink_gl.h
  type CUresult (line 45) | typedef CUresult CUDAAPI tcuGLCtxCreate(CUcontext *pCtx, unsigned int Fl...
  type CUresult (line 46) | typedef CUresult CUDAAPI tcuGraphicsGLRegisterBuffer(CUgraphicsResource ...
  type CUresult (line 47) | typedef CUresult CUDAAPI tcuGraphicsGLRegisterImage(CUgraphicsResource *...
  type CUresult (line 52) | typedef CUresult CUDAAPI tcuWGLGetDevice(CUdevice *pDevice, HGPUNV hGpu);

FILE: helpers/dynlink_d3d10.h
  type DXUTD3D9DeviceSettings (line 78) | struct DXUTD3D9DeviceSettings
  type DXUTD3D10DeviceSettings (line 87) | struct DXUTD3D10DeviceSettings
  type DXUTDeviceVersion (line 100) | enum DXUTDeviceVersion { DXUT_D3D9_DEVICE, DXUT_D3D10_DEVICE }
  type DXUTDeviceSettings (line 101) | struct DXUTDeviceSettings
  type HMODULE (line 129) | typedef HRESULT(WINAPI *LPD3D10CREATEDEVICE1)(IDXGIAdapter *, D3D10_DRIV...
  type D3DXMATRIX (line 181) | typedef D3DXMATRIX *(WINAPI *LPD3DXMATRIXPERSPECTIVEFOVLH)(D3DXMATRIX *p...
  type D3DXMATRIX (line 184) | typedef D3DXMATRIX *(WINAPI *LPD3DXMATRIXLOOKATLH)(D3DXMATRIX *pOut, CON...
  function dynlinkUnloadD3D10API (line 212) | static bool dynlinkUnloadD3D10API(void)
  function dynlinkLoadD3D10API (line 242) | static bool dynlinkLoadD3D10API(void)

FILE: helpers/dynlink_d3d11.h
  type HMODULE (line 77) | typedef HRESULT(WINAPI *LPD3D11CREATEDEVICE)(IDXGIAdapter *, D3D_DRIVER_...
  function dynlinkUnloadD3D11API (line 90) | static bool dynlinkUnloadD3D11API(void)
  function dynlinkLoadD3D11API (line 114) | static bool dynlinkLoadD3D11API(void)

FILE: helpers/exception.h
  function handleException (line 66) | void
  function Std_Exception (line 139) | Std_Exception(s)

FILE: helpers/helper_cuda.h
  function __getLastCudaError (line 782) | inline void __getLastCudaError(const char *errorMessage, const char *fil...
  function _ConvertSMVer2Cores (line 801) | inline int _ConvertSMVer2Cores(int major, int minor)
  function gpuDeviceInit (line 843) | inline int gpuDeviceInit(int devID)
  function gpuGetMaxGflopsDeviceId (line 890) | inline int gpuGetMaxGflopsDeviceId()
  function findCudaDevice (line 972) | inline int findCudaDevice(int argc, const char **argv)
  function checkCudaCapabilities (line 1011) | inline bool checkCudaCapabilities(int major_version, int minor_version)

FILE: helpers/helper_cuda_drvapi.h
  function __checkCudaErrors (line 41) | inline void __checkCudaErrors(CUresult err, const char *file, const int ...
  function __getLastCudaDrvErrorMsg (line 58) | inline void __getLastCudaDrvErrorMsg(const char *msg, const char *file, ...
  function getCudaAttribute (line 73) | void getCudaAttribute(T *attribute, CUdevice_attribute device_attribute,...
  function _ConvertSMVer2CoresDRV (line 86) | inline int _ConvertSMVer2CoresDRV(int major, int minor)
  function gpuDeviceInitDRV (line 128) | inline int gpuDeviceInitDRV(int ARGC, const char **ARGV)
  function gpuGetMaxGflopsDeviceIdDRV (line 184) | inline int gpuGetMaxGflopsDeviceIdDRV()
  function gpuGetMaxGflopsGLDeviceIdDRV (line 269) | inline int gpuGetMaxGflopsGLDeviceIdDRV()
  function CUdevice (line 394) | inline CUdevice findCudaDeviceDRV(int argc, const char **argv)
  function CUdevice (line 426) | inline CUdevice findCudaGLDeviceDRV(int argc, const char **argv)
  function checkCudaCapabilitiesDRV (line 456) | inline bool checkCudaCapabilitiesDRV(int major_version, int minor_versio...

FILE: helpers/helper_cuda_gl.h
  function gpuGLDeviceInit (line 46) | inline int gpuGLDeviceInit(int ARGC, const char **ARGV)
  function findCudaGLDevice (line 99) | inline int findCudaGLDevice(int argc, const char **argv)
  function sdkCheckErrorGL (line 133) | inline bool

FILE: helpers/helper_image.h
  function unsigned (line 53) | struct ConverterFromUByte<unsigned char>
  function float (line 66) | struct ConverterFromUByte<float>
  function unsigned (line 83) | struct ConverterToUByte<unsigned char>
  function float (line 96) | struct ConverterToUByte<float>
  function __loadPPM (line 130) | inline bool
  function sdkLoadPGM (line 226) | bool
  function sdkLoadPPM4 (line 255) | bool
  function __savePPM (line 289) | inline bool
  function sdkSavePGM (line 340) | bool
  function sdkSavePPM4ub (line 358) | inline bool
  function sdkReadFile (line 390) | bool
  function sdkReadFileBlocks (line 459) | bool
  function compareData (line 567) | bool
  function compareDataAsFloatThreshold (line 626) | bool
  function sdkDumpBin (line 681) | inline
  function sdkCompareBin2BinUint (line 692) | inline
  function sdkCompareBin2BinFloat (line 784) | inline
  function sdkCompareL2fe (line 876) | inline bool
  function sdkLoadPPMub (line 919) | inline bool
  function sdkLoadPPM4ub (line 927) | inline bool
  function sdkComparePPM (line 962) | inline bool
  function sdkComparePGM (line 1036) | inline bool

FILE: helpers/helper_math.h
  type uint (line 28) | typedef unsigned int uint;
  type ushort (line 29) | typedef unsigned short ushort;
  function fminf (line 42) | inline float fminf(float a, float b)
  function fmaxf (line 47) | inline float fmaxf(float a, float b)
  function max (line 52) | inline int max(int a, int b)
  function min (line 57) | inline int min(int a, int b)
  function rsqrtf (line 62) | inline float rsqrtf(float x)
  function float2 (line 72) | float2 make_float2(float s)
  function float2 (line 76) | float2 make_float2(float3 a)
  function float2 (line 80) | float2 make_float2(int2 a)
  function float2 (line 84) | float2 make_float2(uint2 a)
  function int2 (line 89) | int2 make_int2(int s)
  function int2 (line 93) | int2 make_int2(int3 a)
  function int2 (line 97) | int2 make_int2(uint2 a)
  function int2 (line 101) | int2 make_int2(float2 a)
  function uint2 (line 106) | uint2 make_uint2(uint s)
  function uint2 (line 110) | uint2 make_uint2(uint3 a)
  function uint2 (line 114) | uint2 make_uint2(int2 a)
  function float3 (line 119) | float3 make_float3(float s)
  function float3 (line 123) | float3 make_float3(float2 a)
  function float3 (line 127) | float3 make_float3(float2 a, float s)
  function float3 (line 131) | float3 make_float3(float4 a)
  function float3 (line 135) | float3 make_float3(int3 a)
  function float3 (line 139) | float3 make_float3(uint3 a)
  function int3 (line 144) | int3 make_int3(int s)
  function int3 (line 148) | int3 make_int3(int2 a)
  function int3 (line 152) | int3 make_int3(int2 a, int s)
  function int3 (line 156) | int3 make_int3(uint3 a)
  function int3 (line 160) | int3 make_int3(float3 a)
  function uint3 (line 165) | uint3 make_uint3(uint s)
  function uint3 (line 169) | uint3 make_uint3(uint2 a)
  function uint3 (line 173) | uint3 make_uint3(uint2 a, uint s)
  function uint3 (line 177) | uint3 make_uint3(uint4 a)
  function uint3 (line 181) | uint3 make_uint3(int3 a)
  function float4 (line 186) | float4 make_float4(float s)
  function float4 (line 190) | float4 make_float4(float3 a)
  function float4 (line 194) | float4 make_float4(float3 a, float w)
  function float4 (line 198) | float4 make_float4(int4 a)
  function float4 (line 202) | float4 make_float4(uint4 a)
  function int4 (line 207) | int4 make_int4(int s)
  function int4 (line 211) | int4 make_int4(int3 a)
  function int4 (line 215) | int4 make_int4(int3 a, int w)
  function int4 (line 219) | int4 make_int4(uint4 a)
  function int4 (line 223) | int4 make_int4(float4 a)
  function uint4 (line 229) | uint4 make_uint4(uint s)
  function uint4 (line 233) | uint4 make_uint4(uint3 a)
  function uint4 (line 237) | uint4 make_uint4(uint3 a, uint w)
  function uint4 (line 241) | uint4 make_uint4(int4 a)
  function float2 (line 735) | float2 operator*(float2 a, float2 b)
  function float2 (line 744) | float2 operator*(float2 a, float b)
  function float2 (line 748) | float2 operator*(float b, float2 a)
  function int2 (line 758) | int2 operator*(int2 a, int2 b)
  function int2 (line 767) | int2 operator*(int2 a, int b)
  function int2 (line 771) | int2 operator*(int b, int2 a)
  function uint2 (line 781) | uint2 operator*(uint2 a, uint2 b)
  function uint2 (line 790) | uint2 operator*(uint2 a, uint b)
  function uint2 (line 794) | uint2 operator*(uint b, uint2 a)
  function float3 (line 804) | float3 operator*(float3 a, float3 b)
  function float3 (line 814) | float3 operator*(float3 a, float b)
  function float3 (line 818) | float3 operator*(float b, float3 a)
  function int3 (line 829) | int3 operator*(int3 a, int3 b)
  function int3 (line 839) | int3 operator*(int3 a, int b)
  function int3 (line 843) | int3 operator*(int b, int3 a)
  function uint3 (line 854) | uint3 operator*(uint3 a, uint3 b)
  function uint3 (line 864) | uint3 operator*(uint3 a, uint b)
  function uint3 (line 868) | uint3 operator*(uint b, uint3 a)
  function float4 (line 879) | float4 operator*(float4 a, float4 b)
  function float4 (line 890) | float4 operator*(float4 a, float b)
  function float4 (line 894) | float4 operator*(float b, float4 a)
  function int4 (line 906) | int4 operator*(int4 a, int4 b)
  function int4 (line 917) | int4 operator*(int4 a, int b)
  function int4 (line 921) | int4 operator*(int b, int4 a)
  function uint4 (line 933) | uint4 operator*(uint4 a, uint4 b)
  function uint4 (line 944) | uint4 operator*(uint4 a, uint b)
  function uint4 (line 948) | uint4 operator*(uint b, uint4 a)
  function float2 (line 1043) | float2 fminf(float2 a, float2 b)
  function float3 (line 1047) | float3 fminf(float3 a, float3 b)
  function float4 (line 1051) | float4 fminf(float4 a, float4 b)
  function int2 (line 1056) | int2 min(int2 a, int2 b)
  function int3 (line 1060) | int3 min(int3 a, int3 b)
  function int4 (line 1064) | int4 min(int4 a, int4 b)
  function uint2 (line 1069) | uint2 min(uint2 a, uint2 b)
  function uint3 (line 1073) | uint3 min(uint3 a, uint3 b)
  function uint4 (line 1077) | uint4 min(uint4 a, uint4 b)
  function float2 (line 1086) | float2 fmaxf(float2 a, float2 b)
  function float3 (line 1090) | float3 fmaxf(float3 a, float3 b)
  function float4 (line 1094) | float4 fmaxf(float4 a, float4 b)
  function int2 (line 1099) | int2 max(int2 a, int2 b)
  function int3 (line 1103) | int3 max(int3 a, int3 b)
  function int4 (line 1107) | int4 max(int4 a, int4 b)
  function uint2 (line 1112) | uint2 max(uint2 a, uint2 b)
  function uint3 (line 1116) | uint3 max(uint3 a, uint3 b)
  function uint4 (line 1120) | uint4 max(uint4 a, uint4 b)
  function lerp (line 1130) | float lerp(float a, float b, float t)
  function float2 (line 1134) | float2 lerp(float2 a, float2 b, float t)
  function float3 (line 1138) | float3 lerp(float3 a, float3 b, float t)
  function float4 (line 1142) | float4 lerp(float4 a, float4 b, float t)
  function clamp (line 1152) | float clamp(float f, float a, float b)
  function clamp (line 1156) | int clamp(int f, int a, int b)
  function uint (line 1160) | uint clamp(uint f, uint a, uint b)
  function float2 (line 1165) | float2 clamp(float2 v, float a, float b)
  function float2 (line 1169) | float2 clamp(float2 v, float2 a, float2 b)
  function float3 (line 1173) | float3 clamp(float3 v, float a, float b)
  function float3 (line 1177) | float3 clamp(float3 v, float3 a, float3 b)
  function float4 (line 1181) | float4 clamp(float4 v, float a, float b)
  function float4 (line 1185) | float4 clamp(float4 v, float4 a, float4 b)
  function int2 (line 1190) | int2 clamp(int2 v, int a, int b)
  function int2 (line 1194) | int2 clamp(int2 v, int2 a, int2 b)
  function int3 (line 1198) | int3 clamp(int3 v, int a, int b)
  function int3 (line 1202) | int3 clamp(int3 v, int3 a, int3 b)
  function int4 (line 1206) | int4 clamp(int4 v, int a, int b)
  function int4 (line 1210) | int4 clamp(int4 v, int4 a, int4 b)
  function uint2 (line 1215) | uint2 clamp(uint2 v, uint a, uint b)
  function uint2 (line 1219) | uint2 clamp(uint2 v, uint2 a, uint2 b)
  function uint3 (line 1223) | uint3 clamp(uint3 v, uint a, uint b)
  function uint3 (line 1227) | uint3 clamp(uint3 v, uint3 a, uint3 b)
  function uint4 (line 1231) | uint4 clamp(uint4 v, uint a, uint b)
  function uint4 (line 1235) | uint4 clamp(uint4 v, uint4 a, uint4 b)
  function dot (line 1244) | float dot(float2 a, float2 b)
  function dot (line 1248) | float dot(float3 a, float3 b)
  function dot (line 1252) | float dot(float4 a, float4 b)
  function dot (line 1257) | int dot(int2 a, int2 b)
  function dot (line 1261) | int dot(int3 a, int3 b)
  function dot (line 1265) | int dot(int4 a, int4 b)
  function uint (line 1270) | uint dot(uint2 a, uint2 b)
  function uint (line 1274) | uint dot(uint3 a, uint3 b)
  function uint (line 1278) | uint dot(uint4 a, uint4 b)
  function length (line 1287) | float length(float2 v)
  function length (line 1291) | float length(float3 v)
  function length (line 1295) | float length(float4 v)
  function float2 (line 1304) | float2 normalize(float2 v)
  function float3 (line 1309) | float3 normalize(float3 v)
  function float4 (line 1314) | float4 normalize(float4 v)
  function float2 (line 1324) | float2 floorf(float2 v)
  function float3 (line 1328) | float3 floorf(float3 v)
  function float4 (line 1332) | float4 floorf(float4 v)
  function fracf (line 1341) | float fracf(float v)
  function float2 (line 1345) | float2 fracf(float2 v)
  function float3 (line 1349) | float3 fracf(float3 v)
  function float4 (line 1353) | float4 fracf(float4 v)
  function float2 (line 1362) | float2 fmodf(float2 a, float2 b)
  function float3 (line 1366) | float3 fmodf(float3 a, float3 b)
  function float4 (line 1370) | float4 fmodf(float4 a, float4 b)
  function float2 (line 1379) | float2 fabs(float2 v)
  function float3 (line 1383) | float3 fabs(float3 v)
  function float4 (line 1387) | float4 fabs(float4 v)
  function int2 (line 1392) | int2 abs(int2 v)
  function int3 (line 1396) | int3 abs(int3 v)
  function int4 (line 1400) | int4 abs(int4 v)
  function float3 (line 1411) | float3 reflect(float3 i, float3 n)
  function float3 (line 1420) | float3 cross(float3 a, float3 b)
  function smoothstep (line 1432) | float smoothstep(float a, float b, float x)
  function float2 (line 1437) | float2 smoothstep(float2 a, float2 b, float2 x)
  function float3 (line 1442) | float3 smoothstep(float3 a, float3 b, float3 x)
  function float4 (line 1447) | float4 smoothstep(float4 a, float4 b, float4 x)

FILE: helpers/helper_string.h
  function stringRemoveDelimiter (line 80) | inline int stringRemoveDelimiter(char delimiter, const char *string)
  function getFileExtension (line 97) | inline int getFileExtension(char *filename, char **extension)
  function checkCmdLineFlag (line 118) | inline bool checkCmdLineFlag(const int argc, const char **argv, const ch...
  function getCmdLineArgumentValue (line 147) | bool getCmdLineArgumentValue(const int argc, const char **argv, const ch...
  function getCmdLineArgumentInt (line 176) | inline int getCmdLineArgumentInt(const int argc, const char **argv, cons...
  function getCmdLineArgumentFloat (line 217) | inline float getCmdLineArgumentFloat(const int argc, const char **argv, ...
  function getCmdLineArgumentString (line 258) | inline bool getCmdLineArgumentString(const int argc, const char **argv,

FILE: helpers/helper_timer.h
  function class (line 28) | class StopWatchInterface
  function class (line 66) | class StopWatchWin : public StopWatchInterface
  function start (line 146) | inline void
  function stop (line 157) | inline void
  function reset (line 173) | inline void
  function getTime (line 193) | inline float
  function getAverageTime (line 214) | inline float
  function class (line 226) | class StopWatchLinux : public StopWatchInterface
  function start (line 291) | inline void
  function stop (line 302) | inline void
  function reset (line 315) | inline void
  function getTime (line 334) | inline float
  function getAverageTime (line 352) | inline float
  function getDiffTime (line 360) | inline float
  function sdkCreateTimer (line 380) | inline bool
  function sdkDeleteTimer (line 398) | inline bool
  function sdkStartTimer (line 415) | inline bool
  function sdkStopTimer (line 431) | inline bool
  function sdkResetTimer (line 447) | inline bool
  function sdkGetAverageTimerValue (line 466) | inline float
  function sdkGetTimerValue (line 485) | inline float

FILE: helpers/multithreading.h
  type HANDLE (line 22) | typedef HANDLE CUTThread;
  type pthread_t (line 32) | typedef pthread_t CUTThread;

FILE: helpers/nvMath.h
  function namespace (line 71) | namespace nv

FILE: helpers/nvMatrix.h
  function namespace (line 65) | namespace nv
  function T (line 120) | const T *get_value() const
  function set_value (line 125) | void set_value(T *mp)
  function set_value (line 136) | void set_value(T r)
  function make_identity (line 145) | void make_identity()
  function set_scale (line 169) | void set_scale(T s)
  function set_scale (line 176) | void set_scale(const vec3<T> &s)
  function set_translate (line 185) | void set_translate(const vec3<T> &t)
  function set_row (line 193) | void set_row(int r, const vec4<T> &t)
  function set_column (line 201) | void set_column(int c, const vec4<T> &t)
  function friend (line 233) | friend matrix4 inverse(const matrix4 &m)
  function friend (line 372) | friend matrix4 transpose(const matrix4 &m)
  function friend (line 427) | friend vec4<T> operator *(const vec4<T> &lhs, const matrix4 &rhs)
  function T (line 443) | const T &operator()(int row, int col) const
  function T (line 453) | const T &element(int row, int col) const

FILE: helpers/nvQuaternion.h
  function namespace (line 64) | namespace nv
  function T (line 121) | const T *get_value() const
  function get_value (line 126) | void get_value(T &q0, T &q1, T &q2, T &q3) const
  function get_value (line 143) | void get_value(vec3<T> &axis, T &radians) const
  function get_value (line 160) | void get_value(matrix4<T> &m) const
  function friend (line 369) | friend quaternion<T> conjugate(const quaternion<T> &q)
  function friend (line 378) | friend quaternion<T> inverse(const quaternion<T> &q)
  function mult_vec (line 387) | void mult_vec(const vec3<T> &src, vec3<T> &dst) const
  function mult_vec (line 398) | void mult_vec(vec3<T> &src_and_dst) const
  function scale_angle (line 403) | void scale_angle(T scaleFactor)
  function friend (line 413) | friend quaternion<T> slerp(const quaternion<T> &p, const quaternion<T> &...
  function T (line 458) | const T &operator [](int i) const
  function friend (line 488) | friend quaternion<T> operator * (const quaternion<T> &lhs, const quatern...

FILE: helpers/nvShaderUtils.h
  function namespace (line 30) | namespace nv

FILE: helpers/nvVector.h
  function namespace (line 64) | namespace nv
  function friend (line 249) | friend vec2<T> operator - (const vec2<T> &rhs)
  function friend (line 262) | friend vec2<T> operator + (const vec2<T> &lhs, const vec2<T> &rhs)
  function friend (line 269) | friend vec2<T> operator - (const vec2<T> &lhs, const vec2<T> &rhs)
  function friend (line 276) | friend vec2<T> operator * (const vec2<T> &lhs, T rhs)
  function friend (line 283) | friend vec2<T> operator * (T lhs, const vec2<T> &rhs)
  function friend (line 290) | friend vec2<T> operator * (const vec2<T> &lhs, const vec2<T> &rhs)
  function friend (line 297) | friend vec2<T> operator / (const vec2<T> &lhs, T rhs)
  function friend (line 304) | friend vec2<T> operator / (const vec2<T> &lhs, const vec2<T> &rhs)
  function explicit (line 405) | explicit vec3(const vec4<T> &u)
  function explicit (line 413) | explicit vec3(const vec2<T> &u, T v0)
  function T (line 420) | const T *get_value() const
  function T (line 441) | const T &operator [](int i) const
  function operator (line 447) | operator T *()
  function operator (line 452) | operator const T *() const
  function friend (line 535) | friend vec3<T> operator - (const vec3<T> &rhs)
  function friend (line 548) | friend vec3<T> operator + (const vec3<T> &lhs, const vec3<T> &rhs)
  function friend (line 555) | friend vec3<T> operator - (const vec3<T> &lhs, const vec3<T> &rhs)
  function friend (line 562) | friend vec3<T> operator * (const vec3<T> &lhs, T rhs)
  function friend (line 569) | friend vec3<T> operator * (T lhs, const vec3<T> &rhs)
  function friend (line 576) | friend vec3<T> operator * (const vec3<T> &lhs, const vec3<T> &rhs)
  function friend (line 583) | friend vec3<T> operator / (const vec3<T> &lhs, T rhs)
  function friend (line 590) | friend vec3<T> operator / (const vec3<T> &lhs, const vec3<T> &rhs)
  function friend (line 635) | friend vec3<T> cross(const vec3<T> &lhs, const vec3<T> &rhs)
  function explicit (line 710) | explicit vec4(const vec3<T> &u, T v0)
  function explicit (line 718) | explicit vec4(const vec2<T> &u, T v0, T v1)
  function T (line 726) | const T *get_value() const
  function T (line 747) | const T &operator [](int i) const
  function operator (line 753) | operator T *()
  function operator (line 758) | operator const T *() const
  function friend (line 841) | friend vec4<T> operator - (const vec4<T> &rhs)
  function friend (line 854) | friend vec4<T> operator + (const vec4<T> &lhs, const vec4<T> &rhs)
  function friend (line 861) | friend vec4<T> operator - (const vec4<T> &lhs, const vec4<T> &rhs)
  function friend (line 868) | friend vec4<T> operator * (const vec4<T> &lhs, T rhs)
  function friend (line 875) | friend vec4<T> operator * (T lhs, const vec4<T> &rhs)
  function friend (line 882) | friend vec4<T> operator * (const vec4<T> &lhs, const vec4<T> &rhs)
  function friend (line 889) | friend vec4<T> operator / (const vec4<T> &lhs, T rhs)
  function friend (line 896) | friend vec4<T> operator / (const vec4<T> &lhs, const vec4<T> &rhs)
  function typename (line 957) | typename T::value_type dot(const T &lhs, const T &rhs)
  function typename (line 971) | typename T::value_type length(const T &vec)
  function typename (line 985) | typename T::value_type square_norm(const T &vec)
  function T (line 999) | T normalize(const T &vec)
  function T (line 1029) | T min(const T &lhs, const T &rhs)
  function T (line 1043) | T max(const T &lhs, const T &rhs)

FILE: helpers/param.h
  function class (line 28) | class ParamBase
  function T (line 88) | T SetValue(const T value)
  function GetFloatValue (line 93) | float GetFloatValue()
  function GetIntValue (line 97) | int GetIntValue()
  function SetPrecision (line 110) | void SetPrecision(int x)
  function GetPercentage (line 115) | float GetPercentage()
  function SetPercentage (line 120) | void SetPercentage(float p)
  function Reset (line 125) | void Reset()
  function Increment (line 130) | void Increment()
  function Decrement (line 140) | void Decrement()
  function Write (line 150) | void Write(std::ostream &stream)
  function Read (line 154) | void Read(std::istream &stream)
  function IsList (line 159) | bool IsList()
  function class (line 174) | class ParamList : public ParamBase
  function GetFloatValue (line 184) | float GetFloatValue()
  function GetIntValue (line 188) | int GetIntValue()
  function AddParam (line 193) | void AddParam(ParamBase *param)
  function ParamBase (line 201) | ParamBase *GetParam(char *name)
  function ParamBase (line 215) | ParamBase *GetParam(int i)
  function ParamBase (line 220) | ParamBase *GetCurrent()
  function GetSize (line 225) | int GetSize()
  function Reset (line 236) | void Reset()
  function Increment (line 241) | void Increment()
  function Decrement (line 251) | void Decrement()
  function GetPercentage (line 264) | float GetPercentage()
  function SetPercentage (line 268) | void SetPercentage(float /*p*/) {}
  function Write (line 270) | void Write(std::ostream &stream)
  function Read (line 280) | void Read(std::istream &stream)
  function IsList (line 290) | bool IsList()
  function ResetAll (line 295) | void ResetAll()

FILE: helpers/paramgl.h
  function beginWinCoords (line 30) | inline void beginWinCoords(void)
  function endWinCoords (line 46) | inline void endWinCoords(void)
  function glPrint (line 55) | inline void glPrint(int x, int y, const char *s, void *font)
  function glPrintShadowed (line 66) | inline void glPrintShadowed(int x, int y, const char *s, void *font, flo...
  function class (line 75) | class ParamListGL : public ParamList
  function Mouse (line 155) | bool Mouse(int x, int y, int button=GLUT_LEFT_BUTTON, int state=GLUT_DOWN)
  function Motion (line 188) | bool Motion(int x, int y)
  function Special (line 211) | void Special(int key, int x, int y)
  function SetFont (line 246) | void SetFont(void *font, int height)
  function SetSelectedColor (line 252) | void SetSelectedColor(float r, float g, float b)
  function SetUnSelectedColor (line 256) | void SetUnSelectedColor(float r, float g, float b)
  function SetBarColorInner (line 260) | void SetBarColorInner(float r, float g, float b)
  function SetBarColorOuter (line 264) | void SetBarColorOuter(float r, float g, float b)
  function SetActive (line 269) | void SetActive(bool b)
  type Color (line 290) | struct Color

FILE: helpers/rendercheck_d3d10.h
  function class (line 24) | class CheckRenderD3D10

FILE: helpers/rendercheck_d3d11.h
  function class (line 24) | class CheckRenderD3D11

FILE: helpers/rendercheck_d3d9.h
  function class (line 23) | class CheckRenderD3D9

FILE: helpers/rendercheck_gl.h
  function class (line 51) | class CheckRender
  function virtual (line 62) | virtual ~CheckRender()
  function virtual (line 74) | virtual void allocateMemory(unsigned int width, unsigned int height, uns...
  function virtual (line 90) | virtual void setExecPath(char *path)
  function virtual (line 94) | virtual void EnableQAReadback(bool bStatus)
  function virtual (line 98) | virtual bool IsQAReadback()
  function virtual (line 102) | virtual bool IsFBO()
  function virtual (line 106) | virtual bool IsPBO()
  function virtual (line 110) | virtual void *imageData()
  function virtual (line 116) | virtual void setPixelFormat(GLenum format)
  function virtual (line 120) | virtual int  getPixelFormat()
  function virtual (line 129) | virtual void bindReadback()
  function virtual (line 143) | virtual void unbindReadback()
  function virtual (line 157) | virtual void savePGM(const char *zfilename, bool bInvert, void **ppReadBuf)
  function virtual (line 206) | virtual void savePPM(const char *zfilename, bool bInvert, void **ppReadBuf)
  function setThresholdCompare (line 342) | void    setThresholdCompare(float value)
  function virtual (line 347) | virtual void dumpBin(void *data, unsigned int bytes, const char *filename)
  function virtual (line 357) | virtual bool compareBin2BinUint(const char *src_file, const char *ref_fi...
  function virtual (line 450) | virtual bool compareBin2BinFloat(const char *src_file, const char *ref_f...
  function class (line 555) | class CheckBackBuffer : public CheckRender
  type bufferConfig (line 736) | struct bufferConfig
  type fboConfig (line 744) | struct fboConfig
  type fboData (line 755) | struct fboData
  function class (line 766) | class CFrameBufferObject
  function virtual (line 789) | virtual ~CFrameBufferObject()
  function GLuint (line 794) | GLuint createTexture(GLenum target, int w, int h, GLint internalformat, ...
  function initialize (line 839) | bool initialize(unsigned width, unsigned height, fboConfig &rConfigFBO, ...
  function create (line 898) | bool create(GLuint width, GLuint height, fboConfig &config, fboData &data)
  function virtual (line 981) | virtual void freeResources()
  function virtual (line 1017) | virtual bool checkStatus(const char *zfile, int line, bool silent)
  function virtual (line 1096) | virtual void renderQuad(int width, int height, GLenum eTarget)
  function bindFragmentProgram (line 1133) | void bindFragmentProgram()
  function bindRenderPath (line 1140) | void bindRenderPath()
  function unbindRenderPath (line 1146) | void unbindRenderPath()
  function bindTexture (line 1152) | void bindTexture()
  function unbindTexture (line 1158) | void unbindTexture()
  function GLuint (line 1163) | GLuint getFbo()
  function GLuint (line 1167) | GLuint getTex()
  function GLuint (line 1171) | GLuint getDepthTex()
  function class (line 1190) | class CheckFBO: public CheckRender
  function virtual (line 1288) | virtual bool readback(GLuint width, GLuint height)
  function virtual (line 1348) | virtual bool readback(GLuint width, GLuint height, GLuint bufObject)
  function virtual (line 1428) | virtual bool readback(GLuint width, GLuint height, unsigned char *memBuf)

FILE: helpers/timer.h
  type timeval (line 28) | struct timeval
  function StartTimer (line 31) | void StartTimer()
  function GetTimer (line 50) | double GetTimer()

FILE: modules/evaluation/include/evaluation/core/LearnerEvaluator.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/core/ParamSetUtil.h
  function namespace (line 12) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/core/PerformanceMeasureUtil.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/core/PerformanceResult.h
  function namespace (line 13) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/core/PerformanceTable.h
  function namespace (line 19) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/splitgenerators/CrossValidationSplitGenerator.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/splitgenerators/RNGFunctor.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/splitgenerators/RandomPermutationAndDivisionSplitGenerator.h
  function namespace (line 13) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/splitgenerators/SplitGenerator.h
  function namespace (line 14) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/util/CartesianProductParameterSetGenerator.h
  function namespace (line 18) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/util/ConfusionMatrixUtil.h
  function namespace (line 16) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/util/CoordinateDescentParameterOptimiser.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/util/EpochBasedParameterOptimiser.h
  function namespace (line 16) | namespace evaluation {

FILE: modules/evaluation/include/evaluation/util/RandomParameterOptimiser.h
  function namespace (line 11) | namespace evaluation {

FILE: modules/evaluation/src/core/ParamSetUtil.cpp
  type evaluation (line 10) | namespace evaluation {

FILE: modules/evaluation/src/core/PerformanceMeasure.cpp
  type evaluation (line 10) | namespace evaluation {

FILE: modules/evaluation/src/core/PerformanceMeasureUtil.cpp
  type evaluation (line 11) | namespace evaluation {
    function PerformanceMeasure (line 15) | PerformanceMeasure PerformanceMeasureUtil::average_measures(const std:...
    function PerformanceResult (line 46) | PerformanceResult PerformanceMeasureUtil::average_results(const std::v...

FILE: modules/evaluation/src/core/PerformanceTable.cpp
  type evaluation (line 11) | namespace evaluation {
    function ParamSet (line 21) | const ParamSet& PerformanceTable::find_best_param_set(const std::strin...

FILE: modules/evaluation/src/splitgenerators/CrossValidationSplitGenerator.cpp
  type evaluation (line 15) | namespace evaluation {

FILE: modules/evaluation/src/splitgenerators/RNGFunctor.cpp
  type evaluation (line 8) | namespace evaluation {

FILE: modules/evaluation/src/splitgenerators/RandomPermutationAndDivisionSplitGenerator.cpp
  type evaluation (line 14) | namespace evaluation {

FILE: modules/evaluation/src/util/CartesianProductParameterSetGenerator.cpp
  type evaluation (line 14) | namespace evaluation {
    function CartesianProductParameterSetGenerator (line 18) | CartesianProductParameterSetGenerator& CartesianProductParameterSetGen...

FILE: modules/evaluation/src/util/ConfusionMatrixUtil.cpp
  type evaluation (line 8) | namespace evaluation {

FILE: modules/evaluation/src/util/CoordinateDescentParameterOptimiser.cpp
  type evaluation (line 8) | namespace evaluation {

FILE: modules/evaluation/src/util/EpochBasedParameterOptimiser.cpp
  type evaluation (line 13) | namespace evaluation {
    function EpochBasedParameterOptimiser (line 23) | EpochBasedParameterOptimiser& EpochBasedParameterOptimiser::add_param(...
    function ParamSet (line 29) | ParamSet EpochBasedParameterOptimiser::optimise_for_parameters(float *...
    function ParamSet (line 75) | ParamSet EpochBasedParameterOptimiser::make_param_set(const std::vecto...

FILE: modules/evaluation/src/util/RandomParameterOptimiser.cpp
  type evaluation (line 8) | namespace evaluation {

FILE: modules/grove/include/grove/clustering/ExampleClustererFactory.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/clustering/cpu/ExampleClusterer_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/clustering/cuda/ExampleClusterer_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/clustering/interface/ExampleClusterer.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/clustering/shared/ExampleClusterer_Shared.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/features/FeatureCalculatorFactory.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/features/base/Descriptor.h
  function namespace (line 9) | namespace grove {

FILE: modules/grove/include/grove/features/base/RGBDPatchFeatureDifferenceType.h
  function namespace (line 9) | namespace grove {

FILE: modules/grove/include/grove/features/cpu/RGBDPatchFeatureCalculator_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/features/cuda/RGBDPatchFeatureCalculator_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/features/interface/RGBDPatchFeatureCalculator.h
  type ORUtils (line 35) | typedef ORUtils::Image<KeypointType> KeypointsImage;

FILE: modules/grove/include/grove/features/shared/RGBDPatchFeatureCalculator_Shared.h
  function namespace (line 16) | namespace grove {

FILE: modules/grove/include/grove/forests/DecisionForestFactory.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/forests/cpu/DecisionForest_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/forests/cuda/DecisionForest_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/forests/interface/DecisionForest.h
  function namespace (line 25) | namespace grove {

FILE: modules/grove/include/grove/forests/shared/DecisionForest_Shared.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/keypoints/Keypoint2D.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/keypoints/Keypoint3DColour.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/numbers/CPURNG.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/numbers/CUDARNG.h
  function namespace (line 16) | namespace grove {

FILE: modules/grove/include/grove/ransac/PreemptiveRansacFactory.h
  function namespace (line 15) | namespace grove {

FILE: modules/grove/include/grove/ransac/cpu/PreemptiveRansac_CPU.h
  function namespace (line 12) | namespace grove {

FILE: modules/grove/include/grove/ransac/cuda/PreemptiveRansac_CUDA.h
  function namespace (line 12) | namespace grove {

FILE: modules/grove/include/grove/ransac/interface/PreemptiveRansac.h
  function namespace (line 28) | namespace alglib {
  function namespace (line 35) | namespace grove {

FILE: modules/grove/include/grove/ransac/shared/PoseCandidate.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/ransac/shared/PreemptiveRansac_Shared.h
  function namespace (line 15) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/ScoreRelocaliserFactory.h
  function namespace (line 15) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/base/ScoreRelocaliserState.h
  function namespace (line 15) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cpu/ScoreForestRelocaliser_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cpu/ScoreGTRelocaliser_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cpu/ScoreNetRelocaliser_CPU.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cuda/ScoreForestRelocaliser_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cuda/ScoreGTRelocaliser_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/cuda/ScoreNetRelocaliser_CUDA.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/interface/ScoreForestRelocaliser.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/interface/ScoreGTRelocaliser.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/interface/ScoreNetRelocaliser.h
  function namespace (line 30) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/interface/ScoreRelocaliser.h
  function class (line 31) | class ScoreRelocaliser : public orx::Relocaliser

FILE: modules/grove/include/grove/relocalisation/shared/ScoreForestRelocaliser_Shared.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/shared/ScoreGTRelocaliser_Shared.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/relocalisation/shared/ScoreNetRelocaliser_Shared.h
  function namespace (line 11) | namespace grove {

FILE: modules/grove/include/grove/reservoirs/ExampleReservoirsFactory.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/reservoirs/cpu/ExampleReservoirs_CPU.h
  function namespace (line 12) | namespace grove {

FILE: modules/grove/include/grove/reservoirs/cuda/ExampleReservoirs_CUDA.h
  function namespace (line 12) | namespace grove {

FILE: modules/grove/include/grove/reservoirs/interface/ExampleReservoirs.h
  function namespace (line 12) | namespace grove {

FILE: modules/grove/include/grove/reservoirs/shared/ExampleReservoirs_Shared.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/scoreforests/Keypoint3DColourCluster.h
  function namespace (line 13) | namespace grove {

FILE: modules/grove/include/grove/scoreforests/ScorePrediction.h
  function namespace (line 14) | namespace grove {

FILE: modules/grove/include/grove/util/Array.h
  function namespace (line 9) | namespace grove {

FILE: modules/grove/src/CPUInstantiations.cpp
  type grove (line 23) | namespace grove {
    class ExampleClusterer<Keypoint3DColour, Keypoint3DColourCluster, ScorePrediction::Capacity> (line 33) | class ExampleClusterer<Keypoint3DColour, Keypoint3DColourCluster, Scor...
    class ExampleClusterer_CPU<Keypoint3DColour, Keypoint3DColourCluster, ScorePrediction::Capacity> (line 34) | class ExampleClusterer_CPU<Keypoint3DColour, Keypoint3DColourCluster, ...
    type ExampleClustererFactory<Keypoint3DColour, Keypoint3DColourCluster, ScorePrediction::Capacity> (line 35) | struct ExampleClustererFactory<Keypoint3DColour, Keypoint3DColourClust...
    class RGBDPatchFeatureCalculator<Keypoint2D,RGBDPatchDescriptor> (line 69) | class RGBDPatchFeatureCalculator<Keypoint2D,RGBDPatchDescriptor>
    class RGBDPatchFeatureCalculator<Keypoint3DColour,RGBDPatchDescriptor> (line 70) | class RGBDPatchFeatureCalculator<Keypoint3DColour,RGBDPatchDescriptor>
    class RGBDPatchFeatureCalculator_CPU<Keypoint2D,RGBDPatchDescriptor> (line 71) | class RGBDPatchFeatureCalculator_CPU<Keypoint2D,RGBDPatchDescriptor>
    class RGBDPatchFeatureCalculator_CPU<Keypoint3DColour,RGBDPatchDescriptor> (line 72) | class RGBDPatchFeatureCalculator_CPU<Keypoint3DColour,RGBDPatchDescrip...
    class DecisionForest<RGBDPatchDescriptor, FOREST_TREES> (line 74) | class DecisionForest<RGBDPatchDescriptor, FOREST_TREES>
    class DecisionForest_CPU<RGBDPatchDescriptor, FOREST_TREES> (line 75) | class DecisionForest_CPU<RGBDPatchDescriptor, FOREST_TREES>
    type DecisionForestFactory<RGBDPatchDescriptor, FOREST_TREES> (line 76) | struct DecisionForestFactory<RGBDPatchDescriptor, FOREST_TREES>
    class ExampleReservoirs<Keypoint2D> (line 78) | class ExampleReservoirs<Keypoint2D>
    class ExampleReservoirs<Keypoint3DColour> (line 79) | class ExampleReservoirs<Keypoint3DColour>
    class ExampleReservoirs_CPU<Keypoint2D> (line 80) | class ExampleReservoirs_CPU<Keypoint2D>
    class ExampleReservoirs_CPU<Keypoint3DColour> (line 81) | class ExampleReservoirs_CPU<Keypoint3DColour>
    type ExampleReservoirsFactory<Keypoint2D> (line 82) | struct ExampleReservoirsFactory<Keypoint2D>
    type ExampleReservoirsFactory<Keypoint3DColour> (line 83) | struct ExampleReservoirsFactory<Keypoint3DColour>

FILE: modules/grove/src/features/FeatureCalculatorFactory.cpp
  type grove (line 15) | namespace grove {
    function DA_RGBDPatchFeatureCalculator_Ptr (line 19) | DA_RGBDPatchFeatureCalculator_Ptr FeatureCalculatorFactory::make_da_rg...
    function RGBPatchFeatureCalculator_Ptr (line 38) | RGBPatchFeatureCalculator_Ptr FeatureCalculatorFactory::make_rgb_patch...

FILE: modules/grove/src/numbers/CPURNG.cpp
  type grove (line 8) | namespace grove {

FILE: modules/grove/src/ransac/PreemptiveRansacFactory.cpp
  type grove (line 16) | namespace grove {
    function PreemptiveRansac_Ptr (line 20) | PreemptiveRansac_Ptr PreemptiveRansacFactory::make_preemptive_ransac(c...

FILE: modules/grove/src/ransac/cpu/PreemptiveRansac_CPU.cpp
  type grove (line 16) | namespace grove {

FILE: modules/grove/src/ransac/interface/PreemptiveRansac.cpp
  type grove (line 31) | namespace grove {

FILE: modules/grove/src/relocalisation/ScoreRelocaliserFactory.cpp
  type grove (line 23) | namespace grove {
    function ScoreRelocaliser_Ptr (line 27) | ScoreRelocaliser_Ptr ScoreRelocaliserFactory::make_score_relocaliser(c...

FILE: modules/grove/src/relocalisation/base/ScoreRelocaliserState.cpp
  type grove (line 19) | namespace grove {

FILE: modules/grove/src/relocalisation/cpu/ScoreForestRelocaliser_CPU.cpp
  type grove (line 12) | namespace grove {

FILE: modules/grove/src/relocalisation/cpu/ScoreGTRelocaliser_CPU.cpp
  type grove (line 10) | namespace grove {

FILE: modules/grove/src/relocalisation/cpu/ScoreNetRelocaliser_CPU.cpp
  type grove (line 12) | namespace grove {

FILE: modules/grove/src/relocalisation/interface/ScoreForestRelocaliser.cpp
  type grove (line 21) | namespace grove {
    function ScorePrediction (line 54) | ScorePrediction ScoreForestRelocaliser::get_prediction(uint32_t treeId...
    function ORUChar4Image_CPtr (line 90) | ORUChar4Image_CPtr ScoreForestRelocaliser::get_visualisation_image(con...

FILE: modules/grove/src/relocalisation/interface/ScoreGTRelocaliser.cpp
  type grove (line 9) | namespace grove {

FILE: modules/grove/src/relocalisation/interface/ScoreNetRelocaliser.cpp
  type grove (line 17) | namespace grove {

FILE: modules/grove/src/relocalisation/interface/ScoreRelocaliser.cpp
  type grove (line 21) | namespace grove {
    function Keypoint3DColourImage_CPtr (line 100) | Keypoint3DColourImage_CPtr ScoreRelocaliser::get_keypoints_image() const
    function ScorePredictionsImage_CPtr (line 105) | ScorePredictionsImage_CPtr ScoreRelocaliser::get_predictions_image() c...
    function ORUChar4Image_CPtr (line 110) | ORUChar4Image_CPtr ScoreRelocaliser::get_visualisation_image(const std...

FILE: modules/infermous/include/infermous/base/CRF2D.h
  function namespace (line 15) | namespace infermous {

FILE: modules/infermous/include/infermous/base/CRFUtil.h
  function namespace (line 13) | namespace infermous {
  function std (line 59) | static std::vector<Eigen::Vector2i> make_square_neighbour_offsets(int ra...

FILE: modules/infermous/include/infermous/base/Grids.h
  function namespace (line 17) | namespace infermous {

FILE: modules/infermous/include/infermous/base/PairwisePotentialCalculator.h
  function namespace (line 11) | namespace infermous {

FILE: modules/infermous/include/infermous/engines/MeanFieldInferenceEngine.h
  function namespace (line 13) | namespace infermous {

FILE: modules/itmx/include/itmx/base/ITMObjectPtrTypes.h
  type boost (line 19) | typedef boost::shared_ptr<InputSource::CompositeImageSourceEngine> Compo...
  type boost (line 20) | typedef boost::shared_ptr<InputSource::ImageSourceEngine> ImageSourceEng...
  type boost (line 21) | typedef boost::shared_ptr<ITMLib::ITMIMUCalibrator> IMUCalibrator_Ptr;
  type boost (line 22) | typedef boost::shared_ptr<ITMLib::ITMLowLevelEngine> LowLevelEngine_Ptr;
  type boost (line 23) | typedef boost::shared_ptr<itmx::Settings> Settings_Ptr;
  type boost (line 24) | typedef boost::shared_ptr<ITMLib::ITMSurfelRenderState> SurfelRenderStat...
  type boost (line 25) | typedef boost::shared_ptr<ITMLib::ITMTracker> Tracker_Ptr;
  type boost (line 26) | typedef boost::shared_ptr<ITMLib::ITMTrackingController> TrackingControl...
  type boost (line 27) | typedef boost::shared_ptr<ITMLib::ITMTrackingState> TrackingState_Ptr;
  type boost (line 28) | typedef boost::shared_ptr<ITMLib::ITMView> View_Ptr;
  type boost (line 29) | typedef boost::shared_ptr<ITMLib::ITMViewBuilder> ViewBuilder_Ptr;
  type boost (line 30) | typedef boost::shared_ptr<ITMLib::ITMRenderState> VoxelRenderState_Ptr;
  type boost (line 32) | typedef boost::shared_ptr<const InputSource::CompositeImageSourceEngine>...
  type boost (line 33) | typedef boost::shared_ptr<const InputSource::ImageSourceEngine> ImageSou...
  type boost (line 34) | typedef boost::shared_ptr<const ITMLib::ITMIMUCalibrator> IMUCalibrator_...
  type boost (line 35) | typedef boost::shared_ptr<const ITMLib::ITMLowLevelEngine> LowLevelEngin...
  type boost (line 36) | typedef boost::shared_ptr<const itmx::Settings> Settings_CPtr;
  type boost (line 37) | typedef boost::shared_ptr<const ITMLib::ITMSurfelRenderState> SurfelRend...
  type boost (line 38) | typedef boost::shared_ptr<const ITMLib::ITMTracker> Tracker_CPtr;
  type boost (line 39) | typedef boost::shared_ptr<const ITMLib::ITMTrackingController> TrackingC...
  type boost (line 40) | typedef boost::shared_ptr<const ITMLib::ITMTrackingState> TrackingState_...
  type boost (line 41) | typedef boost::shared_ptr<const ITMLib::ITMView> View_CPtr;
  type boost (line 42) | typedef boost::shared_ptr<const ITMLib::ITMViewBuilder> ViewBuilder_CPtr;
  type boost (line 43) | typedef boost::shared_ptr<const ITMLib::ITMRenderState> VoxelRenderState...

FILE: modules/itmx/include/itmx/base/Settings.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/graphviz/GraphVisualiser.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/imagesources/AsyncImageSourceEngine.h
  function namespace (line 17) | namespace itmx {

FILE: modules/itmx/include/itmx/imagesources/DepthCorruptingImageSourceEngine.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/imagesources/RemoteImageSourceEngine.h
  function namespace (line 14) | namespace itmx {

FILE: modules/itmx/include/itmx/imagesources/SemanticMaskingImageSourceEngine.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/imagesources/ZedImageSourceEngine.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/ocv/OpenCVUtil.h
  function namespace (line 15) | namespace itmx {
  function show_greyscale_figure (line 225) | void show_greyscale_figure(const std::string& windowName, const T *input...
  function show_scaled_greyscale_figure (line 255) | void show_scaled_greyscale_figure(const std::string& windowName, const T...
  function clamp_pixel_value (line 301) | unsigned char clamp_pixel_value(T pixelValue)
  function T (line 315) | T identity(T value)

FILE: modules/itmx/include/itmx/picking/PickerFactory.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/picking/cpu/Picker_CPU.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/picking/cuda/Picker_CUDA.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/picking/interface/Picker.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/picking/shared/Picker_Shared.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/relocalisation/FernRelocaliser.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/relocalisation/ICPRefiningRelocaliser.h
  function namespace (line 26) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/BaseRGBDFrameMessage.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/CompressedRGBDFrameHeaderMessage.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/CompressedRGBDFrameMessage.h
  function namespace (line 12) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/DepthCompressionType.h
  function namespace (line 9) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/InteractionTypeMessage.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/MappingClientHandler.h
  function namespace (line 18) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/MappingMessage.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/MappingServer.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/RGBCompressionType.h
  function namespace (line 9) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/RGBDCalibrationMessage.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/RGBDFrameCompressor.h
  function namespace (line 15) | namespace itmx {

FILE: modules/itmx/include/itmx/remotemapping/RenderingRequestMessage.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/FallibleTracker.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/GlobalTracker.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/RemoteTracker.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/RiftTracker.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/TrackerFactory.h
  function namespace (line 19) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/ViconTracker.h
  function namespace (line 14) | namespace itmx {

FILE: modules/itmx/include/itmx/trackers/ZedTracker.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/util/CameraPoseConverter.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/util/ColourConversion_Shared.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/util/RGBDUtil.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/util/ViconInterface.h
  function namespace (line 21) | namespace itmx {

FILE: modules/itmx/include/itmx/util/ZedCamera.h
  function namespace (line 30) | namespace sl {

FILE: modules/itmx/include/itmx/visualisation/DepthVisualisationUtil.h
  function namespace (line 14) | namespace itmx {

FILE: modules/itmx/include/itmx/visualisation/DepthVisualiserFactory.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/visualisation/cpu/DepthVisualiser_CPU.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/visualisation/cuda/DepthVisualiser_CUDA.h
  function namespace (line 11) | namespace itmx {

FILE: modules/itmx/include/itmx/visualisation/interface/DepthVisualiser.h
  function namespace (line 13) | namespace itmx {

FILE: modules/itmx/include/itmx/visualisation/shared/DepthVisualiser_Shared.h
  function namespace (line 14) | namespace itmx {

FILE: modules/itmx/src/graphviz/GraphVisualiser.cpp
  type itmx (line 29) | namespace itmx {
    function ORUChar4Image_Ptr (line 33) | ORUChar4Image_Ptr GraphVisualiser::generate_visualisation(const std::s...

FILE: modules/itmx/src/imagesources/AsyncImageSourceEngine.cpp
  type itmx (line 10) | namespace itmx {
    function Vector2i (line 69) | Vector2i AsyncImageSourceEngine::getDepthImageSize() const
    function Vector2i (line 106) | Vector2i AsyncImageSourceEngine::getRGBImageSize() const

FILE: modules/itmx/src/imagesources/DepthCorruptingImageSourceEngine.cpp
  type itmx (line 11) | namespace itmx {
    function ITMRGBDCalib (line 31) | ITMRGBDCalib DepthCorruptingImageSourceEngine::getCalib() const
    function Vector2i (line 36) | Vector2i DepthCorruptingImageSourceEngine::getDepthImageSize() const
    function Vector2i (line 83) | Vector2i DepthCorruptingImageSourceEngine::getRGBImageSize() const

FILE: modules/itmx/src/imagesources/RemoteImageSourceEngine.cpp
  type itmx (line 9) | namespace itmx {
    function ITMRGBDCalib (line 19) | ITMRGBDCalib RemoteImageSourceEngine::getCalib() const
    function Vector2i (line 24) | Vector2i RemoteImageSourceEngine::getDepthImageSize() const
    function Vector2i (line 34) | Vector2i RemoteImageSourceEngine::getRGBImageSize() const

FILE: modules/itmx/src/imagesources/SemanticMaskingImageSourceEngine.cpp
  type itmx (line 11) | namespace itmx {
    function ITMRGBDCalib (line 78) | ITMRGBDCalib SemanticMaskingImageSourceEngine::getCalib() const
    function Vector2i (line 83) | Vector2i SemanticMaskingImageSourceEngine::getDepthImageSize() const
    function Vector2i (line 127) | Vector2i SemanticMaskingImageSourceEngine::getRGBImageSize() const

FILE: modules/itmx/src/imagesources/SingleRGBDImagePipe.cpp
  type itmx (line 11) | namespace itmx {
    function ITMRGBDCalib (line 23) | ITMRGBDCalib SingleRGBDImagePipe::getCalib() const
    function Vector2i (line 28) | Vector2i SingleRGBDImagePipe::getDepthImageSize() const
    function Vector2i (line 42) | Vector2i SingleRGBDImagePipe::getRGBImageSize() const

FILE: modules/itmx/src/imagesources/ZedImageSourceEngine.cpp
  type itmx (line 8) | namespace itmx {
    function Vector2i (line 23) | Vector2i ZedImageSourceEngine::getDepthImageSize() const
    function Vector2i (line 33) | Vector2i ZedImageSourceEngine::getRGBImageSize() const

FILE: modules/itmx/src/ocv/OpenCVUtil.cpp
  type itmx (line 10) | namespace itmx {

FILE: modules/itmx/src/picking/PickerFactory.cpp
  type itmx (line 16) | namespace itmx {
    function Picker_CPtr (line 20) | Picker_CPtr PickerFactory::make_picker(DeviceType deviceType)

FILE: modules/itmx/src/picking/cpu/Picker_CPU.cpp
  type itmx (line 12) | namespace itmx {

FILE: modules/itmx/src/relocalisation/FernRelocaliser.cpp
  type itmx (line 12) | namespace itmx {

FILE: modules/itmx/src/remotemapping/BaseRGBDFrameMessage.cpp
  type itmx (line 8) | namespace itmx {

FILE: modules/itmx/src/remotemapping/CompressedRGBDFrameHeaderMessage.cpp
  type itmx (line 10) | namespace itmx {
    function Vector2i (line 30) | Vector2i CompressedRGBDFrameHeaderMessage::extract_depth_image_size() ...
    function Vector2i (line 40) | Vector2i CompressedRGBDFrameHeaderMessage::extract_rgb_image_size() const

FILE: modules/itmx/src/remotemapping/CompressedRGBDFrameMessage.cpp
  type itmx (line 10) | namespace itmx {

FILE: modules/itmx/src/remotemapping/MappingClient.cpp
  type itmx (line 18) | namespace itmx {
    function ORUChar4Image_CPtr (line 35) | ORUChar4Image_CPtr MappingClient::get_remote_image() const

FILE: modules/itmx/src/remotemapping/MappingClientHandler.cpp
  type itmx (line 21) | namespace itmx {
    function Vector2i (line 42) | const Vector2i& MappingClientHandler::get_depth_image_size() const
    function Vector2i (line 62) | const Vector2i& MappingClientHandler::get_rgb_image_size() const

FILE: modules/itmx/src/remotemapping/MappingMessage.cpp
  type itmx (line 11) | namespace itmx {

FILE: modules/itmx/src/remotemapping/MappingServer.cpp
  type itmx (line 15) | namespace itmx {
    function ITMRGBDCalib (line 25) | ITMRGBDCalib MappingServer::get_calib(int clientID) const
    function Vector2i (line 32) | Vector2i MappingServer::get_depth_image_size(int clientID) const
    function Vector2i (line 114) | Vector2i MappingServer::get_rgb_image_size(int clientID) const

FILE: modules/itmx/src/remotemapping/RGBDCalibrationMessage.cpp
  type itmx (line 9) | namespace itmx {
    function ITMRGBDCalib (line 29) | ITMRGBDCalib RGBDCalibrationMessage::extract_calib() const
    function DepthCompressionType (line 59) | DepthCompressionType RGBDCalibrationMessage::extract_depth_compression...
    function RGBCompressionType (line 64) | RGBCompressionType RGBDCalibrationMessage::extract_rgb_compression_typ...

FILE: modules/itmx/src/remotemapping/RGBDFrameCompressor.cpp
  type itmx (line 19) | namespace itmx {
    type RGBDFrameCompressor::Impl (line 23) | struct RGBDFrameCompressor::Impl

FILE: modules/itmx/src/remotemapping/RGBDFrameMessage.cpp
  type itmx (line 10) | namespace itmx {
    function RGBDFrameMessage_Ptr (line 26) | RGBDFrameMessage_Ptr RGBDFrameMessage::make(const Vector2i& rgbImageSi...
    function Vector2i (line 55) | const Vector2i& RGBDFrameMessage::get_depth_image_size() const
    function Vector2i (line 60) | const Vector2i& RGBDFrameMessage::get_rgb_image_size() const

FILE: modules/itmx/src/remotemapping/RenderingRequestMessage.cpp
  type itmx (line 8) | namespace itmx {
    function Vector2i (line 22) | Vector2i RenderingRequestMessage::extract_image_size() const

FILE: modules/itmx/src/trackers/GlobalTracker.cpp
  type itmx (line 10) | namespace itmx {

FILE: modules/itmx/src/trackers/RemoteTracker.cpp
  type itmx (line 9) | namespace itmx {

FILE: modules/itmx/src/trackers/RiftTracker.cpp
  type itmx (line 13) | namespace itmx {
    function Matrix3f (line 70) | Matrix3f RiftTracker::extract_rotation_matrix(const ovrTrackingState& ...

FILE: modules/itmx/src/trackers/TrackerFactory.cpp
  type itmx (line 37) | namespace itmx {
    function Tracker_Ptr (line 41) | Tracker_Ptr TrackerFactory::make_tracker_from_file(const std::string& ...
    function Tracker_Ptr (line 52) | Tracker_Ptr TrackerFactory::make_tracker_from_string(const std::string...
    function Tracker_Ptr (line 72) | Tracker_Ptr TrackerFactory::make_simple_tracker(const std::string& tra...
    function Tracker_Ptr (line 140) | Tracker_Ptr TrackerFactory::make_tracker(const Tree& trackerTree, cons...

FILE: modules/itmx/src/trackers/ViconTracker.cpp
  type itmx (line 19) | namespace itmx {

FILE: modules/itmx/src/trackers/ZedTracker.cpp
  type itmx (line 9) | namespace itmx {

FILE: modules/itmx/src/util/CameraPoseConverter.cpp
  type itmx (line 12) | namespace itmx {
    function SE3Pose (line 16) | SE3Pose CameraPoseConverter::camera_to_pose(const Camera& camera)
    function SimpleCamera (line 80) | SimpleCamera CameraPoseConverter::pose_to_camera(const SE3Pose& pose)

FILE: modules/itmx/src/util/RGBDUtil.cpp
  type itmx (line 8) | namespace itmx {
    function Matrix4f (line 12) | Matrix4f RGBDUtil::calculate_depth_to_rgb_matrix_3D(const ITMLib::ITMR...
    function Matrix4f (line 30) | Matrix4f RGBDUtil::make_calibration_matrix(const ITMLib::ITMIntrinsics...

FILE: modules/itmx/src/util/ViconInterface.cpp
  type itmx (line 11) | namespace itmx {

FILE: modules/itmx/src/util/ZedCamera.cpp
  type itmx (line 11) | namespace itmx {
    function ZedCamera_Ptr (line 63) | ZedCamera_Ptr& ZedCamera::instance()
    function ITMRGBDCalib (line 71) | const ITMRGBDCalib& ZedCamera::get_calib() const
    function Vector2i (line 76) | Vector2i ZedCamera::get_depth_image_size() const
    function Vector2i (line 127) | Vector2i ZedCamera::get_rgb_image_size() const
    function Vector2i (line 189) | Vector2i ZedCamera::get_image_size() const

FILE: modules/itmx/src/visualisation/DepthVisualiserFactory.cpp
  type itmx (line 16) | namespace itmx {
    function DepthVisualiser_CPtr (line 20) | DepthVisualiser_CPtr DepthVisualiserFactory::make_depth_visualiser(Dev...

FILE: modules/itmx/src/visualisation/cpu/DepthVisualiser_CPU.cpp
  type itmx (line 10) | namespace itmx {

FILE: modules/oglx/include/oglx/FrameBuffer.h
  function namespace (line 13) | namespace oglx {

FILE: modules/oglx/include/oglx/OpenGLUtil.h
  function namespace (line 11) | namespace oglx {

FILE: modules/oglx/include/oglx/QuadricRenderer.h
  function namespace (line 16) | namespace oglx {

FILE: modules/oglx/src/FrameBuffer.cpp
  type oglx (line 10) | namespace oglx {
    function GLuint (line 63) | GLuint FrameBuffer::get_colour_buffer_id() const
    function GLuint (line 68) | GLuint FrameBuffer::get_id() const

FILE: modules/oglx/src/OpenGLUtil.cpp
  type oglx (line 8) | namespace oglx {

FILE: modules/oglx/src/QuadricRenderer.cpp
  type oglx (line 11) | namespace oglx {

FILE: modules/orx/include/orx/base/MemoryBlockFactory.h
  function namespace (line 15) | namespace orx {

FILE: modules/orx/include/orx/base/ORImagePtrTypes.h
  type boost (line 13) | typedef boost::shared_ptr<ORUtils::Image<bool> > ORBoolImage_Ptr;
  type boost (line 14) | typedef boost::shared_ptr<ORUtils::Image<float> > ORFloatImage_Ptr;
  type boost (line 15) | typedef boost::shared_ptr<ORUtils::Image<Vector2f> > ORFloat2Image_Ptr;
  type boost (line 16) | typedef boost::shared_ptr<ORUtils::Image<Vector3f> > ORFloat3Image_Ptr;
  type boost (line 17) | typedef boost::shared_ptr<ORUtils::Image<Vector4f> > ORFloat4Image_Ptr;
  type boost (line 18) | typedef boost::shared_ptr<ORUtils::Image<int> > ORIntImage_Ptr;
  type boost (line 19) | typedef boost::shared_ptr<ORUtils::Image<Vector2i> > ORInt2Image_Ptr;
  type boost (line 20) | typedef boost::shared_ptr<ORUtils::Image<Vector3i> > ORInt3Image_Ptr;
  type boost (line 21) | typedef boost::shared_ptr<ORUtils::Image<Vector4i> > ORInt4Image_Ptr;
  type boost (line 22) | typedef boost::shared_ptr<ORUtils::Image<short> > ORShortImage_Ptr;
  type boost (line 23) | typedef boost::shared_ptr<ORUtils::Image<Vector2s> > ORShort2Image_Ptr;
  type boost (line 24) | typedef boost::shared_ptr<ORUtils::Image<Vector3s> > ORShort3Image_Ptr;
  type boost (line 25) | typedef boost::shared_ptr<ORUtils::Image<Vector4s> > ORShort4Image_Ptr;
  type boost (line 26) | typedef boost::shared_ptr<ORUtils::Image<uchar> > ORUCharImage_Ptr;
  type boost (line 27) | typedef boost::shared_ptr<ORUtils::Image<Vector4u> > ORUChar4Image_Ptr;
  type boost (line 28) | typedef boost::shared_ptr<ORUtils::Image<uint> > ORUIntImage_Ptr;
  type boost (line 29) | typedef boost::shared_ptr<ORUtils::Image<ushort> > ORUShortImage_Ptr;
  type boost (line 31) | typedef boost::shared_ptr<const ORUtils::Image<bool> > ORBoolImage_CPtr;
  type boost (line 32) | typedef boost::shared_ptr<const ORUtils::Image<float> > ORFloatImage_CPtr;
  type boost (line 33) | typedef boost::shared_ptr<const ORUtils::Image<Vector2f> > ORFloat2Image...
  type boost (line 34) | typedef boost::shared_ptr<const ORUtils::Image<Vector3f> > ORFloat3Image...
  type boost (line 35) | typedef boost::shared_ptr<const ORUtils::Image<Vector4f> > ORFloat4Image...
  type boost (line 36) | typedef boost::shared_ptr<const ORUtils::Image<int> > ORIntImage_CPtr;
  type boost (line 37) | typedef boost::shared_ptr<const ORUtils::Image<Vector2i> > ORInt2Image_C...
  type boost (line 38) | typedef boost::shared_ptr<const ORUtils::Image<Vector3i> > ORInt3Image_C...
  type boost (line 39) | typedef boost::shared_ptr<const ORUtils::Image<Vector4i> > ORInt4Image_C...
  type boost (line 40) | typedef boost::shared_ptr<const ORUtils::Image<short> > ORShortImage_CPtr;
  type boost (line 41) | typedef boost::shared_ptr<const ORUtils::Image<Vector2s> > ORShort2Image...
  type boost (line 42) | typedef boost::shared_ptr<const ORUtils::Image<Vector3s> > ORShort3Image...
  type boost (line 43) | typedef boost::shared_ptr<const ORUtils::Image<Vector4s> > ORShort4Image...
  type boost (line 44) | typedef boost::shared_ptr<const ORUtils::Image<uchar> > ORUCharImage_CPtr;
  type boost (line 45) | typedef boost::shared_ptr<const ORUtils::Image<Vector4u> > ORUChar4Image...
  type boost (line 46) | typedef boost::shared_ptr<const ORUtils::Image<uint> > ORUIntImage_CPtr;
  type boost (line 47) | typedef boost::shared_ptr<const ORUtils::Image<ushort> > ORUShortImage_C...

FILE: modules/orx/include/orx/base/ORMemoryBlockPtrTypes.h
  type boost (line 13) | typedef boost::shared_ptr<ORUtils::MemoryBlock<bool> > ORBoolMemoryBlock...
  type boost (line 14) | typedef boost::shared_ptr<ORUtils::MemoryBlock<float> > ORFloatMemoryBlo...
  type boost (line 15) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector2f> > ORFloat2Memor...
  type boost (line 16) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector3f> > ORFloat3Memor...
  type boost (line 17) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector4f> > ORFloat4Memor...
  type boost (line 18) | typedef boost::shared_ptr<ORUtils::MemoryBlock<int> > ORIntMemoryBlock_Ptr;
  type boost (line 19) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector2i> > ORInt2MemoryB...
  type boost (line 20) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector3i> > ORInt3MemoryB...
  type boost (line 21) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector4i> > ORInt4MemoryB...
  type boost (line 22) | typedef boost::shared_ptr<ORUtils::MemoryBlock<short> > ORShortMemoryBlo...
  type boost (line 23) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector2s> > ORShort2Memor...
  type boost (line 24) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector3s> > ORShort3Memor...
  type boost (line 25) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector4s> > ORShort4Memor...
  type boost (line 26) | typedef boost::shared_ptr<ORUtils::MemoryBlock<uchar> > ORUCharMemoryBlo...
  type boost (line 27) | typedef boost::shared_ptr<ORUtils::MemoryBlock<Vector4u> > ORUChar4Memor...
  type boost (line 28) | typedef boost::shared_ptr<ORUtils::MemoryBlock<uint> > ORUIntMemoryBlock...
  type boost (line 29) | typedef boost::shared_ptr<ORUtils::MemoryBlock<ushort> > ORUShortMemoryB...
  type boost (line 31) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<bool> > ORBoolMemor...
  type boost (line 32) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<float> > ORFloatMem...
  type boost (line 33) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector2f> > ORFloat...
  type boost (line 34) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector3f> > ORFloat...
  type boost (line 35) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector4f> > ORFloat...
  type boost (line 36) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<int> > ORIntMemoryB...
  type boost (line 37) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector2i> > ORInt2M...
  type boost (line 38) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector3i> > ORInt3M...
  type boost (line 39) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector4i> > ORInt4M...
  type boost (line 40) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<short> > ORShortMem...
  type boost (line 41) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector2s> > ORShort...
  type boost (line 42) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector3s> > ORShort...
  type boost (line 43) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector4s> > ORShort...
  type boost (line 44) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<uchar> > ORUCharMem...
  type boost (line 45) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<Vector4u> > ORUChar...
  type boost (line 46) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<uint> > ORUIntMemor...
  type boost (line 47) | typedef boost::shared_ptr<const ORUtils::MemoryBlock<ushort> > ORUShortM...

FILE: modules/orx/include/orx/geometry/DualNumber.h
  function namespace (line 13) | namespace orx {
  type DualNumber (line 240) | typedef DualNumber<double> DualNumberd;
  type DualNumber (line 241) | typedef DualNumber<float> DualNumberf;

FILE: modules/orx/include/orx/geometry/DualQuaternion.h
  function namespace (line 20) | namespace orx {
  type DualQuaternion (line 496) | typedef DualQuaternion<double> DualQuatd;
  type DualQuaternion (line 497) | typedef DualQuaternion<float> DualQuatf;

FILE: modules/orx/include/orx/geometry/GeometryUtil.h
  function namespace (line 20) | namespace orx {

FILE: modules/orx/include/orx/geometry/Screw.h
  type Screw (line 52) | typedef Screw<double> Screwd;
  type Screw (line 53) | typedef Screw<float> Screwf;

FILE: modules/orx/include/orx/persistence/ImagePersister.h
  function namespace (line 18) | namespace orx {

FILE: modules/orx/include/orx/persistence/PosePersister.h
  function namespace (line 15) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/BackgroundRelocaliser.h
  function namespace (line 14) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/CascadeRelocaliser.h
  function namespace (line 16) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/EnsembleRelocaliser.h
  function namespace (line 11) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/NullRelocaliser.h
  function namespace (line 11) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/RefiningRelocaliser.h
  function namespace (line 11) | namespace orx {

FILE: modules/orx/include/orx/relocalisation/Relocaliser.h
  function class (line 25) | class Relocaliser

FILE: modules/orx/src/base/MemoryBlockFactory.cpp
  type orx (line 9) | namespace orx {
    function MemoryBlockFactory (line 17) | MemoryBlockFactory& MemoryBlockFactory::instance()

FILE: modules/orx/src/geometry/GeometryUtil.cpp
  type orx (line 13) | namespace orx {

FILE: modules/orx/src/persistence/ImagePersister.cpp
  type orx (line 16) | namespace orx {
    function ORUChar4Image_Ptr (line 20) | ORUChar4Image_Ptr ImagePersister::load_rgba_image(const std::string& p...
    function ORUChar4Image_Ptr (line 98) | ORUChar4Image_Ptr ImagePersister::decode_rgba_png(const std::vector<un...

FILE: modules/orx/src/persistence/PosePersister.cpp
  type orx (line 16) | namespace orx {

FILE: modules/orx/src/relocalisation/BackgroundRelocaliser.cpp
  type orx (line 10) | namespace orx {
    function ORUChar4Image_CPtr (line 32) | ORUChar4Image_CPtr BackgroundRelocaliser::get_visualisation_image(cons...

FILE: modules/orx/src/relocalisation/CascadeRelocaliser.cpp
  type orx (line 20) | namespace orx {
    function ORUChar4Image_CPtr (line 113) | ORUChar4Image_CPtr CascadeRelocaliser::get_visualisation_image(const s...

FILE: modules/orx/src/relocalisation/EnsembleRelocaliser.cpp
  type orx (line 8) | namespace orx {
    function ORUChar4Image_CPtr (line 32) | ORUChar4Image_CPtr EnsembleRelocaliser::get_visualisation_image(const ...

FILE: modules/orx/src/relocalisation/NullRelocaliser.cpp
  type orx (line 8) | namespace orx {

FILE: modules/orx/src/relocalisation/RefiningRelocaliser.cpp
  type orx (line 8) | namespace orx {
    function Relocaliser_Ptr (line 18) | const Relocaliser_Ptr& RefiningRelocaliser::get_inner_relocaliser()
    function Relocaliser_CPtr (line 23) | Relocaliser_CPtr RefiningRelocaliser::get_inner_relocaliser() const

FILE: modules/orx/src/relocalisation/Relocaliser.cpp
  type orx (line 8) | namespace orx {
    function ORUChar4Image_CPtr (line 27) | ORUChar4Image_CPtr Relocaliser::get_visualisation_image(const std::str...

FILE: modules/rafl/include/rafl/base/Descriptor.h
  function namespace (line 13) | namespace rafl {

FILE: modules/rafl/include/rafl/choppers/CyclicTreeChopper.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/choppers/HeightLimitingTreeChopper.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/choppers/RandomTreeChopper.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/choppers/TimeBasedTreeChopper.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/choppers/TreeChopper.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/core/DecisionTree.h
  function namespace (line 17) | namespace rafl {
  type boost (line 264) | typedef boost::shared_ptr<Node> Node_Ptr;
  type tvgutil (line 265) | typedef tvgutil::PriorityQueue<int,float,signed char,std::greater<float>...
  function add_examples (line 344) | void add_examples(const std::vector<Example_CPtr>& examples, const std::...
  function calculate_average_leaf_entropy (line 368) | float calculate_average_leaf_entropy() const
  function output (line 442) | void output(std::ostream& os) const
  function Label (line 453) | Label predict(const Descriptor_CPtr& descriptor) const
  function train (line 466) | size_t train(size_t splitBudget)
  function add_node (line 525) | int add_node(size_t depth)
  function fill_reservoir (line 544) | void fill_reservoir(const std::vector<Example_CPtr>& inputExamples, cons...
  function find_leaf (line 584) | int find_leaf(const Descriptor& descriptor) const
  function is_leaf (line 600) | bool is_leaf(int nodeIndex) const
  function output_subtree (line 623) | void output_subtree(std::ostream& os, int subtreeRootIndex, const std::s...
  function split_node (line 664) | bool split_node(int nodeIndex)
  function update_dirty_nodes (line 700) | void update_dirty_nodes()
  function update_splittability (line 716) | void update_splittability(int nodeIndex)
  function update_inverse_class_weights (line 737) | void update_inverse_class_weights()

FILE: modules/rafl/include/rafl/core/RandomForest.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/CompositeDecisionFunctionGenerator.h
  function namespace (line 11) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/DecisionFunction.h
  function namespace (line 26) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/DecisionFunctionGenerator.h
  function namespace (line 19) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/DecisionFunctionGeneratorFactory.h
  function namespace (line 14) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/FeatureBasedDecisionFunctionGenerator.h
  function namespace (line 17) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/FeatureThresholdingDecisionFunction.h
  function namespace (line 13) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/FeatureThresholdingDecisionFunctionGenerator.h
  function namespace (line 16) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/PairwiseOpAndThresholdDecisionFunction.h
  function namespace (line 13) | namespace rafl {

FILE: modules/rafl/include/rafl/decisionfunctions/PairwiseOpAndThresholdDecisionFunctionGenerator.h
  function namespace (line 16) | namespace rafl {

FILE: modules/rafl/include/rafl/examples/Example.h
  function namespace (line 17) | namespace rafl {

FILE: modules/rafl/include/rafl/examples/ExampleReservoir.h
  function namespace (line 21) | namespace rafl {

FILE: modules/rafl/include/rafl/examples/ExampleUtil.h
  function namespace (line 16) | namespace rafl {

FILE: modules/rafl/include/rafl/examples/UnitCircleExampleGenerator.h
  function namespace (line 17) | namespace rafl {

FILE: modules/rafl/src/decisionfunctions/FeatureThresholdingDecisionFunction.cpp
  type rafl (line 10) | namespace rafl {

FILE: modules/rafl/src/decisionfunctions/PairwiseOpAndThresholdDecisionFunction.cpp
  type rafl (line 10) | namespace rafl {

FILE: modules/raflevaluation/include/raflevaluation/RandomForestEvaluator.h
  function namespace (line 20) | namespace raflevaluation {

FILE: modules/rigging/include/rigging/Camera.h
  function namespace (line 13) | namespace rigging {

FILE: modules/rigging/include/rigging/CompositeCamera.h
  function namespace (line 14) | namespace rigging {

FILE: modules/rigging/include/rigging/DerivedCamera.h
  function namespace (line 11) | namespace rigging {

FILE: modules/rigging/include/rigging/MoveableCamera.h
  function namespace (line 11) | namespace rigging {

FILE: modules/rigging/include/rigging/SimpleCamera.h
  function namespace (line 11) | namespace rigging {

FILE: modules/rigging/src/CompositeCamera.cpp
  type rigging (line 10) | namespace rigging {
    function Camera_CPtr (line 26) | const Camera_CPtr& CompositeCamera::get_secondary_camera(const std::st...
    function CompositeCamera (line 33) | CompositeCamera& CompositeCamera::move(const Eigen::Vector3f& dir, flo...
    function CompositeCamera (line 39) | CompositeCamera& CompositeCamera::move_n(float delta)
    function CompositeCamera (line 45) | CompositeCamera& CompositeCamera::move_u(float delta)
    function CompositeCamera (line 51) | CompositeCamera& CompositeCamera::move_v(float delta)
    function CompositeCamera (line 74) | CompositeCamera& CompositeCamera::rotate(const Eigen::Vector3f& axis, ...
    function CompositeCamera (line 80) | CompositeCamera& CompositeCamera::set_from(const Camera& rhs)

FILE: modules/rigging/src/DerivedCamera.cpp
  type rigging (line 8) | namespace rigging {

FILE: modules/rigging/src/SimpleCamera.cpp
  type rigging (line 8) | namespace rigging {
    function SimpleCamera (line 29) | SimpleCamera& SimpleCamera::move(const Eigen::Vector3f& dir, float delta)
    function SimpleCamera (line 35) | SimpleCamera& SimpleCamera::move_n(float delta)
    function SimpleCamera (line 41) | SimpleCamera& SimpleCamera::move_u(float delta)
    function SimpleCamera (line 47) | SimpleCamera& SimpleCamera::move_v(float delta)
    function SimpleCamera (line 63) | SimpleCamera& SimpleCamera::rotate(const Eigen::Vector3f& axis, float ...
    function SimpleCamera (line 72) | SimpleCamera& SimpleCamera::set_from(const Camera& rhs)

FILE: modules/spaint/include/spaint/collaboration/CollaborationMode.h
  function namespace (line 9) | namespace spaint {

FILE: modules/spaint/include/spaint/collaboration/CollaborativePoseOptimiser.h
  function namespace (line 19) | namespace spaint {

FILE: modules/spaint/include/spaint/collaboration/CollaborativeRelocalisation.h
  type CollaborativeRelocalisation (line 28) | struct CollaborativeRelocalisation

FILE: modules/spaint/include/spaint/features/FeatureCalculatorFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/features/cpu/VOPFeatureCalculator_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/features/cuda/VOPFeatureCalculator_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/features/interface/FeatureCalculator.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/features/interface/VOPFeatureCalculator.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/features/shared/VOPFeatureCalculator_Shared.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/ArUcoFiducialDetector.h
  function namespace (line 20) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/AveragingFiducial.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/Fiducial.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/FiducialDetector.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/FiducialMeasurement.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/FiducialPoseEstimator.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/SimpleFiducial.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/fiducials/ViconFiducialDetector.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/ImageProcessorFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/MedianFilterer.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/cpu/ImageProcessor_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/cuda/ImageProcessor_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/interface/ImageProcessor.h
  function namespace (line 25) | namespace spaint {

FILE: modules/spaint/include/spaint/imageprocessing/shared/ImageProcessor_Shared.h
  function namespace (line 9) | namespace spaint {

FILE: modules/spaint/include/spaint/markers/VoxelMarkerFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/markers/cpu/VoxelMarker_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/markers/cuda/VoxelMarker_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/markers/interface/VoxelMarker.h
  function namespace (line 12) | namespace spaint {

FILE: modules/spaint/include/spaint/markers/shared/VoxelMarker_Settings.h
  type ClearingMode (line 16) | enum ClearingMode
  type ClearingSettings (line 34) | struct ClearingSettings

FILE: modules/spaint/include/spaint/markers/shared/VoxelMarker_Shared.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/ogl/CameraRenderer.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/CollaborativeComponent.h
  function class (line 27) | class CollaborativeComponent

FILE: modules/spaint/include/spaint/pipelinecomponents/ObjectSegmentationComponent.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/PropagationComponent.h
  function namespace (line 12) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/PropagationContext.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/SLAMComponent.h
  function namespace (line 17) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/SLAMContext.h
  type boost (line 36) | typedef boost::shared_ptr<const ITMLib::ITMVisualisationEngine<SpaintVox...

FILE: modules/spaint/include/spaint/pipelinecomponents/SemanticSegmentationComponent.h
  function namespace (line 16) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/SemanticSegmentationContext.h
  function class (line 19) | class SemanticSegmentationContext

FILE: modules/spaint/include/spaint/pipelinecomponents/SmoothingComponent.h
  function namespace (line 12) | namespace spaint {

FILE: modules/spaint/include/spaint/pipelinecomponents/SmoothingContext.h
  function namespace (line 12) | namespace spaint {

FILE: modules/spaint/include/spaint/propagation/LabelPropagatorFactory.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/propagation/cpu/LabelPropagator_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/propagation/cuda/LabelPropagator_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/propagation/interface/LabelPropagator.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/propagation/shared/LabelPropagator_Shared.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/randomforest/ForestUtil.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/randomforest/SpaintDecisionFunctionGenerator.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/relocalisation/RelocaliserFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/VoxelSamplerFactory.h
  function namespace (line 14) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/cpu/PerLabelVoxelSampler_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/cpu/UniformVoxelSampler_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/cuda/PerLabelVoxelSampler_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/cuda/UniformVoxelSampler_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/interface/PerLabelVoxelSampler.h
  function namespace (line 13) | namespace tvgutil {
  function namespace (line 21) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/interface/UniformVoxelSampler.h
  function namespace (line 13) | namespace tvgutil {
  function namespace (line 21) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/shared/PerLabelVoxelSampler_Shared.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/sampling/shared/UniformVoxelSampler_Shared.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/segmentation/BackgroundSubtractingObjectSegmenter.h
  function namespace (line 17) | namespace spaint {

FILE: modules/spaint/include/spaint/segmentation/ColourAppearanceModel.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/segmentation/SegmentationUtil.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/segmentation/Segmenter.h
  function namespace (line 16) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/SelectionTransformerFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/cpu/VoxelToCubeSelectionTransformer_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/cuda/VoxelToCubeSelectionTransformer_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/interface/SelectionTransformer.h
  function namespace (line 19) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/interface/SelectionTransformerVisitor.h
  function namespace (line 9) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/interface/VoxelToCubeSelectionTransformer.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/selectiontransformers/shared/VoxelToCubeSelectionTransformer_Shared.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/LeapSelector.h
  function namespace (line 25) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/NullSelector.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/PickingSelector.h
  function namespace (line 17) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/Selector.h
  function namespace (line 14) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/SelectorVisitor.h
  function namespace (line 9) | namespace spaint {

FILE: modules/spaint/include/spaint/selectors/TouchSelector.h
  function namespace (line 16) | namespace spaint {

FILE: modules/spaint/include/spaint/slamstate/SLAMState.h
  type InputStatus (line 31) | enum InputStatus

FILE: modules/spaint/include/spaint/smoothing/LabelSmootherFactory.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/smoothing/cpu/LabelSmoother_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/smoothing/cuda/LabelSmoother_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/smoothing/interface/LabelSmoother.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/smoothing/shared/LabelSmoother_Shared.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/touch/TouchDescriptorCalculator.h
  function namespace (line 22) | namespace spaint {

FILE: modules/spaint/include/spaint/touch/TouchDetector.h
  type Label (line 43) | typedef int Label;
  type rafl (line 44) | typedef rafl::RandomForest<Label> RF;
  type boost (line 45) | typedef boost::shared_ptr<RF> RF_Ptr;

FILE: modules/spaint/include/spaint/touch/TouchSettings.h
  function class (line 17) | class TouchSettings

FILE: modules/spaint/include/spaint/util/CameraFactory.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/util/SpaintSurfel.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/util/SpaintSurfelScene.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/util/SpaintVoxel.h
  function namespace (line 11) | namespace spaint {
  type VoxelColourReader (line 140) | struct VoxelColourReader
  function Vector3u (line 144) | static Vector3u read(const TVoxel& voxel)
  type VoxelColourReader (line 154) | struct VoxelColourReader
  function Vector3u (line 158) | static Vector3u read(const TVoxel& voxel)

FILE: modules/spaint/include/spaint/util/SpaintVoxelScene.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/SemanticVisualiserFactory.h
  function namespace (line 13) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/VisualisationGenerator.h
  function namespace (line 27) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/cpu/SemanticVisualiser_CPU.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/cuda/SemanticVisualiser_CUDA.h
  function namespace (line 11) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/interface/SemanticVisualiser.h
  function namespace (line 19) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/shared/SemanticVisualiser_Settings.h
  function namespace (line 9) | namespace spaint {

FILE: modules/spaint/include/spaint/visualisation/shared/SemanticVisualiser_Shared.h
  function namespace (line 15) | namespace spaint {

FILE: modules/spaint/src/collaboration/CollaborativePoseOptimiser.cpp
  type spaint (line 39) | namespace spaint {

FILE: modules/spaint/src/features/FeatureCalculatorFactory.cpp
  type spaint (line 16) | namespace spaint {
    function FeatureCalculator_CPtr (line 20) | FeatureCalculator_CPtr FeatureCalculatorFactory::make_vop_feature_calc...

FILE: modules/spaint/src/features/cpu/VOPFeatureCalculator_CPU.cpp
  type spaint (line 14) | namespace spaint {

FILE: modules/spaint/src/features/interface/VOPFeatureCalculator.cpp
  type spaint (line 18) | namespace spaint {

FILE: modules/spaint/src/fiducials/ArUcoFiducialDetector.cpp
  type spaint (line 29) | namespace spaint {

FILE: modules/spaint/src/fiducials/AveragingFiducial.cpp
  type spaint (line 11) | namespace spaint {

FILE: modules/spaint/src/fiducials/Fiducial.cpp
  type spaint (line 13) | namespace spaint {

FILE: modules/spaint/src/fiducials/FiducialDetector.cpp
  type spaint (line 12) | namespace spaint {
    function FiducialMeasurement (line 16) | FiducialMeasurement
    function FiducialMeasurement (line 26) | FiducialMeasurement

FILE: modules/spaint/src/fiducials/FiducialMeasurement.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/fiducials/FiducialPoseEstimator.cpp
  type spaint (line 11) | namespace spaint {

FILE: modules/spaint/src/fiducials/SimpleFiducial.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/fiducials/ViconFiducialDetector.cpp
  type spaint (line 16) | namespace spaint {

FILE: modules/spaint/src/imageprocessing/ImageProcessorFactory.cpp
  type spaint (line 15) | namespace spaint {
    function ImageProcessor_CPtr (line 19) | ImageProcessor_CPtr ImageProcessorFactory::make_image_processor(Device...

FILE: modules/spaint/src/imageprocessing/MedianFilterer.cpp
  type spaint (line 11) | namespace spaint {

FILE: modules/spaint/src/imageprocessing/cpu/ImageProcessor_CPU.cpp
  type spaint (line 10) | namespace spaint {
    function copy_af_to_itm_cpu (line 21) | static void copy_af_to_itm_cpu(const boost::shared_ptr<const af::array...
    function copy_itm_to_af_cpu (line 48) | static void copy_itm_to_af_cpu(const boost::shared_ptr<const ORUtils::...

FILE: modules/spaint/src/imageprocessing/interface/ImageProcessor.cpp
  type spaint (line 8) | namespace spaint {
    function Vector2i (line 16) | Vector2i ImageProcessor::image_size(const AFArray_CPtr& img)

FILE: modules/spaint/src/markers/VoxelMarkerFactory.cpp
  type spaint (line 16) | namespace spaint {
    function VoxelMarker_CPtr (line 20) | VoxelMarker_CPtr VoxelMarkerFactory::make_voxel_marker(DeviceType devi...

FILE: modules/spaint/src/markers/cpu/VoxelMarker_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/ogl/CameraRenderer.cpp
  type spaint (line 14) | namespace spaint {

FILE: modules/spaint/src/pipelinecomponents/CollaborativeComponent.cpp
  type spaint (line 26) | namespace spaint {

FILE: modules/spaint/src/pipelinecomponents/CollaborativeContext.cpp
  type spaint (line 8) | namespace spaint {
    function CollaborativePoseOptimiser_Ptr (line 18) | const CollaborativePoseOptimiser_Ptr& CollaborativeContext::get_collab...
    function CollaborativePoseOptimiser_CPtr (line 23) | CollaborativePoseOptimiser_CPtr CollaborativeContext::get_collaborativ...

FILE: modules/spaint/src/pipelinecomponents/ObjectSegmentationComponent.cpp
  type spaint (line 24) | namespace spaint {
    function Segmenter_Ptr (line 109) | const Segmenter_Ptr& ObjectSegmentationComponent::get_segmenter() const

FILE: modules/spaint/src/pipelinecomponents/ObjectSegmentationContext.cpp
  type spaint (line 11) | namespace spaint {
    function ORUChar4Image_CPtr (line 19) | ORUChar4Image_CPtr ObjectSegmentationContext::get_segmentation_image(c...
    function Segmenter_Ptr (line 29) | const Segmenter_Ptr& ObjectSegmentationContext::get_segmenter() const

FILE: modules/spaint/src/pipelinecomponents/PropagationComponent.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/pipelinecomponents/SLAMComponent.cpp
  type spaint (line 42) | namespace spaint {
    function Relocaliser_Ptr (line 587) | Relocaliser_Ptr SLAMComponent::refine_with_icp(const Relocaliser_Ptr& ...

FILE: modules/spaint/src/pipelinecomponents/SLAMContext.cpp
  type spaint (line 13) | namespace spaint {
    function FiducialDetector_CPtr (line 22) | FiducialDetector_CPtr SLAMContext::get_fiducial_detector(const std::st...
    function MappingClient_Ptr (line 27) | MappingClient_Ptr& SLAMContext::get_mapping_client(const std::string& ...
    function MappingClient_CPtr (line 32) | MappingClient_CPtr SLAMContext::get_mapping_client(const std::string& ...
    function Relocaliser_Ptr (line 37) | Relocaliser_Ptr& SLAMContext::get_relocaliser(const std::string& sceneID)
    function Relocaliser_CPtr (line 42) | Relocaliser_CPtr SLAMContext::get_relocaliser(const std::string& scene...
    function SLAMState_Ptr (line 52) | const SLAMState_Ptr& SLAMContext::get_slam_state(const std::string& sc...
    function SLAMState_CPtr (line 59) | SLAMState_CPtr SLAMContext::get_slam_state(const std::string& sceneID)...

FILE: modules/spaint/src/pipelinecomponents/SemanticSegmentationComponent.cpp
  type spaint (line 26) | namespace spaint {

FILE: modules/spaint/src/pipelinecomponents/SmoothingComponent.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/propagation/LabelPropagatorFactory.cpp
  type spaint (line 16) | namespace spaint {
    function LabelPropagator_CPtr (line 20) | LabelPropagator_CPtr LabelPropagatorFactory::make_label_propagator(siz...

FILE: modules/spaint/src/propagation/cpu/LabelPropagator_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/propagation/interface/LabelPropagator.cpp
  type spaint (line 11) | namespace spaint {

FILE: modules/spaint/src/randomforest/ForestUtil.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/randomforest/SpaintDecisionFunctionGenerator.cpp
  type spaint (line 14) | namespace spaint {

FILE: modules/spaint/src/relocalisation/RelocaliserFactory.cpp
  type spaint (line 22) | namespace spaint {
    function Relocaliser_Ptr (line 26) | Relocaliser_Ptr RelocaliserFactory::make_relocaliser(std::string reloc...
    function Relocaliser_Ptr (line 117) | Relocaliser_Ptr RelocaliserFactory::make_simple_relocaliser(const std:...

FILE: modules/spaint/src/sampling/VoxelSamplerFactory.cpp
  type spaint (line 18) | namespace spaint {
    function PerLabelVoxelSampler_CPtr (line 22) | PerLabelVoxelSampler_CPtr VoxelSamplerFactory::make_per_label_sampler(...
    function UniformVoxelSampler_CPtr (line 44) | UniformVoxelSampler_CPtr VoxelSamplerFactory::make_uniform_sampler(int...

FILE: modules/spaint/src/sampling/cpu/PerLabelVoxelSampler_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/sampling/cpu/UniformVoxelSampler_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/sampling/interface/PerLabelVoxelSampler.cpp
  type spaint (line 13) | namespace spaint {

FILE: modules/spaint/src/sampling/interface/UniformVoxelSampler.cpp
  type spaint (line 13) | namespace spaint {

FILE: modules/spaint/src/segmentation/BackgroundSubtractingObjectSegmenter.cpp
  type spaint (line 18) | namespace spaint {
    function ORUCharImage_CPtr (line 33) | ORUCharImage_CPtr BackgroundSubtractingObjectSegmenter::segment(const ...
    function ORUChar4Image_CPtr (line 128) | ORUChar4Image_CPtr BackgroundSubtractingObjectSegmenter::train(const O...
    function ORUCharImage_CPtr (line 148) | ORUCharImage_CPtr BackgroundSubtractingObjectSegmenter::make_change_ma...
    function ORUCharImage_CPtr (line 456) | ORUCharImage_CPtr BackgroundSubtractingObjectSegmenter::make_hand_mask...

FILE: modules/spaint/src/segmentation/ColourAppearanceModel.cpp
  type spaint (line 14) | namespace spaint {

FILE: modules/spaint/src/segmentation/SegmentationUtil.cpp
  type spaint (line 8) | namespace spaint {
    function ORUCharImage_Ptr (line 12) | ORUCharImage_Ptr SegmentationUtil::invert_mask(const ORUCharImage_CPtr...

FILE: modules/spaint/src/segmentation/Segmenter.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/selectiontransformers/SelectionTransformerFactory.cpp
  type spaint (line 16) | namespace spaint {
    function SelectionTransformer_Ptr (line 20) | SelectionTransformer_Ptr SelectionTransformerFactory::make_voxel_to_cu...

FILE: modules/spaint/src/selectiontransformers/cpu/VoxelToCubeSelectionTransformer_CPU.cpp
  type spaint (line 12) | namespace spaint {

FILE: modules/spaint/src/selectiontransformers/interface/SelectionTransformer.cpp
  type spaint (line 9) | namespace spaint {

FILE: modules/spaint/src/selectiontransformers/interface/SelectionTransformerVisitor.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/selectiontransformers/interface/VoxelToCubeSelectionTransformer.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/selectors/LeapSelector.cpp
  type spaint (line 27) | namespace spaint {
    function Camera (line 67) | const Camera& LeapSelector::get_camera() const

FILE: modules/spaint/src/selectors/NullSelector.cpp
  type spaint (line 9) | namespace spaint {

FILE: modules/spaint/src/selectors/PickingSelector.cpp
  type spaint (line 15) | namespace spaint {

FILE: modules/spaint/src/selectors/SelectorVisitor.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/selectors/TouchSelector.cpp
  type spaint (line 29) | namespace spaint {
    function ORUChar4Image_CPtr (line 66) | ORUChar4Image_CPtr TouchSelector::generate_touch_image(const View_CPtr...

FILE: modules/spaint/src/slamstate/SLAMState.cpp
  type spaint (line 12) | namespace spaint {
    function Vector2i (line 22) | const Vector2i& SLAMState::get_depth_image_size() const
    function ORUCharImage_CPtr (line 32) | ORUCharImage_CPtr SLAMState::get_input_mask() const
    function ORShortImage_Ptr (line 37) | const ORShortImage_Ptr& SLAMState::get_input_raw_depth_image()
    function ORShortImage_Ptr (line 42) | ORShortImage_Ptr SLAMState::get_input_raw_depth_image_copy() const
    function ORUChar4Image_Ptr (line 49) | const ORUChar4Image_Ptr& SLAMState::get_input_rgb_image()
    function ORUChar4Image_Ptr (line 54) | ORUChar4Image_Ptr SLAMState::get_input_rgb_image_copy() const
    function ITMIntrinsics (line 66) | const ITMIntrinsics& SLAMState::get_intrinsics() const
    function SurfelRenderState_Ptr (line 71) | const SurfelRenderState_Ptr& SLAMState::get_live_surfel_render_state()
    function VoxelRenderState_Ptr (line 76) | const VoxelRenderState_Ptr& SLAMState::get_live_voxel_render_state()
    function SE3Pose (line 81) | const SE3Pose& SLAMState::get_pose() const
    function Vector2i (line 86) | const Vector2i& SLAMState::get_rgb_image_size() const
    function SpaintSurfelScene_Ptr (line 91) | const SpaintSurfelScene_Ptr& SLAMState::get_surfel_scene()
    function SpaintSurfelScene_CPtr (line 96) | SpaintSurfelScene_CPtr SLAMState::get_surfel_scene() const
    function TrackingState_Ptr (line 101) | const TrackingState_Ptr& SLAMState::get_tracking_state()
    function TrackingState_CPtr (line 106) | TrackingState_CPtr SLAMState::get_tracking_state() const
    function View_Ptr (line 111) | const View_Ptr& SLAMState::get_view()
    function View_CPtr (line 116) | View_CPtr SLAMState::get_view() const
    function SpaintVoxelScene_Ptr (line 121) | const SpaintVoxelScene_Ptr& SLAMState::get_voxel_scene()
    function SpaintVoxelScene_CPtr (line 126) | SpaintVoxelScene_CPtr SLAMState::get_voxel_scene() const

FILE: modules/spaint/src/smoothing/LabelSmootherFactory.cpp
  type spaint (line 16) | namespace spaint {
    function LabelSmoother_CPtr (line 20) | LabelSmoother_CPtr LabelSmootherFactory::make_label_smoother(size_t ma...

FILE: modules/spaint/src/smoothing/cpu/LabelSmoother_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/smoothing/interface/LabelSmoother.cpp
  type spaint (line 8) | namespace spaint {

FILE: modules/spaint/src/touch/TouchDescriptorCalculator.cpp
  type spaint (line 8) | namespace spaint {
    function Descriptor_CPtr (line 12) | Descriptor_CPtr TouchDescriptorCalculator::calculate_histogram_descrip...

FILE: modules/spaint/src/touch/TouchDetector.cpp
  type spaint (line 41) | namespace spaint {
    function ORUChar4Image_CPtr (line 155) | ORUChar4Image_CPtr TouchDetector::generate_touch_image(const View_CPtr...
    function ORFloatImage_CPtr (line 221) | ORFloatImage_CPtr TouchDetector::get_depth_raycast() const
    function ORFloatImage_CPtr (line 226) | ORFloatImage_CPtr TouchDetector::get_diff_raw_raycast() const
    function ORUCharImage_CPtr (line 232) | ORUCharImage_CPtr TouchDetector::get_touch_mask() const
    function ORFloatImage_CPtr (line 238) | ORFloatImage_CPtr TouchDetector::get_thresholded_raw_depth() const

FILE: modules/spaint/src/touch/TouchSettings.cpp
  type spaint (line 13) | namespace spaint {

FILE: modules/spaint/src/util/LabelManager.cpp
  type spaint (line 50) | namespace spaint {
    function Vector3u (line 81) | Vector3u LabelManager::get_label_colour(SpaintVoxel::Label label) const

FILE: modules/spaint/src/visualisation/SemanticVisualiserFactory.cpp
  type spaint (line 16) | namespace spaint {
    function SemanticVisualiser_CPtr (line 20) | SemanticVisualiser_CPtr SemanticVisualiserFactory::make_semantic_visua...

FILE: modules/spaint/src/visualisation/VisualisationGenerator.cpp
  type spaint (line 22) | namespace spaint {

FILE: modules/spaint/src/visualisation/cpu/SemanticVisualiser_CPU.cpp
  type spaint (line 10) | namespace spaint {

FILE: modules/spaint/src/visualisation/interface/SemanticVisualiser.cpp
  type spaint (line 11) | namespace spaint {

FILE: modules/tvginput/include/tvginput/InputState.h
  function namespace (line 17) | namespace tvginput {

FILE: modules/tvginput/include/tvginput/JoystickAxis.h
  function namespace (line 9) | namespace tvginput {

FILE: modules/tvginput/include/tvginput/JoystickButton.h
  function namespace (line 9) | namespace tvginput {

FILE: modules/tvginput/include/tvginput/Keycode.h
  function namespace (line 36) | namespace tvginput {

FILE: modules/tvginput/include/tvginput/MouseButton.h
  function namespace (line 9) | namespace tvginput {

FILE: modules/tvginput/src/InputState.cpp
  type tvginput (line 11) | namespace tvginput {

FILE: modules/tvgplot/include/tvgplot/PaletteGenerator.h
  function namespace (line 18) | namespace tvgplot {

FILE: modules/tvgplot/include/tvgplot/PlotWindow.h
  function namespace (line 16) | namespace tvgplot {

FILE: modules/tvgplot/src/PaletteGenerator.cpp
  type tvgplot (line 8) | namespace tvgplot {

FILE: modules/tvgplot/src/PlotWindow.cpp
  type tvgplot (line 15) | namespace tvgplot {

FILE: modules/tvgutil/include/tvgutil/commands/Command.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/commands/CommandManager.h
  function namespace (line 15) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/commands/NoOpCommand.h
  function namespace (line 11) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/commands/SeqCommand.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/containers/LimitedContainer.h
  function namespace (line 14) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/containers/MapUtil.h
  function namespace (line 17) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/containers/PooledQueue.h
  function namespace (line 21) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/containers/PriorityQueue.h
  function namespace (line 15) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/filesystem/FilesystemUtil.h
  function namespace (line 12) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/filesystem/PathFinder.h
  function namespace (line 11) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/filesystem/SequentialPathGenerator.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/misc/ArgUtil.h
  function namespace (line 14) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/misc/ConversionUtil.h
  function namespace (line 12) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/misc/ExclusiveHandle.h
  function namespace (line 11) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/misc/IDAllocator.h
  function namespace (line 12) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/misc/SettingsContainer.h
  function namespace (line 17) | namespace tvgutil {
  type boost (line 133) | typedef boost::shared_ptr<SettingsContainer> SettingsContainer_Ptr;
  type boost (line 134) | typedef boost::shared_ptr<const SettingsContainer> SettingsContainer_CPtr;

FILE: modules/tvgutil/include/tvgutil/misc/ThreadPool.h
  function namespace (line 16) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/net/AckMessage.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/net/ClientHandler.h
  function namespace (line 15) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/net/Message.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/net/Server.h
  function namespace (line 20) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/net/SimpleMessage.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/numbers/NumberSequenceGenerator.h
  function namespace (line 12) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/numbers/RandomNumberGenerator.h
  function namespace (line 15) | namespace tvgutil {
  type boost (line 127) | typedef boost::shared_ptr<RandomNumberGenerator> RandomNumberGenerator_Ptr;
  type boost (line 128) | typedef boost::shared_ptr<const RandomNumberGenerator> RandomNumberGener...

FILE: modules/tvgutil/include/tvgutil/persistence/LineUtil.h
  function namespace (line 13) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/persistence/PropertyUtil.h
  function namespace (line 15) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/persistence/SerializationUtil.h
  function namespace (line 29) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/statistics/Histogram.h
  function namespace (line 16) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/statistics/ProbabilityMassFunction.h
  function namespace (line 18) | namespace tvgutil {
  function ensure_invariant (line 158) | void ensure_invariant()
  function normalise (line 171) | void normalise()

FILE: modules/tvgutil/include/tvgutil/timing/AverageTimer.h
  function namespace (line 19) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/timing/TimeUtil.h
  function namespace (line 12) | namespace tvgutil {

FILE: modules/tvgutil/include/tvgutil/timing/Timer.h
  function namespace (line 18) | namespace tvgutil {

FILE: modules/tvgutil/src/commands/Command.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/commands/CommandManager.cpp
  type tvgutil (line 12) | namespace tvgutil {

FILE: modules/tvgutil/src/commands/NoOpCommand.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/commands/SeqCommand.cpp
  type tvgutil (line 10) | namespace tvgutil {

FILE: modules/tvgutil/src/filesystem/FilesystemUtil.cpp
  type tvgutil (line 12) | namespace tvgutil {

FILE: modules/tvgutil/src/filesystem/PathFinder.cpp
  type tvgutil (line 19) | namespace tvgutil {
    function find_executable (line 21) | boost::filesystem::path find_executable()
    function find_subdir_from_executable (line 59) | boost::filesystem::path find_subdir_from_executable(const std::string&...

FILE: modules/tvgutil/src/filesystem/SequentialPathGenerator.cpp
  type tvgutil (line 10) | namespace tvgutil {

FILE: modules/tvgutil/src/misc/IDAllocator.cpp
  type tvgutil (line 11) | namespace tvgutil {

FILE: modules/tvgutil/src/misc/SettingsContainer.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/misc/ThreadPool.cpp
  type tvgutil (line 10) | namespace tvgutil {
    function ThreadPool (line 39) | ThreadPool& ThreadPool::instance()

FILE: modules/tvgutil/src/net/AckMessage.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/net/ClientHandler.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/net/Message.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/numbers/RandomNumberGenerator.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: modules/tvgutil/src/persistence/LineUtil.cpp
  type tvgutil (line 13) | namespace tvgutil {

FILE: modules/tvgutil/src/persistence/PropertyUtil.cpp
  type tvgutil (line 8) | namespace tvgutil {

FILE: tests/scratch/alglib/main.cpp
  function main (line 5) | int main()

FILE: tests/scratch/arrayfire/main.cpp
  function main (line 3) | int main(int argc, char** argv)

FILE: tests/scratch/boost/main.cpp
  function main (line 6) | int main()

FILE: tests/scratch/cuda/main.cpp
  function test_simple (line 11) | void test_simple()
  function test_copy_1d_texture (line 47) | void test_copy_1d_texture()
  function test_copy_2d_texture (line 107) | void test_copy_2d_texture()
  function main (line 170) | int main(int argc, char **argv)

FILE: tests/scratch/eigen/main.cpp
  function main (line 5) | int main()

FILE: tests/scratch/infermous/main.cpp
  type PPC (line 11) | struct PPC : PairwisePotentialCalculator<Label>
    method calculate_potential (line 13) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 70) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 129) | float calculate_potential(const Label& l1, const Label& l2) const
  function main (line 19) | int main()
  type Label (line 62) | enum Label
  type PPC (line 68) | struct PPC : PairwisePotentialCalculator<Label>
    method calculate_potential (line 13) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 70) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 129) | float calculate_potential(const Label& l1, const Label& l2) const
  function main (line 76) | int main()
  type Label (line 121) | enum Label
  type PPC (line 127) | struct PPC : PairwisePotentialCalculator<Label>
    method calculate_potential (line 13) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 70) | float calculate_potential(const Label& l1, const Label& l2) const
    method calculate_potential (line 129) | float calculate_potential(const Label& l1, const Label& l2) const
  function main (line 135) | int main()

FILE: tests/scratch/infinitam/main.cpp
  function main (line 3) | int main()

FILE: tests/scratch/leap/main.cpp
  class Listener (line 5) | class Listener : public Leap::Listener
    method onConnect (line 9) | virtual void onConnect(const Leap::Controller& controller)
    method onFrame (line 15) | virtual void onFrame(const Leap::Controller& controller)
  function main (line 36) | int main()

FILE: tests/scratch/lodepng/main.cpp
  function main (line 6) | int main()

FILE: tests/scratch/opencv/main.cpp
  function main (line 4) | int main()

FILE: tests/scratch/ovr/main.cpp
  function quit (line 12) | void quit(ovrHmd hmd)
  function main (line 19) | int main()

FILE: tests/scratch/rafl/main.cpp
  function main (line 9) | int main()
  function Descriptor_CPtr (line 45) | Descriptor_CPtr make_descriptor(float *arr)
  function main (line 55) | int main(int argc, char *argv[])

FILE: tests/scratch/sdl/main.cpp
  function main (line 3) | int main(int argc, char *argv[])

FILE: tests/scratch/tbb/main.cpp
  function main (line 5) | int main()

FILE: tests/scratch/tvgutil/main.cpp
  class Dummy (line 11) | class Dummy
    method Dummy (line 14) | Dummy(long time)
    method snooze (line 19) | void snooze(long time)
  function main (line 27) | int main()

FILE: tests/scratch/vicon/main.cpp
  class Tracker (line 14) | class Tracker
    method Tracker (line 22) | explicit Tracker(const std::string& hostname)
    method next_frame (line 52) | void next_frame()
    method find_subject_index (line 83) | int find_subject_index(const std::string& name) const
  function main (line 98) | int main()

FILE: tests/scratch/voice/main.cpp
  function main (line 6) | int main()

FILE: tests/scratch/zed/main.cpp
  type sl (line 12) | namespace sl {
  function destroy_zed (line 21) | void destroy_zed(sl::Camera *zed)
  function init_zed (line 27) | sl::Camera_Ptr init_zed()
  function slMat2cvMat (line 51) | cv::Mat slMat2cvMat(sl::Mat& input)
  function main (line 73) | int main()
  function main (line 125) | int main(int argc, char **argv)
  function slMat2cvMat (line 195) | cv::Mat slMat2cvMat(Mat& input)
  function printHelp (line 220) | void printHelp()
  function main (line 237) | int main(int argc, char **argv)

FILE: tests/unit/evaluation/test_CartesianProductParameterSetGenerator.cpp
  function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(param_set_to_string_test)

FILE: tests/unit/evaluation/test_ConfusionMatrixUtil.cpp
  function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(get_conf_mtx_test)

FILE: tests/unit/evaluation/test_CoordinateDescentParameterOptimiser.cpp
  function sum_squares_cost_fn (line 17) | float sum_squares_cost_fn(const ParamSet& params)
  function BOOST_AUTO_TEST_CASE (line 32) | BOOST_AUTO_TEST_CASE(optimise_for_parameters_test)

FILE: tests/unit/evaluation/test_CrossValidationSplitGenerator.cpp
  function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(generate_splits_test)

FILE: tests/unit/evaluation/test_PerformanceMeasureUtil.cpp
  function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(average_measures_test)
  function BOOST_AUTO_TEST_CASE (line 49) | BOOST_AUTO_TEST_CASE(average_results_test)

FILE: tests/unit/evaluation/test_RandomPermutationAndDivisionSplitGenerator.cpp
  function BOOST_AUTO_TEST_CASE (line 15) | BOOST_AUTO_TEST_CASE(constructor_test)
  function BOOST_AUTO_TEST_CASE (line 29) | BOOST_AUTO_TEST_CASE(generate_splits_test)

FILE: tests/unit/infermous/test_CRFUtil.cpp
  type Colour (line 17) | enum Colour
  type Eigen (line 23) | namespace Eigen {
    type NumTraits<Colour> (line 24) | struct NumTraits<Colour> : NumTraits<int> {}
  function to_string (line 27) | std::string to_string(const std::vector<Eigen::Vector2i>& v)
  function BOOST_AUTO_TEST_CASE (line 41) | BOOST_AUTO_TEST_CASE(make_circular_neighbour_offsets_test)
  function BOOST_AUTO_TEST_CASE (line 78) | BOOST_AUTO_TEST_CASE(make_square_neighbour_offsets_test)
  function BOOST_AUTO_TEST_CASE (line 111) | BOOST_AUTO_TEST_CASE(predict_labels_test)

FILE: tests/unit/itmx/test_ColourConversion.cpp
  function check_close (line 9) | void check_close(float a, float b, float TOL)
  function check_close (line 14) | void check_close(const float *v1, const float *v2, size_t size, float TOL)
  function check_close (line 19) | void check_close(const Vector3f& v1, const Vector3f& v2, float TOL)
  function check_rgb_to_ycbcr_to_rgb (line 24) | void check_rgb_to_ycbcr_to_rgb(const Vector3u& rgb)
  function BOOST_AUTO_TEST_CASE (line 33) | BOOST_AUTO_TEST_CASE(convert_rgb_to_ycbcr_test)
  function BOOST_AUTO_TEST_CASE (line 52) | BOOST_AUTO_TEST_CASE(convert_rgb_to_ycbcr_to_rgb_test)

FILE: tests/unit/orx/test_DualNumber.cpp
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 15) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_conjugate, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 21) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_inverse, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 31) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_sqrt, T, TS)

FILE: tests/unit/orx/test_DualQuaternion.cpp
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 22) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_apply, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 33) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_from_point, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 40) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_from_rotation, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 78) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_from_se3, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 93) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_from_translation, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 104) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_linear_blend, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 126) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_pow, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 138) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_sclerp, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 151) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_screw, T, TS)

FILE: tests/unit/orx/test_GeometryUtil.cpp
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 20) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_dual_quat_to_pose, T, TS)
  function BOOST_AUTO_TEST_CASE (line 33) | BOOST_AUTO_TEST_CASE(test_estimate_rigid_transform)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 53) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_find_best_hypothesis, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 84) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_pose_to_dual_quat, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 98) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_poses_are_similar, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 127) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_to_rotation_matrix, T, TS)
  function BOOST_AUTO_TEST_CASE_TEMPLATE (line 141) | BOOST_AUTO_TEST_CASE_TEMPLATE(test_to_rotation_vector, T, TS)

FILE: tests/unit/rafl/test_UnitCircleExampleGenerator.cpp
  function check_descriptor_value (line 20) | void check_descriptor_value(const Example_CPtr& example, int featureInde...
  function BOOST_AUTO_TEST_CASE (line 27) | BOOST_AUTO_TEST_CASE(generate_examples_test)

FILE: tests/unit/rigging/test_CompositeCamera.cpp
  function BOOST_AUTO_TEST_CASE (line 13) | BOOST_AUTO_TEST_CASE(stereo_test)

FILE: tests/unit/spaint/test_ImageProcessor.cpp
  class CopyImageFixture (line 30) | class CopyImageFixture
    method CopyImageFixture (line 55) | CopyImageFixture()
    method make_single_channel_pixel (line 91) | static boost::any make_single_channel_pixel(size_t rasterIndex)
    method make_vector4u_pixel (line 96) | static boost::any make_vector4u_pixel(size_t rasterIndex)
  type ORUtils (line 105) | namespace ORUtils {
  function copy_image_test (line 164) | void copy_image_test(const std::string& type, CopyImageFixture& fixture)
  function BOOST_AUTO_TEST_CASE (line 193) | BOOST_AUTO_TEST_CASE(copy_image_float_test)
  function BOOST_AUTO_TEST_CASE (line 198) | BOOST_AUTO_TEST_CASE(copy_image_uchar_test)
  function BOOST_AUTO_TEST_CASE (line 203) | BOOST_AUTO_TEST_CASE(copy_image_Vector4u_test)

FILE: tests/unit/tvgutil/test_ArgUtil.cpp
  function make_test_map (line 9) | std::map<std::string,int> make_test_map()
  function make_test_vector (line 19) | std::vector<float> make_test_vector()
  function BOOST_AUTO_TEST_CASE (line 34) | BOOST_AUTO_TEST_CASE(argmax_map_test)
  function BOOST_AUTO_TEST_CASE (line 40) | BOOST_AUTO_TEST_CASE(argmax_vector_test)
  function BOOST_AUTO_TEST_CASE (line 46) | BOOST_AUTO_TEST_CASE(argmin_map_test)
  function BOOST_AUTO_TEST_CASE (line 52) | BOOST_AUTO_TEST_CASE(argmin_vector_test)

FILE: tests/unit/tvgutil/test_CommandManager.cpp
  type TestCommand (line 12) | struct TestCommand : Command
    method TestCommand (line 18) | TestCommand(std::string& output, const std::string& executeText, const...
    method execute (line 22) | virtual void execute() const
    method undo (line 27) | virtual void undo() const
  function BOOST_AUTO_TEST_CASE (line 35) | BOOST_AUTO_TEST_CASE(basic_test)
  function BOOST_AUTO_TEST_CASE (line 82) | BOOST_AUTO_TEST_CASE(compressible_test)
  function BOOST_AUTO_TEST_CASE (line 133) | BOOST_AUTO_TEST_CASE(error_test)
  function BOOST_AUTO_TEST_CASE (line 153) | BOOST_AUTO_TEST_CASE(historysize_test)
  function BOOST_AUTO_TEST_CASE (line 199) | BOOST_AUTO_TEST_CASE(seq_test)

FILE: tests/unit/tvgutil/test_LimitedContainer.cpp
  function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(map_test)
  function BOOST_AUTO_TEST_CASE (line 49) | BOOST_AUTO_TEST_CASE(set_test)
  function BOOST_AUTO_TEST_CASE (line 84) | BOOST_AUTO_TEST_CASE(vector_test)

FILE: tests/unit/tvgutil/test_MapUtil.cpp
  type S (line 13) | struct S
    method S (line 17) | S() {}
    method S (line 18) | S(int i_) : i(i_) {}
    method f (line 20) | void f(std::ostream& os)
    method g (line 25) | void g(std::ostream& os) const
  function BOOST_AUTO_TEST_CASE (line 35) | BOOST_AUTO_TEST_CASE(call_if_found_test)

FILE: tests/unit/tvgutil/test_PriorityQueue.cpp
  function BOOST_AUTO_TEST_CASE (line 11) | BOOST_AUTO_TEST_CASE(clear_test)
  function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(contains_test)
  function BOOST_AUTO_TEST_CASE (line 33) | BOOST_AUTO_TEST_CASE(element_test)
  function BOOST_AUTO_TEST_CASE (line 45) | BOOST_AUTO_TEST_CASE(erase_test)
  function BOOST_AUTO_TEST_CASE (line 59) | BOOST_AUTO_TEST_CASE(pop_test)
  function BOOST_AUTO_TEST_CASE (line 71) | BOOST_AUTO_TEST_CASE(size_test)
  function BOOST_AUTO_TEST_CASE (line 97) | BOOST_AUTO_TEST_CASE(top_test)
  function BOOST_AUTO_TEST_CASE (line 107) | BOOST_AUTO_TEST_CASE(update_key_test)

FILE: tests/unit/tvgutil/test_RandomNumberGenerator.cpp
  function BOOST_AUTO_TEST_CASE (line 9) | BOOST_AUTO_TEST_CASE(generate_int_from_uniform_test)
Copy disabled (too large) Download .json
Condensed preview — 841 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,090K chars).
[
  {
    "path": ".clang-format",
    "chars": 1846,
    "preview": "BasedOnStyle: LLVM\nAccessModifierOffset: -2\nAlignAfterOpenBracket: true\nAlignEscapedNewlinesLeft: false\nAlignOperands: "
  },
  {
    "path": ".gitignore",
    "chars": 468,
    "preview": "build*/\ncompile_commands.json\ndocs/\ninstall/\nlibraries/alglib/\nlibraries/arrayfire*/\nlibraries/boost_1_*/\nlibraries/boos"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 1992,
    "preview": "#######################################\n# Top-level CMakeLists.txt for spaint #\n#######################################\n"
  },
  {
    "path": "LICENCE",
    "chars": 2756,
    "preview": "LICENCE\n\nSemanticPaint © 2015-2018, Torr Vision Group, The University of Oxford (the \"Software\")\n\nThe Software remains t"
  },
  {
    "path": "README",
    "chars": 6621,
    "preview": "This is the software bundle \"SemanticPaint\", created by:\n\nStuart Golodetz <smg@robots.ox.ac.uk>\nMichael Sapienza <michae"
  },
  {
    "path": "README.md",
    "chars": 15729,
    "preview": "# SemanticPaint: A Framework for Interactive, Real-Time 3D Scene Segmentation\n\n![teaser](teaser.png)\n\n*Project page:* [h"
  },
  {
    "path": "apps/CMakeLists.txt",
    "chars": 1233,
    "preview": "##################################\n# CMakeLists.txt for spaint/apps #\n##################################\n\nIF(BUILD_AUXIL"
  },
  {
    "path": "apps/combineglobalposes/CMakeLists.txt",
    "chars": 1828,
    "preview": "##############################################\n# CMakeLists.txt for apps/combineglobalposes #\n##########################"
  },
  {
    "path": "apps/combineglobalposes/main.cpp",
    "chars": 3653,
    "preview": "/**\n * combineglobalposes: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved."
  },
  {
    "path": "apps/forestmodevis/CMakeLists.txt",
    "chars": 1675,
    "preview": "####################################\n# CMakeLists.txt for apps/relocvis #\n####################################\n\n########"
  },
  {
    "path": "apps/forestmodevis/main.cpp",
    "chars": 12584,
    "preview": "/**\n * forestmodevis: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.\n */\n"
  },
  {
    "path": "apps/prepare_7scenes/CMakeLists.txt",
    "chars": 1817,
    "preview": "###########################################\n# CMakeLists.txt for apps/prepare_7scenes #\n################################"
  },
  {
    "path": "apps/prepare_7scenes/main.cpp",
    "chars": 10230,
    "preview": "/**\n * prepare_7scenes: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.\n *"
  },
  {
    "path": "apps/raflperf/CMakeLists.txt",
    "chars": 1701,
    "preview": "####################################\n# CMakeLists.txt for apps/raflperf #\n####################################\n\n########"
  },
  {
    "path": "apps/raflperf/main.cpp",
    "chars": 6313,
    "preview": "/**\n * raflperf: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#inc"
  },
  {
    "path": "apps/raflvis/CMakeLists.txt",
    "chars": 1876,
    "preview": "###################################\n# CMakeLists.txt for apps/raflvis #\n###################################\n\n###########"
  },
  {
    "path": "apps/raflvis/TestDecisionFunctionGenerator.h",
    "chars": 2388,
    "preview": "/**\n * raflvis: TestDecisionFunctionGenerator.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All righ"
  },
  {
    "path": "apps/raflvis/main.cpp",
    "chars": 14013,
    "preview": "/**\n * raflvis: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#incl"
  },
  {
    "path": "apps/relocconverter/CMakeLists.txt",
    "chars": 2012,
    "preview": "##########################################\n# CMakeLists.txt for apps/relocconverter #\n##################################"
  },
  {
    "path": "apps/relocconverter/main.cpp",
    "chars": 3082,
    "preview": "/**\n * relocconverter: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.\n */"
  },
  {
    "path": "apps/relocgui/CMakeLists.txt",
    "chars": 3175,
    "preview": "####################################\n# CMakeLists.txt for apps/relocgui #\n####################################\n\n########"
  },
  {
    "path": "apps/relocgui/RelocaliserApplication.cpp",
    "chars": 15037,
    "preview": "/**\n * relocgui: RelocaliserApplication.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights r"
  },
  {
    "path": "apps/relocgui/RelocaliserApplication.h",
    "chars": 6865,
    "preview": "/**\n * relocgui: RelocaliserApplication.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights res"
  },
  {
    "path": "apps/relocgui/main.cpp",
    "chars": 4753,
    "preview": "/**\n * relocgui: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.\n */\n\n#inc"
  },
  {
    "path": "apps/relocgui/resources/DefaultRelocalisationForest.rf",
    "chars": 1201777,
    "preview": "5\n17247 8624\n17237 8619\n17855 8928\n16933 8467\n15509 7755\n1 -1 75 -19\n3 -1 224 -56\n6901 -1 182 8\n5 -1 67 65\n2797 -1 102 1"
  },
  {
    "path": "apps/relocicpeval/CMakeLists.txt",
    "chars": 1479,
    "preview": "########################################\n# CMakeLists.txt for apps/relocicpeval #\n######################################"
  },
  {
    "path": "apps/relocicpeval/main.cpp",
    "chars": 13158,
    "preview": "/**\n * relocicpeval: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.\n */\n\n"
  },
  {
    "path": "apps/relocnovelposes/CMakeLists.txt",
    "chars": 1544,
    "preview": "###########################################\n# CMakeLists.txt for apps/relocnovelposes #\n################################"
  },
  {
    "path": "apps/relocnovelposes/main.cpp",
    "chars": 13897,
    "preview": "/**\n * relocnovelposes: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved.\n *"
  },
  {
    "path": "apps/relocopt/CMakeLists.txt",
    "chars": 2091,
    "preview": "####################################\n# CMakeLists.txt for apps/relocopt #\n####################################\n\n########"
  },
  {
    "path": "apps/relocopt/main.cpp",
    "chars": 9823,
    "preview": "/**\n * relocopt: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.\n */\n\n#inc"
  },
  {
    "path": "apps/relocopt/resources/default_parameters.ini",
    "chars": 425,
    "preview": "relocaliserType=forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01\n\n"
  },
  {
    "path": "apps/relocopt/resources/evaluate_relocaliser.sh",
    "chars": 2710,
    "preview": "#! /usr/bin/env bash\n\n# Parameters are: iniPath outputPath datasetPath\n# spaintgui is located in the parent folder\n\nset "
  },
  {
    "path": "apps/relocperf/CMakeLists.txt",
    "chars": 2102,
    "preview": "#####################################\n# CMakeLists.txt for apps/relocperf #\n#####################################\n\n#####"
  },
  {
    "path": "apps/relocperf/main.cpp",
    "chars": 32298,
    "preview": "/**\n * relocperf: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights reserved.\n */\n\n#in"
  },
  {
    "path": "apps/relocperf/resources/12scenes_batch.sh",
    "chars": 1004,
    "preview": "#! /usr/bin/env bash\n\nset -e\n\n# cd to the script folder, to allow relative paths later\ncd \"${0%/*}\"\n\ntag=${1:-Default_No"
  },
  {
    "path": "apps/relocperf/resources/7scenes_batch.sh",
    "chars": 897,
    "preview": "#! /usr/bin/env bash\n\nset -e\n\n# cd to the script folder, to allow relative paths later\ncd \"${0%/*}\"\n\ntag=${1:-Default_No"
  },
  {
    "path": "apps/relocperf/resources/7scenes_urls.txt",
    "chars": 652,
    "preview": "http://download.microsoft.com/download/2/8/5/28564B23-0828-408F-8631-23B1EFF1DAC8/chess.zip\nhttp://download.microsoft.co"
  },
  {
    "path": "apps/relocperf/resources/Cascade_Fast-Intermediate_050.ini",
    "chars": 1365,
    "preview": "relocaliserType = cascade\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.0"
  },
  {
    "path": "apps/relocperf/resources/Cascade_Fast-Slow_050.ini",
    "chars": 1367,
    "preview": "relocaliserType = cascade\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.0"
  },
  {
    "path": "apps/relocperf/resources/Cascade_Fast-Slow_075.ini",
    "chars": 1368,
    "preview": "relocaliserType = cascade\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.0"
  },
  {
    "path": "apps/relocperf/resources/Cascade_Full_050_075.ini",
    "chars": 1829,
    "preview": "relocaliserType = cascade\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.0"
  },
  {
    "path": "apps/relocperf/resources/Default_NoRank.ini",
    "chars": 824,
    "preview": "relocaliserType = forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01"
  },
  {
    "path": "apps/relocperf/resources/Default_Rank16.ini",
    "chars": 824,
    "preview": "relocaliserType = forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01"
  },
  {
    "path": "apps/relocperf/resources/Fast_NoRank.ini",
    "chars": 788,
    "preview": "relocaliserType = forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01"
  },
  {
    "path": "apps/relocperf/resources/Intermediate_NoRank.ini",
    "chars": 795,
    "preview": "relocaliserType = forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01"
  },
  {
    "path": "apps/relocperf/resources/Slow_Rank16.ini",
    "chars": 771,
    "preview": "relocaliserType = forest\nsubwindowConfigurationIndex = 3\n\n[SceneParams]\nmu = 0.04\nviewFrustum_max = 5.0\nvoxelSize = 0.01"
  },
  {
    "path": "apps/relocvis/CMakeLists.txt",
    "chars": 2115,
    "preview": "####################################\n# CMakeLists.txt for apps/relocvis #\n####################################\n\n########"
  },
  {
    "path": "apps/relocvis/main.cpp",
    "chars": 25248,
    "preview": "/**\n * relocvis: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.\n */\n\n#inc"
  },
  {
    "path": "apps/relocvis/resources/frustum.ply",
    "chars": 432,
    "preview": "ply\nformat ascii 1.0\ncomment author: spaint\ncomment object: camera frustum\nelement vertex 5\nproperty float x\nproperty fl"
  },
  {
    "path": "apps/spaintgui/Application.cpp",
    "chars": 48078,
    "preview": "/**\n * spaintgui: Application.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n "
  },
  {
    "path": "apps/spaintgui/Application.h",
    "chars": 10399,
    "preview": "/**\n * spaintgui: Application.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */"
  },
  {
    "path": "apps/spaintgui/CMakeLists.txt",
    "chars": 8277,
    "preview": "#####################################\n# CMakeLists.txt for apps/spaintgui #\n#####################################\n\n#####"
  },
  {
    "path": "apps/spaintgui/CPUInstantiations.cpp",
    "chars": 1000,
    "preview": "/**\n * spaintgui: CPUInstantiations.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reser"
  },
  {
    "path": "apps/spaintgui/CUDAInstantiations.cu",
    "chars": 764,
    "preview": "/**\n * spaintgui: CUDAInstantiations.cu\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reser"
  },
  {
    "path": "apps/spaintgui/commands/MarkVoxelsCommand.cpp",
    "chars": 1320,
    "preview": "/**\n * spaintgui:MarkVoxelsCommand.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserv"
  },
  {
    "path": "apps/spaintgui/commands/MarkVoxelsCommand.h",
    "chars": 2152,
    "preview": "/**\n * spaintgui: MarkVoxelsCommand.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserve"
  },
  {
    "path": "apps/spaintgui/core/CollaborativePipeline.cpp",
    "chars": 5582,
    "preview": "/**\n * spaintgui: CollaborativePipeline.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights r"
  },
  {
    "path": "apps/spaintgui/core/CollaborativePipeline.h",
    "chars": 2585,
    "preview": "/**\n * spaintgui: CollaborativePipeline.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All rights res"
  },
  {
    "path": "apps/spaintgui/core/Model.cpp",
    "chars": 7508,
    "preview": "/**\n * spaintgui: Model.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#i"
  },
  {
    "path": "apps/spaintgui/core/Model.h",
    "chars": 11187,
    "preview": "/**\n * spaintgui: Model.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#ifn"
  },
  {
    "path": "apps/spaintgui/core/MultiScenePipeline.cpp",
    "chars": 6686,
    "preview": "/**\n * spaintgui: MultiScenePipeline.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights rese"
  },
  {
    "path": "apps/spaintgui/core/MultiScenePipeline.h",
    "chars": 8850,
    "preview": "/**\n * spaintgui: MultiScenePipeline.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserv"
  },
  {
    "path": "apps/spaintgui/core/ObjectivePipeline.cpp",
    "chars": 3538,
    "preview": "/**\n * spaintgui: ObjectivePipeline.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reser"
  },
  {
    "path": "apps/spaintgui/core/ObjectivePipeline.h",
    "chars": 1983,
    "preview": "/**\n * spaintgui: ObjectivePipeline.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserve"
  },
  {
    "path": "apps/spaintgui/core/SLAMPipeline.cpp",
    "chars": 1294,
    "preview": "/**\n * spaintgui: SLAMPipeline.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.\n"
  },
  {
    "path": "apps/spaintgui/core/SLAMPipeline.h",
    "chars": 1217,
    "preview": "/**\n * spaintgui: SLAMPipeline.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved.\n *"
  },
  {
    "path": "apps/spaintgui/core/SemanticPipeline.cpp",
    "chars": 2176,
    "preview": "/**\n * spaintgui: SemanticPipeline.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserv"
  },
  {
    "path": "apps/spaintgui/core/SemanticPipeline.h",
    "chars": 2363,
    "preview": "/**\n * spaintgui: SemanticPipeline.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2016. All rights reserved"
  },
  {
    "path": "apps/spaintgui/debugging/RelocaliserFiguresGenerator.cpp",
    "chars": 12561,
    "preview": "/**\n * spaintgui: RelocaliserFiguresGenerator.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All ri"
  },
  {
    "path": "apps/spaintgui/debugging/RelocaliserFiguresGenerator.h",
    "chars": 1377,
    "preview": "/**\n * spaintgui: RelocaliserFiguresGenerator.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2017. All righ"
  },
  {
    "path": "apps/spaintgui/main.cpp",
    "chars": 40632,
    "preview": "/**\n * spaintgui: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#in"
  },
  {
    "path": "apps/spaintgui/renderers/HeadlessRenderer.cpp",
    "chars": 1094,
    "preview": "/**\n * spaintgui: HeadlessRenderer.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserv"
  },
  {
    "path": "apps/spaintgui/renderers/HeadlessRenderer.h",
    "chars": 1444,
    "preview": "/**\n * spaintgui: HeadlessRenderer.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved"
  },
  {
    "path": "apps/spaintgui/renderers/Renderer.cpp",
    "chars": 30899,
    "preview": "/**\n * spaintgui: Renderer.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n"
  },
  {
    "path": "apps/spaintgui/renderers/Renderer.h",
    "chars": 13928,
    "preview": "/**\n * spaintgui: Renderer.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#"
  },
  {
    "path": "apps/spaintgui/renderers/RiftRenderer.cpp",
    "chars": 6816,
    "preview": "/**\n * spaintgui: RiftRenderer.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n"
  },
  {
    "path": "apps/spaintgui/renderers/RiftRenderer.h",
    "chars": 2172,
    "preview": "/**\n * spaintgui: RiftRenderer.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n *"
  },
  {
    "path": "apps/spaintgui/renderers/WindowedRenderer.cpp",
    "chars": 2260,
    "preview": "/**\n * spaintgui: WindowedRenderer.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserv"
  },
  {
    "path": "apps/spaintgui/renderers/WindowedRenderer.h",
    "chars": 1687,
    "preview": "/**\n * spaintgui: WindowedRenderer.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved"
  },
  {
    "path": "apps/spaintgui/resources/DefaultCalibration.txt",
    "chars": 226,
    "preview": "640 480\n504.261 503.905\n352.457 272.202\n\n640 480\n573.71 574.394\n346.471 249.031\n\n0.999749 0.00518867 0.0217975 0.0243073"
  },
  {
    "path": "apps/spaintgui/resources/DefaultRandomForest.rf",
    "chars": 5811194,
    "preview": "22 serialization::archive 11 0 1 0\n0 0 0 256 0.000000000e+00 1000 20 0 1 3 1 0\n1 12345 32 3.000000119e-01 1 0  19 Featur"
  },
  {
    "path": "apps/spaintgui/resources/DefaultRelocalisationForest.rf",
    "chars": 1201777,
    "preview": "5\n17247 8624\n17237 8619\n17855 8928\n16933 8467\n15509 7755\n1 -1 75 -19\n3 -1 224 -56\n6901 -1 182 8\n5 -1 67 65\n2797 -1 102 1"
  },
  {
    "path": "apps/spaintgui/resources/Labels.txt",
    "chars": 48,
    "preview": "background\ntable\nkeyboard\nchair\nwall\nground\nbin\n"
  },
  {
    "path": "apps/spaintgui/resources/RaflSettings.xml",
    "chars": 514,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<candidateCount>128</candidateCount>\n<decisionFunctionGeneratorParams>13</decisio"
  },
  {
    "path": "apps/spaintgui/resources/TouchSettings.xml",
    "chars": 468,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<forestPath>DefaultRandomForest.rf</forestPath>\n<lowerDepthThresholdMm>13</lowerD"
  },
  {
    "path": "apps/spaintgui/resources/XtionCalibrationSMG.txt",
    "chars": 219,
    "preview": "640 480\n530.467 530.017\n316.396 234.861\n\n640 480\n565.141 564.442\n320.955 246.224\n\n0.999999 -0.00135151 -0.000466652 0.02"
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes.ini",
    "chars": 529,
    "preview": "[SceneParams]\n# mu = 0.04\nviewFrustum_max = 5.0\n# voxelSize = 0.01\n\n[SLAMComponent]\nrelocaliseEveryFrame = false\n# reloc"
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes_calib.txt",
    "chars": 90,
    "preview": "640 480\n585 585\n320 240\n\n640 480\n585 585\n320 240\n\n1 0 0 0\n0 1 0 0\n0 0 1 0\n\naffine 0.001 0\n"
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes_convert_to_itm.m",
    "chars": 4196,
    "preview": "% rootFolders = dir;\n% sequences = {rootFolders([rootFolders.isdir]).name};\n% datasets = datasets(~ismember(datasets,{'."
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes_urls.txt",
    "chars": 652,
    "preview": "http://download.microsoft.com/download/2/8/5/28564B23-0828-408F-8631-23B1EFF1DAC8/chess.zip\nhttp://download.microsoft.co"
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes_validation_convert_to_itm.m",
    "chars": 1313,
    "preview": "sequences = {'chess', 'fire', 'heads', 'office', 'pumpkin', 'redkitchen', 'stairs'};\nsequence_sizes = [1000 1000 1000 10"
  },
  {
    "path": "apps/spaintgui/resources/scripts/7scenes_validation_process_sequence.m",
    "chars": 1219,
    "preview": "function process_sequence(inFolder, outFolder, sequenceLength)\n\n    if ~exist(outFolder, 'dir')\n        mkdir(outFolder)"
  },
  {
    "path": "apps/spaintgui/resources/scripts/spaint_batch.sh",
    "chars": 1158,
    "preview": "#! /usr/bin/env bash\n\nset -e\n\ntag='Default'\nsequences='chess fire heads office pumpkin redkitchen stairs'\n# sequences='p"
  },
  {
    "path": "apps/spaintgui/resources/spaint-pre.gram",
    "chars": 381,
    "preview": "#JSGF V1.0;\n\ngrammar spaint;\n\nimport <commands.standard_commands>;\n\npublic <commands> = <standard_commands> ;\n\n/**\n * A "
  },
  {
    "path": "apps/spaintgui/resources/trackerconfigs/ForceFail.xml",
    "chars": 71,
    "preview": "<tracker type='infinitam'>\n  <params>type=forcefail</params>\n</tracker>"
  },
  {
    "path": "apps/spaintgui/resources/trackerconfigs/Rift.xml",
    "chars": 92,
    "preview": "<tracker type='composite'>\n  <tracker type='rift'/>\n  <tracker type='infinitam'/>\n</tracker>"
  },
  {
    "path": "apps/spaintgui/resources/trackerconfigs/ViconAbsolute.xml",
    "chars": 163,
    "preview": "<tracker type='composite' policy='stoponfirstsuccess'>\n  <tracker type='vicon'>\n    <params>absolute</params>\n  </tracke"
  },
  {
    "path": "apps/spaintgui/resources/trackerconfigs/ViconRelative.xml",
    "chars": 61,
    "preview": "<tracker type='vicon'>\n  <params>relative</params>\n</tracker>"
  },
  {
    "path": "apps/spaintgui/resources/trackerconfigs/Zed.xml",
    "chars": 21,
    "preview": "<tracker type='zed'/>"
  },
  {
    "path": "apps/spaintgui/sequences/Sequence.cpp",
    "chars": 809,
    "preview": "/**\n * spaintgui: Sequence.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved.\n */\n"
  },
  {
    "path": "apps/spaintgui/sequences/Sequence.h",
    "chars": 2898,
    "preview": "/**\n * spaintgui: Sequence.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved.\n */\n\n#"
  },
  {
    "path": "apps/spaintgui/sequences/SpaintSequence.cpp",
    "chars": 4516,
    "preview": "/**\n * spaintgui: SpaintSequence.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved"
  },
  {
    "path": "apps/spaintgui/sequences/SpaintSequence.h",
    "chars": 3380,
    "preview": "/**\n * spaintgui: SpaintSequence.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2018. All rights reserved.\n"
  },
  {
    "path": "apps/spaintgui/subwindows/Subwindow.cpp",
    "chars": 3646,
    "preview": "/**\n * spaintgui: Subwindow.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */"
  },
  {
    "path": "apps/spaintgui/subwindows/Subwindow.h",
    "chars": 10081,
    "preview": "/**\n * spaintgui: Subwindow.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n"
  },
  {
    "path": "apps/spaintgui/subwindows/SubwindowConfiguration.cpp",
    "chars": 6224,
    "preview": "/**\n * spaintgui: SubwindowConfiguration.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights "
  },
  {
    "path": "apps/spaintgui/subwindows/SubwindowConfiguration.h",
    "chars": 3819,
    "preview": "/**\n * spaintgui: SubwindowConfiguration.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights re"
  },
  {
    "path": "apps/touchtrain/CMakeLists.txt",
    "chars": 2091,
    "preview": "######################################\n# CMakeLists.txt for apps/touchtrain #\n######################################\n\n##"
  },
  {
    "path": "apps/touchtrain/LabelledPath.h",
    "chars": 822,
    "preview": "/**\n * touchtrain: LabelledPath.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n "
  },
  {
    "path": "apps/touchtrain/TouchTrainDataset.h",
    "chars": 6897,
    "preview": "/**\n * touchtrain: TouchTrainDataset.h\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserv"
  },
  {
    "path": "apps/touchtrain/main.cpp",
    "chars": 6297,
    "preview": "/**\n * touchtrain: main.cpp\n * Copyright (c) Torr Vision Group, University of Oxford, 2015. All rights reserved.\n */\n\n#i"
  },
  {
    "path": "build-nix.sh",
    "chars": 1709,
    "preview": "#! /bin/bash -e\n\n# Check that a valid build type has been specified.\nif [ $# -ne 2 ] || ([ \"$1\" != \"Unix Makefiles\" ] &&"
  },
  {
    "path": "build-win.sh",
    "chars": 1242,
    "preview": "#! /bin/bash -e\n\n# Check that valid parameters have been specified.\nif [ $# -ne 2 ] || ([ \"$1\" != \"11\" ] && [ \"$1\" != \"1"
  },
  {
    "path": "clean.sh",
    "chars": 266,
    "preview": "#! /bin/bash -e\n\n/bin/rm -fR build\n/bin/rm -fR docs\n/bin/rm -fR install\n\ncd libraries\n/bin/rm -fR boost_1_56_0\n/bin/rm -"
  },
  {
    "path": "cmake/CUDACheckCompute.cmake",
    "chars": 1638,
    "preview": "#############################\n#Sourced from:\n#https://raw.githubusercontent.com/jwetzl/CudaLBFGS/master/CheckComputeCapa"
  },
  {
    "path": "cmake/FindLibRoyale.cmake",
    "chars": 435,
    "preview": "find_path(LibRoyale_ROOT royale_license.txt\n\tPATHS ${LibRoyale_ROOT} \"C:/Program Files/royale/2.3.0.92\" \"/usr/local\")\n\nf"
  },
  {
    "path": "cmake/Flags.cmake",
    "chars": 1615,
    "preview": "###############\n# Flags.cmake #\n###############\n\n# If on Mac OS X:\nIF(${CMAKE_SYSTEM} MATCHES \"Darwin\")\n  # Make sure th"
  },
  {
    "path": "cmake/InstallApp.cmake",
    "chars": 130,
    "preview": "####################\n# InstallApp.cmake #\n####################\n\nINSTALL(TARGETS ${targetname} DESTINATION bin/apps/${tar"
  },
  {
    "path": "cmake/LinkALGLIB.cmake",
    "chars": 145,
    "preview": "####################\n# LinkALGLIB.cmake #\n####################\n\nIF(WITH_ALGLIB)\n  TARGET_LINK_LIBRARIES(${targetname} ${"
  },
  {
    "path": "cmake/LinkArrayFire.cmake",
    "chars": 791,
    "preview": "#######################\n# LinkArrayFire.cmake #\n#######################\n\nIF(WITH_ARRAYFIRE)\n  IF(WITH_CUDA)\n    TARGET_L"
  },
  {
    "path": "cmake/LinkBoost.cmake",
    "chars": 214,
    "preview": "###################\n# LinkBoost.cmake #\n###################\n\nTARGET_LINK_LIBRARIES(${targetname} ${Boost_LIBRARIES})\n\nIF"
  },
  {
    "path": "cmake/LinkCUDA.cmake",
    "chars": 154,
    "preview": "##################\n# LinkCUDA.cmake #\n##################\n\nIF(WITH_CUDA AND NOT APPLE)\n  TARGET_LINK_LIBRARIES(${targetna"
  },
  {
    "path": "cmake/LinkGLEW.cmake",
    "chars": 370,
    "preview": "##################\n# LinkGLEW.cmake #\n##################\n\nIF(MSVC_IDE OR \"${CMAKE_SYSTEM}\" MATCHES \"Linux\")\n  TARGET_LIN"
  },
  {
    "path": "cmake/LinkGLUT.cmake",
    "chars": 334,
    "preview": "##################\n# LinkGLUT.cmake #\n##################\n\nIF(WITH_GLUT)\n  TARGET_LINK_LIBRARIES(${targetname} ${GLUT_LIB"
  },
  {
    "path": "cmake/LinkGrove.cmake",
    "chars": 292,
    "preview": "###################\n# LinkGrove.cmake #\n###################\n\nIF(BUILD_GROVE)\n  TARGET_LINK_LIBRARIES(${targetname} grove"
  },
  {
    "path": "cmake/LinkInfiniTAM.cmake",
    "chars": 212,
    "preview": "#######################\n# LinkInfiniTAM.cmake #\n#######################\n\nTARGET_LINK_LIBRARIES(${targetname} ${InfiniTAM"
  },
  {
    "path": "cmake/LinkLeap.cmake",
    "chars": 567,
    "preview": "##################\n# LinkLeap.cmake #\n##################\n\nIF(WITH_LEAP)\n  TARGET_LINK_LIBRARIES(${targetname} ${LEAP_LIB"
  },
  {
    "path": "cmake/LinkLibRoyale.cmake",
    "chars": 358,
    "preview": "#######################\n# LinkLibRoyale.cmake #\n#######################\n\nIF(WITH_LIBROYALE)\n  TARGET_LINK_LIBRARIES(${ta"
  },
  {
    "path": "cmake/LinkLodePNG.cmake",
    "chars": 123,
    "preview": "#####################\n# LinkLodePNG.cmake #\n#####################\n\nTARGET_LINK_LIBRARIES(${targetname} ${LodePNG_LIBRARY"
  },
  {
    "path": "cmake/LinkOVR.cmake",
    "chars": 605,
    "preview": "#################\n# LinkOVR.cmake #\n#################\n\nIF(WITH_OVR)\n  TARGET_LINK_LIBRARIES(${targetname} ${OVR_LIBRARY}"
  },
  {
    "path": "cmake/LinkOpenCV.cmake",
    "chars": 465,
    "preview": "####################\n# LinkOpenCV.cmake #\n####################\n\nIF(WITH_OPENCV)\n  TARGET_LINK_LIBRARIES(${targetname} ${"
  },
  {
    "path": "cmake/LinkOpenGL.cmake",
    "chars": 119,
    "preview": "####################\n# LinkOpenGL.cmake #\n####################\n\nTARGET_LINK_LIBRARIES(${targetname} ${OPENGL_LIBRARY})\n"
  },
  {
    "path": "cmake/LinkOpenNI.cmake",
    "chars": 678,
    "preview": "####################\n# LinkOpenNI.cmake #\n####################\n\nIF(WITH_OPENNI)\n  TARGET_LINK_LIBRARIES(${targetname} ${"
  },
  {
    "path": "cmake/LinkRealSense.cmake",
    "chars": 364,
    "preview": "#######################\n# LinkRealSense.cmake #\n#######################\n\nIF(WITH_REALSENSE)\n  TARGET_LINK_LIBRARIES(${ta"
  },
  {
    "path": "cmake/LinkSDL.cmake",
    "chars": 610,
    "preview": "#################\n# LinkSDL.cmake #\n#################\n\nTARGET_LINK_LIBRARIES(${targetname} ${SDL_LIBRARY} ${SDLMAIN_LIBR"
  },
  {
    "path": "cmake/LinkScoreForests.cmake",
    "chars": 284,
    "preview": "##########################\n# LinkScoreForests.cmake #\n##########################\n\n# ScoreForests needs C++11 support.\nIF"
  },
  {
    "path": "cmake/LinkTBB.cmake",
    "chars": 330,
    "preview": "#################\n# LinkTBB.cmake #\n#################\n\nIF(WITH_TBB)\n  TARGET_LINK_LIBRARIES(${targetname} ${TBB_LIBRARY}"
  },
  {
    "path": "cmake/LinkTorch.cmake",
    "chars": 142,
    "preview": "###################\n# LinkTorch.cmake #\n###################\n\nIF(WITH_TORCH)\n  TARGET_LINK_LIBRARIES(${targetname} ${TORC"
  },
  {
    "path": "cmake/LinkVTK.cmake",
    "chars": 132,
    "preview": "#################\n# LinkVTK.cmake #\n#################\n\nIF(WITH_VTK)\n  TARGET_LINK_LIBRARIES(${targetname} ${VTK_LIBRARIE"
  },
  {
    "path": "cmake/LinkVicon.cmake",
    "chars": 1327,
    "preview": "###################\n# LinkVicon.cmake #\n###################\n\nIF(WITH_VICON)\n  TARGET_LINK_LIBRARIES(${targetname} ${VICO"
  },
  {
    "path": "cmake/LinkZed.cmake",
    "chars": 132,
    "preview": "#################\n# LinkZed.cmake #\n#################\n\nIF(WITH_ZED)\n  TARGET_LINK_LIBRARIES(${targetname} ${ZED_LIBRARIE"
  },
  {
    "path": "cmake/OfferC++11Support.cmake",
    "chars": 309,
    "preview": "###########################\n# OfferC++11Support.cmake #\n###########################\n\nOPTION(WITH_C++11 \"Enable C++11 sup"
  },
  {
    "path": "cmake/OfferFocusReacquisition.cmake",
    "chars": 247,
    "preview": "#################################\n# OfferFocusReacquisition.cmake #\n#################################\n\nOPTION(USE_FOCUS_"
  },
  {
    "path": "cmake/OfferLowPowerSupport.cmake",
    "chars": 221,
    "preview": "###############################\n# OfferLowPowerSupport.cmake #\n###############################\n\nOPTION(USE_LOW_POWER_MOD"
  },
  {
    "path": "cmake/OfferLowUSBBandwidthSupport.cmake",
    "chars": 272,
    "preview": "#####################################\n# OfferLowUSBBandwidthSupport.cmake #\n#####################################\n\nOPTIO"
  },
  {
    "path": "cmake/OfferPixelDebugging.cmake",
    "chars": 220,
    "preview": "#############################\n# OfferPixelDebugging.cmake #\n#############################\n\nOPTION(USE_PIXEL_DEBUGGING \"U"
  },
  {
    "path": "cmake/SetAppTarget.cmake",
    "chars": 597,
    "preview": "######################\n# SetAppTarget.cmake #\n######################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake/Flags.cmake)\n\n"
  },
  {
    "path": "cmake/SetCUDAAppTarget.cmake",
    "chars": 714,
    "preview": "##########################\n# SetCUDAAppTarget.cmake #\n##########################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake/Fl"
  },
  {
    "path": "cmake/SetCUDALibTarget.cmake",
    "chars": 594,
    "preview": "##########################\n# SetCUDALibTarget.cmake #\n##########################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake/Fl"
  },
  {
    "path": "cmake/SetCUDAScratchTestTarget.cmake",
    "chars": 765,
    "preview": "##################################\n# SetCUDAScratchTestTarget.cmake #\n##################################\n\nINCLUDE(${PROJ"
  },
  {
    "path": "cmake/SetCUDAUnitTestTarget.cmake",
    "chars": 796,
    "preview": "###############################\n# SetCUDAUnitTestTarget.cmake #\n###############################\n\nINCLUDE(${PROJECT_SOURC"
  },
  {
    "path": "cmake/SetLibTarget.cmake",
    "chars": 473,
    "preview": "######################\n# SetLibTarget.cmake #\n######################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake/Flags.cmake)\n\n"
  },
  {
    "path": "cmake/SetScratchTestTarget.cmake",
    "chars": 648,
    "preview": "##############################\n# SetScratchTestTarget.cmake #\n##############################\n\nINCLUDE(${PROJECT_SOURCE_D"
  },
  {
    "path": "cmake/SetUnitTestTarget.cmake",
    "chars": 679,
    "preview": "###########################\n# SetUnitTestTarget.cmake #\n###########################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake"
  },
  {
    "path": "cmake/UseALGLIB.cmake",
    "chars": 780,
    "preview": "###################\n# UseALGLIB.cmake #\n###################\n\nOPTION(WITH_ALGLIB \"Build with ALGLIB support?\" OFF)\n\nIF(WI"
  },
  {
    "path": "cmake/UseArrayFire.cmake",
    "chars": 276,
    "preview": "######################\n# UseArrayFire.cmake #\n######################\n\nOPTION(WITH_ARRAYFIRE \"Build with ArrayFire suppor"
  },
  {
    "path": "cmake/UseBoost.cmake",
    "chars": 738,
    "preview": "##################\n# UseBoost.cmake #\n##################\n\nSET(Boost_ADDITIONAL_VERSIONS \"1.53\" \"1.53.0\" \"1.54\" \"1.54.0\" "
  },
  {
    "path": "cmake/UseCUDA.cmake",
    "chars": 2525,
    "preview": "#################\n# UseCUDA.cmake #\n#################\n\nFIND_PACKAGE(CUDA QUIET)\n\nOPTION(WITH_CUDA \"Build with CUDA suppo"
  },
  {
    "path": "cmake/UseEigen.cmake",
    "chars": 201,
    "preview": "##################\n# UseEigen.cmake #\n##################\n\nFIND_PATH(EIGEN_INCLUDE_DIR eigen3.pc.in HINTS \"${PROJECT_SOUR"
  },
  {
    "path": "cmake/UseGLEW.cmake",
    "chars": 540,
    "preview": "#################\n# UseGLEW.cmake #\n#################\n\nIF(MSVC_IDE OR \"${CMAKE_SYSTEM}\" MATCHES \"Linux\")\n  FIND_PATH(GLE"
  },
  {
    "path": "cmake/UseGLUT.cmake",
    "chars": 684,
    "preview": "###################\n# UseGLUT.cmake #\n###################\n\nOPTION(WITH_GLUT \"Build with Glut support?\" OFF)\n\nIF(WITH_GLU"
  },
  {
    "path": "cmake/UseGraphviz.cmake",
    "chars": 524,
    "preview": "#####################\n# UseGraphviz.cmake #\n#####################\n\nOPTION(WITH_GRAPHVIZ \"Build with Graphviz support?\" O"
  },
  {
    "path": "cmake/UseGrove.cmake",
    "chars": 477,
    "preview": "##################\n# UseGrove.cmake #\n##################\n\nIF(BUILD_GROVE)\n  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseALGLI"
  },
  {
    "path": "cmake/UseInfiniTAM.cmake",
    "chars": 3123,
    "preview": "######################\n# UseInfiniTAM.cmake #\n######################\n\nSET(InfiniTAM_INCLUDE_DIR \"${PROJECT_SOURCE_DIR}/."
  },
  {
    "path": "cmake/UseLeap.cmake",
    "chars": 972,
    "preview": "#################\n# UseLeap.cmake #\n#################\n\nOPTION(WITH_LEAP \"Build with Leap Motion support?\" OFF)\n\nIF(WITH_"
  },
  {
    "path": "cmake/UseLibRoyale.cmake",
    "chars": 320,
    "preview": "######################\n# UseLibRoyale.cmake #\n######################\n\nOPTION(WITH_LIBROYALE \"Build with LibRoyale suppor"
  },
  {
    "path": "cmake/UseLodePNG.cmake",
    "chars": 671,
    "preview": "####################\n# UseLodePNG.cmake #\n####################\n\nFIND_PATH(LodePNG_INCLUDE_DIR lodepng.h HINTS \"${PROJECT"
  },
  {
    "path": "cmake/UseOVR.cmake",
    "chars": 1405,
    "preview": "################\n# UseOVR.cmake #\n################\n\nOPTION(WITH_OVR \"Build with Oculus support?\" OFF)\n\nIF(WITH_OVR)\n  IF"
  },
  {
    "path": "cmake/UseOpenCV.cmake",
    "chars": 329,
    "preview": "###################\n# UseOpenCV.cmake #\n###################\n\nOPTION(WITH_OPENCV \"Build with OpenCV support?\" OFF)\n\nIF(WI"
  },
  {
    "path": "cmake/UseOpenGL.cmake",
    "chars": 91,
    "preview": "###################\n# UseOpenGL.cmake #\n###################\n\nFIND_PACKAGE(OpenGL REQUIRED)\n"
  },
  {
    "path": "cmake/UseOpenMP.cmake",
    "chars": 453,
    "preview": "###################\n# UseOpenMP.cmake #\n###################\n\nOPTION(WITH_OPENMP \"Enable OpenMP support?\" OFF)\n\nIF(WITH_O"
  },
  {
    "path": "cmake/UseOpenNI.cmake",
    "chars": 819,
    "preview": "###################\n# UseOpenNI.cmake #\n###################\n\nOPTION(WITH_OPENNI \"Build with OpenNI support?\" OFF)\n\nIF(WI"
  },
  {
    "path": "cmake/UseRealSense.cmake",
    "chars": 555,
    "preview": "######################\n# UseRealSense.cmake #\n######################\n\nOPTION(WITH_REALSENSE \"Build with Intel RealSense "
  },
  {
    "path": "cmake/UseSDL.cmake",
    "chars": 1110,
    "preview": "################\n# UseSDL.cmake #\n################\n\nIF(MSVC_IDE)\n  FIND_PATH(SDL_INCLUDE_DIR SDL.h HINTS \"${PROJECT_SOUR"
  },
  {
    "path": "cmake/UseScoreForests.cmake",
    "chars": 4197,
    "preview": "#########################\n# UseScoreForests.cmake #\n#########################\n\nOPTION(WITH_SCOREFORESTS \"Build with Scor"
  },
  {
    "path": "cmake/UseTBB.cmake",
    "chars": 649,
    "preview": "################\n# UseTBB.cmake #\n################\n\nOPTION(WITH_TBB \"Build with Intel TBB support?\" OFF)\n\nIF(WITH_TBB)\n "
  },
  {
    "path": "cmake/UseTorch.cmake",
    "chars": 870,
    "preview": "##################\n# UseTorch.cmake #\n##################\n\nOPTION(WITH_TORCH \"Build with Torch support?\" OFF)\n\nIF(WITH_TO"
  },
  {
    "path": "cmake/UseVTK.cmake",
    "chars": 207,
    "preview": "################\n# UseVTK.cmake #\n################\n\nOPTION(WITH_VTK \"Build with VTK support?\" OFF)\n\nIF(WITH_VTK)\n  FIND_"
  },
  {
    "path": "cmake/UseVicon.cmake",
    "chars": 580,
    "preview": "##################\n# UseVicon.cmake #\n##################\n\nOPTION(WITH_VICON \"Build with Vicon support?\" OFF)\n\nIF(WITH_VI"
  },
  {
    "path": "cmake/UseZed.cmake",
    "chars": 901,
    "preview": "################\n# UseZed.cmake #\n################\n\nINCLUDE(${PROJECT_SOURCE_DIR}/cmake/UseCUDA.cmake)\n\nOPTION(WITH_ZED "
  },
  {
    "path": "cmake/VCLibraryHack.cmake",
    "chars": 303,
    "preview": "#######################\n# VCLibraryHack.cmake #\n#######################\n\nIF(MSVC_IDE)\n  SET(CMAKE_EXE_LINKER_FLAGS_DEBUG"
  },
  {
    "path": "cmake/cuda_compute_capability.cpp",
    "chars": 1875,
    "preview": "/*\n* Copyright (C) 2011 Florian Rathgeber, florian.rathgeber@gmail.com\n*\n* This code is licensed under the MIT License. "
  },
  {
    "path": "detect-osxversion.sh",
    "chars": 55,
    "preview": "#! /bin/bash -e\n\nuname -r | perl -pe 's/(.*?)\\..*/\\1/'\n"
  },
  {
    "path": "detect-platform.sh",
    "chars": 101,
    "preview": "#! /bin/bash -e\n\nPLATFORM=linux\nif [ \"$(uname)\" == \"Darwin\" ]\nthen\n  PLATFORM=mac\nfi\n\necho $PLATFORM\n"
  },
  {
    "path": "determine-cmakegenerator.sh",
    "chars": 248,
    "preview": "#! /bin/bash -e\n\nif [ $# -ne 1 ]\nthen\n  echo \"Usage: determine-cmakegenerator.sh {11|12|14|15}\"\n  exit\nfi\n\nCMAKE_GENERAT"
  },
  {
    "path": "determine-vstoolsetstring.sh",
    "chars": 213,
    "preview": "#! /bin/bash -e\n\nif [ $# -ne 1 ]\nthen\n  echo \"Usage: determine-vstoolsetstring.sh {11|12|14|15}\"\n  exit\nfi\n\nVS_TOOLSET_S"
  },
  {
    "path": "helpers/GL/freeglut.h",
    "chars": 681,
    "preview": "#ifndef  __FREEGLUT_H__\n#define  __FREEGLUT_H__\n\n/*\n * freeglut.h\n *\n * The freeglut library include file\n *\n * THE SOFT"
  },
  {
    "path": "helpers/GL/freeglut_ext.h",
    "chars": 4465,
    "preview": "#ifndef  __FREEGLUT_EXT_H__\n#define  __FREEGLUT_EXT_H__\n\n/*\n * freeglut_ext.h\n *\n * The non-GLUT-compatible extensions t"
  },
  {
    "path": "helpers/GL/freeglut_std.h",
    "chars": 23494,
    "preview": "#ifndef  __FREEGLUT_STD_H__\n#define  __FREEGLUT_STD_H__\n\n/*\n * freeglut_std.h\n *\n * The GLUT-compatible part of the free"
  },
  {
    "path": "helpers/GL/glew.h",
    "chars": 764749,
    "preview": "/*\n** The OpenGL Extension Wrangler Library\n** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>\n** Copyright"
  },
  {
    "path": "helpers/GL/glext.h",
    "chars": 378865,
    "preview": "#ifndef __glext_h_\n#define __glext_h_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n    /************************************"
  },
  {
    "path": "helpers/GL/glut.h",
    "chars": 22510,
    "preview": "#ifndef __glut_h__\n#define __glut_h__\n\n/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */\n\n/* This program is "
  },
  {
    "path": "helpers/GL/glxew.h",
    "chars": 43620,
    "preview": "/*\n** The OpenGL Extension Wrangler Library\n** Copyright (C) 2002-2006, Milan Ikits <milan ikits[]ieee org>\n** Copyright"
  },
  {
    "path": "helpers/GL/glxext.h",
    "chars": 32889,
    "preview": "#ifndef __glxext_h_\n#define __glxext_h_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n    /*\n    ** License Applicability. Ex"
  },
  {
    "path": "helpers/GL/wglew.h",
    "chars": 41261,
    "preview": "/*\n** The OpenGL Extension Wrangler Library\n** Copyright (C) 2002-2006, Milan Ikits <milan ikits[]ieee org>\n** Copyright"
  },
  {
    "path": "helpers/cuda_drvapi_dynlink.c",
    "chars": 20872,
    "preview": "/**\n * Copyright 1993-2013 NVIDIA Corporation.  All rights reserved.\n *\n * Please refer to the NVIDIA end user license a"
  },
  {
    "path": "helpers/drvapi_error_string.h",
    "chars": 11015,
    "preview": "/*\n * Copyright 1993-2013 NVIDIA Corporation.  All rights reserved.\n *\n * Please refer to the NVIDIA end user license ag"
  },
  {
    "path": "helpers/dynlink/cuda_drvapi_dynlink.h",
    "chars": 737,
    "preview": "/**\n * Copyright 1993-2013 NVIDIA Corporation.  All rights reserved.\n *\n * Please refer to the NVIDIA end user license a"
  },
  {
    "path": "helpers/dynlink/cuda_drvapi_dynlink_cuda.h",
    "chars": 76136,
    "preview": "/**\n * Copyright 1993-2013 NVIDIA Corporation.  All rights reserved.\n *\n * Please refer to the NVIDIA end user license a"
  }
]

// ... and 641 more files (download for full content)

About this extraction

This page contains the full source code of the torrvision/spaint GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 841 files (12.1 MB), approximately 3.2M tokens, and a symbol index with 1891 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!