def process(self): _out = self.outputs objects = self.get_objects() calc_radii = _out['radii'].is_linked edges_out, verts_out, faces_out, radii_out, mtrx_out = [], [], [], [], [] for obj in objects: ## collect all data we can get from the subcurve(s) mtrx_out.append(obj.matrix_world) verts, edges, faces, radii = [], [], [], [] curve = obj.data resolution = curve.render_resolution_u or curve.resolution_u # ('POLY', 'BEZIER', 'BSPLINE', 'CARDINAL', 'NURBS') for spline in curve.splines: if spline.type == 'BEZIER': verts_part, edges_part, radii = get_points_bezier( spline, calc_radii=calc_radii) elif spline.type == 'NURBS': verts_part, edges_part, radii = get_points_nurbs( spline, resolution, calc_radii=calc_radii) else: # maybe later? continue # empty means we don't offset the index edges.extend( offset(edges_part, len(verts)) if verts else edges_part) verts.extend(verts_part) # faces.extend(faces_part) if _out['radii'].is_linked: radii_part = interpolate_radii( spline, resolution, interpolation_type=self.selected_mode) radii.extend(radii_part) ## pass all resulting subcurve data verts_out.append(verts) edges_out.append(edges) # faces_out.append(faces) radii_out.append(radii) _out['matrices'].sv_set(mtrx_out) _out['verts'].sv_set(verts_out) _out['edges'].sv_set(edges_out) _out['radii'].sv_set(radii_out)
def process(self): _out = self.outputs objects = self.get_objects() calc_radii = _out['radii'].is_linked edges_out, verts_out, faces_out, radii_out, mtrx_out = [], [], [], [], [] for obj in objects: ## collect all data we can get from the subcurve(s) mtrx_out.append(obj.matrix_world) verts, edges, faces, radii = [], [], [], [] curve = obj.data resolution = curve.render_resolution_u or curve.resolution_u # ('POLY', 'BEZIER', 'BSPLINE', 'CARDINAL', 'NURBS') for spline in curve.splines: if spline.type == 'BEZIER': verts_part, edges_part, radii = get_points_bezier(spline, calc_radii=calc_radii) elif spline.type == 'NURBS': verts_part, edges_part, radii = get_points_nurbs(spline, resolution, calc_radii=calc_radii) else: # maybe later? continue # empty means we don't offset the index edges.extend(offset(edges_part, len(verts)) if verts else edges_part) verts.extend(verts_part) # faces.extend(faces_part) if _out['radii'].is_linked: radii_part = interpolate_radii(spline, resolution, interpolation_type=self.selected_mode) radii.extend(radii_part) ## pass all resulting subcurve data verts_out.append(verts) edges_out.append(edges) # faces_out.append(faces) radii_out.append(radii) _out['matrices'].sv_set(mtrx_out) _out['verts'].sv_set(verts_out) _out['edges'].sv_set(edges_out) _out['radii'].sv_set(radii_out)