planex2d 0.2.0__tar.gz → 0.2.2__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 (816) hide show
  1. {planex2d-0.2.0 → planex2d-0.2.2}/CMakeLists.txt +11 -1
  2. {planex2d-0.2.0 → planex2d-0.2.2}/PKG-INFO +19 -10
  3. {planex2d-0.2.0 → planex2d-0.2.2}/README.md +18 -9
  4. {planex2d-0.2.0 → planex2d-0.2.2}/pyproject.toml +1 -1
  5. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/boolean.hpp +8 -8
  6. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/cut.hpp +5 -5
  7. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/cutloop.hpp +9 -9
  8. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/constraintsketch.hpp +2 -2
  9. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/shapedsystem.hpp +9 -10
  10. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/solver.hpp +7 -3
  11. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circletouch.hpp +2 -2
  12. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/curve.hpp +3 -3
  13. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/prism.hpp +3 -3
  14. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/planexformat.hpp +2 -2
  15. {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetpath.hpp +3 -3
  16. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding.hpp +39 -35
  17. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch.hpp +3 -3
  18. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/__init__.py +8 -0
  19. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_gmsh.py +1 -1
  20. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_occ.py +1 -0
  21. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/deformable.hpp +4 -4
  22. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/identification.hpp +6 -5
  23. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/measure.hpp +11 -11
  24. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/shapeops.hpp +8 -8
  25. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/thickness.hpp +19 -19
  26. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/arcconstruction.hpp +4 -4
  27. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/circleconstruction.hpp +2 -2
  28. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/diagnostics.hpp +8 -8
  29. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/elementcutter.hpp +7 -7
  30. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/lineconstruction.hpp +8 -7
  31. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/relationfinder.hpp +17 -16
  32. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/sketch.hpp +9 -8
  33. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/target.hpp +3 -3
  34. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/touchingcircles.hpp +6 -5
  35. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/chain.hpp +4 -4
  36. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/cleanup.hpp +32 -19
  37. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/fit.hpp +14 -13
  38. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/wire.hpp +1 -1
  39. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/constraintsketch_identity.json +13 -13
  40. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_api.py +18 -0
  41. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_solver.py +20 -0
  42. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_face.py +14 -2
  43. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_occ_split.py +2 -0
  44. {planex2d-0.2.0 → planex2d-0.2.2}/LICENSE +0 -0
  45. {planex2d-0.2.0 → planex2d-0.2.2}/THIRD_PARTY_NOTICES.md +0 -0
  46. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.APACHE +0 -0
  47. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.BSD +0 -0
  48. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.GPL +0 -0
  49. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.LGPL +0 -0
  50. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MINPACK +0 -0
  51. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MPL2 +0 -0
  52. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.README +0 -0
  53. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Cholesky +0 -0
  54. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/CholmodSupport +0 -0
  55. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Core +0 -0
  56. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Dense +0 -0
  57. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigen +0 -0
  58. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigenvalues +0 -0
  59. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Geometry +0 -0
  60. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Householder +0 -0
  61. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/IterativeLinearSolvers +0 -0
  62. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Jacobi +0 -0
  63. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/KLUSupport +0 -0
  64. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/LU +0 -0
  65. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/MetisSupport +0 -0
  66. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/OrderingMethods +0 -0
  67. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PaStiXSupport +0 -0
  68. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PardisoSupport +0 -0
  69. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QR +0 -0
  70. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QtAlignedMalloc +0 -0
  71. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SPQRSupport +0 -0
  72. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SVD +0 -0
  73. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Sparse +0 -0
  74. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCholesky +0 -0
  75. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCore +0 -0
  76. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseLU +0 -0
  77. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseQR +0 -0
  78. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdDeque +0 -0
  79. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdList +0 -0
  80. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdVector +0 -0
  81. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SuperLUSupport +0 -0
  82. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/UmfPackSupport +0 -0
  83. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LDLT.h +0 -0
  84. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT.h +0 -0
  85. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -0
  86. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -0
  87. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArithmeticSequence.h +0 -0
  88. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Array.h +0 -0
  89. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayBase.h +0 -0
  90. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayWrapper.h +0 -0
  91. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign.h +0 -0
  92. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/AssignEvaluator.h +0 -0
  93. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign_MKL.h +0 -0
  94. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BandMatrix.h +0 -0
  95. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Block.h +0 -0
  96. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BooleanRedux.h +0 -0
  97. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CommaInitializer.h +0 -0
  98. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ConditionEstimator.h +0 -0
  99. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreEvaluators.h +0 -0
  100. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreIterators.h +0 -0
  101. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseBinaryOp.h +0 -0
  102. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseNullaryOp.h +0 -0
  103. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseTernaryOp.h +0 -0
  104. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryOp.h +0 -0
  105. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryView.h +0 -0
  106. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseBase.h +0 -0
  107. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseCoeffsBase.h +0 -0
  108. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseStorage.h +0 -0
  109. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Diagonal.h +0 -0
  110. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalMatrix.h +0 -0
  111. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalProduct.h +0 -0
  112. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Dot.h +0 -0
  113. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/EigenBase.h +0 -0
  114. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ForceAlignedAccess.h +0 -0
  115. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Fuzzy.h +0 -0
  116. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GeneralProduct.h +0 -0
  117. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GenericPacketMath.h +0 -0
  118. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GlobalFunctions.h +0 -0
  119. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IO.h +0 -0
  120. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IndexedView.h +0 -0
  121. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Inverse.h +0 -0
  122. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Map.h +0 -0
  123. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MapBase.h +0 -0
  124. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctions.h +0 -0
  125. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctionsImpl.h +0 -0
  126. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Matrix.h +0 -0
  127. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MatrixBase.h +0 -0
  128. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NestByValue.h +0 -0
  129. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NoAlias.h +0 -0
  130. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NumTraits.h +0 -0
  131. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
  132. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PermutationMatrix.h +0 -0
  133. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PlainObjectBase.h +0 -0
  134. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Product.h +0 -0
  135. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ProductEvaluators.h +0 -0
  136. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Random.h +0 -0
  137. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Redux.h +0 -0
  138. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Ref.h +0 -0
  139. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Replicate.h +0 -0
  140. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reshaped.h +0 -0
  141. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ReturnByValue.h +0 -0
  142. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reverse.h +0 -0
  143. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Select.h +0 -0
  144. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfAdjointView.h +0 -0
  145. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
  146. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Solve.h +0 -0
  147. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolveTriangular.h +0 -0
  148. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolverBase.h +0 -0
  149. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StableNorm.h +0 -0
  150. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StlIterators.h +0 -0
  151. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Stride.h +0 -0
  152. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Swap.h +0 -0
  153. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpose.h +0 -0
  154. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpositions.h +0 -0
  155. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/TriangularMatrix.h +0 -0
  156. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorBlock.h +0 -0
  157. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorwiseOp.h +0 -0
  158. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Visitor.h +0 -0
  159. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/Complex.h +0 -0
  160. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
  161. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
  162. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
  163. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
  164. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
  165. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
  166. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
  167. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
  168. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
  169. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
  170. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
  171. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
  172. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
  173. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -0
  174. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
  175. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
  176. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
  177. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
  178. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Half.h +0 -0
  179. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Settings.h +0 -0
  180. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -0
  181. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
  182. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
  183. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
  184. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
  185. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/Complex.h +0 -0
  186. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
  187. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
  188. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/Complex.h +0 -0
  189. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
  190. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
  191. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
  192. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
  193. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/Complex.h +0 -0
  194. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
  195. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
  196. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
  197. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
  198. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
  199. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
  200. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
  201. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
  202. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
  203. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -0
  204. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
  205. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
  206. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
  207. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
  208. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
  209. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
  210. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
  211. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/StlFunctors.h +0 -0
  212. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
  213. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
  214. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
  215. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
  216. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
  217. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
  218. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
  219. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
  220. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
  221. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/Parallelizer.h +0 -0
  222. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
  223. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
  224. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
  225. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
  226. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
  227. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
  228. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
  229. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
  230. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
  231. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
  232. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
  233. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
  234. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
  235. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/BlasUtil.h +0 -0
  236. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
  237. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Constants.h +0 -0
  238. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
  239. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
  240. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
  241. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IntegralConstant.h +0 -0
  242. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/MKL_support.h +0 -0
  243. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Macros.h +0 -0
  244. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Memory.h +0 -0
  245. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Meta.h +0 -0
  246. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/NonMPL2.h +0 -0
  247. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
  248. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReshapedHelper.h +0 -0
  249. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/StaticAssert.h +0 -0
  250. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/SymbolicIndex.h +0 -0
  251. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/XprHelper.h +0 -0
  252. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -0
  253. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -0
  254. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -0
  255. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -0
  256. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -0
  257. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -0
  258. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -0
  259. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -0
  260. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -0
  261. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -0
  262. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -0
  263. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -0
  264. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -0
  265. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -0
  266. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AlignedBox.h +0 -0
  267. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AngleAxis.h +0 -0
  268. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/EulerAngles.h +0 -0
  269. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Homogeneous.h +0 -0
  270. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Hyperplane.h +0 -0
  271. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -0
  272. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -0
  273. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Quaternion.h +0 -0
  274. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Rotation2D.h +0 -0
  275. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/RotationBase.h +0 -0
  276. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Scaling.h +0 -0
  277. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Transform.h +0 -0
  278. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Translation.h +0 -0
  279. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Umeyama.h +0 -0
  280. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -0
  281. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -0
  282. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/Householder.h +0 -0
  283. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -0
  284. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -0
  285. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -0
  286. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -0
  287. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -0
  288. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -0
  289. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -0
  290. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -0
  291. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -0
  292. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Jacobi/Jacobi.h +0 -0
  293. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -0
  294. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/Determinant.h +0 -0
  295. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/FullPivLU.h +0 -0
  296. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/InverseImpl.h +0 -0
  297. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU.h +0 -0
  298. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -0
  299. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -0
  300. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -0
  301. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Amd.h +0 -0
  302. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -0
  303. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -0
  304. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -0
  305. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -0
  306. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -0
  307. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -0
  308. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -0
  309. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -0
  310. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR.h +0 -0
  311. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -0
  312. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -0
  313. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/BDCSVD.h +0 -0
  314. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD.h +0 -0
  315. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -0
  316. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/SVDBase.h +0 -0
  317. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -0
  318. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -0
  319. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -0
  320. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -0
  321. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -0
  322. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -0
  323. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -0
  324. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -0
  325. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -0
  326. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -0
  327. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -0
  328. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -0
  329. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -0
  330. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -0
  331. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -0
  332. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDot.h +0 -0
  333. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -0
  334. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMap.h +0 -0
  335. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -0
  336. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -0
  337. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -0
  338. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -0
  339. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -0
  340. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRef.h +0 -0
  341. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -0
  342. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -0
  343. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -0
  344. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -0
  345. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -0
  346. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -0
  347. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseVector.h +0 -0
  348. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseView.h +0 -0
  349. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -0
  350. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU.h +0 -0
  351. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -0
  352. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -0
  353. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -0
  354. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -0
  355. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -0
  356. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -0
  357. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -0
  358. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -0
  359. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -0
  360. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -0
  361. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -0
  362. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -0
  363. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -0
  364. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -0
  365. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -0
  366. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -0
  367. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseQR/SparseQR.h +0 -0
  368. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdDeque.h +0 -0
  369. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdList.h +0 -0
  370. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdVector.h +0 -0
  371. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/details.h +0 -0
  372. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -0
  373. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -0
  374. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Image.h +0 -0
  375. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Kernel.h +0 -0
  376. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/RealSvd2x2.h +0 -0
  377. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/blas.h +0 -0
  378. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapack.h +0 -0
  379. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke.h +0 -0
  380. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke_mangling.h +0 -0
  381. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -0
  382. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -0
  383. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/BlockMethods.h +0 -0
  384. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -0
  385. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -0
  386. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -0
  387. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -0
  388. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -0
  389. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -0
  390. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/LICENSE +0 -0
  391. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/algorithm.hpp +0 -0
  392. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/data_pipeline.hpp +0 -0
  393. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/fill.hpp +0 -0
  394. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/find.hpp +0 -0
  395. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/for_each.hpp +0 -0
  396. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/generate.hpp +0 -0
  397. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/merge.hpp +0 -0
  398. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/module.hpp +0 -0
  399. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/partitioner.hpp +0 -0
  400. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/pipeline.hpp +0 -0
  401. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/reduce.hpp +0 -0
  402. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/scan.hpp +0 -0
  403. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/sort.hpp +0 -0
  404. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/transform.hpp +0 -0
  405. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async.hpp +0 -0
  406. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async_task.hpp +0 -0
  407. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/atomic_notifier.hpp +0 -0
  408. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/declarations.hpp +0 -0
  409. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/environment.hpp +0 -0
  410. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/error.hpp +0 -0
  411. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/executor.hpp +0 -0
  412. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/flow_builder.hpp +0 -0
  413. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/graph.hpp +0 -0
  414. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/nonblocking_notifier.hpp +0 -0
  415. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/runtime.hpp +0 -0
  416. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/semaphore.hpp +0 -0
  417. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task.hpp +0 -0
  418. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task_group.hpp +0 -0
  419. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/taskflow.hpp +0 -0
  420. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/topology.hpp +0 -0
  421. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/worker.hpp +0 -0
  422. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/wsq.hpp +0 -0
  423. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/find.hpp +0 -0
  424. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/for_each.hpp +0 -0
  425. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/matmul.hpp +0 -0
  426. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/merge.hpp +0 -0
  427. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/reduce.hpp +0 -0
  428. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/scan.hpp +0 -0
  429. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/single_task.hpp +0 -0
  430. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/sort.hpp +0 -0
  431. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transform.hpp +0 -0
  432. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transpose.hpp +0 -0
  433. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_capturer.hpp +0 -0
  434. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_device.hpp +0 -0
  435. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_error.hpp +0 -0
  436. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_execution_policy.hpp +0 -0
  437. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph.hpp +0 -0
  438. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph_exec.hpp +0 -0
  439. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_memory.hpp +0 -0
  440. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_meta.hpp +0 -0
  441. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_optimizer.hpp +0 -0
  442. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_stream.hpp +0 -0
  443. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cudaflow.hpp +0 -0
  444. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/chrome.hpp +0 -0
  445. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/interface.hpp +0 -0
  446. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/tfprof.hpp +0 -0
  447. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/taskflow.hpp +0 -0
  448. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/iterator.hpp +0 -0
  449. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/lazy_string.hpp +0 -0
  450. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/macros.hpp +0 -0
  451. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/math.hpp +0 -0
  452. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/mpmc.hpp +0 -0
  453. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/object_pool.hpp +0 -0
  454. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/os.hpp +0 -0
  455. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/serializer.hpp +0 -0
  456. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/small_vector.hpp +0 -0
  457. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/spsc.hpp +0 -0
  458. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/stream.hpp +0 -0
  459. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/traits.hpp +0 -0
  460. {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/uuid.hpp +0 -0
  461. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/arrangement.hpp +0 -0
  462. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/pairrecord.hpp +0 -0
  463. {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/snap.hpp +0 -0
  464. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/analysis.hpp +0 -0
  465. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/constraint.hpp +0 -0
  466. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/copyrecords.hpp +0 -0
  467. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/dual.hpp +0 -0
  468. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/eval.hpp +0 -0
  469. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/expression.hpp +0 -0
  470. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/freemotions.hpp +0 -0
  471. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/jet.hpp +0 -0
  472. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/pending.hpp +0 -0
  473. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/reports.hpp +0 -0
  474. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/sparsecholesky.hpp +0 -0
  475. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/sparseqr.hpp +0 -0
  476. {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/system.hpp +0 -0
  477. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/axissystem.hpp +0 -0
  478. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/bbox.hpp +0 -0
  479. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/config.hpp +0 -0
  480. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/disjointsets.hpp +0 -0
  481. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/grid.hpp +0 -0
  482. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/objectid.hpp +0 -0
  483. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/parallel.hpp +0 -0
  484. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/placement.hpp +0 -0
  485. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/properties.hpp +0 -0
  486. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/timer.hpp +0 -0
  487. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/until.hpp +0 -0
  488. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/vector3.hpp +0 -0
  489. {planex2d-0.2.0 → planex2d-0.2.2}/src/core/vertex.hpp +0 -0
  490. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/arc.hpp +0 -0
  491. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/blend.hpp +0 -0
  492. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circle.hpp +0 -0
  493. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circlecarrier.hpp +0 -0
  494. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/corner.hpp +0 -0
  495. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/curvefit.hpp +0 -0
  496. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/edge.hpp +0 -0
  497. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/edgelist.hpp +0 -0
  498. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/ellipse.hpp +0 -0
  499. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/interpolate.hpp +0 -0
  500. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/line.hpp +0 -0
  501. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/parametricfit.hpp +0 -0
  502. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/primitiveedge.hpp +0 -0
  503. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/primitivefit.hpp +0 -0
  504. {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/spline.hpp +0 -0
  505. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/convert.hpp +0 -0
  506. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/edges.hpp +0 -0
  507. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/export.hpp +0 -0
  508. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/identify.hpp +0 -0
  509. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/measure.hpp +0 -0
  510. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occexport.hpp +0 -0
  511. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occprops.hpp +0 -0
  512. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occspline.hpp +0 -0
  513. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/placement.hpp +0 -0
  514. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/plane.hpp +0 -0
  515. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/project.hpp +0 -0
  516. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/section.hpp +0 -0
  517. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/shapecheck.hpp +0 -0
  518. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/shapeexport.hpp +0 -0
  519. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/splinefit.hpp +0 -0
  520. {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/stack.hpp +0 -0
  521. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/brepread.hpp +0 -0
  522. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/brepwrite.hpp +0 -0
  523. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/faceloops.hpp +0 -0
  524. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/json.hpp +0 -0
  525. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/sketchformat.hpp +0 -0
  526. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/stepread.hpp +0 -0
  527. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/steptext.hpp +0 -0
  528. {planex2d-0.2.0 → planex2d-0.2.2}/src/io/stepwrite.hpp +0 -0
  529. {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offset.hpp +0 -0
  530. {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetform.hpp +0 -0
  531. {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetpieces.hpp +0 -0
  532. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_config.cpp +0 -0
  533. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_constraintsketch.cpp +0 -0
  534. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_curve.hpp +0 -0
  535. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_deformable.cpp +0 -0
  536. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_edgegeometry.cpp +0 -0
  537. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_edges.cpp +0 -0
  538. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_face.cpp +0 -0
  539. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_identify.cpp +0 -0
  540. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_occ.cpp +0 -0
  541. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_occ.hpp +0 -0
  542. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_plane.cpp +0 -0
  543. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_section.cpp +0 -0
  544. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_shape.cpp +0 -0
  545. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch.cpp +0 -0
  546. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch_occ.cpp +0 -0
  547. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_solver.cpp +0 -0
  548. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_step.cpp +0 -0
  549. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_vertex.cpp +0 -0
  550. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_wire.cpp +0 -0
  551. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/module.cpp +0 -0
  552. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/module_occ.cpp +0 -0
  553. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_auto.py +0 -0
  554. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_caller.py +0 -0
  555. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_closing.py +0 -0
  556. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_compound.py +0 -0
  557. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_deformable.py +0 -0
  558. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_dimensions.py +0 -0
  559. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_drawing.py +0 -0
  560. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_dxf.py +0 -0
  561. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_expressions.py +0 -0
  562. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_fileunits.py +0 -0
  563. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_geom.py +0 -0
  564. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_ids.py +0 -0
  565. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_io.py +0 -0
  566. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_kicad.py +0 -0
  567. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_kicadwrite.py +0 -0
  568. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_levelset.py +0 -0
  569. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_measurements.py +0 -0
  570. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_meshsection.py +0 -0
  571. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_naca.py +0 -0
  572. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_parameters.py +0 -0
  573. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_planex.pyi +0 -0
  574. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot.py +0 -0
  575. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot3d.py +0 -0
  576. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_fields.py +0 -0
  577. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_mesh.py +0 -0
  578. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_sketch.py +0 -0
  579. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_style.py +0 -0
  580. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_select.py +0 -0
  581. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_shapelyio.py +0 -0
  582. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_sketches.py +0 -0
  583. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_svg.py +0 -0
  584. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_svgfile.py +0 -0
  585. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_units.py +0 -0
  586. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_views.py +0 -0
  587. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_workplane.py +0 -0
  588. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/debug.py +0 -0
  589. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-GPL-3.0.txt +0 -0
  590. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-LGPL-3.0.txt +0 -0
  591. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/NOTICE.txt +0 -0
  592. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/osifont-lgpl3fe.ttf +0 -0
  593. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/measurements.py +0 -0
  594. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/py.typed +0 -0
  595. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/stackups/__init__.py +0 -0
  596. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/stackups/_jlcpcb.py +0 -0
  597. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/templates/title_block.dxf +0 -0
  598. {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/types.py +0 -0
  599. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/face.hpp +0 -0
  600. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/fillet.hpp +0 -0
  601. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/relate.hpp +0 -0
  602. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/shape.hpp +0 -0
  603. {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/split.hpp +0 -0
  604. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/choices.hpp +0 -0
  605. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/copies.hpp +0 -0
  606. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/cornerparts.hpp +0 -0
  607. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/curveeval.hpp +0 -0
  608. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/curveformula.hpp +0 -0
  609. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/cut.hpp +0 -0
  610. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/element.cpp +0 -0
  611. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/element.hpp +0 -0
  612. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/geometry.hpp +0 -0
  613. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/guards.hpp +0 -0
  614. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetcurvedata.cpp +0 -0
  615. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetcurvedata.hpp +0 -0
  616. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetmaker.hpp +0 -0
  617. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetsides.hpp +0 -0
  618. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/options.hpp +0 -0
  619. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/pen.hpp +0 -0
  620. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/projection.hpp +0 -0
  621. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/projectionmaker.hpp +0 -0
  622. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/ref.cpp +0 -0
  623. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/ref.hpp +0 -0
  624. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/splinedata.cpp +0 -0
  625. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/splinedata.hpp +0 -0
  626. {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/symmetryaxis.hpp +0 -0
  627. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/crossing.hpp +0 -0
  628. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/loops.hpp +0 -0
  629. {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/topology.hpp +0 -0
  630. {planex2d-0.2.0 → planex2d-0.2.2}/tests/conftest.py +0 -0
  631. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/auxetic_levelset.npy +0 -0
  632. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/auxetic_levelset.vol.gz +0 -0
  633. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/britain-coast.csv +0 -0
  634. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/NOTICE +0 -0
  635. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/pic_programmer.kicad_pcb +0 -0
  636. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/small_board.kicad_pcb +0 -0
  637. {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/public_api.json +0 -0
  638. {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/fuzzlib.py +0 -0
  639. {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_booleans.py +0 -0
  640. {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_invariants.py +0 -0
  641. {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_sweep_near_coincidence.py +0 -0
  642. {planex2d-0.2.0 → planex2d-0.2.2}/tests/helpers.py +0 -0
  643. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_angle_between_lines.py +0 -0
  644. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_auto_constraint_options.py +0 -0
  645. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_auto_constraint_tangent.py +0 -0
  646. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_boolean.py +0 -0
  647. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_boolean_pair_record.py +0 -0
  648. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_brep.py +0 -0
  649. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bspline_native.py +0 -0
  650. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_api.py +0 -0
  651. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_c_head.py +0 -0
  652. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_c_sketch2.py +0 -0
  653. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_sketch.py +0 -0
  654. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bugs5.py +0 -0
  655. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_check_shape.py +0 -0
  656. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_circle_edge.py +0 -0
  657. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_closed_spline_trim.py +0 -0
  658. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_compound.py +0 -0
  659. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_config.py +0 -0
  660. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch.py +0 -0
  661. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_export.py +0 -0
  662. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_helpers.py +0 -0
  663. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_identity.py +0 -0
  664. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_jacobian.py +0 -0
  665. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_parity.py +0 -0
  666. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_patterns.py +0 -0
  667. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_planes.py +0 -0
  668. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_plot.py +0 -0
  669. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_splines.py +0 -0
  670. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_sweep.py +0 -0
  671. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_symmetry.py +0 -0
  672. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_trim.py +0 -0
  673. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_wires.py +0 -0
  674. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsolver.py +0 -0
  675. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsystem.py +0 -0
  676. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_copy.py +0 -0
  677. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_curve_sketch_tools.py +0 -0
  678. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_cut.py +0 -0
  679. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_deformable.py +0 -0
  680. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_dimension_layout.py +0 -0
  681. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_docstring_fixes.py +0 -0
  682. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_docstrings.py +0 -0
  683. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_drawing.py +0 -0
  684. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_dxf.py +0 -0
  685. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_edges.py +0 -0
  686. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_ellipse.py +0 -0
  687. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_export_wire_order.py +0 -0
  688. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expression_functions.py +0 -0
  689. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expressions.py +0 -0
  690. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expressions_parsing.py +0 -0
  691. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_face_views.py +0 -0
  692. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_file_units.py +0 -0
  693. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fillet_chamfer.py +0 -0
  694. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fitarcs.py +0 -0
  695. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fitvalidation.py +0 -0
  696. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fix_many_points.py +0 -0
  697. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_free_motions.py +0 -0
  698. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fromocc.py +0 -0
  699. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_g2_blends.py +0 -0
  700. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_global_parameters.py +0 -0
  701. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_globs_and_from_end.py +0 -0
  702. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_glue.py +0 -0
  703. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_gmsh.py +0 -0
  704. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_id_resolver.py +0 -0
  705. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_identify.py +0 -0
  706. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_ids.py +0 -0
  707. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_interpolate.py +0 -0
  708. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_intersect3d_mesh.py +0 -0
  709. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_intersect3d_wires.py +0 -0
  710. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_io.py +0 -0
  711. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad.py +0 -0
  712. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad_via_ring_round_trip.py +0 -0
  713. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad_write.py +0 -0
  714. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_levelset.py +0 -0
  715. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_levelset_periodic.py +0 -0
  716. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measure.py +0 -0
  717. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measure_spline_exact.py +0 -0
  718. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measurements.py +0 -0
  719. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_merge_collinear_tolerance.py +0 -0
  720. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_mirror_scale.py +0 -0
  721. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_motion.py +0 -0
  722. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_naca.py +0 -0
  723. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_numpy.py +0 -0
  724. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_numpy_wire.py +0 -0
  725. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_offset.py +0 -0
  726. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_offset_ends_corners.py +0 -0
  727. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_overconstrained.py +0 -0
  728. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pad_pocket.py +0 -0
  729. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pad_pocket_offset.py +0 -0
  730. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg1_sketch.py +0 -0
  731. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg_core.py +0 -0
  732. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg_mesh3d.py +0 -0
  733. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_constructors.py +0 -0
  734. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_repr_and_tohv.py +0 -0
  735. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_transforms.py +0 -0
  736. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_xz.py +0 -0
  737. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_planes.py +0 -0
  738. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot.py +0 -0
  739. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_dolfinx.py +0 -0
  740. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fields.py +0 -0
  741. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fields3d.py +0 -0
  742. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fill_legend.py +0 -0
  743. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_free_motions.py +0 -0
  744. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_projected_construction.py +0 -0
  745. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_sampling.py +0 -0
  746. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_points.py +0 -0
  747. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_points_as_vertices.py +0 -0
  748. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_project.py +0 -0
  749. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_projection_ids.py +0 -0
  750. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_properties.py +0 -0
  751. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_public_api.py +0 -0
  752. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_px_auto.py +0 -0
  753. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_quicksketch.py +0 -0
  754. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_region_open_wires.py +0 -0
  755. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_relate.py +0 -0
  756. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_section.py +0 -0
  757. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_select.py +0 -0
  758. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shape.py +0 -0
  759. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shapely.py +0 -0
  760. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shared_faces_boolean.py +0 -0
  761. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch.py +0 -0
  762. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_add.py +0 -0
  763. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_arcs.py +0 -0
  764. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_choices.py +0 -0
  765. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_circle.py +0 -0
  766. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_coincident_and_ends.py +0 -0
  767. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_constructors.py +0 -0
  768. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_conversion.py +0 -0
  769. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_curve.py +0 -0
  770. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_diagnose.py +0 -0
  771. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_elements.py +0 -0
  772. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_ends.py +0 -0
  773. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_fillet.py +0 -0
  774. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_mirror.py +0 -0
  775. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_offset.py +0 -0
  776. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_offset_forms.py +0 -0
  777. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_pattern_grid.py +0 -0
  778. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_planes.py +0 -0
  779. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_points.py +0 -0
  780. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_profiles.py +0 -0
  781. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_properties.py +0 -0
  782. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_rectangle_points.py +0 -0
  783. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_rectanglec.py +0 -0
  784. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_refs.py +0 -0
  785. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_select_direct.py +0 -0
  786. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_slot.py +0 -0
  787. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_symmetry.py +0 -0
  788. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_trim.py +0 -0
  789. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_wire_of_an_element.py +0 -0
  790. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_small_batch.py +0 -0
  791. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline.py +0 -0
  792. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_fit_hook.py +0 -0
  793. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_mass_exact.py +0 -0
  794. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_results_exact.py +0 -0
  795. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_style.py +0 -0
  796. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_split.py +0 -0
  797. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_split_pieces.py +0 -0
  798. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_step.py +0 -0
  799. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_stubs.py +0 -0
  800. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_suggest_constraints.py +0 -0
  801. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_svg.py +0 -0
  802. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_svg_files.py +0 -0
  803. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_symmetric_difference.py +0 -0
  804. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_timers.py +0 -0
  805. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_trim_at_tangent_contact.py +0 -0
  806. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_trim_names_one_element.py +0 -0
  807. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_units.py +0 -0
  808. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_update_keeps_free_values.py +0 -0
  809. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_vertex.py +0 -0
  810. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire.py +0 -0
  811. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire_chain.py +0 -0
  812. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire_face.py +0 -0
  813. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_workplane.py +0 -0
  814. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_workplane_px.py +0 -0
  815. {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_xyz_points.py +0 -0
  816. {planex2d-0.2.0 → planex2d-0.2.2}/tools/stubgen.py +0 -0
@@ -106,7 +106,9 @@ function(planex_module name kind)
106
106
  if("x86_64" IN_LIST CMAKE_OSX_ARCHITECTURES)
107
107
  target_compile_options(${name} PRIVATE "SHELL:-Xarch_x86_64 -march=core-avx2")
108
108
  endif()
109
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64" AND NOT MSVC)
109
+ elseif(MSVC AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64")
110
+ target_compile_options(${name} PRIVATE /arch:AVX2)
111
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
110
112
  target_compile_options(${name} PRIVATE -march=core-avx2)
111
113
  endif()
112
114
  endif()
@@ -118,6 +120,14 @@ function(planex_module name kind)
118
120
  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
119
121
  target_compile_options(${name} PRIVATE -ffp-contract=on)
120
122
  endif()
123
+ # a binding file has more sections than an MSVC object file holds by default; the sources are UTF-8, whatever the
124
+ # code page of the machine that builds; Visual Studio's generator compiles a target's files one after the other
125
+ # unless /MP, here as many at a time as the memory holds. Since Visual Studio 2022 17.10 a std::mutex built by the
126
+ # compiler crashes on its first lock when an older msvcp140.dll is already loaded in the Python process
127
+ if(MSVC)
128
+ target_compile_options(${name} PRIVATE /bigobj /utf-8 /MP${PLANEX_COMPILE_JOBS})
129
+ target_compile_definitions(${name} PRIVATE _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR)
130
+ endif()
121
131
  if(kind STREQUAL "occ")
122
132
  install(TARGETS ${name} LIBRARY DESTINATION ${PLANEX_OCC_DESTINATION})
123
133
  else()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: planex2d
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Fast, exact 2D geometry for Python: sketches, constraint solving, exact Boolean operations and offsets, with export to OpenCASCADE, netgen/NGSolve and gmsh
5
5
  Keywords: geometry,2D,CAD,sketch,constraint solver,Boolean operations,offset,OpenCASCADE,netgen,NGSolve,meshing
6
6
  Author: Sebastian Hirnschall
@@ -42,7 +42,8 @@ Description-Content-Type: text/markdown
42
42
  <a href="https://planex2d.org/docs/">Documentation</a> ·
43
43
  <a href="https://planex2d.org/docs/core/installation.html">Installation</a> ·
44
44
  <a href="https://planex2d.org/docs/examples/index.html">Examples</a> ·
45
- <a href="https://planex2d.org/docs/core/notices.html">License and notices</a>
45
+ <a href="https://planex2d.org/docs/core/notices.html">License and notices</a><br>
46
+ <a href="https://doi.org/10.5281/zenodo.23718969"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.23718969.svg" alt="DOI 10.5281/zenodo.23718969"></a>
46
47
  </p>
47
48
 
48
49
  planex2d is free software under the GNU Lesser General Public License, version 2.1 or (at your option) any later
@@ -67,13 +68,15 @@ pip install "planex2d[occ]" # with the OpenCASCADE bindings and netgen
67
68
 
68
69
  The quotes keep shells like zsh, the default on macOS, from reading the brackets as a file pattern.
69
70
 
70
- planex2d comes as wheels for Linux (x86_64 and aarch64) and macOS (Apple silicon and Intel, macOS 13.3 or newer), for
71
- Python 3.11 to 3.14; Windows follows with version 0.2.1. The core runs on numpy alone. The extra `occ` installs
72
- planex2d-occ, the OpenCASCADE bindings built for the last netgen releases (on Linux x86_64 and macOS, where netgen has
73
- wheels), and netgen with it; planex picks the bindings for the installed netgen. The package is called `planex2d` on
74
- PyPI and `planex` in Python (`import planex as px`). See
75
- [Installation](https://planex2d.org/docs/core/installation.html) for the optional packages and for building from source
76
- (a C++20 compiler, CMake; Xcode 16 on macOS).
71
+ planex2d comes as wheels for Linux (x86_64 and aarch64), macOS (Apple silicon and Intel, macOS 13.3 or newer) and
72
+ Windows (x86-64), for Python 3.11 to 3.14; on Windows it needs the latest
73
+ [Microsoft Visual C++ Redistributable](https://aka.ms/vc14/vc_redist.x64.exe) (x64), which most machines have. The core
74
+ runs on numpy alone. The extra `occ` installs planex2d-occ, the
75
+ OpenCASCADE bindings built for the last netgen releases (on Linux x86_64, macOS and Windows, where netgen has wheels),
76
+ and netgen with it; planex picks the bindings for the installed netgen. The package is called `planex2d` on PyPI and
77
+ `planex` in Python (`import planex as px`). See [Installation](https://planex2d.org/docs/core/installation.html) for the
78
+ optional packages and for building from source (a C++20 compiler, CMake; Xcode 16 on macOS, Visual Studio 2022 on
79
+ Windows).
77
80
 
78
81
  ## A first sketch
79
82
 
@@ -88,7 +91,7 @@ bracket = px.QuickSketch()
88
91
  bracket.Line(60).Turn(90).Line(10).Turn(90).Line(40)
89
92
  bracket.Arc(10, -90).Line(30).Turn(90).Line(10).Close()
90
93
  bracket.Circle((45, 5), 2.5).Circle((5, 35), 2.5)
91
- face = px.Face(bracket.Wires())
94
+ face = bracket.Face()
92
95
  face.Plot()
93
96
  ```
94
97
 
@@ -110,6 +113,12 @@ face.Plot()
110
113
  - [Benchmarks](https://planex2d.org/docs/core/comparison/index.html): planex2d next to OpenCASCADE and polygon libraries on
111
114
  the same tasks.
112
115
 
116
+ ## Citing
117
+
118
+ If you use planex2d in research, please cite it with its Zenodo DOI,
119
+ [10.5281/zenodo.23718969](https://doi.org/10.5281/zenodo.23718969), which always points to the latest version.
120
+ [CITATION.cff](CITATION.cff) holds the citation data.
121
+
113
122
  ## License
114
123
 
115
124
  planex2d is Copyright (C) 2026 Sebastian Hirnschall.
@@ -8,7 +8,8 @@
8
8
  <a href="https://planex2d.org/docs/">Documentation</a> ·
9
9
  <a href="https://planex2d.org/docs/core/installation.html">Installation</a> ·
10
10
  <a href="https://planex2d.org/docs/examples/index.html">Examples</a> ·
11
- <a href="https://planex2d.org/docs/core/notices.html">License and notices</a>
11
+ <a href="https://planex2d.org/docs/core/notices.html">License and notices</a><br>
12
+ <a href="https://doi.org/10.5281/zenodo.23718969"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.23718969.svg" alt="DOI 10.5281/zenodo.23718969"></a>
12
13
  </p>
13
14
 
14
15
  planex2d is free software under the GNU Lesser General Public License, version 2.1 or (at your option) any later
@@ -33,13 +34,15 @@ pip install "planex2d[occ]" # with the OpenCASCADE bindings and netgen
33
34
 
34
35
  The quotes keep shells like zsh, the default on macOS, from reading the brackets as a file pattern.
35
36
 
36
- planex2d comes as wheels for Linux (x86_64 and aarch64) and macOS (Apple silicon and Intel, macOS 13.3 or newer), for
37
- Python 3.11 to 3.14; Windows follows with version 0.2.1. The core runs on numpy alone. The extra `occ` installs
38
- planex2d-occ, the OpenCASCADE bindings built for the last netgen releases (on Linux x86_64 and macOS, where netgen has
39
- wheels), and netgen with it; planex picks the bindings for the installed netgen. The package is called `planex2d` on
40
- PyPI and `planex` in Python (`import planex as px`). See
41
- [Installation](https://planex2d.org/docs/core/installation.html) for the optional packages and for building from source
42
- (a C++20 compiler, CMake; Xcode 16 on macOS).
37
+ planex2d comes as wheels for Linux (x86_64 and aarch64), macOS (Apple silicon and Intel, macOS 13.3 or newer) and
38
+ Windows (x86-64), for Python 3.11 to 3.14; on Windows it needs the latest
39
+ [Microsoft Visual C++ Redistributable](https://aka.ms/vc14/vc_redist.x64.exe) (x64), which most machines have. The core
40
+ runs on numpy alone. The extra `occ` installs planex2d-occ, the
41
+ OpenCASCADE bindings built for the last netgen releases (on Linux x86_64, macOS and Windows, where netgen has wheels),
42
+ and netgen with it; planex picks the bindings for the installed netgen. The package is called `planex2d` on PyPI and
43
+ `planex` in Python (`import planex as px`). See [Installation](https://planex2d.org/docs/core/installation.html) for the
44
+ optional packages and for building from source (a C++20 compiler, CMake; Xcode 16 on macOS, Visual Studio 2022 on
45
+ Windows).
43
46
 
44
47
  ## A first sketch
45
48
 
@@ -54,7 +57,7 @@ bracket = px.QuickSketch()
54
57
  bracket.Line(60).Turn(90).Line(10).Turn(90).Line(40)
55
58
  bracket.Arc(10, -90).Line(30).Turn(90).Line(10).Close()
56
59
  bracket.Circle((45, 5), 2.5).Circle((5, 35), 2.5)
57
- face = px.Face(bracket.Wires())
60
+ face = bracket.Face()
58
61
  face.Plot()
59
62
  ```
60
63
 
@@ -76,6 +79,12 @@ face.Plot()
76
79
  - [Benchmarks](https://planex2d.org/docs/core/comparison/index.html): planex2d next to OpenCASCADE and polygon libraries on
77
80
  the same tasks.
78
81
 
82
+ ## Citing
83
+
84
+ If you use planex2d in research, please cite it with its Zenodo DOI,
85
+ [10.5281/zenodo.23718969](https://doi.org/10.5281/zenodo.23718969), which always points to the latest version.
86
+ [CITATION.cff](CITATION.cff) holds the citation data.
87
+
79
88
  ## License
80
89
 
81
90
  planex2d is Copyright (C) 2026 Sebastian Hirnschall.
@@ -10,7 +10,7 @@ build-backend = "scikit_build_core.build"
10
10
  [project]
11
11
  name = "planex2d"
12
12
  # a release takes its version from its git tag: the publish workflow writes it here (v0.1.0 gives 0.1.0)
13
- version = "0.2.0"
13
+ version = "0.2.2"
14
14
  description = "Fast, exact 2D geometry for Python: sketches, constraint solving, exact Boolean operations and offsets, with export to OpenCASCADE, netgen/NGSolve and gmsh"
15
15
  readme = "README.md"
16
16
  authors = [{name = "Sebastian Hirnschall"}]
@@ -64,15 +64,15 @@ namespace planex2d {
64
64
  // other operand can have new vertices, all others were snapped before
65
65
  static Timer tsnap("planex Boolean snap");
66
66
  Region regsnap(tsnap);
67
- auto near = [&](size_t k) { return state[k].needsCutting; };
67
+ auto nearOther = [&](size_t k) { return state[k].needsCutting; };
68
68
  double s = 0.0;
69
69
  for (size_t k = 0; k < c.Size(); ++k)
70
- if (near(k))
70
+ if (nearOther(k))
71
71
  s = std::max(s, LengthScaleOf(c[k]));
72
- ApplyIdentified(c, state, ids, near);
72
+ ApplyIdentified(c, state, ids, nearOther);
73
73
  ShareCongruent(c, grid, state, false, Tol(s));
74
74
  for (size_t k = 0; k < c.Size(); ++k)
75
- if (!state[k].excluded && near(k))
75
+ if (!state[k].excluded && nearOther(k))
76
76
  grid.Insert(k, BoxOf(c[k]));
77
77
  snapTol = Tol(s);
78
78
  }
@@ -234,7 +234,7 @@ namespace planex2d {
234
234
  const double tol = Tol(std::max(a.LengthScale(), b.LengthScale()));
235
235
  Grid grid = b.EdgeGrid();
236
236
  std::vector<Vertex> pts;
237
- std::vector<uint32_t> near;
237
+ std::vector<uint32_t> nearby;
238
238
  // a point inside a stretch where a runs along b (the joints of a spline's pieces there) is no meeting point,
239
239
  // the stretch's ends are: a little before and after it along its edge of a, a still lies on b
240
240
  auto alongB = [&](const Vertex &q) {
@@ -252,9 +252,9 @@ namespace planex2d {
252
252
  return inner && alongB(PointAtFraction(e, t - step)) && alongB(PointAtFraction(e, t + step));
253
253
  };
254
254
  for (const Edge &ea : a) {
255
- near.clear();
256
- grid.InBox(BoxOf(ea).Grown(tol), near);
257
- for (uint32_t j : near)
255
+ nearby.clear();
256
+ grid.InBox(BoxOf(ea).Grown(tol), nearby);
257
+ for (uint32_t j : nearby)
258
258
  std::visit([&](const auto &x, const auto &y) {
259
259
  ForEachPart(x, [&](const auto &pa) {
260
260
  ForEachPart(y, [&](const auto &pb) {
@@ -669,12 +669,12 @@ namespace planex2d {
669
669
  for (const PrimitiveEdge &p : pb)
670
670
  boxes.push_back(BoxOf(p));
671
671
  Grid grid = Grid::OfBoxes(boxes);
672
- std::vector<uint32_t> near;
672
+ std::vector<uint32_t> nearby;
673
673
  for (const PrimitiveEdge &p : a.Approximation()) {
674
- near.clear();
675
- grid.InBox(BoxOf(p).Grown(2.0 * tol), near);
676
- std::sort(near.begin(), near.end());
677
- for (uint32_t j : near)
674
+ nearby.clear();
675
+ grid.InBox(BoxOf(p).Grown(2.0 * tol), nearby);
676
+ std::sort(nearby.begin(), nearby.end());
677
+ for (uint32_t j : nearby)
678
678
  std::visit([&](const auto &x, const auto &y) { f(x, y); }, p, pb[j]);
679
679
  }
680
680
  } else {
@@ -63,14 +63,14 @@ namespace planex2d {
63
63
  const double tol = Tol(scale);
64
64
  Grid grid = w.EdgeGrid();
65
65
  std::vector<std::vector<Vertex>> at(w.Size());
66
- std::vector<uint32_t> near;
66
+ std::vector<uint32_t> nearby;
67
67
  for (size_t i = 0; i < w.Size(); ++i) {
68
68
  const Circle *c = std::get_if<Circle>(&w[i]);
69
69
  if (!c || state[i].excluded || !state[i].needsCutting)
70
70
  continue;
71
- near.clear();
72
- grid.InBox(BoxOf(w[i]).Grown(tol), near);
73
- for (uint32_t j : near) {
71
+ nearby.clear();
72
+ grid.InBox(BoxOf(w[i]).Grown(tol), nearby);
73
+ for (uint32_t j : nearby) {
74
74
  const Circle *other = std::get_if<Circle>(&w[j]);
75
75
  if (j == i || (other && j < i) || !state[i].CanCut(state[j]) || (other && c->IsCongruent(*other, tol)))
76
76
  continue;
@@ -198,14 +198,14 @@ namespace planex2d {
198
198
  if (!state[k].excluded && state[k].needsCutting)
199
199
  scale = std::max(scale, LengthScaleOf(w[k]));
200
200
  const double tol = Tol(scale);
201
- std::vector<uint32_t> near;
201
+ std::vector<uint32_t> nearby;
202
202
  for (size_t i = 0; i < w.Size(); ++i) {
203
203
  if (state[i].excluded || !state[i].needsCutting)
204
204
  continue;
205
- near.clear();
206
- grid.InBox(BoxOf(w[i]).Grown(tol), near);
207
- std::sort(near.begin(), near.end());
208
- for (uint32_t j : near) {
205
+ nearby.clear();
206
+ grid.InBox(BoxOf(w[i]).Grown(tol), nearby);
207
+ std::sort(nearby.begin(), nearby.end());
208
+ for (uint32_t j : nearby) {
209
209
  if (state[i].excluded)
210
210
  break;
211
211
  if (j <= i || !state[i].CanCut(state[j]))
@@ -187,7 +187,7 @@ namespace planex2d {
187
187
  }
188
188
 
189
189
  // as BasicSketch::Cut; not of a piece of an offset, and an expression that used what goes goes too
190
- ConstraintSketch &Cut(const std::string &id, const std::vector<std::string> &cutterIds, std::optional<Vertex> near, bool reverse,
190
+ ConstraintSketch &Cut(const std::string &id, const std::vector<std::string> &cutterIds, std::optional<Vertex> nearPoint, bool reverse,
191
191
  bool trim, bool tied = true) override {
192
192
  const std::string call = std::string(trim ? "Trim" : "Split") + "('" + id + "')";
193
193
  Flush();
@@ -199,7 +199,7 @@ namespace planex2d {
199
199
  " follow it as it is; Split it with auto_constraint=True, or Remove them first");
200
200
  sketch::Undoable(*this, [&] {
201
201
  const std::map<size_t, std::string> held = ValueHolders();
202
- CutPieces(id, cutterIds, near, reverse, trim, tied, call);
202
+ CutPieces(id, cutterIds, nearPoint, reverse, trim, tied, call);
203
203
  Prune(call, held);
204
204
  if (const std::optional<std::string> wrong = OffsetProblem())
205
205
  throw std::invalid_argument(call + ": " + *wrong);
@@ -16,9 +16,9 @@ namespace planex2d::cs {
16
16
 
17
17
  // a system as the solver sees it with the drawn shapes kept: a row per shape value of an element (a line's end minus
18
18
  // its start, an arc's ends from its centre, a spline's steps from point to point, every value of an element that is
19
- // no point coordinate, every other unknown) whose change from ref goes into a slack unknown of its own, and the
20
- // system's own unknowns counted by moveWeight: the least change then moves the geometry as a whole where it can and
21
- // changes the drawn shapes as little as it can
19
+ // no point coordinate, every other unknown) whose change from ref goes into a slack unknown of its own, the slacks
20
+ // counted 1 / moveWeight times as much as the system's own unknowns: the least change then moves the geometry as a
21
+ // whole where it can and changes the drawn shapes as little as it can
22
22
  template <class S>
23
23
  class ShapedSystem {
24
24
  public:
@@ -78,20 +78,19 @@ namespace planex2d::cs {
78
78
  J[slack] = -1.0;
79
79
  }
80
80
 
81
- // the system's unknowns counted by moveWeight, then the slacks, each at its row's change from ref; the unknowns
82
- // follow the solution in the solver's later pull rounds (Unknowns::follow), the slacks keep their target, no
83
- // change of shape: the shapes then end as close to ref as the constraints let them, not moveWeight short of it
81
+ // the system's unknowns at their own scale, then the slacks, each at its row's change from ref, at the scale
82
+ // sqrt(moveWeight); the unknowns follow the solution in the solver's later pull rounds (Unknowns::follow), the
83
+ // slacks keep their target, no change of shape: the shapes then end as close to ref as the constraints let
84
+ // them, not moveWeight short of it
84
85
  Unknowns Extended(Unknowns x) const {
85
- const double weight = 1.0 / std::sqrt(moveWeight);
86
- for (double &scale : x.scale)
87
- scale *= weight;
86
+ const double slackScale = std::sqrt(moveWeight);
88
87
  x.follow.assign(x.value.size(), 1);
89
88
  for (const Row &row : shape) {
90
89
  double v = 0.0;
91
90
  for (size_t k = 0; k + 1 < row.indices.size(); ++k)
92
91
  v += row.coef[k] * (x.value[row.indices[k]] - ref[row.indices[k]]);
93
92
  x.value.push_back(v);
94
- x.scale.push_back(1.0);
93
+ x.scale.push_back(slackScale);
95
94
  x.fixed.push_back(0);
96
95
  x.follow.push_back(0);
97
96
  }
@@ -178,8 +178,9 @@ namespace planex2d {
178
178
  bool solved = true;
179
179
  size_t iterations = 0;
180
180
  double residual = 0.0;
181
- // asked for: the largest change of an unknown (scaled to a length) the linear prediction makes, the undamped
182
- // smallest step from where the solve started
181
+ // asked for: the largest change of an unknown of the geometry (scaled to a length; the unknowns that follow, if
182
+ // any do: not a ShapedSystem's slacks) the linear prediction makes, the undamped smallest step from where the
183
+ // solve started
183
184
  double predicted = 0.0;
184
185
  };
185
186
 
@@ -296,7 +297,10 @@ namespace planex2d {
296
297
  continue;
297
298
  z = wide ? r : g;
298
299
  cholesky.Solve(z);
299
- result.predicted = wide ? (J.transpose() * z).cwiseAbs().maxCoeff() : z.cwiseAbs().maxCoeff();
300
+ const Eigen::VectorXd gaussNewton = wide ? Eigen::VectorXd(J.transpose() * z) : z;
301
+ for (size_t j = 0; j < n; ++j)
302
+ if (x.follow.empty() || x.follow[eq.part.unknowns[j]])
303
+ result.predicted = std::max(result.predicted, std::abs(gaussNewton[j]));
300
304
  break;
301
305
  }
302
306
  // a small start: the values are a good guess, the drawing; solved already: nearly undamped
@@ -123,8 +123,8 @@ namespace planex2d {
123
123
  if (x == a.Center())
124
124
  return std::nullopt;
125
125
  Vertex u = Normalized(x - a.Center());
126
- Vertex near = a.Center() + u * a.Radius(), far = a.Center() - u * a.Radius();
127
- return std::abs(Norm(near - x) - r) <= std::abs(Norm(far - x) - r) ? near : far;
126
+ Vertex closest = a.Center() + u * a.Radius(), farthest = a.Center() - u * a.Radius();
127
+ return std::abs(Norm(closest - x) - r) <= std::abs(Norm(farthest - x) - r) ? closest : farthest;
128
128
  }
129
129
  // +1 left of a line piece or outside an arc's circle, -1 right of it or inside
130
130
  inline double Side(const PrimitiveEdge &piece, const Vertex &p) {
@@ -244,11 +244,11 @@ namespace planex2d {
244
244
  // the stretch from a to b as a curve of its own, its ends knots of full multiplicity; a or b within 1e-9 of the
245
245
  // range of a knot is taken as that knot (OCC's Segment does the same), so no span is nearly empty
246
246
  Curve Segment(S a, S b) const {
247
- const S near = 1e-9 * (Last() - First());
247
+ const S nearTol = 1e-9 * (Last() - First());
248
248
  for (const S &t : knots) {
249
- if (std::abs(t - a) <= near)
249
+ if (std::abs(t - a) <= nearTol)
250
250
  a = t;
251
- if (std::abs(t - b) <= near)
251
+ if (std::abs(t - b) <= nearTol)
252
252
  b = t;
253
253
  }
254
254
  std::vector<S> t = knots, w = weights;
@@ -212,12 +212,12 @@ namespace planex2d {
212
212
  // the prism cut at the plane; its end there is a cap
213
213
  inline TopoDS_Solid CutAtPlane(const TopoDS_Solid &prism, const gp_Pln &plane, const Profile &profile, const PrismCall &c) {
214
214
  const gp_Dir n = plane.Axis().Direction();
215
- const FarSide far = BeyondPlane(prism, plane, c.dir.Dot(n) > 0.0 ? n : n.Reversed());
216
- BRepAlgoAPI_Cut cut(prism, far.box);
215
+ const FarSide farSide = BeyondPlane(prism, plane, c.dir.Dot(n) > 0.0 ? n : n.Reversed());
216
+ BRepAlgoAPI_Cut cut(prism, farSide.box);
217
217
  if (!cut.IsDone() || cut.HasErrors())
218
218
  throw std::runtime_error(c.call + "(until=): OCC could not cut the prism at the plane");
219
219
  PropagateProperties(cut, prism);
220
- const TopTools_ListOfShape &end = cut.Modified(far.bottom);
220
+ const TopTools_ListOfShape &end = cut.Modified(farSide.bottom);
221
221
  if (end.IsEmpty())
222
222
  throw std::runtime_error(c.call + "(until=): OCC gave no end face at the plane");
223
223
  for (const TopoDS_Shape &s : end)
@@ -286,8 +286,8 @@ namespace planex2d {
286
286
  a.xDirection = xyz(node["x"]);
287
287
  a.yDirection = xyz(node["y"]);
288
288
  a.normal = xyz(node["normal"]);
289
- const auto near = [](double v, double want) { return std::abs(v - want) <= 1e-12; };
290
- if (!near(Dot(a.normal, a.normal), 1.0) || !near(Dot(a.xDirection, a.xDirection), 1.0) || !near(Dot(a.normal, a.xDirection), 0.0) ||
289
+ const auto isNear = [](double v, double want) { return std::abs(v - want) <= 1e-12; };
290
+ if (!isNear(Dot(a.normal, a.normal), 1.0) || !isNear(Dot(a.xDirection, a.xDirection), 1.0) || !isNear(Dot(a.normal, a.xDirection), 0.0) ||
291
291
  !(Norm(a.yDirection - Cross(a.normal, a.xDirection)) <= 1e-12))
292
292
  throw std::invalid_argument("planex file: a plane's directions are not orthonormal and right-handed");
293
293
  return a;
@@ -268,10 +268,10 @@ namespace planex2d {
268
268
  // the raw edges through its middle, +1 each running its way, -1 each running against it
269
269
  inline int WindingStep(const Wire &cut, size_t i, const Wire &raw, Grid &grid, double tol) {
270
270
  const Vertex m = MidPointOf(cut[i]), normal = LeftNormal(cut[i], m);
271
- std::vector<uint32_t> near;
272
- grid.InBox(BBox::Of(m, m).Grown(tol), near);
271
+ std::vector<uint32_t> nearby;
272
+ grid.InBox(BBox::Of(m, m).Grown(tol), nearby);
273
273
  int step = 0;
274
- for (uint32_t r : near) {
274
+ for (uint32_t r : nearby) {
275
275
  const Vertex q = NearestPointOf(raw[r], m);
276
276
  if (q.IsClose(m, tol))
277
277
  step += Dot(LeftNormal(raw[r], q), normal) > 0.0 ? 1 : -1;
@@ -43,6 +43,7 @@
43
43
  #include "shape/fillet.hpp"
44
44
 
45
45
  namespace py = pybind11;
46
+ // Windows' headers (through OCC) declare a global function Arc: at global scope planex's Arc is planex2d::Arc
46
47
  using namespace planex2d;
47
48
 
48
49
  namespace pybind11::detail {
@@ -598,7 +599,7 @@ inline void CheckSampleLimit(const char *call, const E &x, const char *kind, dou
598
599
  }
599
600
 
600
601
  // points along an arc from its start to its end, every chord within tol of it
601
- inline std::vector<Vertex> ArcPoints(const Arc &a, double tol, const char *call, const char *kind) {
602
+ inline std::vector<Vertex> ArcPoints(const planex2d::Arc &a, double tol, const char *call, const char *kind) {
602
603
  CheckSampleLimit(call, a, kind, tol);
603
604
  // the sagitta r (1 - cos(t / 2)) as 2 r sin^2(t / 4): no cancellation for a small tol
604
605
  const double step = std::min(std::numbers::pi, 4.0 * std::asin(std::min(1.0, std::sqrt(tol / (2.0 * a.Radius())))));
@@ -617,10 +618,10 @@ inline std::vector<Vertex> ArcPoints(const Arc &a, double tol, const char *call,
617
618
  // points along the edge from its start to its end, every chord within tol of it: a line its ends, an arc by its sagitta,
618
619
  // a circle by those of its two halves, a spline as Spline::Sample
619
620
  inline std::vector<Vertex> SamplePoints(const Edge &e, double tol, const char *call) {
620
- if (const Arc *a = std::get_if<Arc>(&e))
621
+ if (const planex2d::Arc *a = std::get_if<planex2d::Arc>(&e))
621
622
  return ArcPoints(*a, tol, call, "arc");
622
623
  if (const Circle *c = std::get_if<Circle>(&e)) {
623
- const std::array<Arc, 2> halves = c->Halves();
624
+ const std::array<planex2d::Arc, 2> halves = c->Halves();
624
625
  std::vector<Vertex> pts = ArcPoints(halves[0], tol, call, "circle");
625
626
  const std::vector<Vertex> rest = ArcPoints(halves[1], tol, call, "circle");
626
627
  pts.insert(pts.end(), rest.begin() + 1, rest.end());
@@ -1313,7 +1314,7 @@ inline Until UntilArg(S &s, const py::handle &t, std::optional<sketch::Target> &
1313
1314
  // one edge: of several with the name the one nearest to near, with a warning unless near was given or they all lie
1314
1315
  // on one carrier
1315
1316
  template <class S>
1316
- inline Edge ReferenceEdge(S &s, const py::handle &t, const Vertex &near, bool nearGiven, const std::string &call) {
1317
+ inline Edge ReferenceEdge(S &s, const py::handle &t, const Vertex &nearPoint, bool nearGiven, const std::string &call) {
1317
1318
  if ((py::isinstance<py::tuple>(t) || py::isinstance<py::list>(t)) && py::len(t) == 2)
1318
1319
  throw py::type_error(call + ": a reference edge is an id, an Edge, a Wire, a Face, a Shape or an OCC shape; "
1319
1320
  "a target with a point is for the positional ends and tangent, near= picks among edges of one name");
@@ -1324,9 +1325,9 @@ inline Edge ReferenceEdge(S &s, const py::handle &t, const Vertex &near, bool ne
1324
1325
  if (n == 0)
1325
1326
  throw py::value_error(call + ": no edge named '" + name + "'");
1326
1327
  if (n > 1 && !nearGiven && !named.IsOnOneCarrier())
1327
- Warning() << call << ": " << n << " edges named '" << name << "', using the one nearest (" << near.x << ", "
1328
- << near.y << ")";
1329
- return s.NamedEdge(name, near);
1328
+ Warning() << call << ": " << n << " edges named '" << name << "', using the one nearest (" << nearPoint.x
1329
+ << ", " << nearPoint.y << ")";
1330
+ return s.NamedEdge(name, nearPoint);
1330
1331
  }
1331
1332
  EdgeList edges = TargetEdges(s, t, call);
1332
1333
  if (edges.size() != 1)
@@ -1389,14 +1390,14 @@ template <class S>
1389
1390
  inline sketch::LineRefs LineRefsOf(S &wp, const std::string &call, std::optional<double> l, const py::object &until, const py::object &from,
1390
1391
  const py::object &to, const py::object &parallel, const py::object &perpendicular, const py::object &angle,
1391
1392
  const py::object &congruent, const py::object &tangent, const py::object &distance,
1392
- const py::object &through, const py::object &near, bool reverse) {
1393
+ const py::object &through, const py::object &nearPoint, bool reverse) {
1393
1394
  sketch::LineRefs r;
1394
1395
  r.call = call;
1395
1396
  r.reverse = reverse;
1396
1397
  r.until = UntilArg(wp, until, r.untilTarget, r.call);
1397
- r.near = PointArg(wp, near, r.call);
1398
+ r.nearPoint = PointArg(wp, nearPoint, r.call);
1398
1399
  r.through = PointArg(wp, through, r.call);
1399
- const Vertex at = r.near.value_or(wp.Position());
1400
+ const Vertex at = r.nearPoint.value_or(wp.Position());
1400
1401
  r.length = l;
1401
1402
  if (!from.is_none())
1402
1403
  r.from = EndArg(wp, from, r.call);
@@ -1404,17 +1405,17 @@ inline sketch::LineRefs LineRefsOf(S &wp, const std::string &call, std::optional
1404
1405
  r.to = EndArg(wp, to, r.call);
1405
1406
  r.tangent = TangentArg(wp, tangent, r.call);
1406
1407
  if (!parallel.is_none())
1407
- r.parallel = ReferenceEdge(wp, parallel, at, r.near.has_value(), r.call);
1408
+ r.parallel = ReferenceEdge(wp, parallel, at, r.nearPoint.has_value(), r.call);
1408
1409
  if (!perpendicular.is_none())
1409
- r.perpendicular = ReferenceEdge(wp, perpendicular, at, r.near.has_value(), r.call);
1410
+ r.perpendicular = ReferenceEdge(wp, perpendicular, at, r.nearPoint.has_value(), r.call);
1410
1411
  if (!congruent.is_none())
1411
- r.congruent = ReferenceEdge(wp, congruent, at, r.near.has_value(), r.call);
1412
+ r.congruent = ReferenceEdge(wp, congruent, at, r.nearPoint.has_value(), r.call);
1412
1413
  if (py::isinstance<py::tuple>(angle) || py::isinstance<py::list>(angle)) {
1413
1414
  py::sequence a = angle;
1414
1415
  if (a.size() != 2)
1415
1416
  throw py::value_error(r.call + ": angle is degrees or (degrees, reference)");
1416
1417
  r.angle = a[0].cast<double>();
1417
- r.angleRef = ReferenceEdge(wp, a[1], at, r.near.has_value(), r.call);
1418
+ r.angleRef = ReferenceEdge(wp, a[1], at, r.nearPoint.has_value(), r.call);
1418
1419
  } else if (!angle.is_none()) {
1419
1420
  r.angle = angle.cast<double>();
1420
1421
  }
@@ -1451,19 +1452,19 @@ template <class S>
1451
1452
  inline sketch::ArcRefs ArcRefsOf(S &wp, const std::string &call, std::optional<double> r, std::optional<double> ang,
1452
1453
  const py::object &center, const py::object &concentric, const py::object &congruent,
1453
1454
  const py::object &tangent, const py::object &through, const py::object &until, const py::object &from,
1454
- const py::object &to, const py::object &near, bool reverse) {
1455
+ const py::object &to, const py::object &nearPoint, bool reverse) {
1455
1456
  sketch::ArcRefs a;
1456
1457
  a.call = call;
1457
1458
  a.reverse = reverse;
1458
1459
  a.until = UntilArg(wp, until, a.untilTarget, a.call);
1459
1460
  a.radius = r;
1460
1461
  a.sweep = ang;
1461
- a.near = PointArg(wp, near, a.call);
1462
+ a.nearPoint = PointArg(wp, nearPoint, a.call);
1462
1463
  a.through = PointArg(wp, through, a.call);
1463
- const Vertex at = a.near.value_or(wp.Position());
1464
- a.center = CenterArg(wp, center, concentric, at, a.near.has_value(), a.call);
1464
+ const Vertex at = a.nearPoint.value_or(wp.Position());
1465
+ a.center = CenterArg(wp, center, concentric, at, a.nearPoint.has_value(), a.call);
1465
1466
  if (!congruent.is_none())
1466
- a.congruent = ReferenceEdge(wp, congruent, at, a.near.has_value(), a.call);
1467
+ a.congruent = ReferenceEdge(wp, congruent, at, a.nearPoint.has_value(), a.call);
1467
1468
  if (!tangent.is_none() && IsPoint(tangent)) {
1468
1469
  a.start = tangent.cast<Vertex>();
1469
1470
  if (!(Norm(*a.start) > 0.0))
@@ -1480,19 +1481,19 @@ inline sketch::ArcRefs ArcRefsOf(S &wp, const std::string &call, std::optional<d
1480
1481
  template <class S>
1481
1482
  inline sketch::CircleRefs CircleRefsOf(S &wp, std::optional<double> r, const py::object &center, const py::object &concentric,
1482
1483
  const py::object &congruent, const py::object &through, const py::object &tangent,
1483
- const py::object &near, bool reverse) {
1484
+ const py::object &nearPoint, bool reverse) {
1484
1485
  sketch::CircleRefs refs;
1485
1486
  refs.call = CallText("Circle", {{"r", r ? py::object(py::float_(*r)) : py::object(py::none())}, {"center", center},
1486
1487
  {"concentric", concentric}, {"coincident", congruent}, {"through", through},
1487
- {"tangent", tangent}, {"near", near},
1488
+ {"tangent", tangent}, {"near", nearPoint},
1488
1489
  {"reverse", reverse ? py::object(py::bool_(true)) : py::object(py::none())}});
1489
1490
  refs.radius = r;
1490
1491
  refs.reverse = reverse;
1491
- refs.near = PointArg(wp, near, refs.call);
1492
- const Vertex at = refs.near.value_or(wp.Position());
1493
- refs.center = CenterArg(wp, center, concentric, at, refs.near.has_value(), refs.call);
1492
+ refs.nearPoint = PointArg(wp, nearPoint, refs.call);
1493
+ const Vertex at = refs.nearPoint.value_or(wp.Position());
1494
+ refs.center = CenterArg(wp, center, concentric, at, refs.nearPoint.has_value(), refs.call);
1494
1495
  if (!congruent.is_none())
1495
- refs.congruent = ReferenceEdge(wp, congruent, at, refs.near.has_value(), refs.call);
1496
+ refs.congruent = ReferenceEdge(wp, congruent, at, refs.nearPoint.has_value(), refs.call);
1496
1497
  refs.through = PointArg(wp, through, refs.call);
1497
1498
  refs.tangent = TangentArg(wp, tangent, refs.call);
1498
1499
  return refs;
@@ -1808,8 +1809,10 @@ inline const char *FitArcsDoc(const std::string &cls, const std::string &text, c
1808
1809
 
1809
1810
  inline const char *CloseGapsDoc(const std::string &cls, const std::string &x, const std::string &more) {
1810
1811
  return Doc("CloseGaps(tol: float) -> " + cls + "\n\n"
1811
- "Joins every endpoint without an exact match on another edge with all endpoints of other edges within tol, "
1812
- "in place.\n\n" + more +
1812
+ "Joins every endpoint without an exact match on another edge with all endpoints of other edges within tol "
1813
+ "at their midpoint, in place.\n\n"
1814
+ "The ends meet halfway between where they were, whatever the order of the edges; ends that already "
1815
+ "coincide count once.\n\n" + more +
1813
1816
  "Args:\n"
1814
1817
  " tol: the largest gap closed, a length.\n\n"
1815
1818
  "Returns:\n"
@@ -2374,12 +2377,12 @@ inline Thing CarrierOver(const EdgeView &r, const BBox &box) {
2374
2377
  const Vertex center = box.Center();
2375
2378
  const double reach = Norm(box.Size()) + Norm(mid - center) + 1.0;
2376
2379
  carrier.Add(Line(mid - dir * reach, mid + dir * reach));
2377
- } else if (const Arc *a = std::get_if<Arc>(&r.Get())) {
2380
+ } else if (const planex2d::Arc *a = std::get_if<planex2d::Arc>(&r.Get())) {
2378
2381
  const Vertex opposite = a->Center() * 2.0 - a->Start();
2379
- carrier.Add(Arc(a->Start(), opposite, a->Center(), true));
2380
- carrier.Add(Arc(opposite, a->Start(), a->Center(), true));
2382
+ carrier.Add(planex2d::Arc(a->Start(), opposite, a->Center(), true));
2383
+ carrier.Add(planex2d::Arc(opposite, a->Start(), a->Center(), true));
2381
2384
  } else if (const Circle *c = std::get_if<Circle>(&r.Get())) {
2382
- for (const Arc &half : c->Halves())
2385
+ for (const planex2d::Arc &half : c->Halves())
2383
2386
  carrier.Add(half);
2384
2387
  } else {
2385
2388
  throw py::value_error("on_carrier: a spline has no carrier");
@@ -2651,7 +2654,7 @@ inline std::optional<OnCircle> CircleOfEdges(const Wire &w) {
2651
2654
  const std::optional<CircleCarrier> k = CarrierOf(e);
2652
2655
  if (!k)
2653
2656
  return std::nullopt;
2654
- const Arc *a = std::get_if<Arc>(&e);
2657
+ const planex2d::Arc *a = std::get_if<planex2d::Arc>(&e);
2655
2658
  const double tol = Tol(LengthScaleOf(e));
2656
2659
  if (!c)
2657
2660
  c = OnCircle{k->center, k->radius, 0.0};
@@ -2663,7 +2666,7 @@ inline std::optional<OnCircle> CircleOfEdges(const Wire &w) {
2663
2666
  }
2664
2667
 
2665
2668
  inline const char *KindOf(const Edge &e) {
2666
- return std::holds_alternative<Line>(e) ? "line" : std::holds_alternative<Arc>(e) ? "arc" : std::holds_alternative<Circle>(e) ? "circle" : "spline";
2669
+ return std::holds_alternative<Line>(e) ? "line" : std::holds_alternative<planex2d::Arc>(e) ? "arc" : std::holds_alternative<Circle>(e) ? "circle" : "spline";
2667
2670
  }
2668
2671
 
2669
2672
  // the properties of one measured thing
@@ -3088,13 +3091,14 @@ inline const char *SplitDoc(const std::string &x) {
3088
3091
 
3089
3092
 
3090
3093
  template <class S>
3091
- inline sketch::SymRef SymRefOf(S &s, const py::handle &t, const Vertex &near, bool nearGiven, const std::string &call) {
3094
+ inline sketch::SymRef SymRefOf(S &s, const py::handle &t, const Vertex &nearPoint, bool nearGiven,
3095
+ const std::string &call) {
3092
3096
  if (py::isinstance<py::str>(t))
3093
3097
  if (std::optional<Vertex> p = s.FindPoint(t.cast<std::string>()))
3094
3098
  return *p;
3095
3099
  if (std::optional<std::vector<double>> p = AsPoint(t); p && p->size() == 2)
3096
3100
  return Vertex{(*p)[0], (*p)[1]};
3097
- Edge e = ReferenceEdge(s, t, near, nearGiven, call);
3101
+ Edge e = ReferenceEdge(s, t, nearPoint, nearGiven, call);
3098
3102
  if (const Line *l = std::get_if<Line>(&e))
3099
3103
  return *l;
3100
3104
  if (const std::optional<CircleCarrier> c = CarrierOf(e))