diff --git a/.github/actions/coverage-ci/action.yml b/.github/actions/coverage-ci/action.yml index fd4fddd381..6d0ecd4d0e 100644 --- a/.github/actions/coverage-ci/action.yml +++ b/.github/actions/coverage-ci/action.yml @@ -26,6 +26,9 @@ inputs: openvdb_version: description: 'Version of openvdb to build' required: false + pdal_version: + description: 'Version of PDAL to build' + required: false usd_version: description: 'Version of usd to build' required: false @@ -60,6 +63,7 @@ runs: occt_version: ${{inputs.occt_version}} openexr_version: ${{inputs.openexr_version}} openvdb_version: ${{inputs.openvdb_version}} + pdal_version: ${{inputs.pdal_version}} usd_version: ${{inputs.usd_version}} - name: Install VTK dependency @@ -68,6 +72,7 @@ runs: vtk_version: ${{inputs.vtk_version}} raytracing_label: raytracing openvdb_version: ${{inputs.openvdb_version}} + pdal_version: ${{inputs.pdal_version}} # coverage build is done in source as it seems to be required for codecov # CMAKE_MODULE_PATH is required because of @@ -83,7 +88,7 @@ runs: -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON - -DCMAKE_MODULE_PATH=$(pwd)/../dependencies/install/lib/cmake/OpenVDB/ + -DCMAKE_MODULE_PATH=$(pwd)/../dependencies/install/lib/cmake/OpenVDB/:$(pwd)/../dependencies/install/lib/cmake/PDAL/ -DCMAKE_PREFIX_PATH:PATH=$(pwd)/../dependencies/install/ -DF3D_COVERAGE=ON -DF3D_MODULE_EXR=ON @@ -96,6 +101,7 @@ runs: -DF3D_PLUGIN_BUILD_OCCT=ON -DF3D_PLUGIN_BUILD_USD=ON -DF3D_PLUGIN_BUILD_VDB=ON + -DF3D_PLUGIN_BUILD_PDAL=ON -DF3D_STRICT_BUILD=ON -DF3D_TESTING_ENABLE_EGL_TESTS=ON -DF3D_TESTING_ENABLE_EXTERNAL_GLFW=ON diff --git a/.github/actions/gdal-install-dep/action.yml b/.github/actions/gdal-install-dep/action.yml new file mode 100644 index 0000000000..2148e01d6b --- /dev/null +++ b/.github/actions/gdal-install-dep/action.yml @@ -0,0 +1,86 @@ +name: 'Install GDAL Dependency' +description: 'Install GDAL Dependency using cache when possible' +inputs: + cpu: + description: 'CPU architecture to build for' + required: false + default: 'x86_64' + +runs: + using: "composite" + steps: + + - name: Cache GDAL + id: cache-gdal + uses: actions/cache/restore@v4 + with: + path: dependencies/gdal_install + key: gdal-v3.8.0-${{runner.os}}-${{inputs.cpu}}-0 + + # Dependents: pdal, proj + - name: Install PROJ Dependency + if: steps.cache-gdal.outputs.cache-hit != 'true' + uses: ./source/.github/actions/proj-install-dep + with: + cpu: ${{ inputs.cpu }} + + - name: Checkout GDAL + if: steps.cache-gdal.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: OSGeo/gdal + path: './dependencies/gdal' + ref: v3.8.0 + + - name: Setup GDAL + if: steps.cache-gdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies + shell: bash + run: | + mkdir gdal_build + mkdir gdal_install + + - name: Configure GDAL + if: steps.cache-gdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/gdal_build + shell: bash + run: > + cmake ../gdal + -DBUILD_SHARED_LIBS=ON + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=../gdal_install + -DGDAL_USE_EXTERNAL_LIBS=ON + -DGDAL_ENABLE_DRIVER_GPKG=ON + -DGDAL_ENABLE_DRIVER_TIFF=ON + -DGDAL_ENABLE_DRIVER_NETCDF=OFF + -DGDAL_ENABLE_DRIVER_POSTGIS=OFF + -DGDAL_ENABLE_DRIVER_SHP=ON + -DGDAL_ENABLE_DRIVER_VRT=ON + -DGDAL_ENABLE_DRIVER_PDF=OFF + -DGDAL_ENABLE_DRIVER_OPENJPEG=OFF + -DGDAL_ENABLE_DRIVER_JPEG=ON + -DGDAL_ENABLE_DRIVER_PNG=ON + -DGDAL_USE_ZLIB=ON + -DGDAL_USE_LZMA=ON + -DGDAL_USE_ZSTD=ON + -DCMAKE_PREFIX_PATH:PATH=$(pwd)/../install/ + ${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0' || null }} + ${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }} + + - name: Build GDAL + if: steps.cache-gdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/gdal_build + shell: bash + run: cmake --build . --parallel 2 --target install --config Release + + - name: Copy to install + working-directory: ${{github.workspace}}/dependencies/gdal_install + shell: bash + run: cp -r ./* ../install/ + + - name: Save cache + if: steps.cache-gdal.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + key: ${{ steps.cache-gdal.outputs.cache-primary-key }} + path: dependencies/gdal_install diff --git a/.github/actions/generic-dependencies/action.yml b/.github/actions/generic-dependencies/action.yml index 0e4a77670c..fff0bb855b 100644 --- a/.github/actions/generic-dependencies/action.yml +++ b/.github/actions/generic-dependencies/action.yml @@ -31,6 +31,9 @@ inputs: openvdb_version: description: 'Version of openvdb to build' required: false + pdal_version: + description: 'Version of PDAL to build' + required: false pybind11_version: description: 'Version of pybind11 to build' required: false @@ -55,6 +58,7 @@ runs: with: cpu: ${{inputs.cpu}} openvdb_version: ${{inputs.openvdb_version}} + pdal_version: ${{inputs.pdal_version}} - name: Install Raytracing Dependencies if: inputs.raytracing_label == 'raytracing' diff --git a/.github/actions/pdal-install-dep/action.yml b/.github/actions/pdal-install-dep/action.yml new file mode 100644 index 0000000000..167ee423fd --- /dev/null +++ b/.github/actions/pdal-install-dep/action.yml @@ -0,0 +1,85 @@ +name: 'Install PDAL Dependency' +description: 'Install PDAL Dependency using cache when possible' +inputs: + cpu: + description: 'CPU architecture to build for' + required: false + default: 'x86_64' + version: + description: 'Version of PDAL to build' + required: true + +runs: + using: "composite" + steps: + + - name: Check required inputs + shell: bash + run: | + [[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; } + + - name: Cache PDAL + id: cache-pdal + uses: actions/cache/restore@v4 + with: + path: dependencies/pdal_install + key: pdal-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-0 + + # Dependents (not version): vtk + - name: Checkout PDAL + if: steps.cache-pdal.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: PDAL/PDAL + path: './dependencies/pdal' + ref: ${{inputs.version}} + + - name: Setup PDAL + if: steps.cache-pdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies + shell: bash + run: | + mkdir pdal_build + mkdir pdal_install + + - name: Configure PDAL + if: steps.cache-pdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/pdal_build + shell: bash + run: > + cmake ../pdal + -DBUILD_SHARED_LIBS=ON + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_CXX_STANDARD=17 + -DCMAKE_CXX_STANDARD_REQUIRED=ON + -DCMAKE_CXX_EXTENSIONS=OFF + -DCMAKE_INSTALL_LIBDIR:PATH=lib + -DCMAKE_INSTALL_PREFIX=../pdal_install + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DCMAKE_PREFIX_PATH:PATH=$(pwd)/../install/ + -DWITH_TESTS=OFF + -DWITH_COMPLETION=OFF + -DWITH_LASZIP=ON + -DWITH_ZSTD=ON + -DWITH_LZMA=ON + -DWITH_GDAL=ON + ${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0' || null }} + ${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }} + + - name: Build PDAL + if: steps.cache-pdal.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/pdal_build + shell: bash + run: cmake --build . --parallel 2 --target install --config Release + + - name: Copy to install + working-directory: ${{github.workspace}}/dependencies/pdal_install + shell: bash + run: cp -r ./* ../install/ + + - name: Save cache + if: steps.cache-pdal.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + key: ${{ steps.cache-pdal.outputs.cache-primary-key }} + path: dependencies/pdal_install diff --git a/.github/actions/proj-install-dep/action.yml b/.github/actions/proj-install-dep/action.yml new file mode 100644 index 0000000000..cbf6223421 --- /dev/null +++ b/.github/actions/proj-install-dep/action.yml @@ -0,0 +1,88 @@ +name: 'Install PROJ Dependency' +description: 'Install PROJ Dependency using cache when possible' +inputs: + cpu: + description: 'CPU architecture to build for' + required: false + default: 'x86_64' + +runs: + using: "composite" + steps: + + - name: Cache PROJ + id: cache-proj + uses: actions/cache/restore@v4 + with: + path: dependencies/proj_install + key: proj-9.4.0-${{runner.os}}-${{inputs.cpu}}-1 + + - name: Install SQLite3 dependencies + if: steps.cache-proj.outputs.cache-hit != 'true' + shell: bash + run: | + if [[ "${{runner.os}}" == "Linux" ]]; then + echo "==> Starting installation of SQLite3 and related dependencies on Linux" + sudo apt-get update + sudo apt-get install -y ccache cmake g++ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev + echo "==> Finished installing SQLite3 dependencies on Linux" + elif [[ "${{runner.os}}" == "macOS" ]]; then + echo "==> Starting installation of SQLite3 and related dependencies on macOS" + brew update + brew install cmake ccache sqlite3 libtiff libcurl + echo "==> Finished installing SQLite3 dependencies on macOS" + elif [[ "${{runner.os}}" == "Windows" ]]; then + echo "==> Starting installation of SQLite3 and related dependencies on Windows" + vcpkg install sqlite3[core,tool] tiff curl --triplet=${{ env.ARCH }}-windows + echo "==> Finished installing SQLite3 dependencies on Windows" + fi + + + # Dependents: gdal + - name: Checkout PROJ + if: steps.cache-proj.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: OSGeo/PROJ + path: './dependencies/proj' + ref: 9.4.0 + + - name: Setup PROJ + if: steps.cache-proj.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies + shell: bash + run: | + mkdir proj_build + mkdir proj_install + + - name: Configure PROJ + if: steps.cache-proj.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/proj_build + shell: bash + run: > + cmake ../proj + -DBUILD_SHARED_LIBS=ON + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=../proj_install + -DCMAKE_PREFIX_PATH=$(pwd)/../install + -DBUILD_TESTING=OFF + ${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0' || '' }} + ${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || '' }} + + - name: Build PROJ + if: steps.cache-proj.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies/proj_build + shell: bash + run: cmake --build . --parallel 2 --target install --config Release + + - name: Copy to install + working-directory: ${{github.workspace}}/dependencies/proj_install + shell: bash + run: cp -r ./* ../install/ + + - name: Save cache + if: steps.cache-proj.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + key: ${{ steps.cache-proj.outputs.cache-primary-key }} + path: dependencies/proj_install diff --git a/.github/actions/sqlite-install-dep/action.yml b/.github/actions/sqlite-install-dep/action.yml new file mode 100644 index 0000000000..7ca44e9e52 --- /dev/null +++ b/.github/actions/sqlite-install-dep/action.yml @@ -0,0 +1,76 @@ +name: 'Install SQLite Dependency' +description: 'Install SQLite Dependency using cache when possible' +inputs: + cpu: + description: 'CPU architecture to build for' + required: false + default: 'x86_64' + +runs: + using: "composite" + steps: + + - name: Cache SQLite + id: cache-sqlite + uses: actions/cache/restore@v4 + with: + path: dependencies/sqlite_install + key: sqlite-v3.39.2-${{runner.os}}-${{inputs.cpu}}-1 + + - name: Checkout SQLite + if: steps.cache-sqlite.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: sqlite/sqlite + path: './dependencies/sqlite' + ref: version-3.39.2 + + - name: Setup SQLite + if: steps.cache-sqlite.outputs.cache-hit != 'true' + working-directory: ${{github.workspace}}/dependencies + shell: bash + run: | + mkdir sqlite_install + + - name: Configure SQLite on Unix + if: steps.cache-sqlite.outputs.cache-hit != 'true' && runner.os != 'Windows' + working-directory: ${{github.workspace}}/dependencies/sqlite + shell: bash + run: | + ./configure --prefix=${{github.workspace}}/dependencies/sqlite_install + + - name: Build and Install SQLite on Unix + if: steps.cache-sqlite.outputs.cache-hit != 'true' && runner.os != 'Windows' + working-directory: ${{github.workspace}}/dependencies/sqlite + shell: bash + run: | + make + make install + + - name: Configure SQLite on Windows + if: steps.cache-sqlite.outputs.cache-hit != 'true' && runner.os == 'Windows' + working-directory: ${{github.workspace}}/dependencies/sqlite + shell: bash + run: | + mkdir -p sqlite_install + cd sqlite_install + cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX=../sqlite_install .. + + - name: Build and Install SQLite on Windows + if: steps.cache-sqlite.outputs.cache-hit != 'true' && runner.os == 'Windows' + working-directory: ${{github.workspace}}/dependencies/sqlite/sqlite_install + shell: bash + run: | + cmake --build . --config Release --target INSTALL + + - name: Copy to install + working-directory: ${{github.workspace}}/dependencies/sqlite_install + shell: bash + run: cp -r ./* ../install/ + + - name: Save cache + if: steps.cache-sqlite.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + key: ${{ steps.cache-sqlite.outputs.cache-primary-key }} + path: dependencies/sqlite_install \ No newline at end of file diff --git a/.github/actions/static-analysis-ci/action.yml b/.github/actions/static-analysis-ci/action.yml index 4aa1be39f8..87b1e0b8a1 100644 --- a/.github/actions/static-analysis-ci/action.yml +++ b/.github/actions/static-analysis-ci/action.yml @@ -22,6 +22,9 @@ inputs: openvdb_version: description: 'Version of openvdb to build' required: true + pdal_version: + description: 'Version of PDAL to build' + required: true usd_version: description: 'Version of usd to build' required: true @@ -56,6 +59,7 @@ runs: occt_version: ${{inputs.occt_version}} openexr_version: ${{inputs.openexr_version}} openvdb_version: ${{inputs.openvdb_version}} + pdal_version: ${{inputs.pdal_version}} usd_version: ${{inputs.usd_version}} - name: Install VTK dependency @@ -63,6 +67,7 @@ runs: with: vtk_version: ${{inputs.vtk_version}} openvdb_version: ${{inputs.openvdb_version}} + pdal_version: ${{inputs.pdal_version}} - name: Setup Build Directory shell: bash @@ -91,6 +96,7 @@ runs: -DF3D_PLUGIN_BUILD_OCCT=ON -DF3D_PLUGIN_BUILD_USD=ON -DF3D_PLUGIN_BUILD_VDB=ON + -DF3D_PLUGIN_BUILD_PDAL=ON -DF3D_STRICT_BUILD=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON diff --git a/.github/actions/vtk-dependencies/action.yml b/.github/actions/vtk-dependencies/action.yml index 958fb57c15..865122a206 100644 --- a/.github/actions/vtk-dependencies/action.yml +++ b/.github/actions/vtk-dependencies/action.yml @@ -12,6 +12,9 @@ inputs: openvdb_version: description: 'Version of openvdb to build' required: false + pdal_version: + description: 'Version of PDAL to build' + required: false runs: using: "composite" @@ -39,9 +42,21 @@ runs: with: cpu: ${{inputs.cpu}} + - name: Install GDAL + uses: ./.actions/gdal-install-dep + with: + cpu: ${{inputs.cpu}} + - name: Install OpenVDB if: inputs.openvdb_version != '' uses: ./.actions/openvdb-install-dep with: cpu: ${{inputs.cpu}} version: ${{inputs.openvdb_version}} + + - name: Install PDAL + if: inputs.pdal_version != '' + uses: ./.actions/pdal-install-dep + with: + cpu: ${{inputs.cpu}} + version: ${{inputs.pdal_version}} diff --git a/.github/actions/vtk-install-dep/action.yml b/.github/actions/vtk-install-dep/action.yml index 1dbbd66da6..b9bc40bb95 100644 --- a/.github/actions/vtk-install-dep/action.yml +++ b/.github/actions/vtk-install-dep/action.yml @@ -13,7 +13,10 @@ inputs: required: false default: 'x86_64' openvdb_version: - description: 'Version of openvdb to build against' + description: 'Version of OpenVDB to build against' + required: false + pdal_version: + description: 'Version of PDAL to build against' required: false runs: @@ -30,7 +33,7 @@ runs: uses: actions/cache/restore@v4 with: path: dependencies/vtk_install - key: vtk-${{ inputs.vtk_version }}-openvdb-${{inputs.openvdb_version}}-${{runner.os}}-${{inputs.raytracing_label}}-${{inputs.cpu}}-8 + key: vtk-${{ inputs.vtk_version }}-openvdb-${{inputs.openvdb_version}}-pdal-${{inputs.pdal_version}}-${{runner.os}}-${{inputs.raytracing_label}}-${{inputs.cpu}}-9 - name: Setup VTK if: steps.cache-vtk.outputs.cache-hit != 'true' @@ -76,6 +79,7 @@ runs: -DCMAKE_INSTALL_PREFIX:PATH=../vtk_install -DCMAKE_PREFIX_PATH:PATH=$(pwd)/../install/ -DOpenVDB_CMAKE_PATH=${{ inputs.openvdb_version != '' && '$(pwd)/../install/lib/cmake/OpenVDB/' || '' }} + -DPDAL_CMAKE_PATH=${{ inputs.pdal_version != '' && '$(pwd)/../install/lib/cmake/PDAL/' || '' }} -DVTKOSPRAY_ENABLE_DENOISER=ON -DVTK_BUILD_TESTING=OFF -DVTK_DEBUG_LEAKS=ON @@ -94,6 +98,7 @@ runs: -DVTK_MODULE_ENABLE_VTK_IOImage=YES -DVTK_MODULE_ENABLE_VTK_IOImport=YES -DVTK_MODULE_ENABLE_VTK_IOOpenVDB=${{ inputs.openvdb_version != '' && 'YES' || 'DEFAULT' }} + -DVTK_MODULE_ENABLE_VTK_IOPDAL=${{ inputs.pdal_version != '' && 'YES' || 'DEFAULT' }} -DVTK_MODULE_ENABLE_VTK_IOPLY=YES -DVTK_MODULE_ENABLE_VTK_IOParallel=YES -DVTK_MODULE_ENABLE_VTK_IOXML=YES diff --git a/.github/actions/zlib-install-dep/action.yml b/.github/actions/zlib-install-dep/action.yml index 4ed366a94a..b05c0226f7 100644 --- a/.github/actions/zlib-install-dep/action.yml +++ b/.github/actions/zlib-install-dep/action.yml @@ -17,7 +17,7 @@ runs: path: dependencies/zlib_install key: zlib-v1.3.1-${{runner.os}}-${{inputs.cpu}}-4 - # Dependents: blosc openvdb vtk + # Dependents: blosc openvdb pdal vtk - name: Checkout zlib if: steps.cache-zlib.outputs.cache-hit != 'true' uses: actions/checkout@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd6436ea73..38b476abb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,6 +35,8 @@ jobs: openexr_min_version: ${{ steps.set_default_versions.outputs.openexr_min_version }} openvdb_version: ${{ steps.set_default_versions.outputs.openvdb_version }} openvdb_min_version: ${{ steps.set_default_versions.outputs.openvdb_min_version }} + pdal_version: ${{ steps.set_default_versions.outputs.pdal_version }} + pdal_min_version: ${{ steps.set_default_versions.outputs.pdal_min_version }} pybind11_version: ${{ steps.set_default_versions.outputs.pybind11_version }} pybind11_min_version: ${{ steps.set_default_versions.outputs.pybind11_min_version }} python_version: ${{ steps.set_default_versions.outputs.python_version }} @@ -105,6 +107,7 @@ jobs: - occt_version: ${{needs.default_versions.outputs.occt_version}} - openexr_version: ${{needs.default_versions.outputs.openexr_version}} - openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + - pdal_version: ${{needs.default_versions.outputs.pdal_version}} - pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} - usd_version: ${{needs.default_versions.outputs.usd_version}} - build_type: mindeps @@ -116,6 +119,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_min_version}} openexr_version: ${{needs.default_versions.outputs.openexr_min_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_min_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_min_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_min_version}} usd_version: ${{needs.default_versions.outputs.usd_min_version}} @@ -141,6 +145,7 @@ jobs: occt_version: ${{matrix.occt_version}} openexr_version: ${{matrix.openexr_version}} openvdb_version: ${{matrix.openvdb_version}} + pdal_version: ${{matrix.pdal_version}} pybind11_version: ${{matrix.pybind11_version}} usd_version: ${{matrix.usd_version}} @@ -183,6 +188,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -212,6 +218,7 @@ jobs: - occt_version: ${{needs.default_versions.outputs.occt_version}} - openexr_version: ${{needs.default_versions.outputs.openexr_version}} - openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + - pdal_version: ${{needs.default_versions.outputs.pdal_version}} - pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} - python_version: ${{needs.default_versions.outputs.python_version}} - usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -229,6 +236,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -246,6 +254,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -263,6 +272,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -287,6 +297,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -304,6 +315,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_min_version}} openexr_version: ${{needs.default_versions.outputs.openexr_min_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_min_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_min_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_min_version}} python_version: ${{needs.default_versions.outputs.python_min_version}} usd_version: ${{needs.default_versions.outputs.usd_min_version}} @@ -340,6 +352,7 @@ jobs: occt_version: ${{matrix.occt_version}} openexr_version: ${{matrix.openexr_version}} openvdb_version: ${{matrix.openvdb_version}} + pdal_version: ${{matrix.pdal_version}} pybind11_version: ${{matrix.pybind11_version}} python_version: ${{matrix.python_version}} usd_version: ${{matrix.usd_version}} @@ -379,6 +392,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -429,6 +443,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -483,6 +498,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} vtk_version: ${{needs.default_versions.outputs.vtk_commit_sha}} @@ -522,6 +538,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} vtk_version: ${{needs.default_versions.outputs.vtk_commit_sha}} @@ -606,6 +623,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} vtk_version: ${{needs.default_versions.outputs.vtk_commit_sha}} diff --git a/.github/workflows/nightly_vtk_master.yml b/.github/workflows/nightly_vtk_master.yml index 77c73154cf..fb8cdf8c47 100644 --- a/.github/workflows/nightly_vtk_master.yml +++ b/.github/workflows/nightly_vtk_master.yml @@ -54,6 +54,8 @@ jobs: openexr_min_version: ${{ steps.set_default_versions.outputs.openexr_min_version }} openvdb_version: ${{ steps.set_default_versions.outputs.openvdb_version }} openvdb_min_version: ${{ steps.set_default_versions.outputs.openvdb_min_version }} + pdal_version: ${{ steps.set_default_versions.outputs.pdal_version }} + pdal_min_version: ${{ steps.set_default_versions.outputs.pdal_min_version }} pybind11_version: ${{ steps.set_default_versions.outputs.pybind11_version }} pybind11_min_version: ${{ steps.set_default_versions.outputs.pybind11_min_version }} python_version: ${{ steps.set_default_versions.outputs.python_version }} @@ -136,6 +138,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -185,6 +188,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -221,6 +225,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -257,6 +262,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} @@ -307,6 +313,7 @@ jobs: occt_version: ${{needs.default_versions.outputs.occt_version}} openexr_version: ${{needs.default_versions.outputs.openexr_version}} openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} + pdal_version: ${{needs.default_versions.outputs.pdal_version}} pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} python_version: ${{needs.default_versions.outputs.python_version}} usd_version: ${{needs.default_versions.outputs.usd_version}} diff --git a/.github/workflows/versions.json b/.github/workflows/versions.json index 6680671ed3..147b1c8e0e 100644 --- a/.github/workflows/versions.json +++ b/.github/workflows/versions.json @@ -13,6 +13,7 @@ "occt": "V7_8_1", "openexr": "v3.3.2", "openvdb": "v12.0.0", + "pdal": "2.8.4", "pybind11": "v2.13.6", "python": "3.11", "usd": "v24.11", @@ -25,6 +26,7 @@ "occt": "V7_6_3", "openexr": "v3.0.1", "openvdb": "v12.0.0", + "pdal": "2.6.0", "pybind11": "v2.9.2", "python": "3.9", "usd": "v24.08", diff --git a/CMakeLists.txt b/CMakeLists.txt index d39afd9103..69c2bc6140 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,7 @@ find_package(VTK 9.2.6 REQUIRED opengl IOExodus IOOpenVDB + IOPDAL RenderingRayTracing) message(STATUS "VTK ${VTK_VERSION} found") @@ -324,3 +325,4 @@ f3d_report_variable(F3D_PLUGIN_BUILD_EXODUS) f3d_report_variable(F3D_PLUGIN_BUILD_OCCT) f3d_report_variable(F3D_PLUGIN_BUILD_USD) f3d_report_variable(F3D_PLUGIN_BUILD_VDB) +f3d_report_variable(F3D_PLUGIN_BUILD_PDAL) diff --git a/application/testing/CMakeLists.txt b/application/testing/CMakeLists.txt index adaa5027d0..092c70f6eb 100644 --- a/application/testing/CMakeLists.txt +++ b/application/testing/CMakeLists.txt @@ -816,6 +816,33 @@ if(F3D_PLUGIN_BUILD_VDB) endif() endif () +if(F3D_PLUGIN_BUILD_VDB) + # .las files + f3d_test(NAME TestPDALReadLAS1 DATA thin-2.las ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadLAS2 DATA 0450.las ARGS --load-plugins=pdal LONG_TIMEOUT) + f3d_test(NAME TestPDALReadLAS3 DATA tile135.las ARGS --load-plugins=pdal LONG_TIMEOUT) + f3d_test(NAME TestPDALReadLASVolume DATA thin-2.las ARGS --load-plugins=pdal --volume --volume-inverse) + f3d_test(NAME TestPDALReadLASPoints DATA thin-2.las ARGS --load-plugins=pdal -o) + + # .laz files + f3d_test(NAME TestPDALReadLAZ1 DATA autzen_trim.laz ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadLAZ2 DATA laszip-generated.laz ARGS --load-plugins=pdal) + + # .pcd files + f3d_test(NAME TestPDALReadPCD1 DATA autzen-utm.pcd ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadPCD2 DATA utm17_space.pcd ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadPCD3 DATA image_0002.pcd ARGS --load-plugins=pdal) + + # .ptx files + f3d_test(NAME TestPDALReadPTX1 DATA 1.2-with-color.ptx ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadPTX2 DATA pump.ptx ARGS --load-plugins=pdal LONG_TIMEOUT) + + # .pts files + f3d_test(NAME TestPDALReadPTS1 DATA autzen.pts ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadPTS2 DATA bunny_8.pts ARGS --load-plugins=pdal) + f3d_test(NAME TestPDALReadPTS3 DATA bunnyData.pts ARGS --load-plugins=pdal) +endif () + if(F3D_PLUGIN_BUILD_ALEMBIC AND F3D_PLUGIN_BUILD_ASSIMP) f3d_test(NAME TestMultiplePluginsLoad DATA cow.vtp ARGS --load-plugins=assimp,alembic NO_BASELINE REGEXP_FAIL "Plugin failed to load") endif() diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 3b0a5b54f2..08106db6d2 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -40,3 +40,7 @@ if (F3D_PLUGIN_BUILD_VDB) message(FATAL_ERROR "VDB plugin requires VTK >= 9.2.20220714") endif() endif() + +if (F3D_PLUGIN_BUILD_PDAL) + add_subdirectory(pdal) +endif() diff --git a/plugins/pdal/CMakeLists.txt b/plugins/pdal/CMakeLists.txt new file mode 100644 index 0000000000..f624f52987 --- /dev/null +++ b/plugins/pdal/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.21) + +project(f3d-plugin-pdal) + +include(GNUInstallDirs) + +# Check if the plugin is built externally +if(PROJECT_IS_TOP_LEVEL) + find_package(f3d REQUIRED COMPONENTS pluginsdk) +else() + include(f3dPlugin) +endif() + +f3d_plugin_init() + +f3d_plugin_declare_reader( + NAME LAS + EXTENSIONS las laz + MIMETYPES application/vnd.las + VTK_READER vtkPDALReader + FORMAT_DESCRIPTION "Lidar Data Exchange Format" +) + +f3d_plugin_declare_reader( + NAME PTS + EXTENSIONS pts + MIMETYPES application/vnd.pts + VTK_READER vtkPDALReader + FORMAT_DESCRIPTION "Laser scan plain data format" +) + +f3d_plugin_declare_reader( + NAME PTX + EXTENSIONS ptx + MIMETYPES application/vnd.ptx + VTK_READER vtkPDALReader + FORMAT_DESCRIPTION "ptx plain text data format" +) + +f3d_plugin_declare_reader( + NAME PCD + EXTENSIONS pcd + MIMETYPES application/vnd.pcd + VTK_READER vtkPDALReader + FORMAT_DESCRIPTION "point cloud data" +) + +f3d_plugin_build( + NAME pdal + VERSION 1.0 + DESCRIPTION "VTK PDAL support" + VTK_MODULES IOPDAL + MIMETYPE_XML_FILES "${CMAKE_CURRENT_SOURCE_DIR}/f3d-pdal-formats.xml" + CONFIGURATION_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/configs/config.d" "${CMAKE_CURRENT_SOURCE_DIR}/configs/thumbnail.d" + FREEDESKTOP +) diff --git a/plugins/pdal/configs/config.d/10_pdal.json b/plugins/pdal/configs/config.d/10_pdal.json new file mode 100644 index 0000000000..273f57a4b5 --- /dev/null +++ b/plugins/pdal/configs/config.d/10_pdal.json @@ -0,0 +1,8 @@ +[ + { + "match": ".*(las|laz|pts|ptx|pcd)", + "options": { + "load-plugins": "pdal" + } + } +] diff --git a/plugins/pdal/configs/thumbnail.d/10_pdal.json b/plugins/pdal/configs/thumbnail.d/10_pdal.json new file mode 100644 index 0000000000..273f57a4b5 --- /dev/null +++ b/plugins/pdal/configs/thumbnail.d/10_pdal.json @@ -0,0 +1,8 @@ +[ + { + "match": ".*(las|laz|pts|ptx|pcd)", + "options": { + "load-plugins": "pdal" + } + } +] diff --git a/plugins/pdal/f3d-pdal-formats.xml b/plugins/pdal/f3d-pdal-formats.xml new file mode 100644 index 0000000000..6dd561dfaf --- /dev/null +++ b/plugins/pdal/f3d-pdal-formats.xml @@ -0,0 +1,23 @@ + + + + LAS file + + + + Compressed LAS file + + + + Laser scan plain data format + + + + ptx plain text data format + + + + point cloud data + + + diff --git a/testing/baselines/TestPDALReadLAS.png b/testing/baselines/TestPDALReadLAS.png new file mode 100644 index 0000000000..80965fb9c8 --- /dev/null +++ b/testing/baselines/TestPDALReadLAS.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3aaa361d254c391e42e404db0c00de26078dc179397b6e5d00924e08ac10c18 +size 1622 diff --git a/testing/baselines/TestPDALReadLAS1.png b/testing/baselines/TestPDALReadLAS1.png new file mode 100644 index 0000000000..80965fb9c8 --- /dev/null +++ b/testing/baselines/TestPDALReadLAS1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3aaa361d254c391e42e404db0c00de26078dc179397b6e5d00924e08ac10c18 +size 1622 diff --git a/testing/baselines/TestPDALReadLAS2.png b/testing/baselines/TestPDALReadLAS2.png new file mode 100644 index 0000000000..181394804e --- /dev/null +++ b/testing/baselines/TestPDALReadLAS2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12f33d99f61af99befb9e354755eded5f60ac74f03e898caa5cbe58a49df170e +size 1739 diff --git a/testing/baselines/TestPDALReadLAS3.png b/testing/baselines/TestPDALReadLAS3.png new file mode 100644 index 0000000000..7505aaa2d5 --- /dev/null +++ b/testing/baselines/TestPDALReadLAS3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86cd8eda8c7c6e02430b10fdf5dc2d2f4c86eaf02652cdfcd531f9835d5e6f7 +size 1063 diff --git a/testing/baselines/TestPDALReadLASPoints.png b/testing/baselines/TestPDALReadLASPoints.png new file mode 100644 index 0000000000..8e76f53279 --- /dev/null +++ b/testing/baselines/TestPDALReadLASPoints.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bc2e171404566cd12d33660ef232a6c35d3ff8cd77dc074575ac44792d957ee +size 124052 diff --git a/testing/baselines/TestPDALReadLASVolume.png b/testing/baselines/TestPDALReadLASVolume.png new file mode 100644 index 0000000000..2aafe74a2a --- /dev/null +++ b/testing/baselines/TestPDALReadLASVolume.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2312f21b34932ca416a6697ed289dd62e4a8018aaac3717180b6e19d1e8bbeb1 +size 913 diff --git a/testing/baselines/TestPDALReadLAZ1.png b/testing/baselines/TestPDALReadLAZ1.png new file mode 100644 index 0000000000..151dc4b797 --- /dev/null +++ b/testing/baselines/TestPDALReadLAZ1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:383719dc45105570c444a19d8326958851b494ffa3d8646ca50df6b109951904 +size 1489 diff --git a/testing/baselines/TestPDALReadLAZ2.png b/testing/baselines/TestPDALReadLAZ2.png new file mode 100644 index 0000000000..f3108ad368 --- /dev/null +++ b/testing/baselines/TestPDALReadLAZ2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19f4f9e57d07dd9267ccc98951c482da5a98cc9edc4525afd2c3afbb5cd4efd5 +size 3534 diff --git a/testing/baselines/TestPDALReadPCD1.png b/testing/baselines/TestPDALReadPCD1.png new file mode 100644 index 0000000000..a888ca684e --- /dev/null +++ b/testing/baselines/TestPDALReadPCD1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9ccec08c8f796ccafac8a2d9feb2dcf2477785c1d64cb7b11a4a8f38cb5366e +size 3526 diff --git a/testing/baselines/TestPDALReadPCD2.png b/testing/baselines/TestPDALReadPCD2.png new file mode 100644 index 0000000000..52d2a15575 --- /dev/null +++ b/testing/baselines/TestPDALReadPCD2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:418a985d20746abff04c56d33896877b419d3d88ccb7751ca4b9938c141b8757 +size 982 diff --git a/testing/baselines/TestPDALReadPCD3.png b/testing/baselines/TestPDALReadPCD3.png new file mode 100644 index 0000000000..1f147b5b89 --- /dev/null +++ b/testing/baselines/TestPDALReadPCD3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9d8e015aadc6e60534dc85ecb512c2c64a0533a8e5cd33dc05e27d5ca7507e7 +size 1659 diff --git a/testing/baselines/TestPDALReadPTS1.png b/testing/baselines/TestPDALReadPTS1.png new file mode 100644 index 0000000000..8a78ab4d4d --- /dev/null +++ b/testing/baselines/TestPDALReadPTS1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e98a4129f7972462a16d8e950a1170851164f18bc9418f4407e01f9493b38be +size 994 diff --git a/testing/baselines/TestPDALReadPTS2.png b/testing/baselines/TestPDALReadPTS2.png new file mode 100644 index 0000000000..b1a9a4bd9a --- /dev/null +++ b/testing/baselines/TestPDALReadPTS2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f563ed73851182825bd0dab20e61378f520bd75fefc5e4de4918de1f542b8a8 +size 1001 diff --git a/testing/baselines/TestPDALReadPTS3.png b/testing/baselines/TestPDALReadPTS3.png new file mode 100644 index 0000000000..adc3c45cc5 --- /dev/null +++ b/testing/baselines/TestPDALReadPTS3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fbced265737d17cd46b8a318e56ebc7ff62890c6e854dc310c66f321b17760a +size 1997 diff --git a/testing/baselines/TestPDALReadPTX.png b/testing/baselines/TestPDALReadPTX.png new file mode 100644 index 0000000000..f3108ad368 --- /dev/null +++ b/testing/baselines/TestPDALReadPTX.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19f4f9e57d07dd9267ccc98951c482da5a98cc9edc4525afd2c3afbb5cd4efd5 +size 3534 diff --git a/testing/baselines/TestPDALReadPTX1.png b/testing/baselines/TestPDALReadPTX1.png new file mode 100644 index 0000000000..f3108ad368 --- /dev/null +++ b/testing/baselines/TestPDALReadPTX1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19f4f9e57d07dd9267ccc98951c482da5a98cc9edc4525afd2c3afbb5cd4efd5 +size 3534 diff --git a/testing/baselines/TestPDALReadPTX2.png b/testing/baselines/TestPDALReadPTX2.png new file mode 100644 index 0000000000..3fa342582b --- /dev/null +++ b/testing/baselines/TestPDALReadPTX2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:057aa089df0bb698e877037fe24266dc0bd3cbbdb86ffb1c8f076ad16f94e6f7 +size 2044 diff --git a/testing/data/0450.las b/testing/data/0450.las new file mode 100644 index 0000000000..0953ed3c74 --- /dev/null +++ b/testing/data/0450.las @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9bea8e6402725f714d05dfb014e571a68152e2196ee7cdd834517e8f7c858fa +size 91882377 diff --git a/testing/data/1.2-with-color.ptx b/testing/data/1.2-with-color.ptx new file mode 100644 index 0000000000..63575c3fcb --- /dev/null +++ b/testing/data/1.2-with-color.ptx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0004b6280e08241721fecc26bd62b66d52c16e6048e1a2f4603953c92d604161 +size 62876 diff --git a/testing/data/autzen-utm.pcd b/testing/data/autzen-utm.pcd new file mode 100644 index 0000000000..2d58177e35 --- /dev/null +++ b/testing/data/autzen-utm.pcd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e65b94db472d887b1df7a6a06c26ad8bfd1f3b52575f89ccf7f80e293c4b28e +size 55748 diff --git a/testing/data/autzen.pts b/testing/data/autzen.pts new file mode 100644 index 0000000000..f7a08a0ef8 --- /dev/null +++ b/testing/data/autzen.pts @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49c28ced5b5f6471f801ad853ab48cff435bfb457a72bad3849ef6aa615df40b +size 557 diff --git a/testing/data/autzen_trim.laz b/testing/data/autzen_trim.laz new file mode 100644 index 0000000000..c5e69ae122 --- /dev/null +++ b/testing/data/autzen_trim.laz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75867b3e75cfc3c2e96da9f753c04c9fbaa6a59468dea13e2859f3109b38bd66 +size 603353 diff --git a/testing/data/bunnyData.pts b/testing/data/bunnyData.pts new file mode 100644 index 0000000000..4b32034eaa --- /dev/null +++ b/testing/data/bunnyData.pts @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bc55437d6c3a6b3fbf6e63e9f909a6ab9e0bf73cc43628e243d720a6e04d40f +size 880566 diff --git a/testing/data/bunny_8.pts b/testing/data/bunny_8.pts new file mode 100644 index 0000000000..c7767dd410 --- /dev/null +++ b/testing/data/bunny_8.pts @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aea57c14b5de927484f8a69517077389f71601329472d414e85ad76ab63e5851 +size 248 diff --git a/testing/data/image_0002.pcd b/testing/data/image_0002.pcd new file mode 100644 index 0000000000..79e2babc4a --- /dev/null +++ b/testing/data/image_0002.pcd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9f59921279d99c61f7a75b495ca9c3110ccc704e453d3482a43213075c83f03 +size 388501 diff --git a/testing/data/laszip-generated.laz b/testing/data/laszip-generated.laz new file mode 100644 index 0000000000..8e6f25b6f7 --- /dev/null +++ b/testing/data/laszip-generated.laz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94ab6a86596f9cc71c9cbf162d1b595d8326b1f3ed5e7c4ac0f48e77167cb8a6 +size 18219 diff --git a/testing/data/pump.ptx b/testing/data/pump.ptx new file mode 100644 index 0000000000..9e78f5df98 --- /dev/null +++ b/testing/data/pump.ptx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02fbb5f6d8978d068b6397a1a33bb18dda487f4ded7ee4ab06c7d595f6a538d4 +size 94464444 diff --git a/testing/data/thin-2.las b/testing/data/thin-2.las new file mode 100644 index 0000000000..2beace98ee --- /dev/null +++ b/testing/data/thin-2.las @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7bb67353a47b9ce4763cf5e604c91e180f2d37ed86d0450017d490834edf97 +size 181836 diff --git a/testing/data/tile135.las b/testing/data/tile135.las new file mode 100644 index 0000000000..a39d8a3b56 --- /dev/null +++ b/testing/data/tile135.las @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c849a09a636e0dc9dc57b8ac11897d7be3f11cbf978d188e44948f1a25e2664 +size 111597225 diff --git a/testing/data/utm17_space.pcd b/testing/data/utm17_space.pcd new file mode 100644 index 0000000000..48954405af --- /dev/null +++ b/testing/data/utm17_space.pcd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:580ff7ef5314387755234c132f5b1176ca886705ef31711aa33cf98edf5435c7 +size 416