Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)])
Beispiel #4
0
    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)
Beispiel #5
0
    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)