def process(self): if not (self.inputs['vertices'].is_linked): return has_matrices = self.inputs['matrix'].is_linked mverts, mradii, mtwist, mmatrices = self.get_geometry_from_sockets(has_matrices) out_objects = [] for obj_index, Verts in enumerate(mverts): if not Verts: continue matrix = mmatrices[obj_index] if has_matrices else [] if self.selected_mode == 'Multi': curve_args = obj_index, self, Verts, matrix, mradii[obj_index], mtwist[obj_index] new_obj = make_curve_geometry(*curve_args) out_objects.append(new_obj) else: if matrix: mverts = [multiply_vectors(*mv) for mv in zip(mmatrices, mverts)] new_obj = make_curve_geometry(0, self, mverts, [], mradii, mtwist) out_objects.append(new_obj) break # warning: uses possibly undefined index.. remove_non_updated_objects(self, obj_index, kind='CURVE') self.set_corresponding_materials() self.outputs['object'].sv_set(out_objects)
def process(self): if not (self.inputs['vertices'].is_linked): return has_matrices = self.inputs['matrix'].is_linked mverts, mradii, mtwist, mmatrices = self.get_geometry_from_sockets( has_matrices) out_objects = [] for obj_index, Verts in enumerate(mverts): if not Verts: continue matrix = mmatrices[obj_index] if has_matrices else [] if self.selected_mode == 'Multi': curve_args = obj_index, self, Verts, matrix, mradii[ obj_index], mtwist[obj_index] new_obj = make_curve_geometry(*curve_args) out_objects.append(new_obj) else: if matrix: mverts = [ multiply_vectors(*mv) for mv in zip(mmatrices, mverts) ] new_obj = make_curve_geometry(0, self, mverts, [], mradii, mtwist) out_objects.append(new_obj) break # warning: uses possibly undefined index.. remove_non_updated_objects(self, obj_index, kind='CURVE') self.set_corresponding_materials() self.outputs['object'].sv_set(out_objects)
def process(self): if not self.activate: return if not self.inputs['vertices'].is_linked: return has_matrices = self.inputs['matrix'].is_linked mverts, mradii, mtwist, mmatrices = self.get_geometry_from_sockets( has_matrices) with self.sv_throttle_tree_update(): out_objects = [] for obj_index, Verts in enumerate(mverts): if len(Verts) == 0: continue matrix = mmatrices[obj_index] if has_matrices else [] if self.selected_mode == 'Multi': curve_args = obj_index, self, Verts, matrix, mradii[ obj_index], mtwist[obj_index] new_obj = make_curve_geometry(*curve_args) out_objects.append(new_obj) else: if matrix: mverts = [ multiply_vectors(*mv) for mv in zip(mmatrices, mverts) ] new_obj = make_curve_geometry(0, self, mverts, [], mradii, mtwist) out_objects.append(new_obj) break last_index = len(mverts) - 1 if self.selected_mode == 'Single': last_index = 0 self.remove_non_updated_objects(last_index) self.set_corresponding_materials() if self.grouping: self.to_collection(self.get_children()) self.outputs['object'].sv_set(out_objects)