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.
- {planex2d-0.2.0 → planex2d-0.2.2}/CMakeLists.txt +11 -1
- {planex2d-0.2.0 → planex2d-0.2.2}/PKG-INFO +19 -10
- {planex2d-0.2.0 → planex2d-0.2.2}/README.md +18 -9
- {planex2d-0.2.0 → planex2d-0.2.2}/pyproject.toml +1 -1
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/boolean.hpp +8 -8
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/cut.hpp +5 -5
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/cutloop.hpp +9 -9
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/constraintsketch.hpp +2 -2
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/shapedsystem.hpp +9 -10
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/solver.hpp +7 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circletouch.hpp +2 -2
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/curve.hpp +3 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/prism.hpp +3 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/planexformat.hpp +2 -2
- {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetpath.hpp +3 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding.hpp +39 -35
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch.hpp +3 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/__init__.py +8 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_gmsh.py +1 -1
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_occ.py +1 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/deformable.hpp +4 -4
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/identification.hpp +6 -5
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/measure.hpp +11 -11
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/shapeops.hpp +8 -8
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/thickness.hpp +19 -19
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/arcconstruction.hpp +4 -4
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/circleconstruction.hpp +2 -2
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/diagnostics.hpp +8 -8
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/elementcutter.hpp +7 -7
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/lineconstruction.hpp +8 -7
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/relationfinder.hpp +17 -16
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/sketch.hpp +9 -8
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/target.hpp +3 -3
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/touchingcircles.hpp +6 -5
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/chain.hpp +4 -4
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/cleanup.hpp +32 -19
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/fit.hpp +14 -13
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/wire.hpp +1 -1
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/constraintsketch_identity.json +13 -13
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_api.py +18 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_solver.py +20 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_face.py +14 -2
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_occ_split.py +2 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/LICENSE +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/THIRD_PARTY_NOTICES.md +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.APACHE +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.BSD +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.GPL +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.LGPL +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MINPACK +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MPL2 +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.README +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Cholesky +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/CholmodSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Core +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Dense +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigen +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigenvalues +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Geometry +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Householder +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/IterativeLinearSolvers +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Jacobi +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/KLUSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/LU +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/MetisSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/OrderingMethods +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PaStiXSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PardisoSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QR +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QtAlignedMalloc +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SPQRSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SVD +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Sparse +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCholesky +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCore +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseLU +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseQR +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdDeque +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdList +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdVector +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SuperLUSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/UmfPackSupport +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LDLT.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArithmeticSequence.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Array.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayWrapper.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/AssignEvaluator.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign_MKL.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BandMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Block.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BooleanRedux.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CommaInitializer.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ConditionEstimator.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreEvaluators.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreIterators.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseBinaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseNullaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseTernaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseCoeffsBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseStorage.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Diagonal.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Dot.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/EigenBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ForceAlignedAccess.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Fuzzy.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GeneralProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GenericPacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GlobalFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IO.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IndexedView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Inverse.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Map.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MapBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctionsImpl.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Matrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MatrixBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NestByValue.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NoAlias.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NumTraits.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PermutationMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PlainObjectBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Product.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ProductEvaluators.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Random.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Redux.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Ref.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Replicate.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reshaped.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ReturnByValue.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reverse.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Select.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfAdjointView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Solve.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolveTriangular.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolverBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StableNorm.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StlIterators.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Stride.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Swap.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpose.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpositions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/TriangularMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorBlock.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorwiseOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Visitor.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Half.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Settings.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/StlFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/Parallelizer.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/BlasUtil.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Constants.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IntegralConstant.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/MKL_support.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Macros.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Memory.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Meta.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/NonMPL2.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReshapedHelper.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/StaticAssert.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/SymbolicIndex.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/XprHelper.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AlignedBox.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AngleAxis.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/EulerAngles.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Homogeneous.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Hyperplane.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Quaternion.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Rotation2D.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/RotationBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Scaling.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Transform.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Translation.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Umeyama.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/Householder.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Jacobi/Jacobi.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/Determinant.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/FullPivLU.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/InverseImpl.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Amd.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/BDCSVD.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/SVDBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDot.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMap.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRef.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseView.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseQR/SparseQR.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdDeque.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdList.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdVector.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/details.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Image.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Kernel.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/RealSvd2x2.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/blas.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapack.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke_mangling.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/BlockMethods.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/LICENSE +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/algorithm.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/data_pipeline.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/fill.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/find.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/for_each.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/generate.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/merge.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/module.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/partitioner.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/pipeline.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/reduce.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/scan.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/sort.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/transform.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async_task.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/atomic_notifier.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/declarations.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/environment.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/error.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/executor.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/flow_builder.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/graph.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/nonblocking_notifier.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/runtime.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/semaphore.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task_group.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/taskflow.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/topology.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/worker.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/wsq.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/find.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/for_each.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/matmul.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/merge.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/reduce.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/scan.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/single_task.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/sort.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transform.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transpose.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_capturer.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_device.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_error.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_execution_policy.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph_exec.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_memory.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_meta.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_optimizer.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_stream.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cudaflow.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/chrome.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/interface.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/tfprof.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/taskflow.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/iterator.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/lazy_string.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/macros.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/math.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/mpmc.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/object_pool.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/os.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/serializer.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/small_vector.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/spsc.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/stream.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/traits.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/uuid.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/arrangement.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/pairrecord.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/boolean/snap.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/analysis.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/constraint.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/copyrecords.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/dual.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/eval.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/expression.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/freemotions.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/jet.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/pending.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/reports.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/sparsecholesky.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/sparseqr.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/constraint_sketch/system.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/axissystem.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/bbox.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/config.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/disjointsets.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/grid.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/objectid.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/parallel.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/placement.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/properties.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/timer.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/until.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/vector3.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/core/vertex.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/arc.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/blend.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circle.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/circlecarrier.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/corner.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/curvefit.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/edge.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/edgelist.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/ellipse.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/interpolate.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/line.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/parametricfit.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/primitiveedge.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/primitivefit.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/curves/spline.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/convert.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/edges.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/export.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/identify.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/measure.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occexport.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occprops.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/occspline.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/placement.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/plane.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/project.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/section.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/shapecheck.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/shapeexport.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/splinefit.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/integrations/netgenocc/stack.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/brepread.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/brepwrite.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/faceloops.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/json.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/sketchformat.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/stepread.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/steptext.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/io/stepwrite.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offset.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetform.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/offset/offsetpieces.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_config.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_constraintsketch.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_curve.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_deformable.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_edgegeometry.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_edges.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_face.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_identify.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_occ.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_occ.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_plane.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_section.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_shape.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_sketch_occ.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_solver.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_step.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_vertex.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/binding_wire.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/module.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/bindings/module_occ.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_auto.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_caller.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_closing.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_compound.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_deformable.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_dimensions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_drawing.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_dxf.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_expressions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_fileunits.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_geom.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_ids.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_io.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_kicad.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_kicadwrite.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_levelset.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_measurements.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_meshsection.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_naca.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_parameters.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_planex.pyi +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot3d.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_fields.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_mesh.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_sketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_plot_style.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_select.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_shapelyio.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_sketches.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_svg.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_svgfile.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_units.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_views.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/_workplane.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/debug.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-GPL-3.0.txt +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-LGPL-3.0.txt +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/NOTICE.txt +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/fonts/osifont-lgpl3fe.ttf +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/measurements.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/py.typed +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/stackups/__init__.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/stackups/_jlcpcb.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/templates/title_block.dxf +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/python/planex/types.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/face.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/fillet.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/relate.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/shape.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/shape/split.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/choices.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/copies.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/cornerparts.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/curveeval.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/curveformula.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/cut.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/element.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/element.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/geometry.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/guards.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetcurvedata.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetcurvedata.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetmaker.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/offsetsides.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/options.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/pen.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/projection.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/projectionmaker.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/ref.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/ref.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/splinedata.cpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/splinedata.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/sketch/symmetryaxis.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/crossing.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/loops.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/src/wire/topology.hpp +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/conftest.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/auxetic_levelset.npy +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/auxetic_levelset.vol.gz +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/britain-coast.csv +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/NOTICE +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/pic_programmer.kicad_pcb +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/kicad/small_board.kicad_pcb +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/data/public_api.json +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/fuzzlib.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_booleans.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_invariants.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/fuzz/test_fuzz_sweep_near_coincidence.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/helpers.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_angle_between_lines.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_auto_constraint_options.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_auto_constraint_tangent.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_boolean.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_boolean_pair_record.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_brep.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bspline_native.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_api.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_c_head.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_c_sketch2.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bug_round_sketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_bugs5.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_check_shape.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_circle_edge.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_closed_spline_trim.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_compound.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_config.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_export.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_helpers.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_identity.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_jacobian.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_parity.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_patterns.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_planes.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_plot.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_splines.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_sweep.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_symmetry.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_trim.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsketch_wires.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsolver.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_constraintsystem.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_copy.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_curve_sketch_tools.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_cut.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_deformable.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_dimension_layout.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_docstring_fixes.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_docstrings.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_drawing.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_dxf.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_edges.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_ellipse.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_export_wire_order.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expression_functions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expressions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_expressions_parsing.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_face_views.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_file_units.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fillet_chamfer.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fitarcs.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fitvalidation.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fix_many_points.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_free_motions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_fromocc.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_g2_blends.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_global_parameters.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_globs_and_from_end.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_glue.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_gmsh.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_id_resolver.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_identify.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_ids.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_interpolate.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_intersect3d_mesh.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_intersect3d_wires.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_io.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad_via_ring_round_trip.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_kicad_write.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_levelset.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_levelset_periodic.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measure.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measure_spline_exact.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_measurements.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_merge_collinear_tolerance.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_mirror_scale.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_motion.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_naca.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_numpy.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_numpy_wire.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_offset.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_offset_ends_corners.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_overconstrained.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pad_pocket.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pad_pocket_offset.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg1_sketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg_core.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_pkg_mesh3d.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_constructors.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_repr_and_tohv.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_transforms.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plane_xz.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_planes.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_dolfinx.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fields.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fields3d.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_fill_legend.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_free_motions.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_projected_construction.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_plot_sampling.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_points.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_points_as_vertices.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_project.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_projection_ids.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_properties.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_public_api.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_px_auto.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_quicksketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_region_open_wires.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_relate.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_section.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_select.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shape.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shapely.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_shared_faces_boolean.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_add.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_arcs.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_choices.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_circle.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_coincident_and_ends.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_constructors.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_conversion.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_curve.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_diagnose.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_elements.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_ends.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_fillet.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_mirror.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_offset.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_offset_forms.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_pattern_grid.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_planes.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_points.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_profiles.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_properties.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_rectangle_points.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_rectanglec.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_refs.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_select_direct.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_slot.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_symmetry.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_trim.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_sketch_wire_of_an_element.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_small_batch.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_fit_hook.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_mass_exact.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_results_exact.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_spline_style.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_split.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_split_pieces.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_step.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_stubs.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_suggest_constraints.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_svg.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_svg_files.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_symmetric_difference.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_timers.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_trim_at_tangent_contact.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_trim_names_one_element.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_units.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_update_keeps_free_values.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_vertex.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire_chain.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_wire_face.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_workplane.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_workplane_px.py +0 -0
- {planex2d-0.2.0 → planex2d-0.2.2}/tests/test_xyz_points.py +0 -0
- {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 "
|
|
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.
|
|
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)
|
|
71
|
-
Python 3.11 to 3.14;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
(
|
|
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 =
|
|
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)
|
|
37
|
-
Python 3.11 to 3.14;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(
|
|
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 =
|
|
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.
|
|
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
|
|
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 (
|
|
70
|
+
if (nearOther(k))
|
|
71
71
|
s = std::max(s, LengthScaleOf(c[k]));
|
|
72
|
-
ApplyIdentified(c, state, ids,
|
|
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 &&
|
|
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>
|
|
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
|
-
|
|
256
|
-
grid.InBox(BoxOf(ea).Grown(tol),
|
|
257
|
-
for (uint32_t j :
|
|
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>
|
|
672
|
+
std::vector<uint32_t> nearby;
|
|
673
673
|
for (const PrimitiveEdge &p : a.Approximation()) {
|
|
674
|
-
|
|
675
|
-
grid.InBox(BoxOf(p).Grown(2.0 * tol),
|
|
676
|
-
std::sort(
|
|
677
|
-
for (uint32_t j :
|
|
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>
|
|
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
|
-
|
|
72
|
-
grid.InBox(BoxOf(w[i]).Grown(tol),
|
|
73
|
-
for (uint32_t j :
|
|
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>
|
|
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
|
-
|
|
206
|
-
grid.InBox(BoxOf(w[i]).Grown(tol),
|
|
207
|
-
std::sort(
|
|
208
|
-
for (uint32_t j :
|
|
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>
|
|
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,
|
|
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,
|
|
20
|
-
// system's own unknowns
|
|
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
|
|
82
|
-
// follow the solution in the solver's later pull rounds (Unknowns::follow), the
|
|
83
|
-
// change of shape: the shapes then end as close to ref as the constraints let
|
|
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
|
|
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(
|
|
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
|
|
182
|
-
// smallest step from where the
|
|
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
|
-
|
|
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
|
|
127
|
-
return std::abs(Norm(
|
|
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
|
|
247
|
+
const S nearTol = 1e-9 * (Last() - First());
|
|
248
248
|
for (const S &t : knots) {
|
|
249
|
-
if (std::abs(t - a) <=
|
|
249
|
+
if (std::abs(t - a) <= nearTol)
|
|
250
250
|
a = t;
|
|
251
|
-
if (std::abs(t - b) <=
|
|
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
|
|
216
|
-
BRepAlgoAPI_Cut cut(prism,
|
|
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(
|
|
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
|
|
290
|
-
if (!
|
|
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>
|
|
272
|
-
grid.InBox(BBox::Of(m, m).Grown(tol),
|
|
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 :
|
|
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 &
|
|
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 (" <<
|
|
1328
|
-
<<
|
|
1329
|
-
return s.NamedEdge(name,
|
|
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 ¶llel, 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 &
|
|
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.
|
|
1398
|
+
r.nearPoint = PointArg(wp, nearPoint, r.call);
|
|
1398
1399
|
r.through = PointArg(wp, through, r.call);
|
|
1399
|
-
const Vertex at = r.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 ¢er, 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 &
|
|
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.
|
|
1462
|
+
a.nearPoint = PointArg(wp, nearPoint, a.call);
|
|
1462
1463
|
a.through = PointArg(wp, through, a.call);
|
|
1463
|
-
const Vertex at = a.
|
|
1464
|
-
a.center = CenterArg(wp, center, concentric, at, a.
|
|
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.
|
|
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 ¢er, const py::object &concentric,
|
|
1482
1483
|
const py::object &congruent, const py::object &through, const py::object &tangent,
|
|
1483
|
-
const py::object &
|
|
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",
|
|
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.
|
|
1492
|
-
const Vertex at = refs.
|
|
1493
|
-
refs.center = CenterArg(wp, center, concentric, at, refs.
|
|
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.
|
|
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"
|
|
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 &
|
|
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,
|
|
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))
|