compas-nest 0.1.1.dev4__tar.gz → 0.1.1.dev6__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.
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/PKG-INFO +1 -1
- compas_nest-0.1.1.dev6/docs/examples/06_pack_array.md +12 -0
- compas_nest-0.1.1.dev6/docs/examples/07_pack_distance.md +11 -0
- compas_nest-0.1.1.dev4/docs/examples/07_text.md → compas_nest-0.1.1.dev6/docs/examples/08_text.md +4 -4
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/index.md +3 -2
- compas_nest-0.1.1.dev4/examples/06_pack.py → compas_nest-0.1.1.dev6/examples/06_pack_array.py +3 -3
- compas_nest-0.1.1.dev6/examples/07_pack_distance.py +60 -0
- compas_nest-0.1.1.dev6/examples/08_text.py +28 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/mkdocs.yml +3 -2
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/fonts/regular.xml +15 -23
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/pack.py +18 -5
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/result.py +26 -3
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/text.py +30 -11
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/tests/test_nesting.py +17 -0
- compas_nest-0.1.1.dev4/docs/examples/06_pack.md +0 -11
- compas_nest-0.1.1.dev4/examples/07_text.py +0 -23
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.github/workflows/build.yml +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.github/workflows/docs.yml +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.gitignore +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.gitmodules +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CHANGELOG.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CMakeLists.txt +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CREDITS.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/LICENSE +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/README.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/bash/build.sh +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/bash/install.sh +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/.gitkeep +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/elements_strips.json +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/output/.gitkeep +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.collision.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.datastructures.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.nfp.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.offset.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.pack.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.result.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.text.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.viewer.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/index.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/assets/favicon.png +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/assets/logo.png +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/changelog.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/credits.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/01_collision_viewer.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/02_nfp_viewer.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/03_nfp_animated.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/04_collision_dataset.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/05_attributes.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/.gitkeep +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/01_collision_viewer.png +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/02_nfp_viewer.png +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/03_nfp_animated.gif +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/04_collision_dataset.gif +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/05_attributes.png +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/index.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/installation.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/environment.yml +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/01_collision_viewer.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/02_nfp_viewer.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/03_nfp_animated.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/04_collision_dataset.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/05_attributes.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/.git +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/README.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/CMakeLists.txt +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/README.md +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/collision_engine.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/common.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/convex_hull.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/obstacle.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/polygon.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/primitives.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/quadtree.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/scene.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/shape.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/shape_ops.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/slotmap.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/strip_packing.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/surrogate.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/transform.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics_capi.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics_capi.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/config.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/constants.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/driver.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/evaluator.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/optimizer.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/overlap.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/rng.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/sampler.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/util.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/CMakeLists.txt +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/ClipperUtil.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/D3.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeneticAlgorithm.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeneticAlgorithm.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeometryUtil.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeometryUtil.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/HelperTypes.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/MinkowskiConvolution.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/MinkowskiConvolution.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NFP.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestConfig.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingContext.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingContext.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingEngine.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingEngine.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NfpWorker.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NfpWorker.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Point.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Random.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Simplify.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/capi/nfp_nest_capi.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/capi/nfp_nest_capi.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.core.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.engine.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.engine.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.minkowski.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.offset.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.offset.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.rectclip.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.rectclip.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.version.h +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi/borland_prefix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi/borland_suffix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi/msvc_prefix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi/msvc_suffix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi_prefix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/abi_suffix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx03.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx11.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx14.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx17.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx20.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/assert_cxx98.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/auto_link.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/borland.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/clang.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/clang_version.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/codegear.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/comeau.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/common_edg.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/compaq_cxx.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/cray.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/diab.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/digitalmars.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/gcc.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/gcc_xml.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/greenhills.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/hp_acc.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/intel.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/kai.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/metrowerks.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/mpw.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/nvcc.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/pathscale.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/pgi.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/sgi_mipspro.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/sunpro_cc.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/vacpp.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/visualc.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/xlcpp.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/compiler/xlcpp_zos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/cxx_composite.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/posix_features.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/select_compiler_config.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/select_platform_config.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/select_stdlib_config.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/detail/suffix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/header_deprecated.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/helper_macros.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/no_tr1/cmath.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/no_tr1/complex.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/no_tr1/functional.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/no_tr1/memory.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/no_tr1/utility.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/aix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/amigaos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/beos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/bsd.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/cloudabi.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/cray.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/cygwin.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/haiku.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/hpux.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/irix.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/linux.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/macos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/qnxnto.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/solaris.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/symbian.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/vms.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/vxworks.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/wasm.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/win32.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/platform/zos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/pragma_message.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/requires_threads.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/dinkumware.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/libcomo.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/libcpp.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/libstdcpp3.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/modena.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/msl.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/roguewave.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/sgi.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/stlport.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/vacpp.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/stdlib/xlcpp_zos.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/user.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/warning_disable.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config/workaround.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/config.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/cstdint.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/cxx11_char_types.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/detail/workaround.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/limits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/boolean_op.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/boolean_op_45.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/iterator_compact_to_points.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/iterator_geometry_to_set.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/iterator_points_to_compact.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/max_cover.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/minkowski.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_45_formation.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_45_set_view.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_45_touch.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_90_set_view.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_90_touch.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_arbitrary_formation.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_formation.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_set_view.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_simplify.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/polygon_sort_adaptor.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/property_merge.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/property_merge_45.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/rectangle_formation.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/scan_arbitrary.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/voronoi_ctypes.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/voronoi_predicates.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/voronoi_robust_fpt.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/detail/voronoi_structures.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/gmp_override.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/gtl.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/interval_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/interval_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/interval_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/isotropy.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/point_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/point_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/point_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_45_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_45_set_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_45_set_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_45_set_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_45_with_holes_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_90_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_90_set_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_90_set_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_90_set_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_90_with_holes_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_set_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_set_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_set_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/polygon_with_holes_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/rectangle_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/rectangle_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/rectangle_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/segment_concept.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/segment_data.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/segment_traits.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/segment_utils.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/transform.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/voronoi.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/voronoi_diagram.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/polygon/voronoi_geometry_type.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/third_party/boost_min/boost/version.hpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/tools/parity_diff.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/pyproject.toml +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/requirements-dev.txt +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/requirements-docs.txt +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_clipper.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_nest_physics.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_nfp_nest.cpp +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/__init__.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/collision.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/datastructures.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/fonts/bold.xml +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/nfp.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/offset.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/types.py +0 -0
- {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/viewer.py +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 06 · Pack (array)
|
|
2
|
+
|
|
3
|
+
Lay parts out in a simple **array** with `pack` — a fixed number of elements per row, wrapping to the
|
|
4
|
+
next row. Deterministic, no nesting; returns a `nest_result`, so `placed_polylines` / `to_json` /
|
|
5
|
+
`to_obj` apply.
|
|
6
|
+
|
|
7
|
+
<!-- TODO: image -->
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
--8<-- "examples/06_pack_array.py"
|
|
12
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 07 · Pack (distance)
|
|
2
|
+
|
|
3
|
+
Pack parts by **row width** with `pack(..., max_width=...)`: a row fills up to the given distance,
|
|
4
|
+
then the next element wraps to a new row.
|
|
5
|
+
|
|
6
|
+
<!-- TODO: image -->
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
--8<-- "examples/07_pack_distance.py"
|
|
11
|
+
```
|
compas_nest-0.1.1.dev4/docs/examples/07_text.md → compas_nest-0.1.1.dev6/docs/examples/08_text.md
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 08 · Text (single-stroke font)
|
|
2
2
|
|
|
3
3
|
Render text to single-stroke polylines with `text_to_polylines`, using the OpenNest XML engraving
|
|
4
|
-
font (e.g. for sheet-number labels). Arcs are sampled to polyline segments.
|
|
4
|
+
font (e.g. for sheet-number labels). Arcs are sampled to polyline segments (adaptive, fabrication-friendly).
|
|
5
5
|
|
|
6
6
|
<!-- TODO: image -->
|
|
7
|
-

|
|
8
8
|
|
|
9
9
|
```python
|
|
10
|
-
--8<-- "examples/
|
|
10
|
+
--8<-- "examples/08_text.py"
|
|
11
11
|
```
|
|
@@ -8,5 +8,6 @@ placed geometry to `data/output/` as JSON (full result) and OBJ (outlines + hole
|
|
|
8
8
|
3. [Live animation (NFP)](03_nfp_animated.md) — watch the GA layout evolve.
|
|
9
9
|
4. [Clearance offset](04_collision_dataset.md) — add gaps with `offset_geo` / `offset_sheets`.
|
|
10
10
|
5. [Attributes](05_attributes.md) — carry geometry (a centroid point) through placement.
|
|
11
|
-
6. [Pack (
|
|
12
|
-
7. [
|
|
11
|
+
6. [Pack (array)](06_pack_array.md) — fixed number of elements per row with `pack`.
|
|
12
|
+
7. [Pack (distance)](07_pack_distance.md) — wrap by row width with `pack(max_width=...)`.
|
|
13
|
+
8. [Text (font)](08_text.md) — single-stroke text with `text_to_polylines`.
|
compas_nest-0.1.1.dev4/examples/06_pack.py → compas_nest-0.1.1.dev6/examples/06_pack_array.py
RENAMED
|
@@ -9,7 +9,7 @@ from compas_nest import nest_result
|
|
|
9
9
|
from compas_nest import pack
|
|
10
10
|
|
|
11
11
|
BLUE: Color = Color.from_hex("#0072B2")
|
|
12
|
-
OUTPUT: Path = Path(__file__).parent.parent / "data" / "output" / "
|
|
12
|
+
OUTPUT: Path = Path(__file__).parent.parent / "data" / "output" / "06_pack_array.json"
|
|
13
13
|
|
|
14
14
|
# 1. parts (one with a hole) with several copies each
|
|
15
15
|
geo: nest_geo = nest_geo()
|
|
@@ -43,8 +43,8 @@ geo.add_part(
|
|
|
43
43
|
copies=6,
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
-
# 2. pack into
|
|
47
|
-
result: nest_result = pack(geo, columns=5, gap_x=
|
|
46
|
+
# 2. pack into an array: a fixed number of elements per row (5), wrapping to the next row
|
|
47
|
+
result: nest_result = pack(geo, columns=5, gap_x=1.0, gap_y=1.0)
|
|
48
48
|
|
|
49
49
|
# 3. view the grid layout (elements blue)
|
|
50
50
|
viewer: Viewer = Viewer()
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from compas.colors import Color
|
|
4
|
+
from compas.geometry import Polyline
|
|
5
|
+
from compas_viewer import Viewer
|
|
6
|
+
|
|
7
|
+
from compas_nest import nest_geo
|
|
8
|
+
from compas_nest import nest_result
|
|
9
|
+
from compas_nest import pack
|
|
10
|
+
|
|
11
|
+
BLUE: Color = Color.from_hex("#0072B2")
|
|
12
|
+
OUTPUT: Path = Path(__file__).parent.parent / "data" / "output" / "07_pack_distance.json"
|
|
13
|
+
|
|
14
|
+
# 1. parts (one with a hole) with several copies each
|
|
15
|
+
geo: nest_geo = nest_geo()
|
|
16
|
+
geo.add_part(
|
|
17
|
+
Polyline([
|
|
18
|
+
[0, 0, 0],
|
|
19
|
+
[30, 0, 0],
|
|
20
|
+
[30, 12, 0],
|
|
21
|
+
[0, 12, 0],
|
|
22
|
+
[0, 0, 0],
|
|
23
|
+
]),
|
|
24
|
+
copies=6,
|
|
25
|
+
)
|
|
26
|
+
geo.add_part(
|
|
27
|
+
Polyline([
|
|
28
|
+
[0, 0, 0],
|
|
29
|
+
[20, 0, 0],
|
|
30
|
+
[20, 20, 0],
|
|
31
|
+
[0, 20, 0],
|
|
32
|
+
[0, 0, 0],
|
|
33
|
+
]),
|
|
34
|
+
holes=[
|
|
35
|
+
Polyline([
|
|
36
|
+
[6, 6, 0],
|
|
37
|
+
[14, 6, 0],
|
|
38
|
+
[14, 14, 0],
|
|
39
|
+
[6, 14, 0],
|
|
40
|
+
[6, 6, 0],
|
|
41
|
+
]),
|
|
42
|
+
],
|
|
43
|
+
copies=6,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# 2. pack by distance: fill a row up to max_width, then wrap to the next row
|
|
47
|
+
result: nest_result = pack(geo, max_width=120.0, gap_x=5.0, gap_y=5.0)
|
|
48
|
+
|
|
49
|
+
# 3. view the layout (elements blue)
|
|
50
|
+
viewer: Viewer = Viewer()
|
|
51
|
+
for group in result.placed_polylines():
|
|
52
|
+
for part in group["parts"]:
|
|
53
|
+
viewer.scene.add(part["outline"], linecolor=BLUE, linewidth=2)
|
|
54
|
+
for hole in part["holes"]:
|
|
55
|
+
viewer.scene.add(hole, linecolor=BLUE)
|
|
56
|
+
viewer.show()
|
|
57
|
+
|
|
58
|
+
# 4. save the placed geometry to JSON (full result) and OBJ (outlines + holes)
|
|
59
|
+
result.to_json(OUTPUT)
|
|
60
|
+
result.to_obj(OUTPUT.with_suffix(".obj"))
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from compas.colors import Color
|
|
4
|
+
from compas.data import json_dump
|
|
5
|
+
from compas.geometry import Frame
|
|
6
|
+
from compas_viewer import Viewer
|
|
7
|
+
|
|
8
|
+
from compas_nest import text_to_polylines
|
|
9
|
+
|
|
10
|
+
BLUE: Color = Color.from_hex("#0072B2")
|
|
11
|
+
OUTPUT: Path = Path(__file__).parent.parent / "data" / "output" / "08_text.json"
|
|
12
|
+
|
|
13
|
+
# 1. a frame to place/orient the text (origin = text origin, x-axis = reading direction)
|
|
14
|
+
frame: Frame = Frame([0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0])
|
|
15
|
+
|
|
16
|
+
# 2. render text to single-stroke polylines (OpenNest XML font) on that frame, 10-unit cap height
|
|
17
|
+
strokes: list = text_to_polylines("compas_nest\n0 1 2 3 4 5 6 7 8 9", height=10.0, font="regular", frame=frame)
|
|
18
|
+
|
|
19
|
+
# 3. view the frame and the stroke polylines (blue)
|
|
20
|
+
viewer: Viewer = Viewer()
|
|
21
|
+
viewer.scene.add(frame)
|
|
22
|
+
for stroke in strokes:
|
|
23
|
+
viewer.scene.add(stroke, linecolor=BLUE, linewidth=2)
|
|
24
|
+
viewer.show()
|
|
25
|
+
|
|
26
|
+
# 4. save the polylines to JSON
|
|
27
|
+
OUTPUT.parent.mkdir(parents=True, exist_ok=True)
|
|
28
|
+
json_dump(strokes, OUTPUT)
|
|
@@ -48,8 +48,9 @@ nav:
|
|
|
48
48
|
- 03 Live animation (NFP): examples/03_nfp_animated.md
|
|
49
49
|
- 04 Clearance offset: examples/04_collision_dataset.md
|
|
50
50
|
- 05 Attributes: examples/05_attributes.md
|
|
51
|
-
- 06 Pack (
|
|
52
|
-
- 07
|
|
51
|
+
- 06 Pack (array): examples/06_pack_array.md
|
|
52
|
+
- 07 Pack (distance): examples/07_pack_distance.md
|
|
53
|
+
- 08 Text (font): examples/08_text.md
|
|
53
54
|
- API Reference:
|
|
54
55
|
- api/index.md
|
|
55
56
|
- Data structures: api/compas_nest.datastructures.md
|
|
@@ -544,14 +544,11 @@
|
|
|
544
544
|
</letter>
|
|
545
545
|
<!-- DIGIT ZERO -->
|
|
546
546
|
<letter code="48" start="0.1" end="0.6">
|
|
547
|
-
<path x="0.
|
|
548
|
-
<to x="0.
|
|
549
|
-
<to x="0.
|
|
550
|
-
<to x="0.
|
|
551
|
-
<to x="0.
|
|
552
|
-
</path>
|
|
553
|
-
<path x="0.15" y="0.00">
|
|
554
|
-
<to x="0.55" y="0.00" />
|
|
547
|
+
<path x="0.10" y="0.30">
|
|
548
|
+
<to x="0.55" y="0.30" b="-1.00" />
|
|
549
|
+
<to x="0.55" y="0.70" />
|
|
550
|
+
<to x="0.10" y="0.70" b="-1.00" />
|
|
551
|
+
<to x="0.10" y="0.30" />
|
|
555
552
|
</path>
|
|
556
553
|
</letter>
|
|
557
554
|
<!-- DIGIT ONE -->
|
|
@@ -564,10 +561,10 @@
|
|
|
564
561
|
</letter>
|
|
565
562
|
<!-- DIGIT TWO -->
|
|
566
563
|
<letter code="50" start="0.1" end="0.6">
|
|
567
|
-
<path x="0.
|
|
568
|
-
<to x="0.
|
|
569
|
-
<to x="0.
|
|
570
|
-
<to x="0.
|
|
564
|
+
<path x="0.12" y="0.68">
|
|
565
|
+
<to x="0.54" y="0.68" b="1.00" />
|
|
566
|
+
<to x="0.10" y="0.06" />
|
|
567
|
+
<to x="0.56" y="0.06" />
|
|
571
568
|
</path>
|
|
572
569
|
</letter>
|
|
573
570
|
<!-- DIGIT THREE -->
|
|
@@ -632,18 +629,13 @@
|
|
|
632
629
|
</letter>
|
|
633
630
|
<!-- DIGIT EIGHT -->
|
|
634
631
|
<letter code="56" start="0.1" end="0.6">
|
|
635
|
-
<path x="0.
|
|
636
|
-
<to x="0.
|
|
637
|
-
<to x="0.
|
|
638
|
-
<to x="0.4349056604" y="0.0971698113" />
|
|
639
|
-
<to x="0.2650943396" y="0.0971698113" />
|
|
640
|
-
<to x="0.2650943396" y="0.4125006848" />
|
|
641
|
-
<to x="0.4349056604" y="0.5874993152" />
|
|
642
|
-
<to x="0.4349056604" y="0.9028301887" />
|
|
643
|
-
<to x="0.2650943396" y="0.9028301887" />
|
|
632
|
+
<path x="0.11" y="0.30">
|
|
633
|
+
<to x="0.59" y="0.30" b="-1.00" />
|
|
634
|
+
<to x="0.11" y="0.30" b="-1.00" />
|
|
644
635
|
</path>
|
|
645
|
-
<path x="0.15" y="0.
|
|
646
|
-
<to x="0.55" y="0.00" />
|
|
636
|
+
<path x="0.15" y="0.74">
|
|
637
|
+
<to x="0.55" y="0.74" b="-1.00" />
|
|
638
|
+
<to x="0.15" y="0.74" b="-1.00" />
|
|
647
639
|
</path>
|
|
648
640
|
</letter>
|
|
649
641
|
<!-- DIGIT NINE -->
|
|
@@ -15,20 +15,26 @@ def _bbox(polyline):
|
|
|
15
15
|
return min(xs), min(ys), max(xs), max(ys)
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
def pack(geo, columns=10, gap_x=10.0, gap_y=10.0):
|
|
18
|
+
def pack(geo, columns=10, gap_x=10.0, gap_y=10.0, max_width=None):
|
|
19
19
|
"""Lay parts out in a simple row-major grid (no nesting).
|
|
20
20
|
|
|
21
|
-
Each part instance (``copies`` expanded) is placed
|
|
22
|
-
|
|
21
|
+
Each part instance (``copies`` expanded) is placed left to right; the x-advance uses each part's
|
|
22
|
+
own width and the row height is the tallest part in that row. Two wrapping modes:
|
|
23
|
+
|
|
24
|
+
* **array** (default) — start a new row every ``columns`` items.
|
|
25
|
+
* **distance** — pass ``max_width`` and a row wraps once the next part would exceed that width
|
|
26
|
+
(``columns`` is ignored). A part wider than ``max_width`` still gets its own row.
|
|
23
27
|
|
|
24
28
|
Parameters
|
|
25
29
|
----------
|
|
26
30
|
geo : :class:`compas_nest.nest_geo`
|
|
27
31
|
The parts to arrange (holes and attributes are carried along).
|
|
28
32
|
columns : int, optional
|
|
29
|
-
Number of cells per row before wrapping.
|
|
33
|
+
Number of cells per row before wrapping (array mode).
|
|
30
34
|
gap_x, gap_y : float, optional
|
|
31
35
|
Gaps between cells horizontally and vertically.
|
|
36
|
+
max_width : float, optional
|
|
37
|
+
If set, wrap by row width instead of by ``columns`` (distance mode).
|
|
32
38
|
|
|
33
39
|
Returns
|
|
34
40
|
-------
|
|
@@ -48,6 +54,12 @@ def pack(geo, columns=10, gap_x=10.0, gap_y=10.0):
|
|
|
48
54
|
w = maxx - minx
|
|
49
55
|
h = maxy - miny
|
|
50
56
|
for _ in range(copies):
|
|
57
|
+
# distance mode: wrap before placing if this part would overflow the row
|
|
58
|
+
if max_width is not None and col > 0 and (x + w) > max_width:
|
|
59
|
+
col = 0
|
|
60
|
+
x = 0.0
|
|
61
|
+
y += row_h + gap_y
|
|
62
|
+
row_h = 0.0
|
|
51
63
|
placements.append(
|
|
52
64
|
{
|
|
53
65
|
"part_index": part_index,
|
|
@@ -60,7 +72,8 @@ def pack(geo, columns=10, gap_x=10.0, gap_y=10.0):
|
|
|
60
72
|
x += w + gap_x
|
|
61
73
|
row_h = max(row_h, h)
|
|
62
74
|
col += 1
|
|
63
|
-
|
|
75
|
+
# array mode: wrap after a fixed number of columns
|
|
76
|
+
if max_width is None and col >= columns:
|
|
64
77
|
col = 0
|
|
65
78
|
x = 0.0
|
|
66
79
|
y += row_h + gap_y
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
import math
|
|
4
4
|
import os
|
|
5
5
|
|
|
6
|
+
from compas.data import Data
|
|
6
7
|
from compas.data import json_dump
|
|
7
8
|
from compas.geometry import Rotation
|
|
8
9
|
from compas.geometry import Translation
|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
class nest_result:
|
|
12
|
-
"""Placements produced by a nesting engine.
|
|
12
|
+
class nest_result(Data):
|
|
13
|
+
"""Placements produced by a nesting engine (a serializable COMPAS ``Data``).
|
|
13
14
|
|
|
14
15
|
The placement contract (shared by both engines) is::
|
|
15
16
|
|
|
@@ -30,15 +31,37 @@ class nest_result:
|
|
|
30
31
|
Number of sheets actually used.
|
|
31
32
|
fitness : float, optional
|
|
32
33
|
Solver fitness (NFP engine only).
|
|
34
|
+
name : str, optional
|
|
33
35
|
"""
|
|
34
36
|
|
|
35
|
-
def __init__(self, placements, geo, sheet_origins, n_sheets, fitness=None):
|
|
37
|
+
def __init__(self, placements, geo, sheet_origins, n_sheets, fitness=None, name=None):
|
|
38
|
+
super().__init__(name=name)
|
|
36
39
|
self.placements = placements
|
|
37
40
|
self.geo = geo
|
|
38
41
|
self.sheet_origins = sheet_origins
|
|
39
42
|
self.n_sheets = n_sheets
|
|
40
43
|
self.fitness = fitness
|
|
41
44
|
|
|
45
|
+
@property
|
|
46
|
+
def __data__(self):
|
|
47
|
+
return {
|
|
48
|
+
"placements": [dict(p) for p in self.placements],
|
|
49
|
+
"geo": self.geo,
|
|
50
|
+
"sheet_origins": [[float(o[0]), float(o[1])] for o in self.sheet_origins],
|
|
51
|
+
"n_sheets": int(self.n_sheets),
|
|
52
|
+
"fitness": self.fitness,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def __from_data__(cls, data):
|
|
57
|
+
return cls(
|
|
58
|
+
data["placements"],
|
|
59
|
+
data["geo"],
|
|
60
|
+
[tuple(o) for o in data["sheet_origins"]],
|
|
61
|
+
data["n_sheets"],
|
|
62
|
+
data.get("fitness"),
|
|
63
|
+
)
|
|
64
|
+
|
|
42
65
|
@property
|
|
43
66
|
def placed(self):
|
|
44
67
|
"""list[dict] : Placements that landed on a sheet (``sheet_id >= 0``)."""
|
|
@@ -14,13 +14,20 @@ from compas.geometry import Polyline
|
|
|
14
14
|
|
|
15
15
|
H_SPACING = 0.1 # gap between glyphs, in em (matches OpenNest)
|
|
16
16
|
V_SPACING = 1.4 # line height, in em
|
|
17
|
-
|
|
17
|
+
# Arcs are emitted as straight segments (good for fabrication). Sampling is adaptive: roughly one
|
|
18
|
+
# segment per ARC_STEP of sweep, so gentle curves stay light and tight curves get enough points.
|
|
19
|
+
ARC_STEP = math.radians(15.0) # max angle per segment
|
|
20
|
+
_ARC_MIN = 2 # at least this many segments per arc
|
|
18
21
|
|
|
19
22
|
_FONTS = {} # name -> {char: glyph}
|
|
20
23
|
|
|
21
24
|
|
|
22
|
-
def _arc_points(p1, tangent, p2
|
|
23
|
-
"""Sample an arc that starts at p1 with the given start tangent and ends at p2 (excludes p1).
|
|
25
|
+
def _arc_points(p1, tangent, p2):
|
|
26
|
+
"""Sample an arc that starts at p1 with the given start tangent and ends at p2 (excludes p1).
|
|
27
|
+
|
|
28
|
+
The number of straight segments is chosen from the swept angle (~one per :data:`ARC_STEP`),
|
|
29
|
+
keeping the point count minimal while staying close to the true arc.
|
|
30
|
+
"""
|
|
24
31
|
x1, y1 = p1
|
|
25
32
|
x2, y2 = p2
|
|
26
33
|
tx, ty = tangent
|
|
@@ -43,6 +50,7 @@ def _arc_points(p1, tangent, p2, segments):
|
|
|
43
50
|
sweep = (a2 - a1) % (2 * math.pi)
|
|
44
51
|
else:
|
|
45
52
|
sweep = -((a1 - a2) % (2 * math.pi))
|
|
53
|
+
segments = max(_ARC_MIN, int(math.ceil(abs(sweep) / ARC_STEP)))
|
|
46
54
|
return [(cx + r * math.cos(a1 + sweep * i / segments), cy + r * math.sin(a1 + sweep * i / segments)) for i in range(1, segments + 1)]
|
|
47
55
|
|
|
48
56
|
|
|
@@ -64,7 +72,7 @@ def _parse_glyph(letter):
|
|
|
64
72
|
cs, sn = math.cos(d2), math.sin(d2)
|
|
65
73
|
chx, chy = tox - lx, toy - ly
|
|
66
74
|
tangent = (chx * cs - chy * sn, chx * sn + chy * cs)
|
|
67
|
-
pts.extend(_arc_points((lx, ly), tangent, (tox, toy)
|
|
75
|
+
pts.extend(_arc_points((lx, ly), tangent, (tox, toy)))
|
|
68
76
|
lx, ly = tox, toy
|
|
69
77
|
strokes.append(pts)
|
|
70
78
|
return {"start": start, "end": end, "strokes": strokes}
|
|
@@ -82,9 +90,14 @@ def _font(name="regular"):
|
|
|
82
90
|
return _FONTS[name]
|
|
83
91
|
|
|
84
92
|
|
|
85
|
-
def text_to_polylines(text, height=1.0, font="regular",
|
|
93
|
+
def text_to_polylines(text, height=1.0, font="regular", frame=None, spacing=H_SPACING):
|
|
86
94
|
"""Render ``text`` to a list of single-stroke :class:`compas.geometry.Polyline`.
|
|
87
95
|
|
|
96
|
+
The text is laid out on the XY plane with the first line's baseline-left at the origin, then
|
|
97
|
+
oriented/placed onto ``frame`` — so you can drop a label anywhere (e.g. on a nested sheet) with
|
|
98
|
+
any orientation. ``frame`` axes also scale: use a frame with unit axes to keep ``height`` as the
|
|
99
|
+
cap height.
|
|
100
|
+
|
|
88
101
|
Parameters
|
|
89
102
|
----------
|
|
90
103
|
text : str
|
|
@@ -93,23 +106,23 @@ def text_to_polylines(text, height=1.0, font="regular", origin=(0.0, 0.0), spaci
|
|
|
93
106
|
Cap height (em) the glyphs are scaled to.
|
|
94
107
|
font : str, optional
|
|
95
108
|
Packaged font name: ``"regular"`` or ``"bold"``.
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
frame : :class:`compas.geometry.Frame`, optional
|
|
110
|
+
Where to place/orient the text. Its origin is the text origin, its x-axis the reading
|
|
111
|
+
direction and y-axis "up". Defaults to the world XY frame.
|
|
98
112
|
spacing : float, optional
|
|
99
113
|
Extra gap between glyphs, in em.
|
|
100
114
|
|
|
101
115
|
Returns
|
|
102
116
|
-------
|
|
103
117
|
list[:class:`compas.geometry.Polyline`]
|
|
104
|
-
One polyline per stroke
|
|
118
|
+
One polyline per stroke.
|
|
105
119
|
"""
|
|
106
120
|
glyphs = _font(font)
|
|
107
121
|
fallback = glyphs.get("\0")
|
|
108
|
-
ox, oy = origin
|
|
109
122
|
out = []
|
|
110
123
|
for line_i, line in enumerate(text.split("\n")):
|
|
111
|
-
x =
|
|
112
|
-
y =
|
|
124
|
+
x = 0.0
|
|
125
|
+
y = -line_i * V_SPACING * height
|
|
113
126
|
for ch in line:
|
|
114
127
|
glyph = glyphs.get(ch, fallback)
|
|
115
128
|
if glyph is None:
|
|
@@ -119,4 +132,10 @@ def text_to_polylines(text, height=1.0, font="regular", origin=(0.0, 0.0), spaci
|
|
|
119
132
|
for stroke in glyph["strokes"]:
|
|
120
133
|
out.append(Polyline([[x + px * height, y + py * height, 0.0] for (px, py) in stroke]))
|
|
121
134
|
x += glyph["end"] * height + spacing * height
|
|
135
|
+
|
|
136
|
+
if frame is not None:
|
|
137
|
+
from compas.geometry import Transformation
|
|
138
|
+
|
|
139
|
+
matrix = Transformation.from_frame(frame)
|
|
140
|
+
out = [pl.transformed(matrix) for pl in out]
|
|
122
141
|
return out
|
|
@@ -137,6 +137,23 @@ def test_text_to_polylines():
|
|
|
137
137
|
assert max(len(pl.points) for pl in text_to_polylines("C", height=10.0)) > 3
|
|
138
138
|
|
|
139
139
|
|
|
140
|
+
def test_result_serialization_roundtrip(geo, sheets):
|
|
141
|
+
result = opennest_collision(iterations=200, num_rotations=8, seed=1, verbose=False).solve(geo, sheets)
|
|
142
|
+
reloaded = json_loads(json_dumps(result))
|
|
143
|
+
assert type(reloaded).__name__ == "nest_result"
|
|
144
|
+
assert reloaded.n_sheets == result.n_sheets
|
|
145
|
+
assert len(reloaded.placed) == len(result.placed)
|
|
146
|
+
assert len(reloaded.placed_polylines()) == len(result.placed_polylines()) # geo survived too
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def test_text_frame_places_and_orients():
|
|
150
|
+
from compas.geometry import Frame
|
|
151
|
+
|
|
152
|
+
plain = text_to_polylines("A", height=10.0)
|
|
153
|
+
framed = text_to_polylines("A", height=10.0, frame=Frame([100, 0, 0], [1, 0, 0], [0, 1, 0]))
|
|
154
|
+
assert framed[0].points[0][0] > plain[0].points[0][0] + 90 # shifted to the frame origin
|
|
155
|
+
|
|
156
|
+
|
|
140
157
|
def test_from_size_factory():
|
|
141
158
|
sheets = nest_sheets.from_size(100, 50, count=2)
|
|
142
159
|
assert len(sheets.sheets) == 2
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# 06 · Pack (grid array)
|
|
2
|
-
|
|
3
|
-
Lay parts out in a simple grid/array with `pack` — a deterministic layout, no nesting. It returns a
|
|
4
|
-
`nest_result`, so the same `placed_polylines` / `to_json` / `to_obj` apply.
|
|
5
|
-
|
|
6
|
-
<!-- TODO: image -->
|
|
7
|
-

|
|
8
|
-
|
|
9
|
-
```python
|
|
10
|
-
--8<-- "examples/06_pack.py"
|
|
11
|
-
```
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
|
|
3
|
-
from compas.colors import Color
|
|
4
|
-
from compas.data import json_dump
|
|
5
|
-
from compas_viewer import Viewer
|
|
6
|
-
|
|
7
|
-
from compas_nest import text_to_polylines
|
|
8
|
-
|
|
9
|
-
BLUE: Color = Color.from_hex("#0072B2")
|
|
10
|
-
OUTPUT: Path = Path(__file__).parent.parent / "data" / "output" / "07_text.json"
|
|
11
|
-
|
|
12
|
-
# 1. render text to single-stroke polylines (OpenNest XML font), 10-unit cap height
|
|
13
|
-
strokes: list = text_to_polylines("OpenNest\n0 1 2", height=10.0, font="regular")
|
|
14
|
-
|
|
15
|
-
# 2. view the stroke polylines (blue)
|
|
16
|
-
viewer: Viewer = Viewer()
|
|
17
|
-
for stroke in strokes:
|
|
18
|
-
viewer.scene.add(stroke, linecolor=BLUE, linewidth=2)
|
|
19
|
-
viewer.show()
|
|
20
|
-
|
|
21
|
-
# 3. save the polylines to JSON
|
|
22
|
-
OUTPUT.parent.mkdir(parents=True, exist_ok=True)
|
|
23
|
-
json_dump(strokes, OUTPUT)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/CMakeLists.txt
RENAMED
|
File without changes
|