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.
Files changed (297) hide show
  1. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/PKG-INFO +1 -1
  2. compas_nest-0.1.1.dev6/docs/examples/06_pack_array.md +12 -0
  3. compas_nest-0.1.1.dev6/docs/examples/07_pack_distance.md +11 -0
  4. compas_nest-0.1.1.dev4/docs/examples/07_text.md → compas_nest-0.1.1.dev6/docs/examples/08_text.md +4 -4
  5. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/index.md +3 -2
  6. compas_nest-0.1.1.dev4/examples/06_pack.py → compas_nest-0.1.1.dev6/examples/06_pack_array.py +3 -3
  7. compas_nest-0.1.1.dev6/examples/07_pack_distance.py +60 -0
  8. compas_nest-0.1.1.dev6/examples/08_text.py +28 -0
  9. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/mkdocs.yml +3 -2
  10. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/fonts/regular.xml +15 -23
  11. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/pack.py +18 -5
  12. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/result.py +26 -3
  13. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/text.py +30 -11
  14. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/tests/test_nesting.py +17 -0
  15. compas_nest-0.1.1.dev4/docs/examples/06_pack.md +0 -11
  16. compas_nest-0.1.1.dev4/examples/07_text.py +0 -23
  17. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.github/workflows/build.yml +0 -0
  18. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.github/workflows/docs.yml +0 -0
  19. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.gitignore +0 -0
  20. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/.gitmodules +0 -0
  21. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CHANGELOG.md +0 -0
  22. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CMakeLists.txt +0 -0
  23. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/CREDITS.md +0 -0
  24. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/LICENSE +0 -0
  25. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/README.md +0 -0
  26. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/bash/build.sh +0 -0
  27. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/bash/install.sh +0 -0
  28. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/.gitkeep +0 -0
  29. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/elements_strips.json +0 -0
  30. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/data/output/.gitkeep +0 -0
  31. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.collision.md +0 -0
  32. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.datastructures.md +0 -0
  33. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.nfp.md +0 -0
  34. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.offset.md +0 -0
  35. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.pack.md +0 -0
  36. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.result.md +0 -0
  37. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.text.md +0 -0
  38. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/compas_nest.viewer.md +0 -0
  39. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/api/index.md +0 -0
  40. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/assets/favicon.png +0 -0
  41. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/assets/logo.png +0 -0
  42. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/changelog.md +0 -0
  43. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/credits.md +0 -0
  44. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/01_collision_viewer.md +0 -0
  45. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/02_nfp_viewer.md +0 -0
  46. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/03_nfp_animated.md +0 -0
  47. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/04_collision_dataset.md +0 -0
  48. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/examples/05_attributes.md +0 -0
  49. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/.gitkeep +0 -0
  50. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/01_collision_viewer.png +0 -0
  51. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/02_nfp_viewer.png +0 -0
  52. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/03_nfp_animated.gif +0 -0
  53. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/04_collision_dataset.gif +0 -0
  54. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/images/05_attributes.png +0 -0
  55. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/index.md +0 -0
  56. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/docs/installation.md +0 -0
  57. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/environment.yml +0 -0
  58. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/01_collision_viewer.py +0 -0
  59. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/02_nfp_viewer.py +0 -0
  60. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/03_nfp_animated.py +0 -0
  61. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/04_collision_dataset.py +0 -0
  62. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/examples/05_attributes.py +0 -0
  63. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/.git +0 -0
  64. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/README.md +0 -0
  65. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/CMakeLists.txt +0 -0
  66. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/README.md +0 -0
  67. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/collision_engine.hpp +0 -0
  68. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/common.hpp +0 -0
  69. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/convex_hull.hpp +0 -0
  70. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/obstacle.hpp +0 -0
  71. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/polygon.hpp +0 -0
  72. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/primitives.hpp +0 -0
  73. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/quadtree.hpp +0 -0
  74. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/scene.hpp +0 -0
  75. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/shape.hpp +0 -0
  76. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/shape_ops.hpp +0 -0
  77. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/slotmap.hpp +0 -0
  78. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/strip_packing.hpp +0 -0
  79. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/surrogate.hpp +0 -0
  80. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/geometry/transform.hpp +0 -0
  81. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics.cpp +0 -0
  82. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics_capi.cpp +0 -0
  83. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/nest_physics_capi.h +0 -0
  84. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/config.hpp +0 -0
  85. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/constants.hpp +0 -0
  86. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/driver.hpp +0 -0
  87. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/evaluator.hpp +0 -0
  88. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/optimizer.hpp +0 -0
  89. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/overlap.hpp +0 -0
  90. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/rng.hpp +0 -0
  91. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/sampler.hpp +0 -0
  92. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/nest_physics_cpp/solver/util.hpp +0 -0
  93. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/CMakeLists.txt +0 -0
  94. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/ClipperUtil.h +0 -0
  95. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/D3.h +0 -0
  96. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeneticAlgorithm.cpp +0 -0
  97. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeneticAlgorithm.h +0 -0
  98. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeometryUtil.cpp +0 -0
  99. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/GeometryUtil.h +0 -0
  100. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/HelperTypes.h +0 -0
  101. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/MinkowskiConvolution.cpp +0 -0
  102. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/MinkowskiConvolution.h +0 -0
  103. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NFP.h +0 -0
  104. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestConfig.h +0 -0
  105. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingContext.cpp +0 -0
  106. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingContext.h +0 -0
  107. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingEngine.cpp +0 -0
  108. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NestingEngine.h +0 -0
  109. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NfpWorker.cpp +0 -0
  110. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/NfpWorker.h +0 -0
  111. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Point.h +0 -0
  112. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Random.h +0 -0
  113. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/Simplify.h +0 -0
  114. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/capi/nfp_nest_capi.cpp +0 -0
  115. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/capi/nfp_nest_capi.h +0 -0
  116. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.core.h +0 -0
  117. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.engine.cpp +0 -0
  118. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.engine.h +0 -0
  119. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.h +0 -0
  120. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.minkowski.h +0 -0
  121. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.offset.cpp +0 -0
  122. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.offset.h +0 -0
  123. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.rectclip.cpp +0 -0
  124. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.rectclip.h +0 -0
  125. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/src/clipper2/clipper.version.h +0 -0
  126. {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
  127. {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
  128. {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
  129. {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
  130. {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
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {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
  141. {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
  142. {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
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {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
  150. {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
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {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
  159. {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
  160. {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
  161. {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
  162. {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
  163. {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
  164. {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
  165. {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
  166. {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
  167. {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
  168. {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
  169. {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
  170. {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
  171. {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
  172. {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
  173. {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
  174. {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
  175. {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
  176. {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
  177. {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
  178. {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
  179. {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
  180. {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
  181. {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
  182. {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
  183. {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
  184. {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
  185. {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
  186. {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
  187. {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
  188. {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
  189. {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
  190. {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
  191. {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
  192. {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
  193. {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
  194. {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
  195. {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
  196. {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
  197. {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
  198. {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
  199. {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
  200. {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
  201. {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
  202. {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
  203. {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
  204. {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
  205. {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
  206. {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
  207. {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
  208. {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
  209. {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
  210. {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
  211. {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
  212. {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
  213. {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
  214. {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
  215. {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
  216. {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
  217. {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
  218. {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
  219. {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
  220. {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
  221. {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
  222. {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
  223. {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
  224. {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
  225. {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
  226. {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
  227. {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
  228. {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
  229. {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
  230. {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
  231. {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
  232. {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
  233. {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
  234. {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
  235. {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
  236. {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
  237. {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
  238. {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
  239. {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
  240. {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
  241. {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
  242. {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
  243. {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
  244. {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
  245. {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
  246. {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
  247. {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
  248. {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
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {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
  262. {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
  263. {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
  264. {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
  265. {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
  266. {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
  267. {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
  268. {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
  269. {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
  270. {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
  271. {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
  272. {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
  273. {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
  274. {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
  275. {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
  276. {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
  277. {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
  278. {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
  279. {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
  280. {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
  281. {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
  282. {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
  283. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/external/nest/opennest_cpp/tools/parity_diff.py +0 -0
  284. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/pyproject.toml +0 -0
  285. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/requirements-dev.txt +0 -0
  286. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/requirements-docs.txt +0 -0
  287. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_clipper.cpp +0 -0
  288. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_nest_physics.cpp +0 -0
  289. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/_nfp_nest.cpp +0 -0
  290. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/__init__.py +0 -0
  291. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/collision.py +0 -0
  292. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/datastructures.py +0 -0
  293. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/fonts/bold.xml +0 -0
  294. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/nfp.py +0 -0
  295. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/offset.py +0 -0
  296. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/types.py +0 -0
  297. {compas_nest-0.1.1.dev4 → compas_nest-0.1.1.dev6}/src/compas_nest/viewer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: compas_nest
3
- Version: 0.1.1.dev4
3
+ Version: 0.1.1.dev6
4
4
  Summary: 2D irregular nesting (OpenNest) for COMPAS.
5
5
  Author-Email: Petras Vestartas <petrasvestartas@gmail.com>
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -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
+ ![pack array](../images/06_pack_array.png)
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
+ ![pack distance](../images/07_pack_distance.png)
8
+
9
+ ```python
10
+ --8<-- "examples/07_pack_distance.py"
11
+ ```
@@ -1,11 +1,11 @@
1
- # 07 · Text (single-stroke font)
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
- ![text](../images/07_text.png)
7
+ ![text](../images/08_text.png)
8
8
 
9
9
  ```python
10
- --8<-- "examples/07_text.py"
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 (grid)](06_pack.md) — simple grid/array layout with `pack` (no nesting).
12
- 7. [Text (font)](07_text.md) — single-stroke text with `text_to_polylines`.
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`.
@@ -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" / "06_pack.json"
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 a simple grid (no nesting): 5 cells per row, 8-unit gaps
47
- result: nest_result = pack(geo, columns=5, gap_x=8.0, gap_y=8.0)
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 (grid): examples/06_pack.md
52
- - 07 Text (font): examples/07_text.md
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.2650943396226" y="0.90283018867925">
548
- <to x="0.2650943396226" y="0.09716981132075"/>
549
- <to x="0.43490566037731" y="0.09716981132075"/>
550
- <to x="0.43490566037731" y="0.90283018867925"/>
551
- <to x="0.2650943396226" y="0.90283018867925"/>
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.55" y="0.05">
568
- <to x="0.15" y="0.05" />
569
- <to x="0.51891730682301" y="0.63825409294735" />
570
- <to x="0.15000000000001" y="0.80" />
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.2650943396" y="0.9028301887">
636
- <to x="0.2650943396" y="0.5874993152" />
637
- <to x="0.4349056604" y="0.4125006848" />
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.00">
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 in a cell; rows wrap every ``columns`` items.
22
- The x-advance uses each part's own width; the row height is the tallest part in that row.
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
- if col >= columns:
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
- _ARC_SEGMENTS = 10 # straight segments per bulge-arc
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, segments):
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), _ARC_SEGMENTS))
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", origin=(0.0, 0.0), spacing=H_SPACING):
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
- origin : tuple[float, float], optional
97
- Lower-left start position of the first line.
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, in the XY plane, scaled by ``height``.
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 = ox
112
- y = oy - line_i * V_SPACING * height
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
- ![pack](../images/06_pack.png)
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)