blob: 41098922d622a8afa634153afa4b873fbc94c613 (
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
|
from shapely.geometry import Point as ShapelyPoint
from ..utils import Point as InkstitchPoint
class ValidationMessage(object):
'''Holds information about a problem with an element.
Attributes:
name - A short descriptor for the problem, such as "dangling rung"
description - A detailed description of the problem, such as
"One or more rungs does not intersect both rails."
position - An optional position where the problem occurs,
to aid the user in correcting it. type: Point or tuple of (x, y)
steps_to_solve - A list of operations necessary to solve the problem
'''
# Subclasses will fill these in.
name = None
description = None
steps_to_solve = []
def __init__(self, position=None):
if isinstance(position, ShapelyPoint):
position = (position.x, position.y)
self.position = InkstitchPoint(*position)
class ValidationError(ValidationMessage):
"""A problem that will prevent the shape from being embroidered."""
pass
class ValidationWarning(ValidationMessage):
"""A problem that won't prevent a shape from being embroidered.
The user will almost certainly want to fix the warning, but if they
don't, Ink/Stitch will do its best to process the object.
"""
pass
|