summaryrefslogtreecommitdiff
path: root/lib/stitch_plan/stitch.py
blob: ae6fa48059e613231d8ff8b65b71f6b30ef46c3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Authors: see git history
#
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later.  See the file LICENSE for details.

from ..utils.geometry import Point


class Stitch(Point):
    def __init__(self, x, y=None, color=None, jump=False, stop=False, trim=False, color_change=False, tie_modus=0, no_ties=False):
        self.x = x
        self.y = y
        self.color = color
        self.jump = jump
        self.trim = trim
        self.stop = stop
        self.color_change = color_change
        self.tie_modus = tie_modus
        self.no_ties = no_ties

        # Allow creating a Stitch from a Point
        if isinstance(x, Point):
            point = x
            self.x = point.x
            self.y = point.y

    def __repr__(self):
        return "Stitch(%s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.x,
                                                               self.y,
                                                               self.color,
                                                               "JUMP" if self.jump else " ",
                                                               "TRIM" if self.trim else " ",
                                                               "STOP" if self.stop else " ",
                                                               "TIE MODUS" if self.tie_modus else " ",
                                                               "NO TIES" if self.no_ties else " ",
                                                               "COLOR CHANGE" if self.color_change else " ")

    def copy(self):
        return Stitch(self.x, self.y, self.color, self.jump, self.stop, self.trim, self.color_change, self.tie_modus, self.no_ties)

    def __json__(self):
        return vars(self)