def process(self): if not any(s.is_linked for s in self.outputs): return params_in = [s.sv_get(deepcopy=False) for s in self.inputs[:4]] params_in.append(self.inputs['Fill / Stroke'].sv_get(deepcopy=False, default=[[None]])) get_curves = self.outputs['Curves'].is_linked shapes_out = [] curves_out = [] for params in zip(*mlr(params_in)): shapes = [] for loc, rad_x, rad_y, angle, atts in zip(*mlr(params)): shapes.append(SvgCircle(rad_x, rad_y, loc, angle, atts)) if get_curves: center = curve_matrix(loc, angle, rad_x, rad_y) curve = SvCircle(center, rad_x) curve.u_bounds = (0, 2 * pi) curves_out.append(curve) if self.ungroup: shapes_out.extend(shapes) else: shapes_out.append(SvgGroup(shapes)) self.outputs[0].sv_set(shapes_out) self.outputs[1].sv_set(curves_out)
def process(self): if not self.outputs[0].is_linked: return if self.mode == "CURVE": curves_in = self.inputs['Curve'].sv_get(deepcopy=False) atts_in = self.inputs['Fill / Stroke'].sv_get(deepcopy=False, default=[[None]]) if isinstance(curves_in[0], SvCurve): curves_in = [curves_in] groups = [] for curves, atts in zip(*mlr([curves_in, atts_in])): curves_out = [] for c, att in zip(*mlr([curves, atts])): curves_out.append(SvgCurve(c, att, self)) groups.append(SvgGroup(curves_out)) self.outputs[0].sv_set(groups) else: verts_in = self.inputs['Vertices'].sv_get(deepcopy=True) commands_in = self.inputs['Commands'].sv_get(deepcopy=True) shapes = [] atts_in = self.inputs['Fill / Stroke'].sv_get(deepcopy=False, default=[[None]]) for verts, commands, atts in zip( *mlr([verts_in, commands_in, atts_in])): shapes.append(SvgPath(verts, commands, atts, self)) self.outputs[0].sv_set(shapes)
def process(self): if not any(s.is_linked for s in self.outputs): return objs_in = self.inputs['SVG Objects'].sv_get(deepcopy=False) locs_in = self.inputs['Offset'].sv_get(deepcopy=False, default=None) if locs_in: groups = [] idx = 0 for locs in locs_in: for loc in locs: groups.append( SvgGroup(objs_in, name=f'{self.group_name}_{idx}', location=loc)) idx += 1 self.outputs[0].sv_set(groups) else: self.outputs[0].sv_set([SvgGroup(objs_in, name=self.group_name)])
def process(self): if not self.outputs[0].is_linked: return params_in = [s.sv_get(deepcopy=False) for s in self.inputs[:4]] texts_out = [] params_in.append(self.inputs['Fill / Stroke'].sv_get(deepcopy=False, default=None)) font_family = self.user_font if self.font_family == 'user' else self.font_family print("process") for params in zip(*mlr(params_in)): svg_texts = [] for loc, text, size, angle, atts in zip(*mlr(params)): svg_texts.append(SvgText(loc, text, size, angle, self.weight, atts, font_family, self.font_alignment)) texts_out.append(SvgGroup(svg_texts)) self.outputs[0].sv_set(texts_out)
def process(self): if not self.outputs[0].is_linked: return params_in = [s.sv_get(deepcopy=False) for s in self.inputs[:6]] texts_out = [] params_in.append(self.inputs['Text Fill / Stroke'].sv_get(deepcopy=False, default=[[None]])) params_in.append(self.inputs['Lines Fill / Stroke'].sv_get(deepcopy=False, default=[[None]])) font_family = self.user_font if self.font_family == 'user' else self.font_family for params in zip(*mlr(params_in)): svg_texts = [] for local_params in zip(*mlr(params)): svg_texts.append(SvgDimension(*local_params, font_family, self)) texts_out.append(SvgGroup(svg_texts)) self.outputs[0].sv_set(texts_out)