pye57 0.4.17__tar.gz → 0.4.18__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.

Files changed (169) hide show
  1. {pye57-0.4.17/src/pye57.egg-info → pye57-0.4.18}/PKG-INFO +1 -1
  2. pye57-0.4.18/src/pye57/__version__.py +1 -0
  3. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/scan_header.py +11 -3
  4. {pye57-0.4.17 → pye57-0.4.18/src/pye57.egg-info}/PKG-INFO +1 -1
  5. {pye57-0.4.17 → pye57-0.4.18}/tests/test_main.py +20 -0
  6. pye57-0.4.17/src/pye57/__version__.py +0 -1
  7. {pye57-0.4.17 → pye57-0.4.18}/LICENSE +0 -0
  8. {pye57-0.4.17 → pye57-0.4.18}/MANIFEST.in +0 -0
  9. {pye57-0.4.17 → pye57-0.4.18}/README.md +0 -0
  10. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/LICENSE-MIT.md +0 -0
  11. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/LICENSE.md +0 -0
  12. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/README.md +0 -0
  13. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/extern/CRCpp/LICENSE +0 -0
  14. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/extern/CRCpp/README.md +0 -0
  15. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/extern/CRCpp/inc/CRC.h +0 -0
  16. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57Exception.h +0 -0
  17. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57Format.h +0 -0
  18. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57SimpleData.h +0 -0
  19. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57SimpleReader.h +0 -0
  20. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57SimpleWriter.h +0 -0
  21. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/include/E57Version.h +0 -0
  22. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ASTMVersion.h +0 -0
  23. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/BlobNode.cpp +0 -0
  24. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/BlobNodeImpl.cpp +0 -0
  25. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/BlobNodeImpl.h +0 -0
  26. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CheckedFile.cpp +0 -0
  27. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CheckedFile.h +0 -0
  28. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Common.cpp +0 -0
  29. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Common.h +0 -0
  30. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorNode.cpp +0 -0
  31. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorNodeImpl.cpp +0 -0
  32. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorNodeImpl.h +0 -0
  33. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorReader.cpp +0 -0
  34. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorReaderImpl.cpp +0 -0
  35. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorReaderImpl.h +0 -0
  36. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorWriter.cpp +0 -0
  37. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorWriterImpl.cpp +0 -0
  38. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/CompressedVectorWriterImpl.h +0 -0
  39. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/DecodeChannel.cpp +0 -0
  40. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/DecodeChannel.h +0 -0
  41. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Decoder.cpp +0 -0
  42. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Decoder.h +0 -0
  43. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57Exception.cpp +0 -0
  44. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57SimpleData.cpp +0 -0
  45. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57SimpleReader.cpp +0 -0
  46. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57SimpleWriter.cpp +0 -0
  47. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57Version.cpp +0 -0
  48. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57XmlParser.cpp +0 -0
  49. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/E57XmlParser.h +0 -0
  50. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Encoder.cpp +0 -0
  51. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Encoder.h +0 -0
  52. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/FloatNode.cpp +0 -0
  53. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/FloatNodeImpl.cpp +0 -0
  54. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/FloatNodeImpl.h +0 -0
  55. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ImageFile.cpp +0 -0
  56. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ImageFileImpl.cpp +0 -0
  57. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ImageFileImpl.h +0 -0
  58. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/IntegerNode.cpp +0 -0
  59. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/IntegerNodeImpl.cpp +0 -0
  60. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/IntegerNodeImpl.h +0 -0
  61. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Node.cpp +0 -0
  62. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/NodeImpl.cpp +0 -0
  63. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/NodeImpl.h +0 -0
  64. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Packet.cpp +0 -0
  65. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/Packet.h +0 -0
  66. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ReaderImpl.cpp +0 -0
  67. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ReaderImpl.h +0 -0
  68. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ScaledIntegerNode.cpp +0 -0
  69. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ScaledIntegerNodeImpl.cpp +0 -0
  70. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/ScaledIntegerNodeImpl.h +0 -0
  71. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/SectionHeaders.cpp +0 -0
  72. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/SectionHeaders.h +0 -0
  73. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/SourceDestBuffer.cpp +0 -0
  74. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/SourceDestBufferImpl.cpp +0 -0
  75. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/SourceDestBufferImpl.h +0 -0
  76. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StringFunctions.cpp +0 -0
  77. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StringFunctions.h +0 -0
  78. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StringNode.cpp +0 -0
  79. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StringNodeImpl.cpp +0 -0
  80. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StringNodeImpl.h +0 -0
  81. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StructureNode.cpp +0 -0
  82. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StructureNodeImpl.cpp +0 -0
  83. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/StructureNodeImpl.h +0 -0
  84. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/VectorNode.cpp +0 -0
  85. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/VectorNodeImpl.cpp +0 -0
  86. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/VectorNodeImpl.h +0 -0
  87. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/WriterImpl.cpp +0 -0
  88. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/src/WriterImpl.h +0 -0
  89. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/README.md +0 -0
  90. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/LICENSE +0 -0
  91. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/README.md +0 -0
  92. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/README.md +0 -0
  93. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/docs/README.md +0 -0
  94. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-actions.h +0 -0
  95. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-cardinalities.h +0 -0
  96. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-function-mocker.h +0 -0
  97. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-matchers.h +0 -0
  98. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-more-actions.h +0 -0
  99. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-more-matchers.h +0 -0
  100. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-nice-strict.h +0 -0
  101. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock-spec-builders.h +0 -0
  102. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/gmock.h +0 -0
  103. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/README.md +0 -0
  104. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +0 -0
  105. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +0 -0
  106. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +0 -0
  107. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +0 -0
  108. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-port.h +0 -0
  109. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/include/gmock/internal/gmock-pp.h +0 -0
  110. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/test/gmock-matchers_test.h +0 -0
  111. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googlemock/test/gmock_link_test.h +0 -0
  112. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/README.md +0 -0
  113. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/docs/README.md +0 -0
  114. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-assertion-result.h +0 -0
  115. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-death-test.h +0 -0
  116. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-matchers.h +0 -0
  117. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-message.h +0 -0
  118. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-param-test.h +0 -0
  119. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-printers.h +0 -0
  120. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-spi.h +0 -0
  121. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-test-part.h +0 -0
  122. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest-typed-test.h +0 -0
  123. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest.h +0 -0
  124. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest_pred_impl.h +0 -0
  125. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/gtest_prod.h +0 -0
  126. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/README.md +0 -0
  127. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest-port.h +0 -0
  128. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +0 -0
  129. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/custom/gtest.h +0 -0
  130. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -0
  131. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-filepath.h +0 -0
  132. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-internal.h +0 -0
  133. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-param-util.h +0 -0
  134. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-port-arch.h +0 -0
  135. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-port.h +0 -0
  136. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-string.h +0 -0
  137. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/include/gtest/internal/gtest-type-util.h +0 -0
  138. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/samples/prime_tables.h +0 -0
  139. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/samples/sample1.h +0 -0
  140. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/samples/sample2.h +0 -0
  141. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/samples/sample3-inl.h +0 -0
  142. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/samples/sample4.h +0 -0
  143. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/src/gtest-internal-inl.h +0 -0
  144. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/test/googletest-param-test-test.h +0 -0
  145. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/test/gtest-typed-test_test.h +0 -0
  146. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/extern/googletest/googletest/test/production.h +0 -0
  147. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/include/Helpers.h +0 -0
  148. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/include/RandomNum.h +0 -0
  149. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/include/TestData.h +0 -0
  150. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/RandomNum.cpp +0 -0
  151. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/TestData.cpp +0 -0
  152. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/main.cpp +0 -0
  153. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/test_SimpleData.cpp +0 -0
  154. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/test_SimpleReader.cpp +0 -0
  155. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/test_SimpleWriter.cpp +0 -0
  156. {pye57-0.4.17 → pye57-0.4.18}/libE57Format/test/src/test_StringFunctions.cpp +0 -0
  157. {pye57-0.4.17 → pye57-0.4.18}/pyproject.toml +0 -0
  158. {pye57-0.4.17 → pye57-0.4.18}/setup.cfg +0 -0
  159. {pye57-0.4.17 → pye57-0.4.18}/setup.py +0 -0
  160. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/__init__.py +0 -0
  161. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/e57.py +0 -0
  162. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/exception.py +0 -0
  163. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/libe57_wrapper.cpp +0 -0
  164. {pye57-0.4.17 → pye57-0.4.18}/src/pye57/utils.py +0 -0
  165. {pye57-0.4.17 → pye57-0.4.18}/src/pye57.egg-info/SOURCES.txt +0 -0
  166. {pye57-0.4.17 → pye57-0.4.18}/src/pye57.egg-info/dependency_links.txt +0 -0
  167. {pye57-0.4.17 → pye57-0.4.18}/src/pye57.egg-info/not-zip-safe +0 -0
  168. {pye57-0.4.17 → pye57-0.4.18}/src/pye57.egg-info/requires.txt +0 -0
  169. {pye57-0.4.17 → pye57-0.4.18}/src/pye57.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pye57
3
- Version: 0.4.17
3
+ Version: 0.4.18
4
4
  Summary: Python .e57 files reader/writer
5
5
  Home-page: https://www.github.com/davidcaron/pye57
6
6
  Author: David Caron
@@ -0,0 +1 @@
1
+ __version__ = "0.4.18"
@@ -28,7 +28,11 @@ class ScanHeader:
28
28
 
29
29
  @property
30
30
  def rotation_matrix(self) -> np.array:
31
- q = Quaternion([e.value() for e in self.node["pose"]["rotation"]])
31
+ try:
32
+ rotation = self.node["pose"]["rotation"]
33
+ q = Quaternion([e.value() for e in rotation])
34
+ except libe57.E57Exception:
35
+ q = Quaternion()
32
36
  return q.rotation_matrix
33
37
 
34
38
  @property
@@ -36,13 +40,17 @@ class ScanHeader:
36
40
  try:
37
41
  rotation = self.node["pose"]["rotation"]
38
42
  q = Quaternion([e.value() for e in rotation])
39
- except KeyError:
43
+ except libe57.E57Exception:
40
44
  q = Quaternion()
41
45
  return q.elements
42
46
 
43
47
  @property
44
48
  def translation(self):
45
- return np.array([e.value() for e in self.node["pose"]["translation"]])
49
+ try:
50
+ translation_values = [e.value() for e in self.node["pose"]["translation"]]
51
+ except libe57.E57Exception:
52
+ translation_values = [0] * 3
53
+ return np.array(translation_values)
46
54
 
47
55
  def pretty_print(self, node=None, indent=""):
48
56
  if node is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pye57
3
- Version: 0.4.17
3
+ Version: 0.4.18
4
4
  Summary: Python .e57 files reader/writer
5
5
  Home-page: https://www.github.com/davidcaron/pye57
6
6
  Author: David Caron
@@ -54,6 +54,12 @@ def e57_with_normals_path():
54
54
  # created using Python's open3d and CloudCompare
55
55
  return sample_data("testWithNormals.e57")
56
56
 
57
+ @pytest.fixture
58
+ def e57_translation_without_rotation_path():
59
+ # this e57 was generated using write_scan_raw
60
+ # however, the line to set the rotation was temporarily commented out
61
+ return sample_data("translationWithoutRotation.e57")
62
+
57
63
  @pytest.fixture
58
64
  def temp_e57_write(request):
59
65
  path = sample_data("test_write.e57")
@@ -323,6 +329,20 @@ def test_scan_position(e57_path):
323
329
  e57 = pye57.E57(e57_path)
324
330
  assert np.allclose(e57.scan_position(3), np.array([[3.01323456e+05, 5.04260184e+06, 1.56040279e+01]]))
325
331
 
332
+ def test_translation_without_rotation(e57_translation_without_rotation_path):
333
+ import numpy as np
334
+ e57 = pye57.E57(e57_translation_without_rotation_path)
335
+ header = e57.get_header(0)
336
+ # translation is defined but not rotation:
337
+ assert header["pose"].isDefined("translation")
338
+ assert not header["pose"].isDefined("rotation")
339
+ # an arbitrary translation was defined in the e57:
340
+ assert np.array_equal(header.translation, np.array([4,5,6]))
341
+ # when rotation is not defined, the identity is used:
342
+ assert np.array_equal(header.rotation, np.array([1,0,0,0]))
343
+ assert np.array_equal(header.rotation_matrix, np.eye(3))
344
+ # the scan can be read when translation is defined but not rotation:
345
+ e57.read_scan(0, ignore_missing_fields=True)
326
346
 
327
347
  BUFFER_TYPES = {
328
348
  libe57.FloatNode: 'd',
@@ -1 +0,0 @@
1
- __version__ = "0.4.17"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes