├── .dockerignore
├── .github
└── workflows
│ └── main.yaml
├── .gitignore
├── .vscode
├── keybindings.json
├── launch.json
└── settings.json
├── CMakeLists.txt
├── Dockerfile
├── Dockerfile-aws
├── LICENSE
├── README.md
├── docs
└── example_display
│ ├── cpotree_1.6.potree
│ ├── cpotree_2.0.potree
│ ├── cpotree_2.0_v1.potree
│ ├── display_v1.html
│ ├── display_v2.html
│ └── libs
│ └── json5
│ ├── LICENSE.md
│ ├── README.md
│ └── json5.mjs
├── include
├── Area.h
├── Attributes.h
├── CPotree.h
├── CsvWriter.h
├── LasWriter.h
├── Node.h
├── PotreeLoader.h
├── PotreeWriter_v1.h
├── PotreeWriter_v2.h
├── Writer.h
├── filter.h
└── pmath.h
├── libs
├── arguments
│ └── Arguments.hpp
├── brotli
│ ├── BUILD
│ ├── CMakeLists.txt
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── Makefile
│ ├── Makefile.am
│ ├── README
│ ├── README.md
│ ├── WORKSPACE
│ ├── bootstrap
│ ├── c
│ │ ├── common
│ │ │ ├── constants.c
│ │ │ ├── constants.h
│ │ │ ├── context.c
│ │ │ ├── context.h
│ │ │ ├── dictionary.c
│ │ │ ├── dictionary.h
│ │ │ ├── platform.c
│ │ │ ├── platform.h
│ │ │ ├── transform.c
│ │ │ ├── transform.h
│ │ │ └── version.h
│ │ ├── dec
│ │ │ ├── bit_reader.c
│ │ │ ├── bit_reader.h
│ │ │ ├── decode.c
│ │ │ ├── huffman.c
│ │ │ ├── huffman.h
│ │ │ ├── prefix.h
│ │ │ ├── state.c
│ │ │ └── state.h
│ │ ├── enc
│ │ │ ├── backward_references.c
│ │ │ ├── backward_references.h
│ │ │ ├── backward_references_hq.c
│ │ │ ├── backward_references_hq.h
│ │ │ ├── backward_references_inc.h
│ │ │ ├── bit_cost.c
│ │ │ ├── bit_cost.h
│ │ │ ├── bit_cost_inc.h
│ │ │ ├── block_encoder_inc.h
│ │ │ ├── block_splitter.c
│ │ │ ├── block_splitter.h
│ │ │ ├── block_splitter_inc.h
│ │ │ ├── brotli_bit_stream.c
│ │ │ ├── brotli_bit_stream.h
│ │ │ ├── cluster.c
│ │ │ ├── cluster.h
│ │ │ ├── cluster_inc.h
│ │ │ ├── command.c
│ │ │ ├── command.h
│ │ │ ├── compress_fragment.c
│ │ │ ├── compress_fragment.h
│ │ │ ├── compress_fragment_two_pass.c
│ │ │ ├── compress_fragment_two_pass.h
│ │ │ ├── dictionary_hash.c
│ │ │ ├── dictionary_hash.h
│ │ │ ├── encode.c
│ │ │ ├── encoder_dict.c
│ │ │ ├── encoder_dict.h
│ │ │ ├── entropy_encode.c
│ │ │ ├── entropy_encode.h
│ │ │ ├── entropy_encode_static.h
│ │ │ ├── fast_log.c
│ │ │ ├── fast_log.h
│ │ │ ├── find_match_length.h
│ │ │ ├── hash.h
│ │ │ ├── hash_composite_inc.h
│ │ │ ├── hash_forgetful_chain_inc.h
│ │ │ ├── hash_longest_match64_inc.h
│ │ │ ├── hash_longest_match_inc.h
│ │ │ ├── hash_longest_match_quickly_inc.h
│ │ │ ├── hash_rolling_inc.h
│ │ │ ├── hash_to_binary_tree_inc.h
│ │ │ ├── histogram.c
│ │ │ ├── histogram.h
│ │ │ ├── histogram_inc.h
│ │ │ ├── literal_cost.c
│ │ │ ├── literal_cost.h
│ │ │ ├── memory.c
│ │ │ ├── memory.h
│ │ │ ├── metablock.c
│ │ │ ├── metablock.h
│ │ │ ├── metablock_inc.h
│ │ │ ├── params.h
│ │ │ ├── prefix.h
│ │ │ ├── quality.h
│ │ │ ├── ringbuffer.h
│ │ │ ├── static_dict.c
│ │ │ ├── static_dict.h
│ │ │ ├── static_dict_lut.h
│ │ │ ├── utf8_util.c
│ │ │ ├── utf8_util.h
│ │ │ └── write_bits.h
│ │ ├── include
│ │ │ └── brotli
│ │ │ │ ├── decode.h
│ │ │ │ ├── encode.h
│ │ │ │ ├── port.h
│ │ │ │ └── types.h
│ │ └── tools
│ │ │ ├── brotli.c
│ │ │ └── brotli.md
│ ├── compiler_config_setting.bzl
│ ├── configure
│ ├── configure-cmake
│ ├── configure.ac
│ ├── premake5.lua
│ ├── scripts
│ │ ├── libbrotlicommon.pc.in
│ │ ├── libbrotlidec.pc.in
│ │ ├── libbrotlienc.pc.in
│ │ └── sources.lst
│ ├── setup.cfg
│ └── setup.py
├── glm
│ ├── .gitignore
│ ├── copying.txt
│ ├── glm
│ │ ├── CMakeLists.txt
│ │ ├── common.hpp
│ │ ├── detail
│ │ │ ├── _features.hpp
│ │ │ ├── _fixes.hpp
│ │ │ ├── _noise.hpp
│ │ │ ├── _swizzle.hpp
│ │ │ ├── _swizzle_func.hpp
│ │ │ ├── _vectorize.hpp
│ │ │ ├── dummy.cpp
│ │ │ ├── func_common.hpp
│ │ │ ├── func_common.inl
│ │ │ ├── func_common_simd.inl
│ │ │ ├── func_exponential.hpp
│ │ │ ├── func_exponential.inl
│ │ │ ├── func_exponential_simd.inl
│ │ │ ├── func_geometric.hpp
│ │ │ ├── func_geometric.inl
│ │ │ ├── func_geometric_simd.inl
│ │ │ ├── func_integer.hpp
│ │ │ ├── func_integer.inl
│ │ │ ├── func_integer_simd.inl
│ │ │ ├── func_matrix.hpp
│ │ │ ├── func_matrix.inl
│ │ │ ├── func_matrix_simd.inl
│ │ │ ├── func_packing.hpp
│ │ │ ├── func_packing.inl
│ │ │ ├── func_packing_simd.inl
│ │ │ ├── func_trigonometric.hpp
│ │ │ ├── func_trigonometric.inl
│ │ │ ├── func_trigonometric_simd.inl
│ │ │ ├── func_vector_relational.hpp
│ │ │ ├── func_vector_relational.inl
│ │ │ ├── func_vector_relational_simd.inl
│ │ │ ├── glm.cpp
│ │ │ ├── precision.hpp
│ │ │ ├── setup.hpp
│ │ │ ├── type_float.hpp
│ │ │ ├── type_gentype.hpp
│ │ │ ├── type_gentype.inl
│ │ │ ├── type_half.hpp
│ │ │ ├── type_half.inl
│ │ │ ├── type_int.hpp
│ │ │ ├── type_mat.hpp
│ │ │ ├── type_mat.inl
│ │ │ ├── type_mat2x2.hpp
│ │ │ ├── type_mat2x2.inl
│ │ │ ├── type_mat2x3.hpp
│ │ │ ├── type_mat2x3.inl
│ │ │ ├── type_mat2x4.hpp
│ │ │ ├── type_mat2x4.inl
│ │ │ ├── type_mat3x2.hpp
│ │ │ ├── type_mat3x2.inl
│ │ │ ├── type_mat3x3.hpp
│ │ │ ├── type_mat3x3.inl
│ │ │ ├── type_mat3x4.hpp
│ │ │ ├── type_mat3x4.inl
│ │ │ ├── type_mat4x2.hpp
│ │ │ ├── type_mat4x2.inl
│ │ │ ├── type_mat4x3.hpp
│ │ │ ├── type_mat4x3.inl
│ │ │ ├── type_mat4x4.hpp
│ │ │ ├── type_mat4x4.inl
│ │ │ ├── type_mat4x4_simd.inl
│ │ │ ├── type_vec.hpp
│ │ │ ├── type_vec.inl
│ │ │ ├── type_vec1.hpp
│ │ │ ├── type_vec1.inl
│ │ │ ├── type_vec2.hpp
│ │ │ ├── type_vec2.inl
│ │ │ ├── type_vec3.hpp
│ │ │ ├── type_vec3.inl
│ │ │ ├── type_vec4.hpp
│ │ │ ├── type_vec4.inl
│ │ │ └── type_vec4_simd.inl
│ │ ├── exponential.hpp
│ │ ├── ext.hpp
│ │ ├── fwd.hpp
│ │ ├── geometric.hpp
│ │ ├── glm.hpp
│ │ ├── gtc
│ │ │ ├── bitfield.hpp
│ │ │ ├── bitfield.inl
│ │ │ ├── color_encoding.hpp
│ │ │ ├── color_encoding.inl
│ │ │ ├── color_space.hpp
│ │ │ ├── color_space.inl
│ │ │ ├── constants.hpp
│ │ │ ├── constants.inl
│ │ │ ├── epsilon.hpp
│ │ │ ├── epsilon.inl
│ │ │ ├── functions.hpp
│ │ │ ├── functions.inl
│ │ │ ├── integer.hpp
│ │ │ ├── integer.inl
│ │ │ ├── matrix_access.hpp
│ │ │ ├── matrix_access.inl
│ │ │ ├── matrix_integer.hpp
│ │ │ ├── matrix_inverse.hpp
│ │ │ ├── matrix_inverse.inl
│ │ │ ├── matrix_transform.hpp
│ │ │ ├── matrix_transform.inl
│ │ │ ├── noise.hpp
│ │ │ ├── noise.inl
│ │ │ ├── packing.hpp
│ │ │ ├── packing.inl
│ │ │ ├── quaternion.hpp
│ │ │ ├── quaternion.inl
│ │ │ ├── quaternion_simd.inl
│ │ │ ├── random.hpp
│ │ │ ├── random.inl
│ │ │ ├── reciprocal.hpp
│ │ │ ├── reciprocal.inl
│ │ │ ├── round.hpp
│ │ │ ├── round.inl
│ │ │ ├── type_aligned.hpp
│ │ │ ├── type_precision.hpp
│ │ │ ├── type_precision.inl
│ │ │ ├── type_ptr.hpp
│ │ │ ├── type_ptr.inl
│ │ │ ├── ulp.hpp
│ │ │ ├── ulp.inl
│ │ │ ├── vec1.hpp
│ │ │ └── vec1.inl
│ │ ├── gtx
│ │ │ ├── associated_min_max.hpp
│ │ │ ├── associated_min_max.inl
│ │ │ ├── bit.hpp
│ │ │ ├── bit.inl
│ │ │ ├── closest_point.hpp
│ │ │ ├── closest_point.inl
│ │ │ ├── color_space.hpp
│ │ │ ├── color_space.inl
│ │ │ ├── color_space_YCoCg.hpp
│ │ │ ├── color_space_YCoCg.inl
│ │ │ ├── common.hpp
│ │ │ ├── common.inl
│ │ │ ├── compatibility.hpp
│ │ │ ├── compatibility.inl
│ │ │ ├── component_wise.hpp
│ │ │ ├── component_wise.inl
│ │ │ ├── dual_quaternion.hpp
│ │ │ ├── dual_quaternion.inl
│ │ │ ├── euler_angles.hpp
│ │ │ ├── euler_angles.inl
│ │ │ ├── extend.hpp
│ │ │ ├── extend.inl
│ │ │ ├── extended_min_max.hpp
│ │ │ ├── extended_min_max.inl
│ │ │ ├── fast_exponential.hpp
│ │ │ ├── fast_exponential.inl
│ │ │ ├── fast_square_root.hpp
│ │ │ ├── fast_square_root.inl
│ │ │ ├── fast_trigonometry.hpp
│ │ │ ├── fast_trigonometry.inl
│ │ │ ├── float_notmalize.inl
│ │ │ ├── gradient_paint.hpp
│ │ │ ├── gradient_paint.inl
│ │ │ ├── handed_coordinate_space.hpp
│ │ │ ├── handed_coordinate_space.inl
│ │ │ ├── hash.hpp
│ │ │ ├── hash.inl
│ │ │ ├── integer.hpp
│ │ │ ├── integer.inl
│ │ │ ├── intersect.hpp
│ │ │ ├── intersect.inl
│ │ │ ├── io.hpp
│ │ │ ├── io.inl
│ │ │ ├── log_base.hpp
│ │ │ ├── log_base.inl
│ │ │ ├── matrix_cross_product.hpp
│ │ │ ├── matrix_cross_product.inl
│ │ │ ├── matrix_decompose.hpp
│ │ │ ├── matrix_decompose.inl
│ │ │ ├── matrix_interpolation.hpp
│ │ │ ├── matrix_interpolation.inl
│ │ │ ├── matrix_major_storage.hpp
│ │ │ ├── matrix_major_storage.inl
│ │ │ ├── matrix_operation.hpp
│ │ │ ├── matrix_operation.inl
│ │ │ ├── matrix_query.hpp
│ │ │ ├── matrix_query.inl
│ │ │ ├── matrix_transform_2d.hpp
│ │ │ ├── matrix_transform_2d.inl
│ │ │ ├── mixed_product.hpp
│ │ │ ├── mixed_product.inl
│ │ │ ├── norm.hpp
│ │ │ ├── norm.inl
│ │ │ ├── normal.hpp
│ │ │ ├── normal.inl
│ │ │ ├── normalize_dot.hpp
│ │ │ ├── normalize_dot.inl
│ │ │ ├── number_precision.hpp
│ │ │ ├── number_precision.inl
│ │ │ ├── optimum_pow.hpp
│ │ │ ├── optimum_pow.inl
│ │ │ ├── orthonormalize.hpp
│ │ │ ├── orthonormalize.inl
│ │ │ ├── perpendicular.hpp
│ │ │ ├── perpendicular.inl
│ │ │ ├── polar_coordinates.hpp
│ │ │ ├── polar_coordinates.inl
│ │ │ ├── projection.hpp
│ │ │ ├── projection.inl
│ │ │ ├── quaternion.hpp
│ │ │ ├── quaternion.inl
│ │ │ ├── range.hpp
│ │ │ ├── raw_data.hpp
│ │ │ ├── raw_data.inl
│ │ │ ├── rotate_normalized_axis.hpp
│ │ │ ├── rotate_normalized_axis.inl
│ │ │ ├── rotate_vector.hpp
│ │ │ ├── rotate_vector.inl
│ │ │ ├── scalar_multiplication.hpp
│ │ │ ├── scalar_relational.hpp
│ │ │ ├── scalar_relational.inl
│ │ │ ├── spline.hpp
│ │ │ ├── spline.inl
│ │ │ ├── std_based_type.hpp
│ │ │ ├── std_based_type.inl
│ │ │ ├── string_cast.hpp
│ │ │ ├── string_cast.inl
│ │ │ ├── transform.hpp
│ │ │ ├── transform.inl
│ │ │ ├── transform2.hpp
│ │ │ ├── transform2.inl
│ │ │ ├── type_aligned.hpp
│ │ │ ├── type_aligned.inl
│ │ │ ├── type_trait.hpp
│ │ │ ├── type_trait.inl
│ │ │ ├── vector_angle.hpp
│ │ │ ├── vector_angle.inl
│ │ │ ├── vector_query.hpp
│ │ │ ├── vector_query.inl
│ │ │ ├── wrap.hpp
│ │ │ └── wrap.inl
│ │ ├── integer.hpp
│ │ ├── mat2x2.hpp
│ │ ├── mat2x3.hpp
│ │ ├── mat2x4.hpp
│ │ ├── mat3x2.hpp
│ │ ├── mat3x3.hpp
│ │ ├── mat3x4.hpp
│ │ ├── mat4x2.hpp
│ │ ├── mat4x3.hpp
│ │ ├── mat4x4.hpp
│ │ ├── matrix.hpp
│ │ ├── packing.hpp
│ │ ├── simd
│ │ │ ├── common.h
│ │ │ ├── exponential.h
│ │ │ ├── geometric.h
│ │ │ ├── integer.h
│ │ │ ├── matrix.h
│ │ │ ├── packing.h
│ │ │ ├── platform.h
│ │ │ ├── trigonometric.h
│ │ │ └── vector_relational.h
│ │ ├── trigonometric.hpp
│ │ ├── vec2.hpp
│ │ ├── vec3.hpp
│ │ ├── vec4.hpp
│ │ └── vector_relational.hpp
│ └── readme.md
├── json
│ ├── LICENSE
│ └── json.hpp
└── laszip
│ ├── CHANGES.txt
│ ├── CMakeLists.txt
│ ├── COPYING
│ ├── README.txt
│ ├── dll
│ └── laszip_api.c
│ ├── example
│ ├── 5points_14.las
│ ├── Makefile
│ ├── laszipdllexample.cpp
│ └── laszipdllexample.dsp
│ ├── laszip_api.h
│ ├── laszip_api_version.h.in
│ └── src
│ ├── CMakeLists.txt
│ ├── arithmeticdecoder.cpp
│ ├── arithmeticdecoder.hpp
│ ├── arithmeticencoder.cpp
│ ├── arithmeticencoder.hpp
│ ├── arithmeticmodel.cpp
│ ├── arithmeticmodel.hpp
│ ├── bytestreamin.hpp
│ ├── bytestreamin_array.hpp
│ ├── bytestreamin_file.hpp
│ ├── bytestreamin_istream.hpp
│ ├── bytestreaminout.hpp
│ ├── bytestreaminout_file.hpp
│ ├── bytestreamout.hpp
│ ├── bytestreamout_array.hpp
│ ├── bytestreamout_file.hpp
│ ├── bytestreamout_nil.hpp
│ ├── bytestreamout_ostream.hpp
│ ├── endian.hpp
│ ├── integercompressor.cpp
│ ├── integercompressor.hpp
│ ├── lasattributer.hpp
│ ├── lasindex.cpp
│ ├── lasindex.hpp
│ ├── lasinterval.cpp
│ ├── lasinterval.hpp
│ ├── laspoint.hpp
│ ├── lasquadtree.cpp
│ ├── lasquadtree.hpp
│ ├── lasquantizer.hpp
│ ├── lasreaditem.hpp
│ ├── lasreaditemcompressed_v1.cpp
│ ├── lasreaditemcompressed_v1.hpp
│ ├── lasreaditemcompressed_v2.cpp
│ ├── lasreaditemcompressed_v2.hpp
│ ├── lasreaditemcompressed_v3.cpp
│ ├── lasreaditemcompressed_v3.hpp
│ ├── lasreaditemcompressed_v4.cpp
│ ├── lasreaditemcompressed_v4.hpp
│ ├── lasreaditemraw.hpp
│ ├── lasreadpoint.cpp
│ ├── lasreadpoint.hpp
│ ├── lasunzipper.cpp
│ ├── lasunzipper.hpp
│ ├── laswriteitem.hpp
│ ├── laswriteitemcompressed_v1.cpp
│ ├── laswriteitemcompressed_v1.hpp
│ ├── laswriteitemcompressed_v2.cpp
│ ├── laswriteitemcompressed_v2.hpp
│ ├── laswriteitemcompressed_v3.cpp
│ ├── laswriteitemcompressed_v3.hpp
│ ├── laswriteitemcompressed_v4.cpp
│ ├── laswriteitemcompressed_v4.hpp
│ ├── laswriteitemraw.hpp
│ ├── laswritepoint.cpp
│ ├── laswritepoint.hpp
│ ├── laszip.cpp
│ ├── laszip.hpp
│ ├── laszip_common_v1.hpp
│ ├── laszip_common_v2.hpp
│ ├── laszip_common_v3.hpp
│ ├── laszip_decompress_selective_v3.hpp
│ ├── laszip_dll.cpp
│ ├── laszipper.cpp
│ ├── laszipper.hpp
│ ├── mydefs.cpp
│ └── mydefs.hpp
├── modules
└── unsuck
│ ├── TaskPool.hpp
│ ├── unsuck.hpp
│ └── unsuck_platform_specific.cpp
└── src
├── executable_extract_area.cpp
└── executable_extract_profile.cpp
/.dockerignore:
--------------------------------------------------------------------------------
1 | /.git
2 | /build
3 | /Dockerfile*
4 | /.dockerignore
5 | /docs
6 | /README.md
7 |
--------------------------------------------------------------------------------
/.github/workflows/main.yaml:
--------------------------------------------------------------------------------
1 | name: Build
2 |
3 | on:
4 | - push
5 |
6 | jobs:
7 | main:
8 | name: Build with AWS
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v2
12 |
13 | - run: docker build --file=Dockerfile --tag=test .
14 | - run: docker run test extract_profile --help && docker run test extract_area --help
15 |
16 | - run: docker build --file=Dockerfile-aws --tag=aws .
17 | - run: docker run aws extract_profile --help && docker run aws extract_area --help
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | build/
3 | build/CPotree.sln
4 |
--------------------------------------------------------------------------------
/.vscode/keybindings.json:
--------------------------------------------------------------------------------
1 | // Place your key bindings in this file to overwrite the defaults
2 | [
3 | {
4 | "key": "ctrl+l",
5 | "command": "editor.action.deleteLines",
6 | "when": "editorTextFocus && !editorReadonly"
7 | },{
8 | "key": "ctrl+shift+i",
9 | "command": "editor.action.toggleRenderWhitespace"
10 | },{
11 | "key": "ctrl+d",
12 | "command": "editor.action.copyLinesDownAction"
13 | },{
14 | "key": "alt+2",
15 | "command": "type",
16 | "args": {
17 | "text": "`"
18 | }
19 | }
20 | ]
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:23.10
2 |
3 | RUN --mount=type=cache,target=/var/lib/apt/lists \
4 | --mount=type=cache,target=/var/cache,sharing=locked \
5 | apt-get update \
6 | && apt-get install --yes build-essential git cmake python3 \
7 | zlib1g-dev libssl-dev libcurlpp-dev
8 |
9 | WORKDIR /app
10 |
11 | COPY . .
12 |
13 | WORKDIR /app/build
14 |
15 | RUN --mount=type=cache,target=/app/build \
16 | cmake .. \
17 | && make \
18 | && cp extract_area extract_profile /usr/bin \
19 | && cp liblaszip.so /usr/lib
20 |
21 | RUN extract_profile --help
22 |
--------------------------------------------------------------------------------
/Dockerfile-aws:
--------------------------------------------------------------------------------
1 | FROM ubuntu:22.04
2 |
3 | RUN --mount=type=cache,target=/var/lib/apt/lists \
4 | --mount=type=cache,target=/var/cache,sharing=locked \
5 | apt-get update \
6 | && apt-get install --yes build-essential git cmake python3 \
7 | zlib1g-dev libssl-dev libcurlpp-dev
8 |
9 | WORKDIR /opt/
10 |
11 | RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp.git \
12 | && cd aws-sdk-cpp \
13 | && git checkout 1.11.205
14 |
15 | WORKDIR /opt/aws-sdk-cpp/build
16 |
17 |
18 | RUN --mount=type=cache,target=/opt/aws-sdk-cpp/build \
19 | cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchains/gcc-c++20.cmake -DBUILD_ONLY="s3" \
20 | && cmake --build . \
21 | && cmake --install .
22 |
23 | WORKDIR /app
24 |
25 | COPY . .
26 |
27 | WORKDIR /app/build
28 |
29 | RUN --mount=type=cache,target=/app/build \
30 | cmake .. -DWITH_AWS_SDK=ON \
31 | && make \
32 | && cp extract_area extract_profile /usr/bin \
33 | && cp liblaszip.so /usr/lib
34 |
35 | RUN extract_profile --help
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | =============
3 | == CPOTREE ==
4 | =============
5 |
6 | http://potree.org
7 | https://github.com/potree/CPotree
8 |
9 | Copyright (c) 2011-2024, Markus Schütz
10 | All rights reserved.
11 |
12 | Redistribution and use in source and binary forms, with or without
13 | modification, are permitted provided that the following conditions are met:
14 |
15 | 1. Redistributions of source code must retain the above copyright notice, this
16 | list of conditions and the following disclaimer.
17 | 2. Redistributions in binary form must reproduce the above copyright notice,
18 | this list of conditions and the following disclaimer in the documentation
19 | and/or other materials provided with the distribution.
20 |
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 |
32 | The views and conclusions contained in the software and documentation are those
33 | of the authors and should not be interpreted as representing official policies,
34 | either expressed or implied, of the FreeBSD Project.
35 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Build
3 |
4 | __Linux:__
5 | ```
6 | mkdir build
7 | cd build
8 | cmake ../
9 | make
10 | ```
11 |
12 | __Linux (manual build):__
13 |
14 | Tested on Ubuntu 22.04 LTS
15 |
16 | Install required packages
17 | ```
18 | apt install build-essential libbrotli-dev liblaszip-dev
19 | ```
20 | Build binaries
21 | ```
22 | cd src
23 | g++ -std=c++20 -I../include/ -I../modules -idirafter../libs executable_extract_area.cpp ../modules/unsuck/unsuck_platform_specific.cpp -lbrotlidec -llaszip -o extract_area
24 | g++ -std=c++20 -I../include/ -I../modules -idirafter../libs executable_extract_profile.cpp ../modules/unsuck/unsuck_platform_specific.cpp -lbrotlidec -llaszip -o extract_profile
25 | ```
26 |
27 | __Windows:__
28 | ```
29 | mkdir build
30 | cd build
31 | cmake ../
32 | ```
33 | * Then open the generated sln file in Visual Studio.
34 | * Make sure "Release" build is selected.
35 | * Build "extract_profile".
36 |
37 | ## Build options
38 |
39 | * `WITH_AWS_SDK`: Build with s3 support. Requires AWS SDK.
40 |
41 |
42 | # Usage
43 |
44 | Extract points with the elevation profile:
45 |
46 | // minimal
47 | ./extract_profile -o