pye57 0.4.3__tar.gz → 0.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pye57 might be problematic. Click here for more details.
- {pye57-0.4.3/src/pye57.egg-info → pye57-0.4.4}/PKG-INFO +1 -1
- pye57-0.4.4/libE57Format/LICENSE-MIT.md +21 -0
- pye57-0.4.4/libE57Format/README.md +162 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/extern/CRCpp/LICENSE +1 -1
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/extern/CRCpp/README.md +68 -1
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/extern/CRCpp/inc/CRC.h +440 -54
- pye57-0.4.4/libE57Format/include/E57Exception.h +397 -0
- pye57-0.4.4/libE57Format/include/E57Format.h +788 -0
- pye57-0.4.4/libE57Format/include/E57SimpleData.h +999 -0
- pye57-0.4.4/libE57Format/include/E57SimpleReader.h +214 -0
- pye57-0.4.4/libE57Format/include/E57SimpleWriter.h +210 -0
- pye57-0.4.4/libE57Format/include/E57Version.h +72 -0
- pye57-0.4.4/libE57Format/src/ASTMVersion.h +16 -0
- pye57-0.4.4/libE57Format/src/BlobNode.cpp +367 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/BlobNodeImpl.cpp +41 -34
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/BlobNodeImpl.h +3 -2
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CheckedFile.cpp +785 -794
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CheckedFile.h +129 -128
- pye57-0.4.4/libE57Format/src/Common.h +82 -0
- pye57-0.4.4/libE57Format/src/CompressedVectorNode.cpp +480 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CompressedVectorNodeImpl.cpp +82 -68
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CompressedVectorNodeImpl.h +7 -3
- pye57-0.4.4/libE57Format/src/CompressedVectorReader.cpp +356 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CompressedVectorReaderImpl.cpp +172 -139
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CompressedVectorReaderImpl.h +8 -4
- pye57-0.4.4/libE57Format/src/CompressedVectorWriter.cpp +333 -0
- pye57-0.4.4/libE57Format/src/CompressedVectorWriterImpl.cpp +739 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/CompressedVectorWriterImpl.h +12 -8
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/DecodeChannel.cpp +13 -9
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/DecodeChannel.h +6 -5
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Decoder.cpp +280 -246
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Decoder.h +37 -23
- pye57-0.4.4/libE57Format/src/E57Exception.cpp +369 -0
- pye57-0.4.4/libE57Format/src/E57SimpleData.cpp +251 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/E57SimpleReader.cpp +44 -28
- pye57-0.4.4/libE57Format/src/E57SimpleWriter.cpp +298 -0
- pye57-0.4.4/libE57Format/src/E57Version.cpp +55 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/E57XmlParser.cpp +950 -918
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/E57XmlParser.h +122 -125
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Encoder.cpp +266 -243
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Encoder.h +29 -23
- pye57-0.4.4/libE57Format/src/FloatNode.cpp +361 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/FloatNodeImpl.cpp +43 -42
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/FloatNodeImpl.h +6 -4
- pye57-0.4.4/libE57Format/src/ImageFile.cpp +771 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/ImageFileImpl.cpp +282 -282
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/ImageFileImpl.h +20 -15
- pye57-0.4.4/libE57Format/src/IntegerNode.cpp +324 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/IntegerNodeImpl.cpp +23 -21
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/IntegerNodeImpl.h +5 -4
- pye57-0.4.4/libE57Format/src/Node.cpp +604 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/NodeImpl.cpp +104 -100
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/NodeImpl.h +15 -10
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Packet.cpp +240 -197
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Packet.h +22 -13
- pye57-0.4.4/libE57Format/src/ReaderImpl.cpp +1746 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/ReaderImpl.h +21 -35
- pye57-0.4.4/libE57Format/src/ScaledIntegerNode.cpp +481 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/ScaledIntegerNodeImpl.cpp +47 -37
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/ScaledIntegerNodeImpl.h +9 -6
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/SectionHeaders.cpp +34 -19
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/SectionHeaders.h +4 -3
- pye57-0.4.4/libE57Format/src/SourceDestBuffer.cpp +478 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/SourceDestBufferImpl.cpp +253 -235
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/SourceDestBufferImpl.h +44 -21
- pye57-0.4.4/libE57Format/src/StringFunctions.cpp +73 -0
- pye57-0.4.3/libE57Format/src/Common.h → pye57-0.4.4/libE57Format/src/StringFunctions.h +206 -183
- pye57-0.4.4/libE57Format/src/StringNode.cpp +254 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/StringNodeImpl.cpp +17 -16
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/StringNodeImpl.h +3 -2
- pye57-0.4.4/libE57Format/src/StructureNode.cpp +413 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/StructureNodeImpl.cpp +90 -90
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/StructureNodeImpl.h +7 -4
- pye57-0.4.4/libE57Format/src/VectorNode.cpp +435 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/VectorNodeImpl.cpp +19 -16
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/VectorNodeImpl.h +7 -2
- pye57-0.4.4/libE57Format/src/WriterImpl.cpp +1374 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/WriterImpl.h +13 -17
- pye57-0.4.4/libE57Format/test/README.md +43 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/LICENSE +28 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/README.md +123 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/README.md +40 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/docs/README.md +4 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-actions.h +2297 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-cardinalities.h +159 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-function-mocker.h +518 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-matchers.h +5619 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-more-actions.h +658 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-more-matchers.h +120 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-nice-strict.h +277 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-spec-builders.h +2111 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock.h +96 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/README.md +18 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +7 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +37 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +40 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +484 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-port.h +139 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-pp.h +279 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/test/gmock-matchers_test.h +192 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googlemock/test/gmock_link_test.h +684 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/README.md +231 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/docs/README.md +4 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-assertion-result.h +237 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-death-test.h +345 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-matchers.h +956 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-message.h +220 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-param-test.h +546 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-printers.h +1137 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-spi.h +250 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-test-part.h +192 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-typed-test.h +331 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest.h +2318 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest_pred_impl.h +279 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/gtest_prod.h +60 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/README.md +44 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +307 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-filepath.h +227 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-internal.h +1557 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-param-util.h +1026 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-port-arch.h +118 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-port.h +2450 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-string.h +178 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-type-util.h +190 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/samples/prime_tables.h +125 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/samples/sample1.h +41 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/samples/sample2.h +79 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/samples/sample3-inl.h +171 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/samples/sample4.h +53 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/src/gtest-internal-inl.h +1218 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/test/googletest-param-test-test.h +49 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/test/gtest-typed-test_test.h +57 -0
- pye57-0.4.4/libE57Format/test/extern/googletest/googletest/test/production.h +55 -0
- pye57-0.4.4/libE57Format/test/include/Helpers.h +25 -0
- pye57-0.4.4/libE57Format/test/include/RandomNum.h +14 -0
- pye57-0.4.4/libE57Format/test/include/TestData.h +12 -0
- pye57-0.4.4/libE57Format/test/src/RandomNum.cpp +33 -0
- pye57-0.4.4/libE57Format/test/src/TestData.cpp +49 -0
- pye57-0.4.4/libE57Format/test/src/main.cpp +53 -0
- pye57-0.4.4/libE57Format/test/src/test_SimpleData.cpp +278 -0
- pye57-0.4.4/libE57Format/test/src/test_SimpleReader.cpp +370 -0
- pye57-0.4.4/libE57Format/test/src/test_SimpleWriter.cpp +707 -0
- pye57-0.4.4/libE57Format/test/src/test_StringFunctions.cpp +67 -0
- {pye57-0.4.3 → pye57-0.4.4}/pyproject.toml +0 -1
- pye57-0.4.4/src/pye57/__version__.py +1 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/libe57_wrapper.cpp +47 -42
- {pye57-0.4.3 → pye57-0.4.4/src/pye57.egg-info}/PKG-INFO +1 -1
- pye57-0.4.4/src/pye57.egg-info/SOURCES.txt +208 -0
- {pye57-0.4.3 → pye57-0.4.4}/tests/test_main.py +4 -5
- pye57-0.4.3/libE57Format/README.md +0 -64
- pye57-0.4.3/libE57Format/include/E57Exception.h +0 -136
- pye57-0.4.3/libE57Format/include/E57Format.h +0 -696
- pye57-0.4.3/libE57Format/include/E57SimpleData.h +0 -653
- pye57-0.4.3/libE57Format/include/E57SimpleReader.h +0 -186
- pye57-0.4.3/libE57Format/include/E57SimpleWriter.h +0 -137
- pye57-0.4.3/libE57Format/src/CompressedVectorWriterImpl.cpp +0 -660
- pye57-0.4.3/libE57Format/src/E57Exception.cpp +0 -451
- pye57-0.4.3/libE57Format/src/E57Format.cpp +0 -4891
- pye57-0.4.3/libE57Format/src/E57SimpleData.cpp +0 -25
- pye57-0.4.3/libE57Format/src/E57SimpleWriter.cpp +0 -103
- pye57-0.4.3/libE57Format/src/E57Version.h +0 -12
- pye57-0.4.3/libE57Format/src/ReaderImpl.cpp +0 -1433
- pye57-0.4.3/libE57Format/src/WriterImpl.cpp +0 -1109
- pye57-0.4.3/src/pye57/__version__.py +0 -1
- pye57-0.4.3/src/pye57.egg-info/SOURCES.txt +0 -109
- {pye57-0.4.3 → pye57-0.4.4}/LICENSE +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/MANIFEST.in +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/README.md +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/LICENSE.md +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/libE57Format/src/Common.cpp +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/setup.cfg +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/setup.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/__init__.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/e57.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/exception.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/scan_header.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57/utils.py +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57.egg-info/dependency_links.txt +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57.egg-info/not-zip-safe +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57.egg-info/requires.txt +0 -0
- {pye57-0.4.3 → pye57-0.4.4}/src/pye57.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Andy Maloney (asmaloney@gmail.com)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# libE57Format
|
|
2
|
+
|
|
3
|
+
[](https://github.com/asmaloney/libE57Format/releases/latest) [](https://asmaloney.github.io/libE57Format-docs/) [](LICENSE) 
|
|
4
|
+
|
|
5
|
+
libE57Format is a C++ library which provides read & write support for the ASTM-standard [E57 file format](https://www.astm.org/e2807-11r19e01.html) on Linux, macOS, and Windows. E57 files store 3D point cloud data (produced by 3D imaging systems such as laser scanners), attributes associated with 3D point data (color & intensity), and 2D images (photos taken using a 3D imaging system).
|
|
6
|
+
|
|
7
|
+
## Documentation
|
|
8
|
+
|
|
9
|
+
The doxygen-generated documentation may be [found here](https://asmaloney.github.io/libE57Format-docs/). These docs are generated and saved in the [libE57Format-docs](https://github.com/asmaloney/libE57Format-docs) repo.
|
|
10
|
+
|
|
11
|
+
## Dependencies/Requirements
|
|
12
|
+
|
|
13
|
+
Tools:
|
|
14
|
+
|
|
15
|
+
- a [C++14](https://en.cppreference.com/w/cpp/14) compatible compiler
|
|
16
|
+
- [CMake](https://cmake.org/) >= 3.15
|
|
17
|
+
- [clang-format](https://clang.llvm.org/docs/ClangFormat.html) for code formatting
|
|
18
|
+
- (_optional_) [ccache](https://ccache.dev/) to speed up rebuilds
|
|
19
|
+
|
|
20
|
+
Libraries:
|
|
21
|
+
|
|
22
|
+
- [Xerces-C++](https://xerces.apache.org/xerces-c/) (for parsing XML)
|
|
23
|
+
|
|
24
|
+
### Installing Dependencies On Linux (Ubuntu)
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
$ sudo apt install libxerces-c-dev clang-format
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Installing Dependencies On macOS (homebrew)
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
$ brew install ccache clang-format xerces-c
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Build, Install, & Test
|
|
37
|
+
|
|
38
|
+
Here's how you build & install a release version with the defaults:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
$ cmake -B E57-build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=E57-install libE57Format
|
|
42
|
+
$ cmake --build E57-build --parallel
|
|
43
|
+
$ cmake --install E57-build
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If CMake can't find the xerces-c library, you can set [CMAKE_PREFIX_PATH](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html) to point at it.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
$ cmake -B E57-build \
|
|
50
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
51
|
+
-DCMAKE_INSTALL_PREFIX=E57-install \
|
|
52
|
+
-DCMAKE_PREFIX_PATH=/path/to/xerces-c \
|
|
53
|
+
libE57Format
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Once the library is built, you can run the tests like this:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
$ cd E57-build
|
|
60
|
+
$ ./test/testE57
|
|
61
|
+
[==========] Running 36 tests from 8 test suites.
|
|
62
|
+
[----------] Global test environment set-up.
|
|
63
|
+
[----------] 1 test from TestData
|
|
64
|
+
[ RUN ] TestData.RepoExists
|
|
65
|
+
...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
See [test/README](test/README.md) for details about testing and the test data.
|
|
69
|
+
|
|
70
|
+
## 🍴 Fork
|
|
71
|
+
|
|
72
|
+
This is a fork of [E57RefImpl](https://sourceforge.net/projects/e57-3d-imgfmt/). The original source is from [E57RefImpl 1.1.332](https://sourceforge.net/projects/e57-3d-imgfmt/files/E57Refimpl-src/).
|
|
73
|
+
|
|
74
|
+
The original code had not been touched in years and I wanted to make changes to compile it on macOS. Forking it gave me a bit more freedom to update the code and make changes as required. Everything was stripped out except the main implementation for reading & writing E57 files.
|
|
75
|
+
|
|
76
|
+
Notes:
|
|
77
|
+
|
|
78
|
+
- I changed the name of the project so that it is not confused with the **E57RefImpl** project.
|
|
79
|
+
- I changed the main include file's name from `E57Foundation.h` to `E57Format.h` to make sure there is no inclusion confusion.
|
|
80
|
+
- Versions of **libE57Format** started at 2.0.
|
|
81
|
+
- I made changes for it to compile and run on macOS.
|
|
82
|
+
- It no longer depends on [Boost](http://www.boost.org/).
|
|
83
|
+
- It now requires [C++14](https://en.cppreference.com/w/cpp/14). (Version 2.x required [C++11](https://en.cppreference.com/w/cpp/11).)
|
|
84
|
+
|
|
85
|
+
Many, many other changes were made prior to the first release of this fork. See the [CHANGELOG](CHANGELOG.md) and git history for details.
|
|
86
|
+
|
|
87
|
+
### E57Simple API
|
|
88
|
+
|
|
89
|
+
[Jiri Hörner](https://github.com/ptc-jhoerner) added the E57Simple API from the old reference implementation and updated it.
|
|
90
|
+
|
|
91
|
+
This _Simple API_ has evolved since this original port to fix some problems and to make it more foolproof & easier to use. Please see the [CHANGELOG](CHANGELOG.md) for version 3.
|
|
92
|
+
|
|
93
|
+
### Tools
|
|
94
|
+
|
|
95
|
+
[Ryan Baumann](https://github.com/ryanfb) updated the `e57unpack` and `e57validate` tools to work with **libE57Format**. You can find them in the [e57tools](https://github.com/ryanfb/e57tools) repo.
|
|
96
|
+
|
|
97
|
+
## Projects Using libE57Format
|
|
98
|
+
|
|
99
|
+
- [CloudCompare](https://github.com/CloudCompare/CloudCompare)
|
|
100
|
+
- [MeshLab](https://github.com/cnr-isti-vclab/meshlab)
|
|
101
|
+
- [pye57](https://github.com/davidcaron/pye57)
|
|
102
|
+
|
|
103
|
+
These projects use hard forks of libE57Format:
|
|
104
|
+
|
|
105
|
+
- [FreeCAD](https://github.com/FreeCAD/FreeCAD)
|
|
106
|
+
- [PDAL](https://github.com/PDAL/PDAL)
|
|
107
|
+
|
|
108
|
+
There are also some commercial products using libE57Format. If any of them would like to sponsor the project and be listed here, please contact Andy (asmaloney).
|
|
109
|
+
|
|
110
|
+
## How To Contribute
|
|
111
|
+
|
|
112
|
+
These are some of the things you can do to contribute to the project:
|
|
113
|
+
|
|
114
|
+
### ✍ Write About The Project
|
|
115
|
+
|
|
116
|
+
If you find the project useful, spread the word! Articles, mastodon posts, tweets, blog posts, instagram photos - whatever you're into.
|
|
117
|
+
|
|
118
|
+
### ⭐️ Add a Star
|
|
119
|
+
|
|
120
|
+
If you found this project useful, please consider starring it! It helps me gauge how useful this project is.
|
|
121
|
+
|
|
122
|
+
### ☝ Raise Issues
|
|
123
|
+
|
|
124
|
+
If you run into something which doesn't work as expected, raising [an issue](https://github.com/asmaloney/libE57Format/issues) with all the relevant information to reproduce it would be helpful.
|
|
125
|
+
|
|
126
|
+
### 🐞 Bug Fixes & 🧪 New Things
|
|
127
|
+
|
|
128
|
+
I am happy to review any [pull requests](https://github.com/asmaloney/libE57Format/pulls). Please keep them as short as possible. Each pull request should be atomic and only address one issue. This helps with the review process.
|
|
129
|
+
|
|
130
|
+
Note that I will not accept everything, but I welcome discussion. If you are proposing a big change, please raise it as [an issue](https://github.com/asmaloney/libE57Format/issues) first for discussion.
|
|
131
|
+
|
|
132
|
+
#### Formatting
|
|
133
|
+
|
|
134
|
+
This project uses [clang-format](https://clang.llvm.org/docs/ClangFormat.html) to format the code. There is a cmake target (_e57-clang-format_) - which runs _clang-format_ on the source files. After changes have been made, and before you submit your pull request, please run the following:
|
|
135
|
+
|
|
136
|
+
```sh
|
|
137
|
+
cmake --build . --target e57-clang-format
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 📖 Documentation
|
|
141
|
+
|
|
142
|
+
The [documentation](https://github.com/asmaloney/libE57Format) is a bit old and could use some lovin'. You can submit changes over in the [libE57Format-docs](https://github.com/asmaloney/libE57Format-docs) repository.
|
|
143
|
+
|
|
144
|
+
### 💰 Financial
|
|
145
|
+
|
|
146
|
+
Given that I'm an independent developer without funding, financial support is always appreciated. If you would like to support the project financially (especially if you sell a product which uses this library), you can use the [sponsors page](https://github.com/sponsors/asmaloney) for one-off or recurring support. Thank you!
|
|
147
|
+
|
|
148
|
+
## License
|
|
149
|
+
|
|
150
|
+
This project as a whole is licensed under the [**BSL-1.0** license](https://opensource.org/licenses/BSL-1.0) - see the [LICENSE](LICENSE.md) file for details.
|
|
151
|
+
|
|
152
|
+
Individual source files may contain the following tag instead of the full license text:
|
|
153
|
+
|
|
154
|
+
SPDX-License-Identifier: BSL-1.0
|
|
155
|
+
|
|
156
|
+
Most of the CMake files, all of the testing files, and a couple of the source files are licensed under the [**MIT** license](https://opensource.org/license/mit/) - see the [LICENSE-MIT](LICENSE-MIT.md) file for details.
|
|
157
|
+
|
|
158
|
+
These files contain the following tag instead of the full license text:
|
|
159
|
+
|
|
160
|
+
SPDX-License-Identifier: MIT
|
|
161
|
+
|
|
162
|
+
Using SPDX enables machine processing of license information based on the [SPDX License Identifiers](https://spdx.org/ids) and makes it easier for developers to see at a glance which license they are dealing with.
|
|
@@ -82,7 +82,24 @@ int main(int argc, char ** argv)
|
|
|
82
82
|
|
|
83
83
|
This will return the same CRC as the first example.
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
If you need to compute a CRC on an input that is not a multiple of `CHAR_BIT` (usually 8 bits), use the `CalculateBits()` function instead:
|
|
86
|
+
|
|
87
|
+
```cpp
|
|
88
|
+
int main(int argc, char ** argv)
|
|
89
|
+
{
|
|
90
|
+
const unsigned char data[] = { 0x98, 0x76, 0x54, 0x32, 0x10 };
|
|
91
|
+
|
|
92
|
+
// Second argument is the number of bits. The input data must
|
|
93
|
+
// be a whole number of bytes. Pad any used bits with zeros.
|
|
94
|
+
std::uint32_t crc = CRC::CalculateBits(data, 37, CRC::CRC_32());
|
|
95
|
+
|
|
96
|
+
std::cout << std::hex << crc;
|
|
97
|
+
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The above examples compute a CRC bit-by-bit. However, CRC++ also supports lookup tables, as the following example demonstrates:
|
|
86
103
|
|
|
87
104
|
```cpp
|
|
88
105
|
int main(int argc, char ** argv)
|
|
@@ -149,6 +166,56 @@ Define to enables C++11 features (move semantics, constexpr, static_assert, etc.
|
|
|
149
166
|
* `#define CRCPP_INCLUDE_ESOTERIC_CRC_DEFINITIONS`
|
|
150
167
|
Define to include definitions for little-used CRCs. Not defined by default.
|
|
151
168
|
|
|
169
|
+
### Build
|
|
170
|
+
|
|
171
|
+
CRC does not require a build for basic usage; simply include the header file in your project.
|
|
172
|
+
|
|
173
|
+
Unit tests and documentation can be built manually with the project files provided or automatically with CMake.
|
|
174
|
+
|
|
175
|
+
To build documentation manually:
|
|
176
|
+
```bash
|
|
177
|
+
cd doxygen
|
|
178
|
+
doxygen Doxyfile.dox
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
To build unit tests manually via Make:
|
|
182
|
+
```bash
|
|
183
|
+
# Build
|
|
184
|
+
cd test/prj/gcc
|
|
185
|
+
make [debug|release]
|
|
186
|
+
# Run unit tests
|
|
187
|
+
bin/unittest
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Project files and solutions for Visual Studio 2015, 2017 and 2022 are provided in `test/prj`. Simply open the solution file and run the project; no additional configuration should be necessary.
|
|
191
|
+
|
|
192
|
+
CMake can also be used to build the documentation and unit tests. An out-of-source build is recommended. In this example, we will do an out-of-source build in the `build` directory:
|
|
193
|
+
```bash
|
|
194
|
+
mkdir -p build
|
|
195
|
+
cd build
|
|
196
|
+
cmake .. [-DBUILD_DOC=ON]
|
|
197
|
+
# Build and run unit tests
|
|
198
|
+
make tests
|
|
199
|
+
# Build documentation
|
|
200
|
+
make doxygen
|
|
201
|
+
# Install header file
|
|
202
|
+
sudo make install
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Unit tests are built by default. Enable the `BUILD_DOC` CMake flag to also build documentation (requires [Doxygen](https://www.doxygen.nl/index.html)).
|
|
206
|
+
|
|
207
|
+
### Documentation
|
|
208
|
+
|
|
209
|
+
https://d-bahr.github.io/CRCpp/
|
|
210
|
+
|
|
152
211
|
### License
|
|
153
212
|
|
|
154
213
|
CRC++ is free to use and provided under a BSD license.
|
|
214
|
+
|
|
215
|
+
### References
|
|
216
|
+
|
|
217
|
+
Catalog of CRCs: https://reveng.sourceforge.io/crc-catalogue/
|
|
218
|
+
|
|
219
|
+
5G-NR Specification 3GPP TS 38.212: https://www.etsi.org/deliver/etsi_ts/138200_138299/138212/15.03.00_60/ts_138212v150300p.pdf
|
|
220
|
+
|
|
221
|
+
USB 2.0 Specification: https://www.usb.org/document-library/usb-20-specification
|