@@ -36,26 +36,27 @@ def compute_dual_contouring(dc_data_per_stack: DualContouringData, left_right_co
3636
3737 # Check if we should use parallel processing
3838 use_parallel = _should_use_parallel_processing (dc_data_per_stack .n_surfaces_to_export , BackendTensor .engine_backend )
39+ parallel_results = None
3940
4041 if use_parallel :
4142 print (f"Using parallel processing for { dc_data_per_stack .n_surfaces_to_export } surfaces" )
4243 parallel_results = _parallel_process_surfaces (dc_data_per_stack , left_right_codes , debug )
4344
44- if parallel_results is not None :
45- # Convert parallel results to DualContouringMesh objects
46- stack_meshes = []
47- for vertices_numpy , indices_numpy in parallel_results :
48- if TRIMESH_LAST_PASS := True :
49- vertices_numpy , indices_numpy = _last_pass (vertices_numpy , indices_numpy )
50-
51- stack_meshes .append (
52- DualContouringMesh (
53- vertices_numpy ,
54- indices_numpy ,
55- dc_data_per_stack
56- )
57- )
58- return stack_meshes
45+ # if parallel_results is not None:
46+ # # Convert parallel results to DualContouringMesh objects
47+ # stack_meshes = []
48+ # for vertices_numpy, indices_numpy in parallel_results:
49+ # if TRIMESH_LAST_PASS := True:
50+ # vertices_numpy, indices_numpy = _last_pass(vertices_numpy, indices_numpy)
51+ #
52+ # stack_meshes.append(
53+ # DualContouringMesh(
54+ # vertices_numpy,
55+ # indices_numpy,
56+ # dc_data_per_stack
57+ # )
58+ # )
59+ # return stack_meshes
5960
6061 # Fall back to sequential processing
6162 print (f"Using sequential processing for { dc_data_per_stack .n_surfaces_to_export } surfaces" )
@@ -64,7 +65,27 @@ def compute_dual_contouring(dc_data_per_stack: DualContouringData, left_right_co
6465 last_surface_edge_idx = 0
6566 for i in range (dc_data_per_stack .n_surfaces_to_export ):
6667 # @off
67- indices_numpy , vertices_numpy = _sequential_triangulation (dc_data_per_stack , debug , i , last_surface_edge_idx , left_right_codes , valid_edges_per_surface )
68+ if parallel_results is not None :
69+ _ , vertices_numpy = _sequential_triangulation (
70+ dc_data_per_stack ,
71+ debug ,
72+ i ,
73+ last_surface_edge_idx ,
74+ left_right_codes ,
75+ valid_edges_per_surface ,
76+ compute_indices = False
77+ )
78+ indices_numpy = parallel_results [i ]
79+ else :
80+ vertices_numpy , indices_numpy = _sequential_triangulation (
81+ dc_data_per_stack ,
82+ debug ,
83+ i ,
84+ last_surface_edge_idx ,
85+ left_right_codes ,
86+ valid_edges_per_surface ,
87+ compute_indices = True
88+ )
6889
6990 if TRIMESH_LAST_PASS := True :
7091 vertices_numpy , indices_numpy = _last_pass (vertices_numpy , indices_numpy )
0 commit comments