planex2d 0.2.1__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.1 → planex2d-0.2.2}/CMakeLists.txt +11 -1
- {planex2d-0.2.1 → planex2d-0.2.2}/PKG-INFO +19 -10
- {planex2d-0.2.1 → planex2d-0.2.2}/README.md +18 -9
- {planex2d-0.2.1 → planex2d-0.2.2}/pyproject.toml +1 -1
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/boolean.hpp +8 -8
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/cut.hpp +5 -5
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/cutloop.hpp +9 -9
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/constraintsketch.hpp +2 -2
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/circletouch.hpp +2 -2
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/curve.hpp +3 -3
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/prism.hpp +3 -3
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/planexformat.hpp +2 -2
- {planex2d-0.2.1 → planex2d-0.2.2}/src/offset/offsetpath.hpp +3 -3
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding.hpp +35 -33
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_sketch.hpp +3 -3
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/__init__.py +8 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_gmsh.py +1 -1
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_occ.py +1 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/deformable.hpp +4 -4
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/identification.hpp +6 -5
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/measure.hpp +11 -11
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/shapeops.hpp +8 -8
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/thickness.hpp +19 -19
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/arcconstruction.hpp +4 -4
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/circleconstruction.hpp +2 -2
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/diagnostics.hpp +8 -8
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/elementcutter.hpp +7 -7
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/lineconstruction.hpp +8 -7
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/relationfinder.hpp +17 -16
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/sketch.hpp +9 -8
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/target.hpp +3 -3
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/touchingcircles.hpp +6 -5
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/chain.hpp +4 -4
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/cleanup.hpp +20 -20
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/fit.hpp +14 -13
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/wire.hpp +1 -1
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_api.py +18 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_occ_split.py +2 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/LICENSE +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/THIRD_PARTY_NOTICES.md +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.APACHE +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.BSD +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.GPL +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.LGPL +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MINPACK +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.MPL2 +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/COPYING.README +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Cholesky +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/CholmodSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Core +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Dense +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigen +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Eigenvalues +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Geometry +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Householder +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/IterativeLinearSolvers +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Jacobi +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/KLUSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/LU +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/MetisSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/OrderingMethods +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PaStiXSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/PardisoSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QR +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/QtAlignedMalloc +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SPQRSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SVD +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/Sparse +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCholesky +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseCore +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseLU +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SparseQR +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdDeque +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdList +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/StdVector +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/SuperLUSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/UmfPackSupport +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LDLT.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArithmeticSequence.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Array.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ArrayWrapper.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/AssignEvaluator.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Assign_MKL.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BandMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Block.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/BooleanRedux.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CommaInitializer.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ConditionEstimator.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreEvaluators.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CoreIterators.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseBinaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseNullaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseTernaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/CwiseUnaryView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseCoeffsBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DenseStorage.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Diagonal.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/DiagonalProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Dot.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/EigenBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ForceAlignedAccess.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Fuzzy.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GeneralProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GenericPacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/GlobalFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IO.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/IndexedView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Inverse.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Map.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MapBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MathFunctionsImpl.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Matrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/MatrixBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NestByValue.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NoAlias.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/NumTraits.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PermutationMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/PlainObjectBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Product.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ProductEvaluators.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Random.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Redux.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Ref.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Replicate.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reshaped.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/ReturnByValue.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Reverse.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Select.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfAdjointView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Solve.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolveTriangular.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/SolverBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StableNorm.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/StlIterators.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Stride.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Swap.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpose.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Transpositions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/TriangularMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorBlock.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/VectorwiseOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/Visitor.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Half.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/Settings.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/StlFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/Parallelizer.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/BlasUtil.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Constants.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/IntegralConstant.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/MKL_support.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Macros.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Memory.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/Meta.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/NonMPL2.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/ReshapedHelper.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/StaticAssert.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/SymbolicIndex.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Core/util/XprHelper.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AlignedBox.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/AngleAxis.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/EulerAngles.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Homogeneous.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Hyperplane.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Quaternion.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Rotation2D.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/RotationBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Scaling.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Transform.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Translation.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/Umeyama.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/Householder.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/Jacobi/Jacobi.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/Determinant.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/FullPivLU.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/InverseImpl.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Amd.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/BDCSVD.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/SVDBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseDot.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMap.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseRef.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/SparseView.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SparseQR/SparseQR.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdDeque.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdList.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/StdVector.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/StlSupport/details.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Image.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/Kernel.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/RealSvd2x2.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/blas.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapack.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/misc/lapacke_mangling.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/BlockMethods.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/LICENSE +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/algorithm.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/data_pipeline.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/fill.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/find.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/for_each.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/generate.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/merge.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/module.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/partitioner.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/pipeline.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/reduce.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/scan.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/sort.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/algorithm/transform.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/async_task.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/atomic_notifier.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/declarations.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/environment.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/error.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/executor.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/flow_builder.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/graph.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/nonblocking_notifier.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/runtime.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/semaphore.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/task_group.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/taskflow.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/topology.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/worker.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/core/wsq.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/find.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/for_each.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/matmul.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/merge.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/reduce.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/scan.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/single_task.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/sort.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transform.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/algorithm/transpose.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_capturer.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_device.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_error.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_execution_policy.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_graph_exec.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_memory.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_meta.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_optimizer.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cuda_stream.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/cuda/cudaflow.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/chrome.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/interface.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/observer/tfprof.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/taskflow.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/iterator.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/lazy_string.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/macros.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/math.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/mpmc.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/object_pool.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/os.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/serializer.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/small_vector.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/spsc.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/stream.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/traits.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/external_dependencies/taskflow/taskflow/utility/uuid.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/arrangement.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/pairrecord.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/boolean/snap.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/analysis.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/constraint.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/copyrecords.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/dual.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/eval.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/expression.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/freemotions.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/jet.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/pending.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/reports.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/shapedsystem.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/solver.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/sparsecholesky.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/sparseqr.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/constraint_sketch/system.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/axissystem.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/bbox.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/config.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/disjointsets.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/grid.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/objectid.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/parallel.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/placement.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/properties.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/timer.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/until.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/vector3.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/core/vertex.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/arc.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/blend.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/circle.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/circlecarrier.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/corner.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/curvefit.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/edge.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/edgelist.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/ellipse.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/interpolate.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/line.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/parametricfit.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/primitiveedge.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/primitivefit.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/curves/spline.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/convert.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/edges.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/export.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/identify.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/measure.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/occexport.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/occprops.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/occspline.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/placement.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/plane.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/project.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/section.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/shapecheck.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/shapeexport.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/splinefit.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/integrations/netgenocc/stack.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/brepread.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/brepwrite.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/faceloops.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/json.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/sketchformat.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/stepread.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/steptext.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/io/stepwrite.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/offset/offset.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/offset/offsetform.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/offset/offsetpieces.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_config.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_constraintsketch.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_curve.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_deformable.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_edgegeometry.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_edges.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_face.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_identify.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_occ.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_occ.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_plane.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_section.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_shape.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_sketch.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_sketch_occ.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_solver.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_step.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_vertex.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/binding_wire.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/module.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/bindings/module_occ.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_auto.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_caller.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_closing.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_compound.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_deformable.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_dimensions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_drawing.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_dxf.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_expressions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_fileunits.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_geom.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_ids.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_io.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_kicad.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_kicadwrite.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_levelset.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_measurements.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_meshsection.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_naca.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_parameters.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_planex.pyi +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot3d.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot_fields.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot_mesh.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot_sketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_plot_style.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_select.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_shapelyio.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_sketches.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_svg.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_svgfile.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_units.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_views.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/_workplane.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/debug.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-GPL-3.0.txt +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/fonts/LICENSE-LGPL-3.0.txt +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/fonts/NOTICE.txt +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/fonts/osifont-lgpl3fe.ttf +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/measurements.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/py.typed +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/stackups/__init__.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/stackups/_jlcpcb.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/templates/title_block.dxf +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/python/planex/types.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/face.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/fillet.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/relate.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/shape.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/shape/split.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/choices.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/copies.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/cornerparts.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/curveeval.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/curveformula.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/cut.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/element.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/element.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/geometry.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/guards.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/offsetcurvedata.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/offsetcurvedata.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/offsetmaker.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/offsetsides.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/options.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/pen.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/projection.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/projectionmaker.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/ref.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/ref.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/splinedata.cpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/splinedata.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/sketch/symmetryaxis.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/crossing.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/loops.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/src/wire/topology.hpp +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/conftest.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/auxetic_levelset.npy +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/auxetic_levelset.vol.gz +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/britain-coast.csv +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/constraintsketch_identity.json +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/kicad/NOTICE +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/kicad/pic_programmer.kicad_pcb +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/kicad/small_board.kicad_pcb +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/data/public_api.json +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/fuzz/fuzzlib.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_booleans.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/fuzz/test_fuzz_random_invariants.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/fuzz/test_fuzz_sweep_near_coincidence.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/helpers.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_angle_between_lines.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_auto_constraint_options.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_auto_constraint_tangent.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_boolean.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_boolean_pair_record.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_brep.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bspline_native.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bug_round_api.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bug_round_c_head.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bug_round_c_sketch2.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bug_round_sketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_bugs5.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_check_shape.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_circle_edge.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_closed_spline_trim.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_compound.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_config.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_export.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_helpers.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_identity.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_jacobian.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_parity.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_patterns.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_planes.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_plot.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_solver.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_splines.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_sweep.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_symmetry.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_trim.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsketch_wires.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsolver.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_constraintsystem.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_copy.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_curve_sketch_tools.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_cut.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_deformable.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_dimension_layout.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_docstring_fixes.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_docstrings.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_drawing.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_dxf.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_edges.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_ellipse.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_export_wire_order.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_expression_functions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_expressions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_expressions_parsing.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_face.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_face_views.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_file_units.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_fillet_chamfer.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_fitarcs.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_fitvalidation.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_fix_many_points.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_free_motions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_fromocc.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_g2_blends.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_global_parameters.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_globs_and_from_end.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_glue.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_gmsh.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_id_resolver.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_identify.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_ids.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_interpolate.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_intersect3d_mesh.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_intersect3d_wires.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_io.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_kicad.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_kicad_via_ring_round_trip.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_kicad_write.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_levelset.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_levelset_periodic.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_measure.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_measure_spline_exact.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_measurements.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_merge_collinear_tolerance.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_mirror_scale.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_motion.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_naca.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_numpy.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_numpy_wire.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_offset.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_offset_ends_corners.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_overconstrained.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_pad_pocket.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_pad_pocket_offset.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_pkg1_sketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_pkg_core.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_pkg_mesh3d.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plane_constructors.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plane_repr_and_tohv.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plane_transforms.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plane_xz.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_planes.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_dolfinx.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_fields.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_fields3d.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_fill_legend.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_free_motions.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_projected_construction.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_plot_sampling.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_points.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_points_as_vertices.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_project.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_projection_ids.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_properties.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_public_api.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_px_auto.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_quicksketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_region_open_wires.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_relate.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_section.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_select.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_shape.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_shapely.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_shared_faces_boolean.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_add.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_arcs.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_choices.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_circle.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_coincident_and_ends.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_constructors.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_conversion.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_curve.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_diagnose.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_elements.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_ends.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_fillet.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_mirror.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_offset.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_offset_forms.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_pattern_grid.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_planes.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_points.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_profiles.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_properties.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_rectangle_points.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_rectanglec.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_refs.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_select_direct.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_slot.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_symmetry.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_trim.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_sketch_wire_of_an_element.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_small_batch.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_spline.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_spline_fit_hook.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_spline_mass_exact.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_spline_results_exact.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_spline_style.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_split.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_split_pieces.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_step.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_stubs.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_suggest_constraints.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_svg.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_svg_files.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_symmetric_difference.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_timers.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_trim_at_tangent_contact.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_trim_names_one_element.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_units.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_update_keeps_free_values.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_vertex.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_wire.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_wire_chain.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_wire_face.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_workplane.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_workplane_px.py +0 -0
- {planex2d-0.2.1 → planex2d-0.2.2}/tests/test_xyz_points.py +0 -0
- {planex2d-0.2.1 → 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);
|
|
@@ -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;
|
|
@@ -2376,12 +2377,12 @@ inline Thing CarrierOver(const EdgeView &r, const BBox &box) {
|
|
|
2376
2377
|
const Vertex center = box.Center();
|
|
2377
2378
|
const double reach = Norm(box.Size()) + Norm(mid - center) + 1.0;
|
|
2378
2379
|
carrier.Add(Line(mid - dir * reach, mid + dir * reach));
|
|
2379
|
-
} 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())) {
|
|
2380
2381
|
const Vertex opposite = a->Center() * 2.0 - a->Start();
|
|
2381
|
-
carrier.Add(Arc(a->Start(), opposite, a->Center(), true));
|
|
2382
|
-
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));
|
|
2383
2384
|
} else if (const Circle *c = std::get_if<Circle>(&r.Get())) {
|
|
2384
|
-
for (const Arc &half : c->Halves())
|
|
2385
|
+
for (const planex2d::Arc &half : c->Halves())
|
|
2385
2386
|
carrier.Add(half);
|
|
2386
2387
|
} else {
|
|
2387
2388
|
throw py::value_error("on_carrier: a spline has no carrier");
|
|
@@ -2653,7 +2654,7 @@ inline std::optional<OnCircle> CircleOfEdges(const Wire &w) {
|
|
|
2653
2654
|
const std::optional<CircleCarrier> k = CarrierOf(e);
|
|
2654
2655
|
if (!k)
|
|
2655
2656
|
return std::nullopt;
|
|
2656
|
-
const Arc *a = std::get_if<Arc>(&e);
|
|
2657
|
+
const planex2d::Arc *a = std::get_if<planex2d::Arc>(&e);
|
|
2657
2658
|
const double tol = Tol(LengthScaleOf(e));
|
|
2658
2659
|
if (!c)
|
|
2659
2660
|
c = OnCircle{k->center, k->radius, 0.0};
|
|
@@ -2665,7 +2666,7 @@ inline std::optional<OnCircle> CircleOfEdges(const Wire &w) {
|
|
|
2665
2666
|
}
|
|
2666
2667
|
|
|
2667
2668
|
inline const char *KindOf(const Edge &e) {
|
|
2668
|
-
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";
|
|
2669
2670
|
}
|
|
2670
2671
|
|
|
2671
2672
|
// the properties of one measured thing
|
|
@@ -3090,13 +3091,14 @@ inline const char *SplitDoc(const std::string &x) {
|
|
|
3090
3091
|
|
|
3091
3092
|
|
|
3092
3093
|
template <class S>
|
|
3093
|
-
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) {
|
|
3094
3096
|
if (py::isinstance<py::str>(t))
|
|
3095
3097
|
if (std::optional<Vertex> p = s.FindPoint(t.cast<std::string>()))
|
|
3096
3098
|
return *p;
|
|
3097
3099
|
if (std::optional<std::vector<double>> p = AsPoint(t); p && p->size() == 2)
|
|
3098
3100
|
return Vertex{(*p)[0], (*p)[1]};
|
|
3099
|
-
Edge e = ReferenceEdge(s, t,
|
|
3101
|
+
Edge e = ReferenceEdge(s, t, nearPoint, nearGiven, call);
|
|
3100
3102
|
if (const Line *l = std::get_if<Line>(&e))
|
|
3101
3103
|
return *l;
|
|
3102
3104
|
if (const std::optional<CircleCarrier> c = CarrierOf(e))
|
|
@@ -550,12 +550,12 @@ struct HelperView {
|
|
|
550
550
|
return EdgeList(w.begin(), w.end());
|
|
551
551
|
}
|
|
552
552
|
// of several the one nearest near, of equally near ones the first
|
|
553
|
-
Edge NamedEdge(const std::string &id, const Vertex &
|
|
553
|
+
Edge NamedEdge(const std::string &id, const Vertex &nearPoint) {
|
|
554
554
|
std::optional<Edge> best;
|
|
555
555
|
double bestDistance = 0.0;
|
|
556
556
|
for (const Edge &e : NamedEdges(id)) {
|
|
557
|
-
const double d = Distance(
|
|
558
|
-
const double tol = Tol(std::max(NormInf(
|
|
557
|
+
const double d = Distance(nearPoint, e);
|
|
558
|
+
const double tol = Tol(std::max(NormInf(nearPoint), std::visit([](const auto &x) { return x.LengthScale(); }, e)));
|
|
559
559
|
if (!best || d < bestDistance - tol) {
|
|
560
560
|
best = e;
|
|
561
561
|
bestDistance = d;
|
|
@@ -13,6 +13,14 @@ try:
|
|
|
13
13
|
__version__ = _version("planex2d")
|
|
14
14
|
except _PackageNotFoundError:
|
|
15
15
|
__version__ = "unknown"
|
|
16
|
+
# on Windows the core's C++ runtime is not in the wheel: it comes with Microsoft's Visual C++ Redistributable
|
|
17
|
+
try:
|
|
18
|
+
from . import _planex
|
|
19
|
+
except ImportError as _e:
|
|
20
|
+
if "DLL load failed" not in str(_e):
|
|
21
|
+
raise
|
|
22
|
+
raise ImportError(f"{_e} planex needs the latest Microsoft Visual C++ Redistributable (x64): "
|
|
23
|
+
"https://aka.ms/vc14/vc_redist.x64.exe") from None
|
|
16
24
|
from . import _occ
|
|
17
25
|
from ._planex import (Arc, ArcEdge, Circle, CircleEdge, Constraint, Curve, EdgeView, EdgesView, Ellipse, Face, FaceView,
|
|
18
26
|
FacesView, FromNumpy, FromPolyline, GetTransformation, Glue, H, Intersect, Line, LineEdge, Move,
|
|
@@ -206,5 +206,5 @@ def WriteGeo(obj: Face | Shape | Wire | Sketch | QuickSketch | Compound, path: s
|
|
|
206
206
|
for name, ids in names[dim].items():
|
|
207
207
|
tag += 1
|
|
208
208
|
out.append(f'Physical {kind}("{name}", {tag}) = {{{", ".join(map(str, ids))}}};')
|
|
209
|
-
with open(path, "w") as f:
|
|
209
|
+
with open(path, "w", encoding="utf-8") as f:
|
|
210
210
|
f.write("\n".join(out) + "\n")
|
|
@@ -36,6 +36,7 @@ def _load():
|
|
|
36
36
|
if find_spec("netgen") is None:
|
|
37
37
|
return "netgen is not installed; " + INSTALL
|
|
38
38
|
if find_spec("planex._planex_occ") is not None:
|
|
39
|
+
import netgen.occ # noqa: F401 (first: on Windows it loads the DLLs of netgen and OpenCASCADE)
|
|
39
40
|
from . import _planex_occ # noqa: F401
|
|
40
41
|
return None
|
|
41
42
|
if find_spec("planex_occ") is not None:
|
|
@@ -332,11 +332,11 @@ namespace planex2d {
|
|
|
332
332
|
const double m = minDistance;
|
|
333
333
|
Grid grid = Grid::Of(Vertices(), m);
|
|
334
334
|
a.marked.assign(a.w.Size(), false);
|
|
335
|
-
std::vector<uint32_t>
|
|
335
|
+
std::vector<uint32_t> nearby;
|
|
336
336
|
for (size_t k = 0; k < a.w.Size(); ++k) {
|
|
337
|
-
|
|
338
|
-
grid.InBox(BBox::Of(a.At(k), a.At(k)).Grown(m),
|
|
339
|
-
for (uint32_t j :
|
|
337
|
+
nearby.clear();
|
|
338
|
+
grid.InBox(BBox::Of(a.At(k), a.At(k)).Grown(m), nearby);
|
|
339
|
+
for (uint32_t j : nearby) {
|
|
340
340
|
double d = Norm(cur[j] - cur[k]);
|
|
341
341
|
if (d >= m || (moved && d >= Norm(ref[j] - ref[k])))
|
|
342
342
|
continue;
|