nodehammer 1.2.0rc1__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 (414) hide show
  1. nodehammer-1.2.0rc1/.clang-format +3 -0
  2. nodehammer-1.2.0rc1/.clang-tidy +29 -0
  3. nodehammer-1.2.0rc1/.gitattributes +13 -0
  4. nodehammer-1.2.0rc1/.gitignore +32 -0
  5. nodehammer-1.2.0rc1/.pre-commit-config.yaml +39 -0
  6. nodehammer-1.2.0rc1/.vscode/launch.json +187 -0
  7. nodehammer-1.2.0rc1/.vscode/settings.json +9 -0
  8. nodehammer-1.2.0rc1/.vscode/tasks.json +59 -0
  9. nodehammer-1.2.0rc1/CMakeLists.txt +977 -0
  10. nodehammer-1.2.0rc1/Justfile +368 -0
  11. nodehammer-1.2.0rc1/LICENSE +21 -0
  12. nodehammer-1.2.0rc1/LICENSES/MIT.txt +21 -0
  13. nodehammer-1.2.0rc1/LICENSES/OFL-1.1.txt +165 -0
  14. nodehammer-1.2.0rc1/LICENSES/Zlib.txt +17 -0
  15. nodehammer-1.2.0rc1/PKG-INFO +273 -0
  16. nodehammer-1.2.0rc1/README.md +256 -0
  17. nodehammer-1.2.0rc1/REUSE.toml +30 -0
  18. nodehammer-1.2.0rc1/STYLE.md +41 -0
  19. nodehammer-1.2.0rc1/ci/bench-summary.py +67 -0
  20. nodehammer-1.2.0rc1/ci/bench.sh +39 -0
  21. nodehammer-1.2.0rc1/ci/build.sh +83 -0
  22. nodehammer-1.2.0rc1/ci/check_shared_exports.py +389 -0
  23. nodehammer-1.2.0rc1/ci/shared-build.sh +32 -0
  24. nodehammer-1.2.0rc1/ci/shared_consumer/CMakeLists.txt +34 -0
  25. nodehammer-1.2.0rc1/ci/shared_consumer/main.cpp +299 -0
  26. nodehammer-1.2.0rc1/ci/verify-shared-install.sh +94 -0
  27. nodehammer-1.2.0rc1/cmake/CompilerOptions.cmake +206 -0
  28. nodehammer-1.2.0rc1/cmake/Dependencies.cmake +257 -0
  29. nodehammer-1.2.0rc1/cmake/PicProbe.cmake +52 -0
  30. nodehammer-1.2.0rc1/cmake/Sokol.cmake +268 -0
  31. nodehammer-1.2.0rc1/cmake/ThirdPartyLicenses.cmake +79 -0
  32. nodehammer-1.2.0rc1/cmake/Version.cmake +51 -0
  33. nodehammer-1.2.0rc1/cmake/nodehammer-config.cmake.in +98 -0
  34. nodehammer-1.2.0rc1/cmake/patch_sokol_wgpu.cmake +34 -0
  35. nodehammer-1.2.0rc1/cmake/pic_probe.cpp +6 -0
  36. nodehammer-1.2.0rc1/cmake/validate_shader_hlsl.cmake +60 -0
  37. nodehammer-1.2.0rc1/cmake/validate_shader_wgsl.cmake +57 -0
  38. nodehammer-1.2.0rc1/conanfile.py +171 -0
  39. nodehammer-1.2.0rc1/fixtures/configs/full_example.toml +53 -0
  40. nodehammer-1.2.0rc1/fixtures/configs/include_bad_path.toml +1 -0
  41. nodehammer-1.2.0rc1/fixtures/configs/include_basic.toml +6 -0
  42. nodehammer-1.2.0rc1/fixtures/configs/include_cycle.toml +1 -0
  43. nodehammer-1.2.0rc1/fixtures/configs/include_diamond.toml +5 -0
  44. nodehammer-1.2.0rc1/fixtures/configs/include_nested.toml +5 -0
  45. nodehammer-1.2.0rc1/fixtures/configs/includes/cycle_a.toml +2 -0
  46. nodehammer-1.2.0rc1/fixtures/configs/includes/cycle_b.toml +1 -0
  47. nodehammer-1.2.0rc1/fixtures/configs/includes/diamond_base.toml +7 -0
  48. nodehammer-1.2.0rc1/fixtures/configs/includes/diamond_left.toml +1 -0
  49. nodehammer-1.2.0rc1/fixtures/configs/includes/diamond_right.toml +1 -0
  50. nodehammer-1.2.0rc1/fixtures/configs/includes/materials.toml +7 -0
  51. nodehammer-1.2.0rc1/fixtures/configs/includes/nested_inner.toml +3 -0
  52. nodehammer-1.2.0rc1/fixtures/configs/includes/nested_outer.toml +5 -0
  53. nodehammer-1.2.0rc1/fixtures/configs/includes/rules.toml +8 -0
  54. nodehammer-1.2.0rc1/fixtures/configs/invalid_bad_tolerance.toml +6 -0
  55. nodehammer-1.2.0rc1/fixtures/configs/invalid_missing_material_ref.toml +4 -0
  56. nodehammer-1.2.0rc1/fixtures/configs/lua/calorimeters.lua +40 -0
  57. nodehammer-1.2.0rc1/fixtures/configs/lua/kitchen_sink.lua +29 -0
  58. nodehammer-1.2.0rc1/fixtures/configs/lua/lib/constants.lua +12 -0
  59. nodehammer-1.2.0rc1/fixtures/configs/lua/materials.lua +37 -0
  60. nodehammer-1.2.0rc1/fixtures/configs/lua/muon.lua +40 -0
  61. nodehammer-1.2.0rc1/fixtures/configs/lua/odd/base.lua +7 -0
  62. nodehammer-1.2.0rc1/fixtures/configs/lua/odd/calorimeters.lua +66 -0
  63. nodehammer-1.2.0rc1/fixtures/configs/lua/odd/materials.lua +77 -0
  64. nodehammer-1.2.0rc1/fixtures/configs/lua/odd/muon.lua +50 -0
  65. nodehammer-1.2.0rc1/fixtures/configs/lua/odd/tracker.lua +80 -0
  66. nodehammer-1.2.0rc1/fixtures/configs/lua/odd.lua +64 -0
  67. nodehammer-1.2.0rc1/fixtures/configs/lua/parity.lua +49 -0
  68. nodehammer-1.2.0rc1/fixtures/configs/lua/parity.toml +73 -0
  69. nodehammer-1.2.0rc1/fixtures/configs/lua/tracker.lua +49 -0
  70. nodehammer-1.2.0rc1/fixtures/configs/minimal.toml +2 -0
  71. nodehammer-1.2.0rc1/fixtures/configs/odd/base.toml +4 -0
  72. nodehammer-1.2.0rc1/fixtures/configs/odd/calorimeters.toml +76 -0
  73. nodehammer-1.2.0rc1/fixtures/configs/odd/calorimeters_simple.toml +34 -0
  74. nodehammer-1.2.0rc1/fixtures/configs/odd/materials.toml +154 -0
  75. nodehammer-1.2.0rc1/fixtures/configs/odd/muon.toml +45 -0
  76. nodehammer-1.2.0rc1/fixtures/configs/odd/muon_simple.toml +28 -0
  77. nodehammer-1.2.0rc1/fixtures/configs/odd/simple_materials.toml +59 -0
  78. nodehammer-1.2.0rc1/fixtures/configs/odd/tracker.toml +115 -0
  79. nodehammer-1.2.0rc1/fixtures/configs/odd.toml +82 -0
  80. nodehammer-1.2.0rc1/fixtures/configs/odd_drop_coincident_faces.toml +48 -0
  81. nodehammer-1.2.0rc1/fixtures/configs/odd_merged.toml +35 -0
  82. nodehammer-1.2.0rc1/fixtures/configs/odd_simple.toml +235 -0
  83. nodehammer-1.2.0rc1/fixtures/configs/odd_single_ecal_barrel_stave.toml +37 -0
  84. nodehammer-1.2.0rc1/fixtures/configs/odd_single_hcal_barrel_stave.toml +36 -0
  85. nodehammer-1.2.0rc1/fixtures/configs/odd_single_long_strip_barrel_module.toml +46 -0
  86. nodehammer-1.2.0rc1/fixtures/configs/odd_single_long_strip_barrel_stave.toml +40 -0
  87. nodehammer-1.2.0rc1/fixtures/configs/odd_single_muon_barrel_chamber.toml +41 -0
  88. nodehammer-1.2.0rc1/fixtures/configs/odd_single_pixel_barrel_module.toml +40 -0
  89. nodehammer-1.2.0rc1/fixtures/configs/odd_single_pixel_barrel_stave.toml +40 -0
  90. nodehammer-1.2.0rc1/fixtures/configs/odd_single_short_strip_barrel_module.toml +40 -0
  91. nodehammer-1.2.0rc1/fixtures/configs/odd_single_short_strip_barrel_stave.toml +40 -0
  92. nodehammer-1.2.0rc1/fixtures/configs/odd_tracker.toml +61 -0
  93. nodehammer-1.2.0rc1/fixtures/dd4hep/sensitive_detector.xml +63 -0
  94. nodehammer-1.2.0rc1/fixtures/dd4hep/simple_box.xml +58 -0
  95. nodehammer-1.2.0rc1/include/nodehammer/build.hpp +62 -0
  96. nodehammer-1.2.0rc1/include/nodehammer/config.hpp +176 -0
  97. nodehammer-1.2.0rc1/include/nodehammer/diagnostics.hpp +198 -0
  98. nodehammer-1.2.0rc1/include/nodehammer/render_scene.hpp +104 -0
  99. nodehammer-1.2.0rc1/include/nodehammer/semantic_scene.hpp +144 -0
  100. nodehammer-1.2.0rc1/include/nodehammer/version.hpp.in +27 -0
  101. nodehammer-1.2.0rc1/include/nodehammer/visibility.hpp +63 -0
  102. nodehammer-1.2.0rc1/profiles/emscripten +49 -0
  103. nodehammer-1.2.0rc1/pyproject.toml +177 -0
  104. nodehammer-1.2.0rc1/python/nodehammer/__init__.py +85 -0
  105. nodehammer-1.2.0rc1/python/nodehammer/py.typed +0 -0
  106. nodehammer-1.2.0rc1/recipes/imgui/CMakeLists.txt +29 -0
  107. nodehammer-1.2.0rc1/recipes/imgui/conandata.yml +4 -0
  108. nodehammer-1.2.0rc1/recipes/imgui/conanfile.py +50 -0
  109. nodehammer-1.2.0rc1/recipes/implot/CMakeLists.txt +23 -0
  110. nodehammer-1.2.0rc1/recipes/implot/conandata.yml +5 -0
  111. nodehammer-1.2.0rc1/recipes/implot/conanfile.py +55 -0
  112. nodehammer-1.2.0rc1/recipes/nfd/conandata.yml +3 -0
  113. nodehammer-1.2.0rc1/recipes/nfd/conanfile.py +64 -0
  114. nodehammer-1.2.0rc1/recipes/sokol/conandata.yml +4 -0
  115. nodehammer-1.2.0rc1/recipes/sokol/conanfile.py +40 -0
  116. nodehammer-1.2.0rc1/recipes/sokol-shdc/conandata.yml +28 -0
  117. nodehammer-1.2.0rc1/recipes/sokol-shdc/conanfile.py +73 -0
  118. nodehammer-1.2.0rc1/schemas/render.fbs +121 -0
  119. nodehammer-1.2.0rc1/schemas/semantic.fbs +167 -0
  120. nodehammer-1.2.0rc1/scripts/build_pages_site.sh +137 -0
  121. nodehammer-1.2.0rc1/scripts/check_em_js_closure.py +93 -0
  122. nodehammer-1.2.0rc1/scripts/check_pages_site.py +106 -0
  123. nodehammer-1.2.0rc1/scripts/check_wasm_module_linkage.py +132 -0
  124. nodehammer-1.2.0rc1/scripts/make_nhproj.py +127 -0
  125. nodehammer-1.2.0rc1/scripts/serve_nocache.py +56 -0
  126. nodehammer-1.2.0rc1/scripts/stage_wasm_viewer.sh +159 -0
  127. nodehammer-1.2.0rc1/scripts/wasm_compute_smoke.js +89 -0
  128. nodehammer-1.2.0rc1/scripts/windows-msvc-cmake.ps1 +82 -0
  129. nodehammer-1.2.0rc1/shaders/CMakeLists.txt +71 -0
  130. nodehammer-1.2.0rc1/shaders/ao.glsl +380 -0
  131. nodehammer-1.2.0rc1/shaders/ao_denoise.glsl +132 -0
  132. nodehammer-1.2.0rc1/shaders/blit.glsl +48 -0
  133. nodehammer-1.2.0rc1/shaders/composite.glsl +469 -0
  134. nodehammer-1.2.0rc1/shaders/depth_helpers.glsl.h +32 -0
  135. nodehammer-1.2.0rc1/shaders/ibl_bake.glsl +394 -0
  136. nodehammer-1.2.0rc1/shaders/scene.glsl +337 -0
  137. nodehammer-1.2.0rc1/src/api/build.cpp +112 -0
  138. nodehammer-1.2.0rc1/src/api/config.cpp +151 -0
  139. nodehammer-1.2.0rc1/src/api/diagnostics.cpp +41 -0
  140. nodehammer-1.2.0rc1/src/api/handles.hpp +214 -0
  141. nodehammer-1.2.0rc1/src/api/render_scene.cpp +161 -0
  142. nodehammer-1.2.0rc1/src/api/semantic_scene.cpp +155 -0
  143. nodehammer-1.2.0rc1/src/cli/cli_common.hpp +107 -0
  144. nodehammer-1.2.0rc1/src/cli/cmd_config_flatten.cpp +59 -0
  145. nodehammer-1.2.0rc1/src/cli/cmd_config_lua.cpp +81 -0
  146. nodehammer-1.2.0rc1/src/cli/cmd_convert.cpp +255 -0
  147. nodehammer-1.2.0rc1/src/cli/cmd_dump_render.cpp +75 -0
  148. nodehammer-1.2.0rc1/src/cli/cmd_dump_semantic.cpp +322 -0
  149. nodehammer-1.2.0rc1/src/cli/cmd_inspect.cpp +314 -0
  150. nodehammer-1.2.0rc1/src/cli/cmd_validate_config.cpp +40 -0
  151. nodehammer-1.2.0rc1/src/cli/cmd_viewer.cpp +382 -0
  152. nodehammer-1.2.0rc1/src/cli/main.cpp +72 -0
  153. nodehammer-1.2.0rc1/src/cli/pager.cpp +182 -0
  154. nodehammer-1.2.0rc1/src/cli/pager.hpp +42 -0
  155. nodehammer-1.2.0rc1/src/config/color_parse.cpp +65 -0
  156. nodehammer-1.2.0rc1/src/config/color_parse.hpp +20 -0
  157. nodehammer-1.2.0rc1/src/config/config_ast.hpp +216 -0
  158. nodehammer-1.2.0rc1/src/config/config_enums.hpp +62 -0
  159. nodehammer-1.2.0rc1/src/config/config_keys.hpp +125 -0
  160. nodehammer-1.2.0rc1/src/config/config_loader.cpp +924 -0
  161. nodehammer-1.2.0rc1/src/config/config_loader.hpp +126 -0
  162. nodehammer-1.2.0rc1/src/config/config_validator.cpp +78 -0
  163. nodehammer-1.2.0rc1/src/config/config_validator.hpp +14 -0
  164. nodehammer-1.2.0rc1/src/config/config_writer.cpp +329 -0
  165. nodehammer-1.2.0rc1/src/config/config_writer.hpp +14 -0
  166. nodehammer-1.2.0rc1/src/config/predicate_parser.cpp +458 -0
  167. nodehammer-1.2.0rc1/src/config/predicate_parser.hpp +44 -0
  168. nodehammer-1.2.0rc1/src/detail/file_io.hpp +34 -0
  169. nodehammer-1.2.0rc1/src/detail/glm_json.hpp +100 -0
  170. nodehammer-1.2.0rc1/src/detail/markup.cpp +162 -0
  171. nodehammer-1.2.0rc1/src/detail/markup.hpp +138 -0
  172. nodehammer-1.2.0rc1/src/detail/overloaded.hpp +17 -0
  173. nodehammer-1.2.0rc1/src/detail/timing.hpp +135 -0
  174. nodehammer-1.2.0rc1/src/detail/zstd_io.hpp +91 -0
  175. nodehammer-1.2.0rc1/src/diagnostic_codes.hpp +127 -0
  176. nodehammer-1.2.0rc1/src/diagnostics.hpp +85 -0
  177. nodehammer-1.2.0rc1/src/export_resolve.cpp +67 -0
  178. nodehammer-1.2.0rc1/src/export_resolve.hpp +39 -0
  179. nodehammer-1.2.0rc1/src/ir/dd4hep/semantic/importer.cpp +149 -0
  180. nodehammer-1.2.0rc1/src/ir/dd4hep/semantic/importer.hpp +19 -0
  181. nodehammer-1.2.0rc1/src/ir/fb/render/flatbuffer.cpp +375 -0
  182. nodehammer-1.2.0rc1/src/ir/fb/render/flatbuffer.hpp +46 -0
  183. nodehammer-1.2.0rc1/src/ir/fb/semantic/exporter.cpp +33 -0
  184. nodehammer-1.2.0rc1/src/ir/fb/semantic/exporter.hpp +15 -0
  185. nodehammer-1.2.0rc1/src/ir/fb/semantic/flatbuffer.cpp +1248 -0
  186. nodehammer-1.2.0rc1/src/ir/fb/semantic/flatbuffer.hpp +104 -0
  187. nodehammer-1.2.0rc1/src/ir/fb/semantic/importer.cpp +71 -0
  188. nodehammer-1.2.0rc1/src/ir/fb/semantic/importer.hpp +29 -0
  189. nodehammer-1.2.0rc1/src/ir/gltf/render/exporter.cpp +575 -0
  190. nodehammer-1.2.0rc1/src/ir/gltf/render/exporter.hpp +20 -0
  191. nodehammer-1.2.0rc1/src/ir/json/semantic/exporter.cpp +34 -0
  192. nodehammer-1.2.0rc1/src/ir/json/semantic/exporter.hpp +15 -0
  193. nodehammer-1.2.0rc1/src/ir/json/semantic/importer.cpp +36 -0
  194. nodehammer-1.2.0rc1/src/ir/json/semantic/importer.hpp +19 -0
  195. nodehammer-1.2.0rc1/src/ir/obj/render/exporter.cpp +131 -0
  196. nodehammer-1.2.0rc1/src/ir/obj/render/exporter.hpp +21 -0
  197. nodehammer-1.2.0rc1/src/ir/provenance.hpp +40 -0
  198. nodehammer-1.2.0rc1/src/ir/render/exporter.hpp +139 -0
  199. nodehammer-1.2.0rc1/src/ir/render/exporter_registry.cpp +73 -0
  200. nodehammer-1.2.0rc1/src/ir/render.hpp +154 -0
  201. nodehammer-1.2.0rc1/src/ir/render_json.cpp +81 -0
  202. nodehammer-1.2.0rc1/src/ir/render_json.hpp +22 -0
  203. nodehammer-1.2.0rc1/src/ir/semantic/exporter.hpp +54 -0
  204. nodehammer-1.2.0rc1/src/ir/semantic/exporter_registry.cpp +90 -0
  205. nodehammer-1.2.0rc1/src/ir/semantic/importer.hpp +72 -0
  206. nodehammer-1.2.0rc1/src/ir/semantic/importer_registry.cpp +127 -0
  207. nodehammer-1.2.0rc1/src/ir/semantic.cpp +540 -0
  208. nodehammer-1.2.0rc1/src/ir/semantic.hpp +326 -0
  209. nodehammer-1.2.0rc1/src/ir/semantic_json.cpp +436 -0
  210. nodehammer-1.2.0rc1/src/ir/semantic_json.hpp +80 -0
  211. nodehammer-1.2.0rc1/src/ir/synthetic/semantic/importer.cpp +185 -0
  212. nodehammer-1.2.0rc1/src/ir/synthetic/semantic/importer.hpp +42 -0
  213. nodehammer-1.2.0rc1/src/ir/tgeo/semantic/importer.cpp +178 -0
  214. nodehammer-1.2.0rc1/src/ir/tgeo/semantic/importer.hpp +41 -0
  215. nodehammer-1.2.0rc1/src/ir/tgeo/semantic/shape_dispatch.cpp +149 -0
  216. nodehammer-1.2.0rc1/src/ir/tgeo/semantic/shape_dispatch.hpp +19 -0
  217. nodehammer-1.2.0rc1/src/lua/lua_config.cpp +666 -0
  218. nodehammer-1.2.0rc1/src/lua/lua_config.hpp +49 -0
  219. nodehammer-1.2.0rc1/src/python/CMakeLists.txt +193 -0
  220. nodehammer-1.2.0rc1/src/python/bindings.cpp +510 -0
  221. nodehammer-1.2.0rc1/src/scene_build.cpp +93 -0
  222. nodehammer-1.2.0rc1/src/scene_build.hpp +72 -0
  223. nodehammer-1.2.0rc1/src/selection/predicate.cpp +341 -0
  224. nodehammer-1.2.0rc1/src/selection/predicate.hpp +74 -0
  225. nodehammer-1.2.0rc1/src/selection/selector.cpp +341 -0
  226. nodehammer-1.2.0rc1/src/selection/selector.hpp +59 -0
  227. nodehammer-1.2.0rc1/src/sokol/sokol_imgui_impl.cc +15 -0
  228. nodehammer-1.2.0rc1/src/sokol/sokol_imgui_impl.mm +10 -0
  229. nodehammer-1.2.0rc1/src/sokol/sokol_impl.c +18 -0
  230. nodehammer-1.2.0rc1/src/sokol/sokol_impl.mm +9 -0
  231. nodehammer-1.2.0rc1/src/tessellation/boolean_tessellator.cpp +438 -0
  232. nodehammer-1.2.0rc1/src/tessellation/boolean_tessellator.hpp +35 -0
  233. nodehammer-1.2.0rc1/src/tessellation/build_pipeline.cpp +169 -0
  234. nodehammer-1.2.0rc1/src/tessellation/build_pipeline.hpp +97 -0
  235. nodehammer-1.2.0rc1/src/tessellation/primitive_tessellator.cpp +1001 -0
  236. nodehammer-1.2.0rc1/src/tessellation/primitive_tessellator.hpp +18 -0
  237. nodehammer-1.2.0rc1/src/tessellation/tessellation_job.hpp +55 -0
  238. nodehammer-1.2.0rc1/src/tessellation/tessellation_pass.cpp +1675 -0
  239. nodehammer-1.2.0rc1/src/tessellation/tessellation_pass.hpp +40 -0
  240. nodehammer-1.2.0rc1/src/tessellation/tessellator.hpp +42 -0
  241. nodehammer-1.2.0rc1/src/tessellation/wedge_cut.cpp +665 -0
  242. nodehammer-1.2.0rc1/src/tessellation/wedge_cut.hpp +112 -0
  243. nodehammer-1.2.0rc1/src/tools/imgui_kitchen_sink_main.cpp +71 -0
  244. nodehammer-1.2.0rc1/src/version.cpp +7 -0
  245. nodehammer-1.2.0rc1/src/viewer/CMakeLists.txt +116 -0
  246. nodehammer-1.2.0rc1/src/viewer/ao_denoise_pass.cpp +140 -0
  247. nodehammer-1.2.0rc1/src/viewer/ao_denoise_pass.hpp +62 -0
  248. nodehammer-1.2.0rc1/src/viewer/ao_pass.cpp +236 -0
  249. nodehammer-1.2.0rc1/src/viewer/ao_pass.hpp +68 -0
  250. nodehammer-1.2.0rc1/src/viewer/ao_render_target.cpp +105 -0
  251. nodehammer-1.2.0rc1/src/viewer/ao_render_target.hpp +60 -0
  252. nodehammer-1.2.0rc1/src/viewer/app.cpp +3012 -0
  253. nodehammer-1.2.0rc1/src/viewer/app.hpp +189 -0
  254. nodehammer-1.2.0rc1/src/viewer/app_state.cpp +487 -0
  255. nodehammer-1.2.0rc1/src/viewer/app_state.hpp +60 -0
  256. nodehammer-1.2.0rc1/src/viewer/archive_export.cpp +236 -0
  257. nodehammer-1.2.0rc1/src/viewer/archive_export.hpp +45 -0
  258. nodehammer-1.2.0rc1/src/viewer/archive_project_fs.cpp +387 -0
  259. nodehammer-1.2.0rc1/src/viewer/archive_project_fs.hpp +127 -0
  260. nodehammer-1.2.0rc1/src/viewer/backend_caps.hpp +78 -0
  261. nodehammer-1.2.0rc1/src/viewer/bag_project_fs.cpp +221 -0
  262. nodehammer-1.2.0rc1/src/viewer/bag_project_fs.hpp +59 -0
  263. nodehammer-1.2.0rc1/src/viewer/bench_runner.cpp +359 -0
  264. nodehammer-1.2.0rc1/src/viewer/bench_runner.hpp +143 -0
  265. nodehammer-1.2.0rc1/src/viewer/blit_pass.cpp +109 -0
  266. nodehammer-1.2.0rc1/src/viewer/blit_pass.hpp +45 -0
  267. nodehammer-1.2.0rc1/src/viewer/build_controller.cpp +229 -0
  268. nodehammer-1.2.0rc1/src/viewer/build_controller.hpp +132 -0
  269. nodehammer-1.2.0rc1/src/viewer/build_session.cpp +323 -0
  270. nodehammer-1.2.0rc1/src/viewer/build_session.hpp +122 -0
  271. nodehammer-1.2.0rc1/src/viewer/byte_buffer.hpp +42 -0
  272. nodehammer-1.2.0rc1/src/viewer/camera.cpp +199 -0
  273. nodehammer-1.2.0rc1/src/viewer/camera.hpp +74 -0
  274. nodehammer-1.2.0rc1/src/viewer/composite_pass.cpp +224 -0
  275. nodehammer-1.2.0rc1/src/viewer/composite_pass.hpp +65 -0
  276. nodehammer-1.2.0rc1/src/viewer/config.hpp +55 -0
  277. nodehammer-1.2.0rc1/src/viewer/dynamic_render_scale.cpp +150 -0
  278. nodehammer-1.2.0rc1/src/viewer/dynamic_render_scale.hpp +96 -0
  279. nodehammer-1.2.0rc1/src/viewer/filesystem_project_fs.cpp +266 -0
  280. nodehammer-1.2.0rc1/src/viewer/filesystem_project_fs.hpp +79 -0
  281. nodehammer-1.2.0rc1/src/viewer/gpu_pass_timer.hpp +84 -0
  282. nodehammer-1.2.0rc1/src/viewer/gpu_pass_timer_d3d11.cpp +191 -0
  283. nodehammer-1.2.0rc1/src/viewer/gpu_pass_timer_noop.cpp +26 -0
  284. nodehammer-1.2.0rc1/src/viewer/ibl.cpp +391 -0
  285. nodehammer-1.2.0rc1/src/viewer/ibl.hpp +102 -0
  286. nodehammer-1.2.0rc1/src/viewer/ibl_baker.cpp +32 -0
  287. nodehammer-1.2.0rc1/src/viewer/ibl_baker.hpp +60 -0
  288. nodehammer-1.2.0rc1/src/viewer/imgui_backend.cpp +42 -0
  289. nodehammer-1.2.0rc1/src/viewer/imgui_backend.hpp +18 -0
  290. nodehammer-1.2.0rc1/src/viewer/log_sink.hpp +115 -0
  291. nodehammer-1.2.0rc1/src/viewer/native_bag_project_fs.cpp +281 -0
  292. nodehammer-1.2.0rc1/src/viewer/native_bag_project_fs.hpp +68 -0
  293. nodehammer-1.2.0rc1/src/viewer/platform.hpp +224 -0
  294. nodehammer-1.2.0rc1/src/viewer/platform_macos.mm +592 -0
  295. nodehammer-1.2.0rc1/src/viewer/platform_native_common.cpp +248 -0
  296. nodehammer-1.2.0rc1/src/viewer/platform_native_common.hpp +43 -0
  297. nodehammer-1.2.0rc1/src/viewer/platform_native_default.cpp +97 -0
  298. nodehammer-1.2.0rc1/src/viewer/platform_web.cpp +751 -0
  299. nodehammer-1.2.0rc1/src/viewer/png_export.cpp +65 -0
  300. nodehammer-1.2.0rc1/src/viewer/png_export.hpp +44 -0
  301. nodehammer-1.2.0rc1/src/viewer/png_export_readback.hpp +64 -0
  302. nodehammer-1.2.0rc1/src/viewer/png_export_readback_d3d11.cpp +139 -0
  303. nodehammer-1.2.0rc1/src/viewer/png_export_readback_gl.cpp +147 -0
  304. nodehammer-1.2.0rc1/src/viewer/png_export_readback_metal.mm +146 -0
  305. nodehammer-1.2.0rc1/src/viewer/png_export_readback_wgpu.cpp +252 -0
  306. nodehammer-1.2.0rc1/src/viewer/png_exporter.cpp +242 -0
  307. nodehammer-1.2.0rc1/src/viewer/png_exporter.hpp +109 -0
  308. nodehammer-1.2.0rc1/src/viewer/project_fs.hpp +243 -0
  309. nodehammer-1.2.0rc1/src/viewer/project_manifest.cpp +47 -0
  310. nodehammer-1.2.0rc1/src/viewer/project_manifest.hpp +31 -0
  311. nodehammer-1.2.0rc1/src/viewer/render_quality.hpp +219 -0
  312. nodehammer-1.2.0rc1/src/viewer/scene_build_job.hpp +92 -0
  313. nodehammer-1.2.0rc1/src/viewer/scene_build_job_common.cpp +13 -0
  314. nodehammer-1.2.0rc1/src/viewer/scene_build_job_internal.hpp +12 -0
  315. nodehammer-1.2.0rc1/src/viewer/scene_build_job_native.cpp +155 -0
  316. nodehammer-1.2.0rc1/src/viewer/scene_build_job_web.cpp +143 -0
  317. nodehammer-1.2.0rc1/src/viewer/scene_build_job_web_backend.hpp +57 -0
  318. nodehammer-1.2.0rc1/src/viewer/scene_build_job_web_worker.cpp +327 -0
  319. nodehammer-1.2.0rc1/src/viewer/scene_render_target.cpp +139 -0
  320. nodehammer-1.2.0rc1/src/viewer/scene_render_target.hpp +74 -0
  321. nodehammer-1.2.0rc1/src/viewer/scene_renderer.cpp +955 -0
  322. nodehammer-1.2.0rc1/src/viewer/scene_renderer.hpp +166 -0
  323. nodehammer-1.2.0rc1/src/viewer/shared_image.hpp +47 -0
  324. nodehammer-1.2.0rc1/src/viewer/stb_image_write_impl.cpp +8 -0
  325. nodehammer-1.2.0rc1/src/viewer/ui/debug_panel.cpp +363 -0
  326. nodehammer-1.2.0rc1/src/viewer/ui/debug_panel.hpp +9 -0
  327. nodehammer-1.2.0rc1/src/viewer/ui/icon_font.cpp +27 -0
  328. nodehammer-1.2.0rc1/src/viewer/ui/icon_font.hpp +15 -0
  329. nodehammer-1.2.0rc1/src/viewer/ui/menu_bar.cpp +101 -0
  330. nodehammer-1.2.0rc1/src/viewer/ui/menu_bar.hpp +9 -0
  331. nodehammer-1.2.0rc1/src/viewer/ui/notifications.cpp +316 -0
  332. nodehammer-1.2.0rc1/src/viewer/ui/notifications.hpp +115 -0
  333. nodehammer-1.2.0rc1/src/viewer/ui/perf_history.hpp +72 -0
  334. nodehammer-1.2.0rc1/src/viewer/ui/project_panel.cpp +215 -0
  335. nodehammer-1.2.0rc1/src/viewer/ui/project_panel.hpp +9 -0
  336. nodehammer-1.2.0rc1/src/viewer/ui/status_ui.cpp +85 -0
  337. nodehammer-1.2.0rc1/src/viewer/ui/status_ui.hpp +9 -0
  338. nodehammer-1.2.0rc1/src/viewer/ui/ui_context.hpp +169 -0
  339. nodehammer-1.2.0rc1/src/viewer/ui/view_panel.cpp +522 -0
  340. nodehammer-1.2.0rc1/src/viewer/ui/view_panel.hpp +9 -0
  341. nodehammer-1.2.0rc1/src/viewer/ui/viewer_ui.cpp +163 -0
  342. nodehammer-1.2.0rc1/src/viewer/ui/viewer_ui.hpp +9 -0
  343. nodehammer-1.2.0rc1/src/viewer/watched_filesystem_project_fs.cpp +210 -0
  344. nodehammer-1.2.0rc1/src/viewer/watched_filesystem_project_fs.hpp +77 -0
  345. nodehammer-1.2.0rc1/src/viewer/zip_working_set.cpp +289 -0
  346. nodehammer-1.2.0rc1/src/viewer/zip_working_set.hpp +99 -0
  347. nodehammer-1.2.0rc1/src/web/compute_worker.js +116 -0
  348. nodehammer-1.2.0rc1/src/web/compute_worker_main.cpp +256 -0
  349. nodehammer-1.2.0rc1/src/web/viewer_main.cpp +240 -0
  350. nodehammer-1.2.0rc1/tests/CMakeLists.txt +266 -0
  351. nodehammer-1.2.0rc1/tests/api/test_api_equivalence.cpp +311 -0
  352. nodehammer-1.2.0rc1/tests/api/test_api_surface.cpp +268 -0
  353. nodehammer-1.2.0rc1/tests/api/test_config_wrapper.cpp +220 -0
  354. nodehammer-1.2.0rc1/tests/bench_main.cpp +71 -0
  355. nodehammer-1.2.0rc1/tests/config/test_config_fixtures.cpp +99 -0
  356. nodehammer-1.2.0rc1/tests/config/test_config_loader.cpp +901 -0
  357. nodehammer-1.2.0rc1/tests/config/test_config_validator.cpp +191 -0
  358. nodehammer-1.2.0rc1/tests/config/test_config_writer.cpp +350 -0
  359. nodehammer-1.2.0rc1/tests/config/test_lua_config.cpp +454 -0
  360. nodehammer-1.2.0rc1/tests/config/test_predicate_parser.cpp +337 -0
  361. nodehammer-1.2.0rc1/tests/export/test_export_resolve.cpp +207 -0
  362. nodehammer-1.2.0rc1/tests/export/test_gltf_exporter.cpp +194 -0
  363. nodehammer-1.2.0rc1/tests/export/test_render_exporter_registry.cpp +30 -0
  364. nodehammer-1.2.0rc1/tests/export/test_semantic_exporter_registry.cpp +33 -0
  365. nodehammer-1.2.0rc1/tests/import/test_dd4hep_importer.cpp +90 -0
  366. nodehammer-1.2.0rc1/tests/import/test_synthetic_importer.cpp +138 -0
  367. nodehammer-1.2.0rc1/tests/import/test_tgeo_importer.cpp +284 -0
  368. nodehammer-1.2.0rc1/tests/ir/test_flatbuffer_roundtrip.cpp +482 -0
  369. nodehammer-1.2.0rc1/tests/ir/test_json_roundtrip.cpp +115 -0
  370. nodehammer-1.2.0rc1/tests/ir/test_render_flatbuffer_roundtrip.cpp +321 -0
  371. nodehammer-1.2.0rc1/tests/ir/test_semantic_ir.cpp +236 -0
  372. nodehammer-1.2.0rc1/tests/ir/test_shape_variant.cpp +203 -0
  373. nodehammer-1.2.0rc1/tests/public/public_fixture.hpp +110 -0
  374. nodehammer-1.2.0rc1/tests/public/test_public_build.cpp +140 -0
  375. nodehammer-1.2.0rc1/tests/public/test_public_config.cpp +184 -0
  376. nodehammer-1.2.0rc1/tests/public/test_public_dd4hep.cpp +99 -0
  377. nodehammer-1.2.0rc1/tests/public/test_public_diagnostics.cpp +186 -0
  378. nodehammer-1.2.0rc1/tests/public/test_public_render_scene.cpp +196 -0
  379. nodehammer-1.2.0rc1/tests/public/test_public_semantic_scene.cpp +197 -0
  380. nodehammer-1.2.0rc1/tests/public/test_public_tgeo.cpp +152 -0
  381. nodehammer-1.2.0rc1/tests/python/test_build.py +115 -0
  382. nodehammer-1.2.0rc1/tests/python/test_config_and_diagnostics.py +226 -0
  383. nodehammer-1.2.0rc1/tests/python/test_semantic_scene.py +128 -0
  384. nodehammer-1.2.0rc1/tests/selection/test_predicate.cpp +238 -0
  385. nodehammer-1.2.0rc1/tests/selection/test_selector.cpp +606 -0
  386. nodehammer-1.2.0rc1/tests/tessellation/test_boolean_tessellator.cpp +101 -0
  387. nodehammer-1.2.0rc1/tests/tessellation/test_build_pipeline.cpp +250 -0
  388. nodehammer-1.2.0rc1/tests/tessellation/test_obj_writer.hpp +54 -0
  389. nodehammer-1.2.0rc1/tests/tessellation/test_primitive_tessellator.cpp +185 -0
  390. nodehammer-1.2.0rc1/tests/tessellation/test_tessellation_pass.cpp +676 -0
  391. nodehammer-1.2.0rc1/tests/tessellation/test_tgeo_tessellation.cpp +368 -0
  392. nodehammer-1.2.0rc1/tests/tessellation/test_wedge_cut.cpp +474 -0
  393. nodehammer-1.2.0rc1/tests/test_compute_pipeline.cpp +99 -0
  394. nodehammer-1.2.0rc1/tests/test_main.cpp +3 -0
  395. nodehammer-1.2.0rc1/tests/test_markup.cpp +156 -0
  396. nodehammer-1.2.0rc1/tests/test_scene_build.cpp +90 -0
  397. nodehammer-1.2.0rc1/tests/test_timing.cpp +80 -0
  398. nodehammer-1.2.0rc1/tests/viewer/test_app_state.cpp +223 -0
  399. nodehammer-1.2.0rc1/tests/viewer/test_archive_export.cpp +241 -0
  400. nodehammer-1.2.0rc1/tests/viewer/test_archive_project_fs.cpp +341 -0
  401. nodehammer-1.2.0rc1/tests/viewer/test_bag_project_fs.cpp +85 -0
  402. nodehammer-1.2.0rc1/tests/viewer/test_build_session.cpp +446 -0
  403. nodehammer-1.2.0rc1/tests/viewer/test_byte_buffer.cpp +65 -0
  404. nodehammer-1.2.0rc1/tests/viewer/test_dynamic_render_scale.cpp +164 -0
  405. nodehammer-1.2.0rc1/tests/viewer/test_filesystem_project_fs.cpp +310 -0
  406. nodehammer-1.2.0rc1/tests/viewer/test_native_bag_project_fs.cpp +162 -0
  407. nodehammer-1.2.0rc1/tests/viewer/test_project_manifest.cpp +46 -0
  408. nodehammer-1.2.0rc1/tests/viewer/test_watched_filesystem_project_fs.cpp +182 -0
  409. nodehammer-1.2.0rc1/tests/viewer/test_zip_working_set.cpp +181 -0
  410. nodehammer-1.2.0rc1/tests/wasm_lua_smoke.cpp +131 -0
  411. nodehammer-1.2.0rc1/third_party/fontawesome7/IconsFontAwesome7.h +1440 -0
  412. nodehammer-1.2.0rc1/third_party/fontawesome7/README.md +98 -0
  413. nodehammer-1.2.0rc1/third_party/fontawesome7/fa-solid-900.h +13134 -0
  414. nodehammer-1.2.0rc1/third_party/stb/stb_image_write.h +1724 -0
@@ -0,0 +1,3 @@
1
+ BasedOnStyle: LLVM
2
+ IndentWidth: 4
3
+ ColumnLimit: 100
@@ -0,0 +1,29 @@
1
+ ---
2
+ Checks: >
3
+ -*,
4
+ clang-analyzer-optin.cplusplus.UninitializedObject,
5
+ cppcoreguidelines-init-variables,
6
+ cppcoreguidelines-pro-type-member-init,
7
+ google-readability-casting,
8
+ google-explicit-constructor,
9
+ modernize-concat-nested-namespaces,
10
+ modernize-use-equals-default,
11
+ modernize-use-default-member-init,
12
+ modernize-use-nullptr,
13
+ modernize-use-override,
14
+ modernize-use-using,
15
+ performance-for-range-copy,
16
+ performance-move-const-arg,
17
+ performance-unnecessary-value-param,
18
+ readability-braces-around-statements,
19
+ readability-container-size-empty,
20
+ readability-implicit-bool-cast,
21
+ readability-implicit-bool-conversion,
22
+ readability-inconsistent-declaration-parameter-name,
23
+ readability-named-parameter,
24
+ readability-operators-representation,
25
+ readability-redundant-smartptr-get
26
+ HeaderFilterRegex: '.*(?<!nlohmann\/json)\.(hpp|cpp|ipp)$'
27
+ CheckOptions:
28
+ readability-operators-representation.BinaryOperators: '&&;&=;&;|;~;!;!=;||;|=;^;^='
29
+ readability-operators-representation.OverloadedOperators: '&&;&=;&;|;~;!;!=;||;|=;^;^='
@@ -0,0 +1,13 @@
1
+ # Deterministic line endings across platforms.
2
+ #
3
+ # `text=auto` lets git detect text vs binary per file; `eol=lf` forces LF in
4
+ # the working tree on every checkout. Without this, core.autocrlf=true on
5
+ # Windows checks files out as CRLF, which makes the prek line-ending hooks
6
+ # rewrite them and report phantom "Fixing" churn on `just lint`.
7
+ * text=auto eol=lf
8
+
9
+ # Binary assets — never normalize or diff as text.
10
+ *.png binary
11
+ *.pdf binary
12
+ *.zst binary
13
+ *.afdesign binary
@@ -0,0 +1,32 @@
1
+ /.claude
2
+ /AGENTS.md
3
+ /CLAUDE.md
4
+ /build
5
+ /build-*
6
+ /compile_commands.json
7
+ /.cache
8
+
9
+ # Geometry data exports — ignore by default, allow the test fixture.
10
+ *.nhb
11
+ *.nhb.zst
12
+ !/odd.nhb.zst
13
+
14
+ # Project archives packed by the viewer / make_nhproj.py — always generated.
15
+ *.nhproj
16
+
17
+ # config-flatten output written to the repo root (generated from fixtures/).
18
+ /*_flat.toml
19
+ CMakeUserPresets.json
20
+
21
+ # Python: the venv the wheel workflow builds against, and wheel output.
22
+ /.venv/
23
+ /dist/
24
+ *.egg-info/
25
+ .idea
26
+
27
+ # Local perf/geometry analysis artifacts (screenshots, dumps)
28
+ /analysis/
29
+
30
+ # Python bytecode (ci/*.py imported by tooling)
31
+ __pycache__/
32
+ *.pyc
@@ -0,0 +1,39 @@
1
+ # https://pre-commit.com/ — compatible with prek (https://github.com/j178/prek)
2
+ # Install: brew install prek (or see prek README)
3
+ # Enable: prek install
4
+ # Run: prek run --all-files
5
+
6
+ repos:
7
+ - repo: https://github.com/pre-commit/mirrors-clang-format
8
+ rev: v22.1.2
9
+ hooks:
10
+ - id: clang-format
11
+ types_or: [c++, c, cuda]
12
+ # Vendored third-party headers are kept verbatim (upstream formatting).
13
+ exclude: '^third_party/'
14
+
15
+ - repo: https://github.com/pre-commit/pre-commit-hooks
16
+ rev: v6.0.0
17
+ hooks:
18
+ - id: trailing-whitespace
19
+ - id: end-of-file-fixer
20
+ - id: mixed-line-ending
21
+ args: [--fix=lf]
22
+
23
+ - repo: https://github.com/fsfe/reuse-tool
24
+ rev: v6.2.0
25
+ hooks:
26
+ - id: reuse
27
+
28
+ - repo: local
29
+ hooks:
30
+ # Closure (Release wasm only) renames unquoted properties, so a plain
31
+ # `Module.HEAPU8` in an EM_JS body silently becomes a dangling `h.$c`.
32
+ # Nothing else in the build sees this: RelWithDebInfo skips Closure and
33
+ # the failure surfaces only when that handler runs in a browser.
34
+ - id: em-js-closure
35
+ name: quoted Module[...] access in EM_JS
36
+ entry: scripts/check_em_js_closure.py
37
+ language: python
38
+ types_or: [c++, c]
39
+ exclude: '^third_party/'
@@ -0,0 +1,187 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "inputs": [
4
+ {
5
+ "id": "benchScale",
6
+ "type": "promptString",
7
+ "description": "Bench render_scale (SSAA on scene/AO). >1 pushes the GPU past the refresh so total/composite timings aren't present-paced.",
8
+ "default": "2"
9
+ }
10
+ ],
11
+ "configurations": [
12
+ {
13
+ "name": "viewer-bench (odd) [Windows]",
14
+ "type": "cppvsdbg",
15
+ "request": "launch",
16
+ // Built from the Conan-generated CMake preset after running
17
+ // `nodehammer: conan install` or `just deps`.
18
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer.exe",
19
+ "preLaunchTask": "nodehammer: build viewer executable",
20
+ "args": [
21
+ "viewer",
22
+ "--input", "odd.nhb.zst",
23
+ "--config", "fixtures/configs/odd.toml",
24
+ "--bench", "${workspaceFolder}/build/bench.json",
25
+ "--bench-scale", "${input:benchScale}",
26
+ "--width", "1600",
27
+ "--height", "900"
28
+ ],
29
+ // Relative --input / --config resolve against the launch cwd, and the
30
+ // build session stays Idle without a config, so keep this at the repo
31
+ // root where odd.nhb.zst + fixtures/ live.
32
+ "cwd": "${workspaceFolder}",
33
+ // integratedTerminal so the results JSON printed to stdout is visible.
34
+ "console": "integratedTerminal",
35
+ "stopAtEntry": false
36
+ },
37
+ {
38
+ "name": "viewer-bench (odd) [macOS/Linux]",
39
+ "type": "cppdbg",
40
+ "request": "launch",
41
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer",
42
+ "MIMode": "lldb",
43
+ "osx": {
44
+ "MIMode": "lldb"
45
+ },
46
+ "linux": {
47
+ "MIMode": "gdb"
48
+ },
49
+ "preLaunchTask": "nodehammer: build viewer executable",
50
+ "args": [
51
+ "viewer",
52
+ "--input", "odd.nhb.zst",
53
+ "--config", "fixtures/configs/odd.toml",
54
+ "--bench", "${workspaceFolder}/build/bench.json",
55
+ "--bench-scale", "${input:benchScale}",
56
+ "--width", "1600",
57
+ "--height", "900"
58
+ ],
59
+ "cwd": "${workspaceFolder}",
60
+ "console": "integratedTerminal",
61
+ "stopAtEntry": false
62
+ },
63
+ {
64
+ "name": "viewer (odd) [Windows]",
65
+ "type": "cppvsdbg",
66
+ "request": "launch",
67
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer.exe",
68
+ "preLaunchTask": "nodehammer: build viewer executable",
69
+ "args": [
70
+ "viewer",
71
+ "--input", "odd.nhb.zst",
72
+ "--config", "fixtures/configs/odd.toml",
73
+ "--width", "2560",
74
+ "--height", "1440"
75
+ ],
76
+ "cwd": "${workspaceFolder}",
77
+ "console": "integratedTerminal",
78
+ "stopAtEntry": false
79
+ },
80
+ {
81
+ "name": "viewer (odd) [macOS/Linux]",
82
+ "type": "cppdbg",
83
+ "request": "launch",
84
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer",
85
+ "MIMode": "lldb",
86
+ "osx": {
87
+ "MIMode": "lldb"
88
+ },
89
+ "linux": {
90
+ "MIMode": "gdb"
91
+ },
92
+ "preLaunchTask": "nodehammer: build viewer executable",
93
+ "args": [
94
+ "viewer",
95
+ "--input", "odd.nhb.zst",
96
+ "--config", "fixtures/configs/odd.toml",
97
+ "--width", "2560",
98
+ "--height", "1440"
99
+ ],
100
+ "cwd": "${workspaceFolder}",
101
+ "console": "integratedTerminal",
102
+ "stopAtEntry": false
103
+ },
104
+ {
105
+ "name": "viewer (odd, dropped internal faces) [Windows]",
106
+ "type": "cppvsdbg",
107
+ "request": "launch",
108
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer.exe",
109
+ "preLaunchTask": "nodehammer: build viewer executable",
110
+ "args": [
111
+ "viewer",
112
+ "--input", "odd.nhb.zst",
113
+ "--config", "fixtures/configs/odd_drop_coincident_faces.toml",
114
+ "--width", "2561",
115
+ "--height", "1440"
116
+ ],
117
+ "cwd": "${workspaceFolder}",
118
+ "console": "integratedTerminal",
119
+ "stopAtEntry": false
120
+ },
121
+ {
122
+ "name": "viewer (odd, dropped internal faces) [macOS/Linux]",
123
+ "type": "cppdbg",
124
+ "request": "launch",
125
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer",
126
+ "MIMode": "lldb",
127
+ "osx": {
128
+ "MIMode": "lldb"
129
+ },
130
+ "linux": {
131
+ "MIMode": "gdb"
132
+ },
133
+ "preLaunchTask": "nodehammer: build viewer executable",
134
+ "args": [
135
+ "viewer",
136
+ "--input", "odd.nhb.zst",
137
+ "--config", "fixtures/configs/odd_drop_coincident_faces.toml",
138
+ "--width", "2561",
139
+ "--height", "1440"
140
+ ],
141
+ "cwd": "${workspaceFolder}",
142
+ "console": "integratedTerminal",
143
+ "stopAtEntry": false
144
+ },
145
+ {
146
+ "name": "viewer (odd simple) [Windows]",
147
+ "type": "cppvsdbg",
148
+ "request": "launch",
149
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer.exe",
150
+ "preLaunchTask": "nodehammer: build viewer executable",
151
+ "args": [
152
+ "viewer",
153
+ "--input", "odd.nhb.zst",
154
+ "--config", "fixtures/configs/odd_simple.toml",
155
+ "--width", "2561",
156
+ "--height", "1440"
157
+ ],
158
+ "cwd": "${workspaceFolder}",
159
+ "console": "integratedTerminal",
160
+ "stopAtEntry": false
161
+ },
162
+ {
163
+ "name": "viewer (odd simple) [macOS/Linux]",
164
+ "type": "cppdbg",
165
+ "request": "launch",
166
+ "program": "${workspaceFolder}/build/RelWithDebInfo/nodehammer",
167
+ "MIMode": "lldb",
168
+ "osx": {
169
+ "MIMode": "lldb"
170
+ },
171
+ "linux": {
172
+ "MIMode": "gdb"
173
+ },
174
+ "preLaunchTask": "nodehammer: build viewer executable",
175
+ "args": [
176
+ "viewer",
177
+ "--input", "odd.nhb.zst",
178
+ "--config", "fixtures/configs/odd_simple.toml",
179
+ "--width", "2561",
180
+ "--height", "1440"
181
+ ],
182
+ "cwd": "${workspaceFolder}",
183
+ "console": "integratedTerminal",
184
+ "stopAtEntry": false
185
+ }
186
+ ]
187
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "cmake.configurePreset": "conan-relwithdebinfo",
3
+ "cmake.buildPreset": "conan-relwithdebinfo",
4
+ "cmake.configureArgs": [
5
+ "-DNODEHAMMER_WITH_VIEWER=ON"
6
+ ],
7
+ "cmake.buildBeforeRun": true,
8
+ "git.detectWorktrees": true
9
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "label": "nodehammer: conan install",
6
+ "type": "process",
7
+ "command": "just",
8
+ "args": [
9
+ "deps"
10
+ ],
11
+ "options": {
12
+ "cwd": "${workspaceFolder}"
13
+ },
14
+ "problemMatcher": []
15
+ },
16
+ {
17
+ "label": "nodehammer: configure",
18
+ "type": "process",
19
+ "command": "just",
20
+ "args": [
21
+ "configure"
22
+ ],
23
+ "options": {
24
+ "cwd": "${workspaceFolder}"
25
+ },
26
+ "problemMatcher": []
27
+ },
28
+ {
29
+ "label": "nodehammer: build viewer executable",
30
+ "type": "process",
31
+ "command": "cmake",
32
+ "args": [
33
+ "--build",
34
+ "build/RelWithDebInfo",
35
+ "--target",
36
+ "nodehammer"
37
+ ],
38
+ "windows": {
39
+ "command": "powershell",
40
+ "args": [
41
+ "-NoProfile",
42
+ "-ExecutionPolicy",
43
+ "Bypass",
44
+ "-File",
45
+ "scripts/windows-msvc-cmake.ps1",
46
+ "build-nodehammer"
47
+ ]
48
+ },
49
+ "options": {
50
+ "cwd": "${workspaceFolder}"
51
+ },
52
+ "group": {
53
+ "kind": "build",
54
+ "isDefault": true
55
+ },
56
+ "problemMatcher": []
57
+ }
58
+ ]
59
+ }