spatialgeometry 1.2.0__tar.gz → 1.3.0__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.
Files changed (213) hide show
  1. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/.github/workflows/build.yml +1 -1
  2. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/.github/workflows/cibuildwheel.yml +11 -4
  3. spatialgeometry-1.3.0/CHANGELOG.md +101 -0
  4. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/PKG-INFO +14 -2
  5. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/README.md +8 -0
  6. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/docs/Makefile +7 -1
  7. spatialgeometry-1.3.0/docs/figs/panda_hand.dae +403 -0
  8. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/docs/source/conf.py +16 -5
  9. spatialgeometry-1.3.0/docs/source/intro.rst +291 -0
  10. spatialgeometry-1.3.0/examples/animating_shapes.py +17 -0
  11. spatialgeometry-1.3.0/examples/displaying_shapes.py +15 -0
  12. spatialgeometry-1.3.0/examples/scene_graph.py +27 -0
  13. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/pyproject.toml +3 -3
  14. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/__init__.py +10 -1
  15. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/geom/CollisionShape.py +50 -37
  16. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/geom/SceneGroup.py +7 -8
  17. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/geom/SceneNode.py +28 -28
  18. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/geom/Shape.py +221 -56
  19. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/geom/__init__.py +2 -1
  20. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/scene.py +9 -9
  21. spatialgeometry-1.3.0/tests/test_Shape.py +391 -0
  22. spatialgeometry-1.2.0/docs/source/intro.rst +0 -107
  23. spatialgeometry-1.2.0/tests/test_Shape.py +0 -199
  24. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/.gitattributes +0 -0
  25. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/.github/Makefile +0 -0
  26. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/.gitignore +0 -0
  27. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/CMakeLists.txt +0 -0
  28. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/LICENSE +0 -0
  29. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/Makefile +0 -0
  30. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/docs/source/_static/css/custom.css +0 -0
  31. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/docs/source/api.rst +0 -0
  32. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/docs/source/index.rst +0 -0
  33. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/environment.yml +0 -0
  34. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/Core +0 -0
  35. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ArithmeticSequence.h +0 -0
  36. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Array.h +0 -0
  37. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ArrayBase.h +0 -0
  38. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ArrayWrapper.h +0 -0
  39. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Assign.h +0 -0
  40. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/AssignEvaluator.h +0 -0
  41. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Assign_MKL.h +0 -0
  42. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/BandMatrix.h +0 -0
  43. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Block.h +0 -0
  44. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/BooleanRedux.h +0 -0
  45. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CommaInitializer.h +0 -0
  46. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ConditionEstimator.h +0 -0
  47. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CoreEvaluators.h +0 -0
  48. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CoreIterators.h +0 -0
  49. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CwiseBinaryOp.h +0 -0
  50. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CwiseNullaryOp.h +0 -0
  51. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CwiseTernaryOp.h +0 -0
  52. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CwiseUnaryOp.h +0 -0
  53. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/CwiseUnaryView.h +0 -0
  54. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/DenseBase.h +0 -0
  55. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/DenseCoeffsBase.h +0 -0
  56. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/DenseStorage.h +0 -0
  57. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Diagonal.h +0 -0
  58. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/DiagonalMatrix.h +0 -0
  59. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/DiagonalProduct.h +0 -0
  60. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Dot.h +0 -0
  61. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/EigenBase.h +0 -0
  62. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ForceAlignedAccess.h +0 -0
  63. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Fuzzy.h +0 -0
  64. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/GeneralProduct.h +0 -0
  65. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/GenericPacketMath.h +0 -0
  66. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/GlobalFunctions.h +0 -0
  67. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/IO.h +0 -0
  68. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/IndexedView.h +0 -0
  69. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Inverse.h +0 -0
  70. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Map.h +0 -0
  71. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/MapBase.h +0 -0
  72. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/MathFunctions.h +0 -0
  73. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/MathFunctionsImpl.h +0 -0
  74. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Matrix.h +0 -0
  75. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/MatrixBase.h +0 -0
  76. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/NestByValue.h +0 -0
  77. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/NoAlias.h +0 -0
  78. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/NumTraits.h +0 -0
  79. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
  80. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/PermutationMatrix.h +0 -0
  81. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/PlainObjectBase.h +0 -0
  82. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Product.h +0 -0
  83. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ProductEvaluators.h +0 -0
  84. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Random.h +0 -0
  85. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Redux.h +0 -0
  86. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Ref.h +0 -0
  87. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Replicate.h +0 -0
  88. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Reshaped.h +0 -0
  89. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/ReturnByValue.h +0 -0
  90. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Reverse.h +0 -0
  91. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Select.h +0 -0
  92. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/SelfAdjointView.h +0 -0
  93. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
  94. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Solve.h +0 -0
  95. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/SolveTriangular.h +0 -0
  96. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/SolverBase.h +0 -0
  97. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/StableNorm.h +0 -0
  98. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/StlIterators.h +0 -0
  99. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Stride.h +0 -0
  100. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Swap.h +0 -0
  101. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Transpose.h +0 -0
  102. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Transpositions.h +0 -0
  103. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/TriangularMatrix.h +0 -0
  104. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/VectorBlock.h +0 -0
  105. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/VectorwiseOp.h +0 -0
  106. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/Visitor.h +0 -0
  107. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX/Complex.h +0 -0
  108. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
  109. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
  110. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
  111. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
  112. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
  113. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
  114. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
  115. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
  116. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
  117. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
  118. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
  119. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
  120. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
  121. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/CUDA/Complex.h +0 -0
  122. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
  123. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
  124. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
  125. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
  126. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/Half.h +0 -0
  127. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/Settings.h +0 -0
  128. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/Default/TypeCasting.h +0 -0
  129. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
  130. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
  131. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
  132. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
  133. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/MSA/Complex.h +0 -0
  134. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
  135. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
  136. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/NEON/Complex.h +0 -0
  137. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
  138. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
  139. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
  140. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
  141. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SSE/Complex.h +0 -0
  142. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
  143. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
  144. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
  145. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
  146. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
  147. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
  148. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
  149. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
  150. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
  151. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -0
  152. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
  153. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
  154. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
  155. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
  156. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
  157. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
  158. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
  159. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/StlFunctors.h +0 -0
  160. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
  161. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
  162. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
  163. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
  164. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
  165. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
  166. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
  167. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
  168. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
  169. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/Parallelizer.h +0 -0
  170. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
  171. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
  172. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
  173. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
  174. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
  175. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
  176. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
  177. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
  178. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
  179. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
  180. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
  181. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
  182. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
  183. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/BlasUtil.h +0 -0
  184. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
  185. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/Constants.h +0 -0
  186. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
  187. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
  188. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
  189. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/IntegralConstant.h +0 -0
  190. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/MKL_support.h +0 -0
  191. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/Macros.h +0 -0
  192. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/Memory.h +0 -0
  193. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/Meta.h +0 -0
  194. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/NonMPL2.h +0 -0
  195. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
  196. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/ReshapedHelper.h +0 -0
  197. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/StaticAssert.h +0 -0
  198. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/SymbolicIndex.h +0 -0
  199. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/Core/util/XprHelper.h +0 -0
  200. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -0
  201. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -0
  202. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/BlockMethods.h +0 -0
  203. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -0
  204. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -0
  205. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/IndexedViewMethods.h +0 -0
  206. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -0
  207. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -0
  208. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/Eigen/src/plugins/ReshapedMethods.h +0 -0
  209. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/core/scene_nb.cpp +0 -0
  210. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/src/spatialgeometry/tools/__init__.py +0 -0
  211. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/tests/__init__.py +0 -0
  212. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/tests/test_collision.py +0 -0
  213. {spatialgeometry-1.2.0 → spatialgeometry-1.3.0}/tests/test_scene_backend.py +0 -0
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  - name: Install docs dependencies
69
69
  run: |
70
- pip install .[docs]
70
+ pip install .[docs,collision]
71
71
  pip install sympy
72
72
  sudo apt-get install -y graphviz
73
73
 
@@ -1,5 +1,13 @@
1
1
  # Build wheels for all platforms and publish to PyPI.
2
- # Triggered on GitHub release creation or manually via workflow_dispatch.
2
+ #
3
+ # To ship a release: bump the version in pyproject.toml, merge that to
4
+ # main, then on GitHub go to Releases -> "Draft a new release", pick a
5
+ # tag matching the new version, and click "Publish release". That single
6
+ # click is the only trigger for this workflow -- it builds every wheel
7
+ # (including Pyodide/wasm32), uploads everything to PyPI, and attaches
8
+ # the Pyodide wheel to the release as a downloadable asset. There is no
9
+ # separate manual/workflow_dispatch path, so there's only one way to
10
+ # publish and it always does the full job.
3
11
  #
4
12
  # Uses OIDC trusted publishing -- no stored PyPI token required.
5
13
 
@@ -7,8 +15,7 @@ name: Publish to PyPI
7
15
 
8
16
  on:
9
17
  release:
10
- types: [created]
11
- workflow_dispatch:
18
+ types: [published]
12
19
 
13
20
  jobs:
14
21
  build_wheels:
@@ -84,7 +91,7 @@ jobs:
84
91
  upload_pyodide_asset:
85
92
  name: Attach Pyodide wheel to GitHub release
86
93
  needs: build_pyodide
87
- if: github.event_name == 'release' && needs.build_pyodide.result == 'success'
94
+ if: needs.build_pyodide.result == 'success'
88
95
  runs-on: ubuntu-latest
89
96
  permissions:
90
97
  contents: write
@@ -0,0 +1,101 @@
1
+ # Changelog
2
+
3
+ Notable changes to this project are documented in this file. Starts from
4
+ v1.2.0 — earlier releases aren't documented retroactively.
5
+
6
+ ## [1.3.0] - 2026-08-03
7
+
8
+ ### New
9
+
10
+ - **`Path` shape**: a polyline through a sequence of waypoints — straight
11
+ segments joining consecutive points, for drawing paths and trajectories
12
+ in the scene. `radius`/`linewidth` mirror `Arrow`'s existing mutual
13
+ exclusivity (a real tube when `radius > 0`, a line honoring `linewidth`
14
+ otherwise). Deliberately a plain `Shape`, not `CollisionShape` — Coal has
15
+ no native "tube along a polyline" primitive.
16
+ - **`Axes` gains `arrows=False`** (render each axis as a colored `Arrow`
17
+ instead of a plain line) plus `radius`/`linewidth`, passed straight
18
+ through to each constituent `Arrow` when `arrows=True`.
19
+ - **`Arrow` gains `linewidth`**: when `radius == 0` (the existing
20
+ "shaft is a line" fallback), `linewidth` now actually controls that
21
+ line's width in pixels — previously uncontrolled, whatever the browser's
22
+ default happened to render.
23
+ - **`__version__`** is now exposed, matching the other packages in the
24
+ toolbox family (`spatialmath-python`, `robotics-toolbox-python`, `bdsim`,
25
+ `machinevision-toolbox-python`).
26
+
27
+ ### Changed
28
+
29
+ - **`Shape` and `CollisionShape` are now abstract base classes.** Neither
30
+ was meant to be instantiated directly — `Shape.to_dict` and
31
+ `CollisionShape._init_coal` are `@abstractmethod`; every concrete shape
32
+ already overrode both.
33
+ - **`T` (pose) moved from `Shape` up to `SceneNode`.** It was a thin
34
+ wrapper with nothing `Shape`-specific about it; moving it up means
35
+ `SceneGroup` (and any future `SceneNode` subclass) gets the same
36
+ convenient, `SE3`-accepting pose property that only `Shape` had before —
37
+ so a whole group of shapes can now be moved as one unit via `group.T`.
38
+ - **`repr()`/`str()` rewritten.** `repr()` previously showed only the
39
+ shape's `stype` string plus translation — not unambiguous (`Box`, a
40
+ deprecated alias of `Cuboid`, was indistinguishable from `Cuboid`) and
41
+ broke visually the moment more than one shape appeared together (e.g. in
42
+ a list, or a `SceneGroup`). Now single-line and constructor-style, e.g.
43
+ `Cylinder(radius=1.0, length=2.0, pose='t = 0, 0, 0; rpy/zyx = 0°, 0°, 0°')`.
44
+ - **Type hints modernized** across the scene-graph/shape classes —
45
+ `typing.Union`/`List`/`Dict`/`Tuple`/`Optional` replaced with
46
+ `X | Y`/`list`/`dict`/`tuple`, and filled in on several public
47
+ constructors/properties that had none at all.
48
+ - Docs: the Sphinx build's `docs` extra now also installs `collision`, so
49
+ the intro chapter's `closest_point()`/`iscollided()` example actually
50
+ runs instead of silently baking a traceback into the rendered page.
51
+ - Docs: intro chapter rewritten with mesh/collision worked examples, mouse
52
+ navigation controls, and scene-graph parenting; `sphinx-copybutton`,
53
+ `sphinx-codeautolink`, `sphinxcontrib-mermaid`, and a `make livehtml`
54
+ target wired up for faster doc iteration.
55
+
56
+ ### Fixed
57
+
58
+ - **`Shape.color`'s setter left an all-integer color input as
59
+ `numpy.int64`** (e.g. `color=[1, 0, 0, 1]`, a very natural way to write
60
+ "opaque red") rather than a plain `float` — `self.color[3]` (opacity)
61
+ being `int64` broke real (non-mocked) `json.dumps()` sends. Never caught
62
+ by the existing test suite since those tests are `FakeBrowser`-mocked.
63
+ - **`SceneNode._T`'s setter referenced a nonexistent `self.parent.wT`**
64
+ (should have been `self._scene_parent._wT`) — setting a node's pose
65
+ while it already had a `scene_parent` raised `AttributeError` instead of
66
+ composing the world transform. No test coverage existed for this path
67
+ before.
68
+ - `SceneNode.scene_parent`'s return type was annotated `Type["SceneNode"]`
69
+ (the class itself) rather than an instance; corrected to
70
+ `SceneNode | None`.
71
+
72
+ ## [1.2.0] - 2026-07-28
73
+
74
+ First release since v1.1.0 (2023) — mostly packaging and build-system work, plus a collision-backend swap.
75
+
76
+ ### New
77
+
78
+ - **Coal replaces PyBullet as the collision backend.** PyBullet wouldn't build with clang on macOS, so all collision checking now runs on [Coal](https://github.com/coal-library/coal) instead.
79
+ - **NumPy 2 support.**
80
+ - **Pyodide (WebAssembly) wheels**, so spatialgeometry can run in-browser (e.g. JupyterLite), alongside the usual platform wheels. Since there's no C++ compiler to target under Pyodide, that wheel ships a pure-Python fallback for the scene-graph transform math instead of the compiled extension — same API, just not compiled.
81
+ - **Prebuilt wheels for more platforms**: native Linux arm64 and macOS arm64 in addition to Linux/Windows x86_64 — no compiler needed on install for any of them.
82
+
83
+ ### Changed
84
+
85
+ - **Build system rewritten**: the C++ extension now builds with **nanobind + scikit-build-core** (previously a hand-rolled hatchling build hook). Faster builds, and the vendored Eigen copy was trimmed from Eigen's full 337-file tree down to the ~175 files this project actually uses.
86
+ - **Project layout moved to `src/`**, and the build backend moved from setuptools to hatchling and then to scikit-build-core over the course of this work.
87
+ - **Docs rewritten**: the README, intro chapter, and API reference no longer borrow content from the Robotics Toolbox docs — they now describe spatialgeometry on its own terms, with a Swift-based display example.
88
+ - **Dependency cleanup**: `roboticstoolbox` is no longer pulled into the `dev` extra, removing a version-pin collision some installs were hitting.
89
+
90
+ ### Fixed
91
+
92
+ - macOS build failures caused by PyBullet + clang (resolved by the Coal switch above).
93
+ - NumPy 2 compatibility issues.
94
+ - Windows wheel builds failing over an overly long temp-file path.
95
+ - Several wheel-tagging/build-hook bugs that could produce a stale or wrong-architecture compiled extension, or silently fall back to a non-compiled wheel.
96
+ - The PyPI publish pipeline itself: a workflow bug was letting the Pyodide/wasm32 wheel — which PyPI doesn't accept — get bundled into the same upload batch as the real wheels, aborting the upload partway through. Publishing now uses a single, unambiguous trigger (creating a GitHub Release) that always completes the full publish.
97
+
98
+ ### Known limitations
99
+
100
+ - Collision checking (Coal) isn't available via `pip` on Windows — one of Coal's own dependencies doesn't publish a Windows wheel. Everything else works there; `pip install spatialgeometry[collision]` will just have no effect on that platform for now.
101
+ **Workaround:** conda-forge publishes `coal-python` for `win-64` against its own assimp build, so `conda install -c conda-forge coal-python` followed by `pip install spatialgeometry trimesh` gets collision checking working on Windows today.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: spatialgeometry
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: A Shape and Geometry Description Package
5
5
  Keywords: python,robotics,robotics-toolbox,kinematics,dynamics,motion-planning,trajectory-generation,jacobian,hessian,control,simulation,robot-manipulator,mobile-robot
6
6
  Author-Email: Jesse Haviland <j.haviland@qut.edu.au>, Peter Corke <rvc@petercorke.com>
@@ -41,6 +41,7 @@ Requires-Dist: spatialmath-python>=1.0.0
41
41
  Provides-Extra: collision
42
42
  Requires-Dist: coal; sys_platform != "win32" and extra == "collision"
43
43
  Requires-Dist: trimesh; extra == "collision"
44
+ Requires-Dist: pycollada; extra == "collision"
44
45
  Provides-Extra: dev
45
46
  Requires-Dist: black; extra == "dev"
46
47
  Requires-Dist: editables; extra == "dev"
@@ -53,7 +54,10 @@ Requires-Dist: trimesh; extra == "dev"
53
54
  Provides-Extra: docs
54
55
  Requires-Dist: sphinx; extra == "docs"
55
56
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
56
- Requires-Dist: sphinx-autorun; extra == "docs"
57
+ Requires-Dist: sphinx-pyrunblock; extra == "docs"
58
+ Requires-Dist: sphinx-copybutton; extra == "docs"
59
+ Requires-Dist: sphinx-codeautolink; extra == "docs"
60
+ Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
57
61
  Description-Content-Type: text/markdown
58
62
 
59
63
  # Spatial Geometry
@@ -136,6 +140,14 @@ required there.
136
140
  > version range Coal needs), so the `collision` extra skips it there and
137
141
  > collision checking is unavailable via `pip` on Windows. Everything else
138
142
  > in the package works normally.
143
+ >
144
+ > Workaround: conda-forge publishes `coal-python` built for `win-64`
145
+ > against its own assimp, sidestepping the missing wheel entirely:
146
+ >
147
+ > ```shell
148
+ > conda install -c conda-forge coal-python
149
+ > pip install spatialgeometry trimesh
150
+ > ```
139
151
 
140
152
  ### conda / conda-forge
141
153
 
@@ -78,6 +78,14 @@ required there.
78
78
  > version range Coal needs), so the `collision` extra skips it there and
79
79
  > collision checking is unavailable via `pip` on Windows. Everything else
80
80
  > in the package works normally.
81
+ >
82
+ > Workaround: conda-forge publishes `coal-python` built for `win-64`
83
+ > against its own assimp, sidestepping the missing wheel entirely:
84
+ >
85
+ > ```shell
86
+ > conda install -c conda-forge coal-python
87
+ > pip install spatialgeometry trimesh
88
+ > ```
81
89
 
82
90
  ### conda / conda-forge
83
91
 
@@ -12,7 +12,13 @@ BUILDDIR = build
12
12
  help:
13
13
  @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
14
 
15
- .PHONY: help Makefile
15
+ # Live-rebuild and reload in the browser on every source change.
16
+ livehtml:
17
+ sphinx-autobuild "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS) $(O) \
18
+ --open-browser \
19
+ --ignore "$(SOURCEDIR)/generated/*"
20
+
21
+ .PHONY: help livehtml Makefile
16
22
 
17
23
  # Catch-all target: route all unknown targets to Sphinx using the new
18
24
  # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).