trenchfoot 0.4.0__tar.gz → 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/CHANGELOG.md +36 -0
  2. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/PKG-INFO +1 -1
  3. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/sdf_metadata.json +23 -4
  4. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S02_straight_slope_pipe/sdf_metadata.json +60 -0
  5. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/sdf_metadata.json +84 -0
  6. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/sdf_metadata.json +104 -0
  7. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S05_wide_slope_pair/sdf_metadata.json +84 -0
  8. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/sdf_metadata.json +88 -0
  9. trenchfoot-0.4.2/packages/trenchfoot/scenarios/S07_circular_well/sdf_metadata.json +212 -0
  10. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/trench_scene_generator_v3.py +755 -51
  11. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/pyproject.toml +1 -1
  12. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/tests/test_sdf_readiness.py +66 -1
  13. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/tests/test_trenchfoot_generation.py +387 -0
  14. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/uv.lock +1 -1
  15. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S02_straight_slope_pipe/sdf_metadata.json +0 -29
  16. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/sdf_metadata.json +0 -37
  17. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/sdf_metadata.json +0 -45
  18. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S05_wide_slope_pair/sdf_metadata.json +0 -37
  19. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/sdf_metadata.json +0 -61
  20. trenchfoot-0.4.0/packages/trenchfoot/scenarios/S07_circular_well/sdf_metadata.json +0 -277
  21. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/.github/workflows/ci.yml +0 -0
  22. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/.gitignore +0 -0
  23. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/CLAUDE.md +0 -0
  24. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/LICENSE +0 -0
  25. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/Makefile +0 -0
  26. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/README.md +0 -0
  27. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/STATUS.md +0 -0
  28. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/docs/scenario_gallery.md +0 -0
  29. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/__init__.py +0 -0
  30. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/Dockerfile +0 -0
  31. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/README.md +0 -0
  32. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/__init__.py +0 -0
  33. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/generate_scenarios.py +0 -0
  34. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/gmsh_sloped_trench_mesher.py +0 -0
  35. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/plot_mesh.py +0 -0
  36. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/render_colors.py +0 -0
  37. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/ground_truth_isosurface.html +0 -0
  38. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/meshes/trench_scene_culled.obj +0 -0
  39. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/metrics.json +0 -0
  40. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/culled/resolution0p050.pth +0 -0
  41. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/full/resolution0p050.pth +0 -0
  42. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview.png +0 -0
  43. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png +0 -0
  44. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_side.png +0 -0
  45. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_top.png +0 -0
  46. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/scene.json +0 -0
  47. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj +0 -0
  48. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/volumetric/trench_volume.msh +0 -0
  49. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/ground_truth_isosurface.html +0 -0
  50. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/meshes/trench_scene_culled.obj +0 -0
  51. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json +0 -0
  52. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/culled/resolution0p050.pth +0 -0
  53. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/full/resolution0p050.pth +0 -0
  54. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview.png +0 -0
  55. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png +0 -0
  56. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png +0 -0
  57. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png +0 -0
  58. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/scene.json +0 -0
  59. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj +0 -0
  60. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/volumetric/trench_volume.msh +0 -0
  61. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/ground_truth_isosurface.html +0 -0
  62. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/meshes/trench_scene_culled.obj +0 -0
  63. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json +0 -0
  64. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/culled/resolution0p050.pth +0 -0
  65. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/full/resolution0p050.pth +0 -0
  66. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview.png +0 -0
  67. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png +0 -0
  68. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png +0 -0
  69. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png +0 -0
  70. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/scene.json +0 -0
  71. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj +0 -0
  72. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/volumetric/trench_volume.msh +0 -0
  73. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/ground_truth_isosurface.html +0 -0
  74. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/meshes/trench_scene_culled.obj +0 -0
  75. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json +0 -0
  76. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview.png +0 -0
  77. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png +0 -0
  78. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png +0 -0
  79. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png +0 -0
  80. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/scene.json +0 -0
  81. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj +0 -0
  82. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/volumetric/trench_volume.msh +0 -0
  83. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/ground_truth_isosurface.html +0 -0
  84. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/metrics.json +0 -0
  85. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png +0 -0
  86. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png +0 -0
  87. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png +0 -0
  88. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/scene.json +0 -0
  89. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj +0 -0
  90. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/volumetric/trench_volume.msh +0 -0
  91. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/ground_truth_isosurface.html +0 -0
  92. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json +0 -0
  93. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png +0 -0
  94. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png +0 -0
  95. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png +0 -0
  96. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/scene.json +0 -0
  97. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj +0 -0
  98. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/volumetric/trench_volume.msh +0 -0
  99. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/ground_truth_isosurface.html +0 -0
  100. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/metrics.json +0 -0
  101. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_oblique.png +0 -0
  102. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_side.png +0 -0
  103. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_top.png +0 -0
  104. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/scene.json +0 -0
  105. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/trench_scene.obj +0 -0
  106. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/volumetric/trench_volume.msh +0 -0
  107. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/SUMMARY.json +0 -0
  108. {trenchfoot-0.4.0 → trenchfoot-0.4.2}/packages/trenchfoot/scene_spec_example.json +0 -0
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.2] - 2026-01-29
4
+
5
+ ### Added
6
+ - **Embedded object truncation**: Pipes, boxes, and spheres that extend beyond trench boundaries are now automatically truncated or shrunk to fit within the trench void:
7
+ - **Pipes**: Truncated at walls/floor with angled elliptical caps matching the intersection plane
8
+ - **Boxes**: Dimensions shrunk to fit within available space
9
+ - **Spheres**: Radius reduced to fit within available space
10
+ - **New helper functions** for trench boundary computation:
11
+ - `_find_trench_frame_at_xy()`: Find local trench coordinate frame at any XY position
12
+ - `_compute_pipe_truncation()`: Binary search for where pipe exits trench
13
+ - `_compute_cap_plane_at_truncation()`: Determine wall/floor plane at intersection
14
+ - `_compute_box_fit()`: Calculate shrunk box dimensions
15
+ - `_compute_sphere_fit()`: Calculate shrunk sphere radius
16
+ - **Extended `make_cylinder()`**: Now supports asymmetric extents (`neg_extent`, `pos_extent`) and angled cap planes (`cap_plane_neg`, `cap_plane_pos`)
17
+ - **New tests** for truncation functionality:
18
+ - `test_pipe_truncation_at_wall`
19
+ - `test_pipe_truncation_at_floor`
20
+ - `test_pipe_angled_cap_geometry`
21
+ - `test_box_shrink_to_fit`
22
+ - `test_sphere_shrink_to_fit`
23
+ - `test_no_vertices_outside_trench`
24
+
25
+ ### Fixed
26
+ - Long pipes in S07 circular well no longer protrude through trench walls
27
+ - Oversized embedded objects no longer extend outside trench geometry
28
+
29
+ ## [0.4.1] - 2026-01-28
30
+
31
+ ### Fixed
32
+ - **Non-convex polygon extraction**: `_build_sdf_metadata()` now correctly extracts boundary polygons for non-convex shapes (L-shaped, U-shaped trenches) using boundary edge chaining instead of ConvexHull. ConvexHull was incorrectly filling in concave regions, causing sign computation errors at trench edges.
33
+ - **sdf_metadata version bumped to 2.0**: Updated version to reflect the corrected polygon format.
34
+
35
+ ### Added
36
+ - **`_extract_boundary_polygon()` helper**: New geometry helper that extracts ordered boundary vertices from triangulated meshes by finding boundary edges (edges appearing in only one face) and chaining them together.
37
+ - **L-shaped polygon test**: Added `test_metadata_l_shaped_polygon_is_non_convex` to verify correct handling of non-convex trench shapes.
38
+
3
39
  ## [0.4.0] - 2026-01-26
4
40
 
5
41
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trenchfoot
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Synthetic trench scenario generator bundle (surfaces + volumetrics).
5
5
  Author: Liam Moore
6
6
  License-File: LICENSE
@@ -8,22 +8,41 @@
8
8
  "vertices_xy": [
9
9
  [
10
10
  0.0,
11
- 0.5
11
+ -0.5
12
12
  ],
13
13
  [
14
- 5.0,
14
+ 0.0,
15
15
  0.5
16
16
  ],
17
17
  [
18
18
  5.0,
19
- -0.5
19
+ 0.5
20
20
  ],
21
21
  [
22
- 0.0,
22
+ 5.0,
23
23
  -0.5
24
24
  ]
25
25
  ],
26
26
  "z_level": 0.0
27
+ },
28
+ "surface_groups": {
29
+ "trench_bottom": {
30
+ "normal_direction": "up",
31
+ "surface_type": "floor"
32
+ },
33
+ "trench_walls": {
34
+ "normal_direction": "inward",
35
+ "surface_type": "wall"
36
+ },
37
+ "ground_surface": {
38
+ "normal_direction": "up",
39
+ "surface_type": "ground"
40
+ }
41
+ },
42
+ "embedded_objects": {
43
+ "pipes": 0,
44
+ "boxes": 0,
45
+ "spheres": 0
27
46
  }
28
47
  }
29
48
  }
@@ -0,0 +1,60 @@
1
+ {
2
+ "sdf_metadata": {
3
+ "version": "2.0",
4
+ "normal_convention": "into_void",
5
+ "geometry_type": "open_trench",
6
+ "trench_opening": {
7
+ "type": "polygon",
8
+ "vertices_xy": [
9
+ [
10
+ 0.0,
11
+ -0.6
12
+ ],
13
+ [
14
+ 0.0,
15
+ 0.6
16
+ ],
17
+ [
18
+ 6.0,
19
+ 0.6
20
+ ],
21
+ [
22
+ 6.0,
23
+ -0.6
24
+ ]
25
+ ],
26
+ "z_level": 0.0
27
+ },
28
+ "surface_groups": {
29
+ "trench_bottom": {
30
+ "normal_direction": "up",
31
+ "surface_type": "floor"
32
+ },
33
+ "trench_walls": {
34
+ "normal_direction": "inward",
35
+ "surface_type": "wall"
36
+ },
37
+ "ground_surface": {
38
+ "normal_direction": "up",
39
+ "surface_type": "ground"
40
+ },
41
+ "pipe0_pipe_side": {
42
+ "normal_direction": "outward",
43
+ "surface_type": "embedded_object"
44
+ },
45
+ "pipe0_pipe_cap_neg": {
46
+ "normal_direction": "outward",
47
+ "surface_type": "embedded_object"
48
+ },
49
+ "pipe0_pipe_cap_pos": {
50
+ "normal_direction": "outward",
51
+ "surface_type": "embedded_object"
52
+ }
53
+ },
54
+ "embedded_objects": {
55
+ "pipes": 1,
56
+ "boxes": 0,
57
+ "spheres": 0
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "sdf_metadata": {
3
+ "version": "2.0",
4
+ "normal_convention": "into_void",
5
+ "geometry_type": "open_trench",
6
+ "trench_opening": {
7
+ "type": "polygon",
8
+ "vertices_xy": [
9
+ [
10
+ 0.0,
11
+ -0.6
12
+ ],
13
+ [
14
+ 0.0,
15
+ 0.6
16
+ ],
17
+ [
18
+ 5.4,
19
+ 0.6
20
+ ],
21
+ [
22
+ 5.4,
23
+ 4.0
24
+ ],
25
+ [
26
+ 6.6,
27
+ 4.0
28
+ ],
29
+ [
30
+ 6.6,
31
+ -0.6
32
+ ]
33
+ ],
34
+ "z_level": 0.0
35
+ },
36
+ "surface_groups": {
37
+ "trench_bottom": {
38
+ "normal_direction": "up",
39
+ "surface_type": "floor"
40
+ },
41
+ "trench_walls": {
42
+ "normal_direction": "inward",
43
+ "surface_type": "wall"
44
+ },
45
+ "ground_surface": {
46
+ "normal_direction": "up",
47
+ "surface_type": "ground"
48
+ },
49
+ "pipe0_pipe_side": {
50
+ "normal_direction": "outward",
51
+ "surface_type": "embedded_object"
52
+ },
53
+ "pipe0_pipe_cap_neg": {
54
+ "normal_direction": "outward",
55
+ "surface_type": "embedded_object"
56
+ },
57
+ "pipe0_pipe_cap_pos": {
58
+ "normal_direction": "outward",
59
+ "surface_type": "embedded_object"
60
+ },
61
+ "pipe1_pipe_side": {
62
+ "normal_direction": "outward",
63
+ "surface_type": "embedded_object"
64
+ },
65
+ "pipe1_pipe_cap_neg": {
66
+ "normal_direction": "outward",
67
+ "surface_type": "embedded_object"
68
+ },
69
+ "pipe1_pipe_cap_pos": {
70
+ "normal_direction": "outward",
71
+ "surface_type": "embedded_object"
72
+ },
73
+ "box0": {
74
+ "normal_direction": "outward",
75
+ "surface_type": "embedded_object"
76
+ }
77
+ },
78
+ "embedded_objects": {
79
+ "pipes": 2,
80
+ "boxes": 1,
81
+ "spheres": 0
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "sdf_metadata": {
3
+ "version": "2.0",
4
+ "normal_convention": "into_void",
5
+ "geometry_type": "open_trench",
6
+ "trench_opening": {
7
+ "type": "polygon",
8
+ "vertices_xy": [
9
+ [
10
+ 0.0,
11
+ -0.7
12
+ ],
13
+ [
14
+ 0.0,
15
+ 0.7
16
+ ],
17
+ [
18
+ 5.3,
19
+ 0.7
20
+ ],
21
+ [
22
+ 5.3,
23
+ 3.3
24
+ ],
25
+ [
26
+ 0.0,
27
+ 3.3
28
+ ],
29
+ [
30
+ 0.0,
31
+ 4.7
32
+ ],
33
+ [
34
+ 6.7,
35
+ 4.7
36
+ ],
37
+ [
38
+ 6.7,
39
+ -0.7
40
+ ]
41
+ ],
42
+ "z_level": 0.0
43
+ },
44
+ "surface_groups": {
45
+ "trench_bottom": {
46
+ "normal_direction": "up",
47
+ "surface_type": "floor"
48
+ },
49
+ "trench_walls": {
50
+ "normal_direction": "inward",
51
+ "surface_type": "wall"
52
+ },
53
+ "ground_surface": {
54
+ "normal_direction": "up",
55
+ "surface_type": "ground"
56
+ },
57
+ "pipe0_pipe_side": {
58
+ "normal_direction": "outward",
59
+ "surface_type": "embedded_object"
60
+ },
61
+ "pipe0_pipe_cap_neg": {
62
+ "normal_direction": "outward",
63
+ "surface_type": "embedded_object"
64
+ },
65
+ "pipe0_pipe_cap_pos": {
66
+ "normal_direction": "outward",
67
+ "surface_type": "embedded_object"
68
+ },
69
+ "pipe1_pipe_side": {
70
+ "normal_direction": "outward",
71
+ "surface_type": "embedded_object"
72
+ },
73
+ "pipe1_pipe_cap_neg": {
74
+ "normal_direction": "outward",
75
+ "surface_type": "embedded_object"
76
+ },
77
+ "pipe1_pipe_cap_pos": {
78
+ "normal_direction": "outward",
79
+ "surface_type": "embedded_object"
80
+ },
81
+ "pipe2_pipe_side": {
82
+ "normal_direction": "outward",
83
+ "surface_type": "embedded_object"
84
+ },
85
+ "pipe2_pipe_cap_neg": {
86
+ "normal_direction": "outward",
87
+ "surface_type": "embedded_object"
88
+ },
89
+ "pipe2_pipe_cap_pos": {
90
+ "normal_direction": "outward",
91
+ "surface_type": "embedded_object"
92
+ },
93
+ "sphere0": {
94
+ "normal_direction": "outward",
95
+ "surface_type": "embedded_object"
96
+ }
97
+ },
98
+ "embedded_objects": {
99
+ "pipes": 3,
100
+ "boxes": 0,
101
+ "spheres": 1
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "sdf_metadata": {
3
+ "version": "2.0",
4
+ "normal_convention": "into_void",
5
+ "geometry_type": "open_trench",
6
+ "trench_opening": {
7
+ "type": "polygon",
8
+ "vertices_xy": [
9
+ [
10
+ 0.0,
11
+ -1.2
12
+ ],
13
+ [
14
+ 0.0,
15
+ 1.2
16
+ ],
17
+ [
18
+ 7.8,
19
+ 1.2
20
+ ],
21
+ [
22
+ 7.8,
23
+ 3.0
24
+ ],
25
+ [
26
+ 10.2,
27
+ 3.0
28
+ ],
29
+ [
30
+ 10.2,
31
+ -1.2
32
+ ]
33
+ ],
34
+ "z_level": 0.0
35
+ },
36
+ "surface_groups": {
37
+ "trench_bottom": {
38
+ "normal_direction": "up",
39
+ "surface_type": "floor"
40
+ },
41
+ "trench_walls": {
42
+ "normal_direction": "inward",
43
+ "surface_type": "wall"
44
+ },
45
+ "ground_surface": {
46
+ "normal_direction": "up",
47
+ "surface_type": "ground"
48
+ },
49
+ "pipe0_pipe_side": {
50
+ "normal_direction": "outward",
51
+ "surface_type": "embedded_object"
52
+ },
53
+ "pipe0_pipe_cap_neg": {
54
+ "normal_direction": "outward",
55
+ "surface_type": "embedded_object"
56
+ },
57
+ "pipe0_pipe_cap_pos": {
58
+ "normal_direction": "outward",
59
+ "surface_type": "embedded_object"
60
+ },
61
+ "pipe1_pipe_side": {
62
+ "normal_direction": "outward",
63
+ "surface_type": "embedded_object"
64
+ },
65
+ "pipe1_pipe_cap_neg": {
66
+ "normal_direction": "outward",
67
+ "surface_type": "embedded_object"
68
+ },
69
+ "pipe1_pipe_cap_pos": {
70
+ "normal_direction": "outward",
71
+ "surface_type": "embedded_object"
72
+ },
73
+ "box0": {
74
+ "normal_direction": "outward",
75
+ "surface_type": "embedded_object"
76
+ }
77
+ },
78
+ "embedded_objects": {
79
+ "pipes": 2,
80
+ "boxes": 1,
81
+ "spheres": 0
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "sdf_metadata": {
3
+ "version": "2.0",
4
+ "normal_convention": "into_void",
5
+ "geometry_type": "closed_well",
6
+ "trench_opening": {
7
+ "type": "polygon",
8
+ "vertices_xy": [
9
+ [
10
+ -0.8953594528137068,
11
+ -1.116169465122313
12
+ ],
13
+ [
14
+ 4.0,
15
+ -2.3400093283257397
16
+ ],
17
+ [
18
+ 9.3,
19
+ -1.0150093283257395
20
+ ],
21
+ [
22
+ 9.3,
23
+ 6.3
24
+ ],
25
+ [
26
+ 1.4615223689149763,
27
+ 6.3
28
+ ],
29
+ [
30
+ -2.58178866727825,
31
+ 2.2566889638067735
32
+ ]
33
+ ],
34
+ "z_level": 0.2
35
+ },
36
+ "surface_groups": {
37
+ "trench_bottom": {
38
+ "normal_direction": "up",
39
+ "surface_type": "floor"
40
+ },
41
+ "trench_walls": {
42
+ "normal_direction": "inward",
43
+ "surface_type": "wall"
44
+ },
45
+ "ground_surface": {
46
+ "normal_direction": "up",
47
+ "surface_type": "ground"
48
+ },
49
+ "ground_island": {
50
+ "normal_direction": "up",
51
+ "surface_type": "ground"
52
+ },
53
+ "pipe0_pipe_side": {
54
+ "normal_direction": "outward",
55
+ "surface_type": "embedded_object"
56
+ },
57
+ "pipe0_pipe_cap_neg": {
58
+ "normal_direction": "outward",
59
+ "surface_type": "embedded_object"
60
+ },
61
+ "pipe0_pipe_cap_pos": {
62
+ "normal_direction": "outward",
63
+ "surface_type": "embedded_object"
64
+ },
65
+ "pipe1_pipe_side": {
66
+ "normal_direction": "outward",
67
+ "surface_type": "embedded_object"
68
+ },
69
+ "pipe1_pipe_cap_neg": {
70
+ "normal_direction": "outward",
71
+ "surface_type": "embedded_object"
72
+ },
73
+ "pipe1_pipe_cap_pos": {
74
+ "normal_direction": "outward",
75
+ "surface_type": "embedded_object"
76
+ },
77
+ "sphere0": {
78
+ "normal_direction": "outward",
79
+ "surface_type": "embedded_object"
80
+ }
81
+ },
82
+ "embedded_objects": {
83
+ "pipes": 2,
84
+ "boxes": 0,
85
+ "spheres": 1
86
+ }
87
+ }
88
+ }