def process(self): if not any(self.outputs[idx].is_linked for idx in range(3)): return vertices_s = self.inputs['Vertices'].sv_get(default=[[]]) edges_s = self.inputs['Edges'].sv_get(default=[[]]) faces_s = self.inputs['Polygons'].sv_get(default=[[]]) geom = [[], [], []] if self.selected_mode == 'mask': mask_s = self.inputs['Mask'].sv_get(default=[[True]]) for *single_geom, mask in zip( *mlrepeat([vertices_s, edges_s, faces_s, mask_s])): for idx, d in enumerate( flip_from_mask(mask, single_geom, self.reverse)): geom[idx].append(d) elif self.selected_mode == 'match': for single_geom in zip(*mlrepeat([vertices_s, edges_s, faces_s])): for idx, d in enumerate( flip_to_match_1st(single_geom, self.reverse)): geom[idx].append(d) self.set_output(geom)
def process(self): if not any(self.outputs[idx].is_linked for idx in range(3)): return vertices_s = self.inputs['Vertices'].sv_get(default=[[]]) edges_s = self.inputs['Edges'].sv_get(default=[[]]) faces_s = self.inputs['Polygons'].sv_get(default=[[]]) # if vertices_s is [[]] and faces_s is [[]]: # return geom = [[], [], []] if self.selected_mode == 'mask': mask_s = self.inputs['Mask'].sv_get(default=[[True]]) for *single_geom, mask in zip(*mlrepeat([vertices_s, edges_s, faces_s, mask_s])): for idx, d in enumerate(flip_from_mask(mask, single_geom, self.reverse)): geom[idx].append(d) elif self.selected_mode == 'match': for single_geom in zip(*mlrepeat([vertices_s, edges_s, faces_s])): for idx, d in enumerate(flip_to_match_1st(single_geom, self.reverse)): geom[idx].append(d) self.set_output(geom)