@@ -173,7 +173,7 @@ def generate_dual_contouring_vertices(dc_data_per_stack: DualContouringData, sli
173173 bias_xyz [isclose ] = np .nan # np zero values to nans
174174 mass_points = np .nanmean (bias_xyz , axis = 1 ) # Mean ignoring nans
175175 else : # ? This is actually doing something
176- bias_xyz = np . copy (edges_xyz [:, :12 ])
176+ bias_xyz = BackendTensor . t . copy (edges_xyz [:, :12 ]). detach (). numpy ( )
177177 mask = bias_xyz == 0
178178 masked_arr = np .ma .masked_array (bias_xyz , mask )
179179 mass_points = masked_arr .mean (axis = 1 )
@@ -200,10 +200,11 @@ def generate_dual_contouring_vertices(dc_data_per_stack: DualContouringData, sli
200200 # Compute LSTSQS in all voxels at the same time
201201 A = edges_normals
202202 b = (A * edges_xyz ).sum (axis = 2 )
203- term1 = np .einsum ("ijk, ilj->ikl" , A , np .transpose (A , (0 , 2 , 1 )))
204- term2 = np .linalg .inv (term1 )
205- term3 = np .einsum ("ijk,ik->ij" , np .transpose (A , (0 , 2 , 1 )), b )
206- vertices = np .einsum ("ijk, ij->ik" , term2 , term3 )
203+
204+ term1 = BackendTensor .t .einsum ("ijk, ilj->ikl" , A , BackendTensor .t .transpose (A , (2 , 1 )))
205+ term2 = BackendTensor .t .linalg .inv (term1 )
206+ term3 = BackendTensor .t .einsum ("ijk,ik->ij" , BackendTensor .t .transpose (A , (2 , 1 )), b )
207+ vertices = BackendTensor .t .einsum ("ijk, ij->ik" , term2 , term3 )
207208
208209 if debug :
209210 dc_data_per_stack .bias_center_mass = edges_xyz [:, 12 :].reshape (- 1 , 3 )
0 commit comments