-
Notifications
You must be signed in to change notification settings - Fork 0
/
frontend.py
93 lines (66 loc) · 2.84 KB
/
frontend.py
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# This file is part of Optosketch. It is released under the GPL v2 licence.
"""Base classes to instanciate by frontend object. These interfaces are expected
by RecognitionEngine."""
class FrontEnd(object):
"""Base class for frontend communication object. This object is used
by RecognitionEngine to send information to the frontend.
The present class basically does nothing. It is intended as a reminder,
both for humans and computers."""
def add_point(self, x, y, kind=None):
"""Add a geometric point to the schematic
x,y: point coordinates (numbers)
kind: (string) describe point (see also add_line)"""
return None # return GenericPoint object
def add_line(self, line, kind=None):
"""Add a polyline to the schematic
line: coordinates (numpy array)
kind: describe line (string). May be used by the frontend to change
line appearance.
"""
return None # return GenericLine object
def add_baseline(self, ylocation, span):
"""Add a baseline to the schematic.
ylocation: vertical coordinate of baseline. A baseline is supposed
not to have horizontal limits (it extends from leftmost visible
coordinate to rightmost visible coordinate)"""
return None # return Baseline object
def add_lens(self, location, baseline, span, kind):
"""Add a lens to a baseline.
location: horizontal coordinate along baseline.
baseline: frontend object returned by add_baseline().
span: half-size of lens (distance between center and one extreme
point)
kind: "diverging" or "converging" (or "negative"/"positive")
"""
return None # return frontend lens object
def add_ray(self, polyline):
"""Add a ray to a schematic
polyline : numpy array, describing the ray as a polyline"""
return None # return frontend ray object.
class VisibleObject(object):
"""Base class for all frontend objects. """
def remove(self):
"""Permanently remove the object from the schematic"""
pass
class GenericLine(object):
"""A polyline, without any particular meaning. Can be used for partially
recognized symbols."""
def __init__(self, line):
"""line: numpy array, containing line coordinates."""
pass
class GenericPoint(object):
"""A geometric point"""
def __init__(self, x, y):
"""x, y: coordinates"""
self.x = None
self.y = None
class BaseLine(object):
"""Base class for a base line frontend object"""
def __init__(self):
self.ylocation = None
class Lens(object):
"""Base class for a frontend lens object"""
def __init__(self):
self.baseline = None # BaseLine object
self.xlocation = None
self.height = None