trenchfoot 0.2.6__py3-none-any.whl → 0.3.0__py3-none-any.whl
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.
Potentially problematic release.
This version of trenchfoot might be problematic. Click here for more details.
- trenchfoot/scenarios/S01_straight_vwalls/metrics.json +1 -1
- trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png +0 -0
- trenchfoot/scenarios/S01_straight_vwalls/preview_side.png +0 -0
- trenchfoot/scenarios/S01_straight_vwalls/preview_top.png +0 -0
- trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj +11 -19
- trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json +1 -1
- trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png +0 -0
- trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png +0 -0
- trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png +0 -0
- trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj +305 -313
- trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json +1 -1
- trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png +0 -0
- trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png +0 -0
- trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png +0 -0
- trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj +611 -619
- trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json +1 -1
- trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png +0 -0
- trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png +0 -0
- trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png +0 -0
- trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj +970 -978
- trenchfoot/scenarios/S05_wide_slope_pair/metrics.json +1 -1
- trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png +0 -0
- trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png +0 -0
- trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png +0 -0
- trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj +611 -619
- trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json +1 -1
- trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png +0 -0
- trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png +0 -0
- trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png +0 -0
- trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj +682 -690
- trenchfoot/trench_scene_generator_v3.py +133 -12
- {trenchfoot-0.2.6.dist-info → trenchfoot-0.3.0.dist-info}/METADATA +1 -1
- {trenchfoot-0.2.6.dist-info → trenchfoot-0.3.0.dist-info}/RECORD +36 -36
- {trenchfoot-0.2.6.dist-info → trenchfoot-0.3.0.dist-info}/WHEEL +0 -0
- {trenchfoot-0.2.6.dist-info → trenchfoot-0.3.0.dist-info}/entry_points.txt +0 -0
- {trenchfoot-0.2.6.dist-info → trenchfoot-0.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -425,6 +425,7 @@ class SurfaceMeshFiles:
|
|
|
425
425
|
obj_path: Path
|
|
426
426
|
metrics_path: Path
|
|
427
427
|
preview_paths: Tuple[Path, ...]
|
|
428
|
+
sdf_metadata_path: Optional[Path] = None
|
|
428
429
|
|
|
429
430
|
|
|
430
431
|
@dataclass
|
|
@@ -435,7 +436,73 @@ class SurfaceMeshResult:
|
|
|
435
436
|
metrics: Dict[str, Any]
|
|
436
437
|
previews: Dict[str, bytes]
|
|
437
438
|
|
|
438
|
-
def
|
|
439
|
+
def _build_sdf_metadata(self) -> Dict[str, Any]:
|
|
440
|
+
"""Build SDF metadata for downstream consumers.
|
|
441
|
+
|
|
442
|
+
This metadata enables generic mesh-to-SDF pipelines to correctly
|
|
443
|
+
interpret the mesh geometry without trenchfoot-specific heuristics.
|
|
444
|
+
"""
|
|
445
|
+
# Extract trench opening polygon from the trench cap geometry
|
|
446
|
+
trench_opening_vertices = None
|
|
447
|
+
if "trench_cap_for_volume" in self.groups:
|
|
448
|
+
V_cap, F_cap = self.groups["trench_cap_for_volume"]
|
|
449
|
+
if V_cap.size > 0:
|
|
450
|
+
# Get unique vertices at z ≈ ground level (the top cap boundary)
|
|
451
|
+
# These form the trench opening polygon
|
|
452
|
+
z_level = float(np.median(V_cap[:, 2]))
|
|
453
|
+
xy_coords = V_cap[:, :2]
|
|
454
|
+
# Use convex hull to get ordered boundary vertices
|
|
455
|
+
try:
|
|
456
|
+
from scipy.spatial import ConvexHull
|
|
457
|
+
hull = ConvexHull(xy_coords)
|
|
458
|
+
boundary_indices = hull.vertices
|
|
459
|
+
trench_opening_vertices = xy_coords[boundary_indices].tolist()
|
|
460
|
+
except ImportError:
|
|
461
|
+
# Fallback: just use unique xy coords (unordered)
|
|
462
|
+
trench_opening_vertices = xy_coords.tolist()
|
|
463
|
+
|
|
464
|
+
# Determine geometry type
|
|
465
|
+
is_closed = _is_path_closed(self.spec.path_xy)
|
|
466
|
+
geometry_type = "closed_well" if is_closed else "open_trench"
|
|
467
|
+
|
|
468
|
+
# Build surface group info
|
|
469
|
+
surface_groups = {}
|
|
470
|
+
for name in self.groups:
|
|
471
|
+
if name in _INTERNAL_GROUPS:
|
|
472
|
+
continue
|
|
473
|
+
if "bottom" in name:
|
|
474
|
+
surface_groups[name] = {"normal_direction": "up", "surface_type": "floor"}
|
|
475
|
+
elif "wall" in name:
|
|
476
|
+
surface_groups[name] = {"normal_direction": "inward", "surface_type": "wall"}
|
|
477
|
+
elif "ground" in name:
|
|
478
|
+
surface_groups[name] = {"normal_direction": "up", "surface_type": "ground"}
|
|
479
|
+
elif "pipe" in name:
|
|
480
|
+
surface_groups[name] = {"normal_direction": "outward", "surface_type": "embedded_object"}
|
|
481
|
+
elif "box" in name or "sphere" in name:
|
|
482
|
+
surface_groups[name] = {"normal_direction": "outward", "surface_type": "embedded_object"}
|
|
483
|
+
else:
|
|
484
|
+
surface_groups[name] = {"normal_direction": "unknown", "surface_type": "other"}
|
|
485
|
+
|
|
486
|
+
return {
|
|
487
|
+
"sdf_metadata": {
|
|
488
|
+
"version": "1.0",
|
|
489
|
+
"normal_convention": "into_void",
|
|
490
|
+
"geometry_type": geometry_type,
|
|
491
|
+
"trench_opening": {
|
|
492
|
+
"type": "polygon",
|
|
493
|
+
"vertices_xy": trench_opening_vertices,
|
|
494
|
+
"z_level": self.spec.ground.z0 if self.spec.ground else 0.0,
|
|
495
|
+
},
|
|
496
|
+
"surface_groups": surface_groups,
|
|
497
|
+
"embedded_objects": {
|
|
498
|
+
"pipes": self.object_counts.get("pipes", 0),
|
|
499
|
+
"boxes": self.object_counts.get("boxes", 0),
|
|
500
|
+
"spheres": self.object_counts.get("spheres", 0),
|
|
501
|
+
},
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
def persist(self, out_dir: str | Path, *, include_previews: bool = False, include_sdf_metadata: bool = True) -> SurfaceMeshFiles:
|
|
439
506
|
out_path = Path(out_dir)
|
|
440
507
|
out_path.mkdir(parents=True, exist_ok=True)
|
|
441
508
|
obj_path = out_path / "trench_scene.obj"
|
|
@@ -445,13 +512,27 @@ class SurfaceMeshResult:
|
|
|
445
512
|
metrics_path = out_path / "metrics.json"
|
|
446
513
|
with metrics_path.open("w") as fh:
|
|
447
514
|
json.dump(self.metrics, fh, indent=2)
|
|
515
|
+
|
|
516
|
+
# Export SDF metadata
|
|
517
|
+
sdf_metadata_path = None
|
|
518
|
+
if include_sdf_metadata:
|
|
519
|
+
sdf_metadata = self._build_sdf_metadata()
|
|
520
|
+
sdf_metadata_path = out_path / "sdf_metadata.json"
|
|
521
|
+
with sdf_metadata_path.open("w") as fh:
|
|
522
|
+
json.dump(sdf_metadata, fh, indent=2)
|
|
523
|
+
|
|
448
524
|
preview_paths: List[Path] = []
|
|
449
525
|
if include_previews and self.previews:
|
|
450
526
|
for name, data in self.previews.items():
|
|
451
527
|
target = out_path / f"preview_{name}.png"
|
|
452
528
|
target.write_bytes(data)
|
|
453
529
|
preview_paths.append(target)
|
|
454
|
-
return SurfaceMeshFiles(
|
|
530
|
+
return SurfaceMeshFiles(
|
|
531
|
+
obj_path=obj_path,
|
|
532
|
+
metrics_path=metrics_path,
|
|
533
|
+
preview_paths=tuple(preview_paths),
|
|
534
|
+
sdf_metadata_path=sdf_metadata_path,
|
|
535
|
+
)
|
|
455
536
|
|
|
456
537
|
def _ground_fn(g: GroundSpec):
|
|
457
538
|
sx, sy = g.slope
|
|
@@ -577,6 +658,7 @@ def _extend_polyline_ends(
|
|
|
577
658
|
|
|
578
659
|
return L_ext, R_ext
|
|
579
660
|
|
|
661
|
+
|
|
580
662
|
def make_trench_from_path_sloped(path_xy: List[Tuple[float,float]], width_top: float, depth: float, wall_slope: float, ground) -> Tuple[Dict,str,str,dict]:
|
|
581
663
|
# Build top and bottom rings by offsetting centerline
|
|
582
664
|
half_top = width_top/2.0
|
|
@@ -619,7 +701,8 @@ def make_trench_from_path_sloped(path_xy: List[Tuple[float,float]], width_top: f
|
|
|
619
701
|
|
|
620
702
|
bot_verts, bot_faces = _triangulate_annulus(outer_bot, inner_bot[::-1])
|
|
621
703
|
V_bottom = np.column_stack([bot_verts, np.concatenate([z_outer_bot, z_inner_bot[::-1]])])
|
|
622
|
-
|
|
704
|
+
# Floor normals point UP (+z) into the trench void for correct SDF sign
|
|
705
|
+
F_bottom = _ensure_upward_normals(V_bottom, bot_faces)
|
|
623
706
|
|
|
624
707
|
# Outer wall: connects outer_top to outer_bot (facing outward from trench)
|
|
625
708
|
n_outer = len(outer_top)
|
|
@@ -679,7 +762,8 @@ def make_trench_from_path_sloped(path_xy: List[Tuple[float,float]], width_top: f
|
|
|
679
762
|
V_cap = np.column_stack([poly_top, z_top])
|
|
680
763
|
V_bottom = np.column_stack([poly_bot, z_bot])
|
|
681
764
|
F_cap = tris_top
|
|
682
|
-
|
|
765
|
+
# Floor normals point UP (+z) into the trench void for correct SDF sign
|
|
766
|
+
F_bottom = _ensure_upward_normals(V_bottom, tris_bot)
|
|
683
767
|
|
|
684
768
|
# Walls: connect corresponding indices
|
|
685
769
|
N = len(poly_top)
|
|
@@ -714,6 +798,38 @@ def make_trench_from_path_sloped(path_xy: List[Tuple[float,float]], width_top: f
|
|
|
714
798
|
|
|
715
799
|
return groups, poly_top, poly_bot, extra
|
|
716
800
|
|
|
801
|
+
def _ensure_upward_normals(V: np.ndarray, F: np.ndarray) -> np.ndarray:
|
|
802
|
+
"""Ensure all faces have upward-pointing normals (+z).
|
|
803
|
+
|
|
804
|
+
For horizontal surfaces like trench floors, normals should point UP
|
|
805
|
+
into the void for correct SDF computation. This function flips any
|
|
806
|
+
faces with downward-pointing normals.
|
|
807
|
+
|
|
808
|
+
Parameters
|
|
809
|
+
----------
|
|
810
|
+
V : np.ndarray
|
|
811
|
+
Vertices (n, 3)
|
|
812
|
+
F : np.ndarray
|
|
813
|
+
Faces (m, 3) - indices into V
|
|
814
|
+
|
|
815
|
+
Returns
|
|
816
|
+
-------
|
|
817
|
+
np.ndarray
|
|
818
|
+
Faces with consistent upward normals (may have winding flipped)
|
|
819
|
+
"""
|
|
820
|
+
F_out = F.copy()
|
|
821
|
+
p0 = V[F[:, 0]]
|
|
822
|
+
p1 = V[F[:, 1]]
|
|
823
|
+
p2 = V[F[:, 2]]
|
|
824
|
+
normals = np.cross(p1 - p0, p2 - p0)
|
|
825
|
+
|
|
826
|
+
# Flip faces with negative z-component normals
|
|
827
|
+
down_mask = normals[:, 2] < 0
|
|
828
|
+
F_out[down_mask] = F_out[down_mask, ::-1]
|
|
829
|
+
|
|
830
|
+
return F_out
|
|
831
|
+
|
|
832
|
+
|
|
717
833
|
def _triangulate_annulus(outer: np.ndarray, inner: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
|
|
718
834
|
"""Triangulate the annular region between outer and inner polygons.
|
|
719
835
|
|
|
@@ -821,19 +937,21 @@ def make_ground_surface_plane(path_xy: List[Tuple[float,float]], width_top: floa
|
|
|
821
937
|
combined_xy, tris = _triangulate_annulus(ground_outer, trench_outer)
|
|
822
938
|
Vg = np.array([[x, y, gfun(x, y)] for (x, y) in combined_xy], float)
|
|
823
939
|
|
|
940
|
+
# Ground normals should point UP (+z) into the air
|
|
941
|
+
tris = _ensure_upward_normals(Vg, tris)
|
|
942
|
+
|
|
824
943
|
return {"ground_surface": (Vg, tris)}
|
|
825
944
|
else:
|
|
826
|
-
# Open paths: ground forms annulus with
|
|
827
|
-
#
|
|
828
|
-
#
|
|
829
|
-
#
|
|
945
|
+
# Open paths: ground forms annulus with extensions past trench endpoints.
|
|
946
|
+
# The outer ring (ground boundary) is extended, but the inner ring (trench
|
|
947
|
+
# opening) stays at its original position. This creates ground fill at the
|
|
948
|
+
# trench ends rather than extending the trench opening itself.
|
|
830
949
|
|
|
831
|
-
# Inner boundary: trench opening
|
|
950
|
+
# Inner boundary: trench opening at original position (not extended)
|
|
832
951
|
L_inner, R_inner = _offset_polyline(path_xy, half_top)
|
|
833
|
-
|
|
834
|
-
inner_ring = _ensure_ccw(_ring_from_LR(L_inner_ext, R_inner_ext))
|
|
952
|
+
inner_ring = _ensure_ccw(_ring_from_LR(L_inner, R_inner))
|
|
835
953
|
|
|
836
|
-
# Outer boundary: offset by margin,
|
|
954
|
+
# Outer boundary: offset by margin, extended at ends
|
|
837
955
|
L_outer, R_outer = _offset_polyline(path_xy, half_top + m)
|
|
838
956
|
L_outer_ext, R_outer_ext = _extend_polyline_ends(L_outer, R_outer, path_xy, m)
|
|
839
957
|
outer_ring = _ensure_ccw(_ring_from_LR(L_outer_ext, R_outer_ext))
|
|
@@ -844,6 +962,9 @@ def make_ground_surface_plane(path_xy: List[Tuple[float,float]], width_top: floa
|
|
|
844
962
|
# Apply ground elevation to get 3D vertices
|
|
845
963
|
Vg = np.array([[x, y, gfun(x, y)] for (x, y) in combined_xy], float)
|
|
846
964
|
|
|
965
|
+
# Ground normals should point UP (+z) into the air
|
|
966
|
+
tris = _ensure_upward_normals(Vg, tris)
|
|
967
|
+
|
|
847
968
|
return {"ground_surface": (Vg, tris)}
|
|
848
969
|
|
|
849
970
|
def _half_width_at_depth(half_top: float, slope: float, top_z: float, z: float) -> float:
|
|
@@ -6,63 +6,63 @@ trenchfoot/gmsh_sloped_trench_mesher.py,sha256=D7EL6V0wkE6tvDARmm006yZE6KEzCl25O
|
|
|
6
6
|
trenchfoot/plot_mesh.py,sha256=26dOlVfaM1WsUfr_sXVqA7axtY9qjY3WCNM7cUBTS7Q,3810
|
|
7
7
|
trenchfoot/render_colors.py,sha256=EfldvoshgaZ6iZFk-UDL67-tvwGYaiZFS2NQZBMwhDM,1596
|
|
8
8
|
trenchfoot/scene_spec_example.json,sha256=UcV25ku422UO0ZZPDrJwrT1zwmjoOIpnBdLuEdh-AZA,1028
|
|
9
|
-
trenchfoot/trench_scene_generator_v3.py,sha256=
|
|
9
|
+
trenchfoot/trench_scene_generator_v3.py,sha256=9d93JK1rl61iq4fPxjiENEiFdX0Zhw306UQISeWnnvg,49277
|
|
10
10
|
trenchfoot/scenarios/SUMMARY.json,sha256=uylEzgzIqk5pGBfWVchVFnwwIDGBjNTDY_E23L_iakI,9372
|
|
11
|
-
trenchfoot/scenarios/S01_straight_vwalls/metrics.json,sha256=
|
|
11
|
+
trenchfoot/scenarios/S01_straight_vwalls/metrics.json,sha256=7VDscjZdxNPgNZaPHzRHYBJ1a5amNgJ7XYKCezVJJKQ,691
|
|
12
12
|
trenchfoot/scenarios/S01_straight_vwalls/preview.png,sha256=adsx3-6oMu9WaixggXRhuXi_KM-q5s2RNSBLR_stq80,199624
|
|
13
|
-
trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png,sha256=
|
|
14
|
-
trenchfoot/scenarios/S01_straight_vwalls/preview_side.png,sha256=
|
|
15
|
-
trenchfoot/scenarios/S01_straight_vwalls/preview_top.png,sha256=
|
|
13
|
+
trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png,sha256=SYgRPLOQNiW56HuSy9zL6ImPNV1S0LHaLYLBLQbcny0,133551
|
|
14
|
+
trenchfoot/scenarios/S01_straight_vwalls/preview_side.png,sha256=zBqMghMiEAYvcePgIPBgLJAYgVk0YA2ioSzF5CkL9io,33807
|
|
15
|
+
trenchfoot/scenarios/S01_straight_vwalls/preview_top.png,sha256=L0qGIFib1cAwSwJJ16cRtYSlPMOo4uQhNGt6OvM58XQ,39495
|
|
16
16
|
trenchfoot/scenarios/S01_straight_vwalls/scene.json,sha256=kbHRC9zMVDGHbuLh2wRsvchfVfcbdDEVvxsMwHHBoHw,343
|
|
17
|
-
trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj,sha256=
|
|
17
|
+
trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj,sha256=w2ShsfQEBm8236cSMh-bWL5NO1LBBVLRpqdD0b6dUcM,649
|
|
18
18
|
trenchfoot/scenarios/S01_straight_vwalls/meshes/trench_scene_culled.obj,sha256=6-usCEpAfhhZcdCxAy7NcXrkBwv-mEh40A6zN50k0Jo,519
|
|
19
19
|
trenchfoot/scenarios/S01_straight_vwalls/point_clouds/culled/resolution0p050.pth,sha256=w4AKFbud2V0NhAtudGXXheLynAq-NLxUFSPxLczK3T0,1352093
|
|
20
20
|
trenchfoot/scenarios/S01_straight_vwalls/point_clouds/full/resolution0p050.pth,sha256=w4AKFbud2V0NhAtudGXXheLynAq-NLxUFSPxLczK3T0,1352093
|
|
21
21
|
trenchfoot/scenarios/S01_straight_vwalls/volumetric/trench_volume.msh,sha256=mpKNhdAPEogyDQrE9IGTgg535ZBNYXiLpIcmvl6QYPA,15007
|
|
22
|
-
trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json,sha256=
|
|
22
|
+
trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json,sha256=0URXUt9fcQ6PG0HP-SRIfdfddPlTwP6PbYfV4NYjjXs,954
|
|
23
23
|
trenchfoot/scenarios/S02_straight_slope_pipe/preview.png,sha256=Aj5XpJMSdRNqnrPzL4oe-d0RjLdFT2V7OFrrZxwlsx8,251134
|
|
24
|
-
trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png,sha256=
|
|
25
|
-
trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png,sha256=
|
|
26
|
-
trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png,sha256=
|
|
24
|
+
trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png,sha256=8gTOJkd63NtXRkHcS31Sun_ClXiufqsxFeTVrPcG1no,173774
|
|
25
|
+
trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png,sha256=Zwft-WEogsjPGcaUl7-Xd4kRIjewlbJ9h52MjS0pXB4,56706
|
|
26
|
+
trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png,sha256=Su71iVHxgWIVPaYde4qnMiBR_gXix1n9bCSgmiYkO6M,57538
|
|
27
27
|
trenchfoot/scenarios/S02_straight_slope_pipe/scene.json,sha256=W1ApzLHEnHQn-7AdWxh2xiEinj6Yb7830sQXNxmmmDw,486
|
|
28
|
-
trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj,sha256=
|
|
28
|
+
trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj,sha256=DKM_PM45M8bRb2uXfZWn1plwYriU-q5nYhbPKk4tje0,333169
|
|
29
29
|
trenchfoot/scenarios/S02_straight_slope_pipe/meshes/trench_scene_culled.obj,sha256=OOiw80NuCBejzeN3MWAip9Haw8yQsLZEdlMQdDIgEMU,847
|
|
30
30
|
trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/culled/resolution0p050.pth,sha256=Ug9hTIsm6iQKRs9cucXJyJpxpSvQ5f2GS1ytZmxi1mE,1623389
|
|
31
31
|
trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/full/resolution0p050.pth,sha256=JgIRni8xWKtz2mm0gpSdmavGe-FF71mDervavM4Rqw8,1718877
|
|
32
32
|
trenchfoot/scenarios/S02_straight_slope_pipe/volumetric/trench_volume.msh,sha256=kNFAqjr7dM-KX4JQV1u5GbHbWWFIfiEur1wV1fJCePA,47084
|
|
33
|
-
trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json,sha256=
|
|
33
|
+
trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json,sha256=R_CWIwgPj-wPksszZapQMaTB2SmUR39NTZsJQlxbRew,1111
|
|
34
34
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview.png,sha256=q0V_2HSLUl2ovWLc4INKV87aLVh3vzqabMyKr8XEWEg,224248
|
|
35
|
-
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png,sha256=
|
|
36
|
-
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png,sha256=
|
|
37
|
-
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png,sha256=
|
|
35
|
+
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png,sha256=Nvp0hvmG9HvZgbiEgbbI3uJtCLNFgLdamh8p2dw3ucY,154869
|
|
36
|
+
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png,sha256=57DnWIuV4p-7eguJVSshd0SZ0COy7Y2cedUMp_DrrjY,51284
|
|
37
|
+
trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png,sha256=rs-CMZwaNUl5xef85WEckQqm_UqNrGcfE39nofvsp0E,48235
|
|
38
38
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/scene.json,sha256=10azlgelNGCDG6dyWsAKVviXXZaoYnAMvJxvvj-HyS8,940
|
|
39
|
-
trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj,sha256=
|
|
39
|
+
trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj,sha256=APHNgcc715-lk360CAOpr6zPVcsEDrY4eHEV6z6dU38,655978
|
|
40
40
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/meshes/trench_scene_culled.obj,sha256=At4lipowr_3MY1rxmcKa479F_mQ-jJDVQJe0yHTrFSc,1835
|
|
41
41
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/culled/resolution0p050.pth,sha256=KqbuoZ1tUPDhlnDgmhd-7WBb92TABsEmOzEsB__KtlA,2456029
|
|
42
42
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/full/resolution0p050.pth,sha256=4fXvfu0TMO9FJaoqYrW21SCGe3eKuSLkSUl9CdE14rw,2622685
|
|
43
43
|
trenchfoot/scenarios/S03_L_slope_two_pipes_box/volumetric/trench_volume.msh,sha256=cPgHKHlzPPtWX8H1yaxAYsEgYba3fr2JjfPvgg2a000,87383
|
|
44
|
-
trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json,sha256=
|
|
44
|
+
trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json,sha256=3dm1ciLvFDj66ouuzhPo6-W0fPg0NRdbh2NPpg8tN-0,1293
|
|
45
45
|
trenchfoot/scenarios/S04_U_slope_multi_noise/preview.png,sha256=ZbLgrL0nRtUX1y77i7b3LCxw4w_j5Ivmmh0i2YzrBDs,238958
|
|
46
|
-
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png,sha256=
|
|
47
|
-
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png,sha256=
|
|
48
|
-
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png,sha256=
|
|
46
|
+
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png,sha256=HKUWhUuuql2YZzqq4B5oDpQSCWy9RhuwY_JxVZ-bEbg,162693
|
|
47
|
+
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png,sha256=S7n1ivuo1PFcMp_WuEEnJnCx2JMP5yiCCCYOFDzJtfY,77730
|
|
48
|
+
trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png,sha256=auLgGMvU1bRua43WrU-O2WelPy0TbPZZD7ALFIvqlqk,65419
|
|
49
49
|
trenchfoot/scenarios/S04_U_slope_multi_noise/scene.json,sha256=ePFijY2uoZt6P5bVW2GSI8GKSA3CUMupIiQ1RnJkLxM,1119
|
|
50
|
-
trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj,sha256=
|
|
50
|
+
trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj,sha256=oP9_lBey8yRWrzoCAc2IBM2uKBMQVXudFuEh_l6Q-Hw,1188305
|
|
51
51
|
trenchfoot/scenarios/S04_U_slope_multi_noise/meshes/trench_scene_culled.obj,sha256=ykw_tzhXknXt3DbmSk3cBzbOL91Jm4zxjthp799YkWw,3206
|
|
52
52
|
trenchfoot/scenarios/S04_U_slope_multi_noise/volumetric/trench_volume.msh,sha256=7KfGkJAlv19rzbaPhzbmy9UWo42Db_4VhAtisn6aMak,144623
|
|
53
|
-
trenchfoot/scenarios/S05_wide_slope_pair/metrics.json,sha256=
|
|
54
|
-
trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png,sha256=
|
|
55
|
-
trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png,sha256=
|
|
56
|
-
trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png,sha256=
|
|
53
|
+
trenchfoot/scenarios/S05_wide_slope_pair/metrics.json,sha256=NC0pGEZOqQhIa_wxtRWIKcnf728ONljxFbFuJU2dwq8,1112
|
|
54
|
+
trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png,sha256=S0MwfT2bC0T7AAUsqwDAIBxxRea6lHeYhQYrumwJfFU,139982
|
|
55
|
+
trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png,sha256=8hiJ5ZZZ6iqIdPakWsgWDPrJnEuU7Qqy-odjnR38ocM,67796
|
|
56
|
+
trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png,sha256=bDdjWwBN6QQfZ2kV71VbV_Q59nrPYAiUMh3ivRo4L9M,57737
|
|
57
57
|
trenchfoot/scenarios/S05_wide_slope_pair/scene.json,sha256=5JMFXLxjjkT3_xrmJU7SX3FYSHM2rgL63nehik0c_JY,1030
|
|
58
|
-
trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj,sha256=
|
|
58
|
+
trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj,sha256=M60Tx0KmeAvo7qg3ho_rjEMBc47pxmpOcHouZzPMxg4,691243
|
|
59
59
|
trenchfoot/scenarios/S05_wide_slope_pair/volumetric/trench_volume.msh,sha256=pHrj2dJgpSklpxiHHThiZINJQWpUdvkfhUnVBpKASEM,123235
|
|
60
|
-
trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json,sha256=
|
|
61
|
-
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png,sha256=
|
|
62
|
-
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png,sha256=
|
|
63
|
-
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png,sha256=
|
|
60
|
+
trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json,sha256=5TJctEUvwnR_DPV1s7eu1LDeJuzM0y9txOjaXfFVmwc,1136
|
|
61
|
+
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png,sha256=Kw8agcTy3VTZ9OM-dNR46hXJ2sKJZN9xwozX0fNicbU,180697
|
|
62
|
+
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png,sha256=6e8YF0oPJ045jax9w2grPUvO6j1OAod3iD81XXDldb0,88884
|
|
63
|
+
trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png,sha256=nvbwTseVTuw6lNjsUB2JdbFacngFbzjYzDUaAk_ayLs,89085
|
|
64
64
|
trenchfoot/scenarios/S06_bumpy_wide_loop/scene.json,sha256=SzjQgccYU1KRIiXVp-LwnLpf7pLkBotQ9_baHljd46g,1105
|
|
65
|
-
trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj,sha256=
|
|
65
|
+
trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj,sha256=JJXACWwS1WmLTkj0FKNEp8Ub2DT8EoH2YPZGYUmiOjc,847049
|
|
66
66
|
trenchfoot/scenarios/S06_bumpy_wide_loop/volumetric/trench_volume.msh,sha256=r8KJMR5TxykP1_oeYbPnsckStGZDZ2-7e8KCAHPBh5I,279971
|
|
67
67
|
trenchfoot/scenarios/S07_circular_well/metrics.json,sha256=RLjk54Ho5cRVB-aZ7F2x6PBXkycp4pLKlN3bVgbuagE,1390
|
|
68
68
|
trenchfoot/scenarios/S07_circular_well/preview_oblique.png,sha256=ogcl8HnszT6otoZuRu_P5J_wbzuwA54FL1lOPAEBv3M,201455
|
|
@@ -71,8 +71,8 @@ trenchfoot/scenarios/S07_circular_well/preview_top.png,sha256=X1P0g8kblJLsxOpYiZ
|
|
|
71
71
|
trenchfoot/scenarios/S07_circular_well/scene.json,sha256=bvror2YX6aNbsEc25-N7JO3ysH2dTLGyEE6zGzZysXQ,3146
|
|
72
72
|
trenchfoot/scenarios/S07_circular_well/trench_scene.obj,sha256=leTTT0i5xE-fvFSzHLNf_JBsU0AN3YqadDx4HmNmFhU,1618101
|
|
73
73
|
trenchfoot/scenarios/S07_circular_well/volumetric/trench_volume.msh,sha256=dqhtd3SFKj5RLT_BcWIIvVGCbAqvOx7RX25-K7NKX10,615212
|
|
74
|
-
trenchfoot-0.
|
|
75
|
-
trenchfoot-0.
|
|
76
|
-
trenchfoot-0.
|
|
77
|
-
trenchfoot-0.
|
|
78
|
-
trenchfoot-0.
|
|
74
|
+
trenchfoot-0.3.0.dist-info/METADATA,sha256=_N5N5_BZvcb3JmbEKrtaosI3BEe1DIh0fOzIunUNF88,5292
|
|
75
|
+
trenchfoot-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
76
|
+
trenchfoot-0.3.0.dist-info/entry_points.txt,sha256=5TejAGmc4GnNYLn7MhhLtSCNz9240RvzcNaetF4IHfg,119
|
|
77
|
+
trenchfoot-0.3.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
|
78
|
+
trenchfoot-0.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|