blob: af5d3ffd48b4d5dc755a4a319a013942e4353a1c [file] [log] [blame]
Het Satasiya9633d4b2020-08-16 15:31:17 -07001from gi.repository import Gtk
Ravago Jones5f787df2021-01-23 16:26:27 -08002from collections import namedtuple
John Park91e69732019-03-03 13:12:43 -08003
Het Satasiya9633d4b2020-08-16 15:31:17 -07004window = Gtk.Window()
5screen = window.get_screen()
6
7#Set screen size for rest of program.
8SCREEN_SIZE = screen.get_height() / 3
John Park91e69732019-03-03 13:12:43 -08009
John Park91e69732019-03-03 13:12:43 -080010WIDTH_OF_ROBOT = 0.65
11LENGTH_OF_ROBOT = 0.8
12
Het Satasiya9633d4b2020-08-16 15:31:17 -070013# Placeholder value
14ROBOT_SIDE_TO_BALL_CENTER = 0.15
John Park91e69732019-03-03 13:12:43 -080015BALL_RADIUS = 0.165
Het Satasiya9633d4b2020-08-16 15:31:17 -070016
17# Placeholder value
18ROBOT_SIDE_TO_HATCH_PANEL = 0.1
John Park91e69732019-03-03 13:12:43 -080019HATCH_PANEL_WIDTH = 0.4826
20
Ravago Jones5f787df2021-01-23 16:26:27 -080021FieldType = namedtuple(
22 'Field', ['name', 'tags', 'year', 'width', 'length', 'json_name'])
John Parkcf545162020-02-23 20:07:25 -080023
Ravago Jones5f787df2021-01-23 16:26:27 -080024GALACTIC_SEARCH = "Galactic Search"
25ARED = "A Red"
26BRED = "B Red"
27ABLUE = "A Blue"
28BBLUE = "B Blue"
29AUTONAV = "AutoNav"
30BOUNCE = "Bounce"
31SLALOM = "Slalom"
32BARREL = "Barrel"
33
34FIELDS = {
35 "2019 Field":
36 FieldType(
37 "2019 Field",
38 tags=[],
39 year=2019,
40 width=8.258302,
41 length=8.258302,
42 json_name="spline_2019.json"),
43 "2020 Field":
44 FieldType(
45 "2020 Field",
46 tags=[],
47 year=2020,
48 width=15.98295,
49 length=8.21055,
50 json_name="spline_2020.json"),
51 "2021 Galactic Search BRed":
52 FieldType(
53 "2021 Galactic Search BRed",
54 tags=[GALACTIC_SEARCH, BRED],
55 year=2021,
56 width=9.144,
57 length=4.572,
Ravago Jonesab49f432021-03-03 21:18:49 -080058 json_name="spline_red_b.json"),
Ravago Jones5f787df2021-01-23 16:26:27 -080059 "2021 Galactic Search ARed":
60 FieldType(
61 "2021 Galactic Search ARed",
62 tags=[GALACTIC_SEARCH, ARED],
63 year=2021,
64 width=9.144,
65 length=4.572,
Ravago Jonesab49f432021-03-03 21:18:49 -080066 json_name="spline_red_a.json"),
Ravago Jones5f787df2021-01-23 16:26:27 -080067 "2021 Galactic Search BBlue":
68 FieldType(
69 "2021 Galactic Search BBlue",
70 tags=[GALACTIC_SEARCH, BBLUE],
71 year=2021,
72 width=9.144,
73 length=4.572,
74 json_name="spline_blue_b.json"),
75 "2021 Galactic Search ABlue":
76 FieldType(
77 "2021 Galactic Search ABlue",
78 tags=[GALACTIC_SEARCH, ABLUE],
79 year=2021,
80 width=9.144,
81 length=4.572,
82 json_name="spline_blue_a.json"),
83 "2021 AutoNav Barrel":
84 FieldType(
85 "2021 AutoNav Barrel",
86 tags=[AUTONAV, BARREL],
87 year=2021,
88 width=9.144,
89 length=4.572,
90 json_name="autonav_barrel.json"),
91 "2021 AutoNav Slalom":
92 FieldType(
93 "2021 AutoNav Slalom",
94 tags=[AUTONAV, SLALOM],
95 year=2021,
96 width=9.144,
97 length=4.572,
98 json_name="autonav_slalom.json"),
99 "2021 AutoNav Bounce":
100 FieldType(
101 "2021 AutoNav Bounce",
102 tags=[AUTONAV, BOUNCE],
103 year=2021,
104 width=9.144,
105 length=4.572,
106 json_name="autonav_bounce.json"),
107}
108
109FIELD = FIELDS["2021 Galactic Search BRed"]
John Parkcf545162020-02-23 20:07:25 -0800110
James Kuszmaul1c933e02020-03-07 16:17:51 -0800111
112def pxToM(p):
Ravago Jones5f787df2021-01-23 16:26:27 -0800113 return p * FIELD.width / SCREEN_SIZE
John Park91e69732019-03-03 13:12:43 -0800114
James Kuszmaul1c933e02020-03-07 16:17:51 -0800115
116def mToPx(m):
Ravago Jones5f787df2021-01-23 16:26:27 -0800117 return (m * SCREEN_SIZE / FIELD.width)
James Kuszmaul1c933e02020-03-07 16:17:51 -0800118
John Parkcf545162020-02-23 20:07:25 -0800119
120def inToM(i):
James Kuszmaul1c933e02020-03-07 16:17:51 -0800121 return (i * 0.0254)