Commit d520cc81ef2745566e73898269bc549f859382b4

Authored by Renan
1 parent e971a699
Exists in master

FIX: check coil mesh connection

Showing 1 changed file with 24 additions and 23 deletions   Show diff stats
invesalius/net/neuronavigation_api.py
@@ -72,26 +72,27 @@ class NeuronavigationApi(metaclass=Singleton): @@ -72,26 +72,27 @@ class NeuronavigationApi(metaclass=Singleton):
72 ) 72 )
73 73
74 def update_coil_mesh(self, polydata): 74 def update_coil_mesh(self, polydata):
75 - wrapped = dataset_adapter.WrapDataObject(polydata)  
76 -  
77 - points = np.asarray(wrapped.Points)  
78 - polygons_raw = np.asarray(wrapped.Polygons)  
79 -  
80 - # The polygons are returned as 1d-array of the form  
81 - #  
82 - # [n_0, id_0(0), id_0(1), ..., id_0(n_0),  
83 - # n_1, id_1(0), id_1(1), ..., id_1(n_1),  
84 - # ...]  
85 - #  
86 - # where n_i is the number of vertices in polygon i, and id_i's are indices to the vertex list.  
87 - #  
88 - # Assert that all polygons have an equal number of vertices, reshape the array, and drop n_i's.  
89 - #  
90 - assert np.all(polygons_raw[0::self.N_VERTICES_IN_POLYGON + 1] == self.N_VERTICES_IN_POLYGON)  
91 -  
92 - polygons = polygons_raw.reshape(-1, self.N_VERTICES_IN_POLYGON + 1)[:, 1:]  
93 -  
94 - self.connection.update_coil_mesh(  
95 - points=points,  
96 - polygons=polygons,  
97 - ) 75 + if self.connection is not None:
  76 + wrapped = dataset_adapter.WrapDataObject(polydata)
  77 +
  78 + points = np.asarray(wrapped.Points)
  79 + polygons_raw = np.asarray(wrapped.Polygons)
  80 +
  81 + # The polygons are returned as 1d-array of the form
  82 + #
  83 + # [n_0, id_0(0), id_0(1), ..., id_0(n_0),
  84 + # n_1, id_1(0), id_1(1), ..., id_1(n_1),
  85 + # ...]
  86 + #
  87 + # where n_i is the number of vertices in polygon i, and id_i's are indices to the vertex list.
  88 + #
  89 + # Assert that all polygons have an equal number of vertices, reshape the array, and drop n_i's.
  90 + #
  91 + assert np.all(polygons_raw[0::self.N_VERTICES_IN_POLYGON + 1] == self.N_VERTICES_IN_POLYGON)
  92 +
  93 + polygons = polygons_raw.reshape(-1, self.N_VERTICES_IN_POLYGON + 1)[:, 1:]
  94 +
  95 + self.connection.update_coil_mesh(
  96 + points=points,
  97 + polygons=polygons,
  98 + )