@johnmorrisdotca/kyogijo-stadiums 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +133 -0
  2. package/NOTICE.md +182 -2
  3. package/README.md +106 -19
  4. package/dist/annotate.js +1 -1
  5. package/dist/arenas-entry.d.ts +4 -0
  6. package/dist/arenas-entry.js +3 -0
  7. package/dist/arenas.d.ts +125 -0
  8. package/dist/arenas.data.d.ts +2 -0
  9. package/dist/arenas.data.js +3763 -0
  10. package/dist/arenas.js +72 -0
  11. package/dist/athletics/describe.d.ts +8 -0
  12. package/dist/athletics/describe.js +41 -0
  13. package/dist/athletics/events.d.ts +17 -0
  14. package/dist/athletics/events.js +48 -0
  15. package/dist/athletics/facilities.d.ts +80 -0
  16. package/dist/athletics/facilities.js +176 -0
  17. package/dist/athletics/infield.d.ts +79 -0
  18. package/dist/athletics/infield.js +166 -0
  19. package/dist/athletics/layout.d.ts +13 -0
  20. package/dist/athletics/layout.js +98 -0
  21. package/dist/athletics/oval.d.ts +57 -0
  22. package/dist/athletics/oval.js +116 -0
  23. package/dist/athletics/plan.d.ts +97 -0
  24. package/dist/athletics/plan.js +355 -0
  25. package/dist/athletics/races.d.ts +102 -0
  26. package/dist/athletics/races.js +355 -0
  27. package/dist/athletics/steeplechase.d.ts +72 -0
  28. package/dist/athletics/steeplechase.js +196 -0
  29. package/dist/athletics/stencil.d.ts +13 -0
  30. package/dist/athletics/stencil.js +85 -0
  31. package/dist/athletics/track.d.ts +54 -0
  32. package/dist/athletics/track.js +105 -0
  33. package/dist/athletics/types.d.ts +77 -0
  34. package/dist/athletics/types.js +1 -0
  35. package/dist/athletics-entry.d.ts +17 -0
  36. package/dist/athletics-entry.js +11 -0
  37. package/dist/athletics.style.d.ts +16 -0
  38. package/dist/athletics.style.js +51 -0
  39. package/dist/atlas-entry.d.ts +6 -2
  40. package/dist/atlas-entry.js +4 -2
  41. package/dist/atlas.d.ts +117 -23
  42. package/dist/atlas.js +197 -12
  43. package/dist/background.js +2 -1
  44. package/dist/budo/describe.d.ts +13 -0
  45. package/dist/budo/describe.js +120 -0
  46. package/dist/budo/dojo.api.d.ts +64 -0
  47. package/dist/budo/dojo.api.js +46 -0
  48. package/dist/budo/dojo.d.ts +72 -0
  49. package/dist/budo/dojo.js +300 -0
  50. package/dist/budo/judo.d.ts +61 -0
  51. package/dist/budo/judo.js +109 -0
  52. package/dist/budo/karate.d.ts +29 -0
  53. package/dist/budo/karate.js +80 -0
  54. package/dist/budo/kendo.d.ts +18 -0
  55. package/dist/budo/kendo.js +44 -0
  56. package/dist/budo/kimarite.d.ts +19 -0
  57. package/dist/budo/kimarite.js +33 -0
  58. package/dist/budo/kit.d.ts +16 -0
  59. package/dist/budo/kit.js +24 -0
  60. package/dist/budo/kyudo.d.ts +28 -0
  61. package/dist/budo/kyudo.js +66 -0
  62. package/dist/budo/looks.d.ts +28 -0
  63. package/dist/budo/looks.js +58 -0
  64. package/dist/budo/parts.d.ts +32 -0
  65. package/dist/budo/parts.js +10 -0
  66. package/dist/budo/plan.d.ts +64 -0
  67. package/dist/budo/plan.js +139 -0
  68. package/dist/budo/room.d.ts +133 -0
  69. package/dist/budo/room.js +111 -0
  70. package/dist/budo/sumo.d.ts +31 -0
  71. package/dist/budo/sumo.js +71 -0
  72. package/dist/budo/tatami.d.ts +55 -0
  73. package/dist/budo/tatami.js +156 -0
  74. package/dist/budo/types.d.ts +192 -0
  75. package/dist/budo/types.js +2 -0
  76. package/dist/budo-entry.d.ts +22 -0
  77. package/dist/budo-entry.js +13 -0
  78. package/dist/budo.board.d.ts +28 -0
  79. package/dist/budo.board.js +81 -0
  80. package/dist/budo.score.d.ts +18 -0
  81. package/dist/budo.score.js +52 -0
  82. package/dist/budo.style.d.ts +6 -0
  83. package/dist/budo.style.js +67 -0
  84. package/dist/charts-entry.d.ts +6 -1
  85. package/dist/charts-entry.js +3 -0
  86. package/dist/charts.athletics.d.ts +183 -0
  87. package/dist/charts.athletics.js +455 -0
  88. package/dist/charts.baseball.js +1 -1
  89. package/dist/charts.curling.heat.d.ts +24 -0
  90. package/dist/charts.curling.heat.js +116 -0
  91. package/dist/charts.curling.js +14 -3
  92. package/dist/charts.js +4 -4
  93. package/dist/charts.pool.d.ts +67 -0
  94. package/dist/charts.pool.js +76 -0
  95. package/dist/charts.skating.d.ts +204 -0
  96. package/dist/charts.skating.js +426 -0
  97. package/dist/charts.soccer.js +3 -3
  98. package/dist/charts.types.d.ts +63 -1
  99. package/dist/colour.d.ts +4 -4
  100. package/dist/colour.js +4 -4
  101. package/dist/court.d.ts +85 -2
  102. package/dist/court.js +102 -7
  103. package/dist/court.more.d.ts +46 -0
  104. package/dist/court.more.js +219 -0
  105. package/dist/courts.style.d.ts +14 -2
  106. package/dist/courts.style.js +51 -4
  107. package/dist/crowd.d.ts +164 -0
  108. package/dist/crowd.draw.d.ts +17 -0
  109. package/dist/crowd.draw.js +204 -0
  110. package/dist/crowd.js +480 -0
  111. package/dist/crowd.park.d.ts +19 -0
  112. package/dist/crowd.park.js +153 -0
  113. package/dist/curling.stats.d.ts +271 -0
  114. package/dist/curling.stats.js +301 -0
  115. package/dist/draw.d.ts +16 -0
  116. package/dist/draw.js +462 -54
  117. package/dist/element-entry.d.ts +3 -1
  118. package/dist/element-entry.js +2 -1
  119. package/dist/element.d.ts +13 -2
  120. package/dist/element.js +79 -4
  121. package/dist/emblems-source.d.ts +50 -0
  122. package/dist/emblems-source.js +56 -0
  123. package/dist/eras.d.ts +3 -1
  124. package/dist/eras.js +8 -3
  125. package/dist/features.js +204 -0
  126. package/dist/field.data.d.ts +16 -0
  127. package/dist/field.data.js +50 -0
  128. package/dist/fields.kit.d.ts +2 -2
  129. package/dist/fields.types.d.ts +24 -4
  130. package/dist/formations.js +18 -7
  131. package/dist/formations.sports.d.ts +8 -0
  132. package/dist/formations.sports.js +251 -0
  133. package/dist/frames.providers.js +71 -8
  134. package/dist/geojson.js +3 -0
  135. package/dist/geometry-entry.d.ts +2 -1
  136. package/dist/geometry-entry.js +2 -1
  137. package/dist/geometry.d.ts +20 -0
  138. package/dist/geometry.js +78 -1
  139. package/dist/grounds.d.ts +4 -0
  140. package/dist/grounds.data.js +12 -0
  141. package/dist/halls.d.ts +65 -0
  142. package/dist/halls.js +122 -0
  143. package/dist/hardwood.d.ts +31 -0
  144. package/dist/hardwood.js +157 -0
  145. package/dist/heat.js +21 -13
  146. package/dist/heat.types.d.ts +5 -0
  147. package/dist/heat.zones.d.ts +4 -2
  148. package/dist/heat.zones.js +207 -7
  149. package/dist/homeside.js +24 -0
  150. package/dist/index.d.ts +30 -4
  151. package/dist/index.js +18 -2
  152. package/dist/layers-entry.d.ts +2 -1
  153. package/dist/layers-entry.js +1 -0
  154. package/dist/layers.d.ts +2 -1
  155. package/dist/layers.env.d.ts +12 -1
  156. package/dist/layers.env.js +36 -4
  157. package/dist/layers.js +32 -13
  158. package/dist/layers.types.d.ts +9 -2
  159. package/dist/leagues/athletics.d.ts +63 -0
  160. package/dist/leagues/athletics.js +87 -0
  161. package/dist/leagues/budo.d.ts +196 -0
  162. package/dist/leagues/budo.js +105 -0
  163. package/dist/leagues/courts.d.ts +269 -4
  164. package/dist/leagues/courts.js +155 -1
  165. package/dist/leagues/hockey.js +41 -19
  166. package/dist/leagues/skating.d.ts +145 -0
  167. package/dist/leagues/skating.js +73 -0
  168. package/dist/leagues/sources.js +41 -0
  169. package/dist/leagues/types.d.ts +1 -1
  170. package/dist/leagues-entry.d.ts +4 -2
  171. package/dist/leagues-entry.js +2 -1
  172. package/dist/leagues.d.ts +17 -4
  173. package/dist/leagues.js +246 -5
  174. package/dist/lineup.codes.d.ts +23 -0
  175. package/dist/lineup.codes.js +122 -0
  176. package/dist/logo.d.ts +25 -0
  177. package/dist/logo.js +47 -0
  178. package/dist/look.d.ts +3 -3
  179. package/dist/look.js +39 -6
  180. package/dist/outline.d.ts +1 -1
  181. package/dist/outline.js +46 -4
  182. package/dist/pageant.d.ts +120 -0
  183. package/dist/pageant.draw.d.ts +21 -0
  184. package/dist/pageant.draw.js +171 -0
  185. package/dist/pageant.js +211 -0
  186. package/dist/pageant.style.d.ts +8 -0
  187. package/dist/pageant.style.js +42 -0
  188. package/dist/png.d.ts +8 -1
  189. package/dist/png.js +21 -1
  190. package/dist/pointer-entry.d.ts +2 -0
  191. package/dist/pointer-entry.js +2 -0
  192. package/dist/pointer.d.ts +113 -0
  193. package/dist/pointer.js +151 -0
  194. package/dist/pool.d.ts +176 -0
  195. package/dist/pool.figures.d.ts +306 -0
  196. package/dist/pool.figures.js +148 -0
  197. package/dist/pool.js +304 -0
  198. package/dist/pool.kit.d.ts +48 -0
  199. package/dist/pool.kit.js +141 -0
  200. package/dist/pool.labels.d.ts +20 -0
  201. package/dist/pool.labels.js +258 -0
  202. package/dist/pool.race.d.ts +65 -0
  203. package/dist/pool.race.js +140 -0
  204. package/dist/pool.replay.d.ts +46 -0
  205. package/dist/pool.replay.js +127 -0
  206. package/dist/pool.section.d.ts +13 -0
  207. package/dist/pool.section.js +83 -0
  208. package/dist/pool.style.d.ts +20 -0
  209. package/dist/pool.style.js +169 -0
  210. package/dist/pool.types.d.ts +145 -0
  211. package/dist/pool.types.js +3 -0
  212. package/dist/pool.words.d.ts +13 -0
  213. package/dist/pool.words.js +101 -0
  214. package/dist/ranges.names.js +53 -3
  215. package/dist/replay-entry.d.ts +3 -0
  216. package/dist/replay-entry.js +2 -0
  217. package/dist/restyle.js +1 -1
  218. package/dist/road.draw.js +3 -2
  219. package/dist/road.js +2 -1
  220. package/dist/road.types.d.ts +3 -0
  221. package/dist/rules.d.ts +138 -0
  222. package/dist/rules.js +511 -0
  223. package/dist/rules.types.d.ts +4 -0
  224. package/dist/rules.types.js +64 -0
  225. package/dist/score.d.ts +3 -0
  226. package/dist/score.js +93 -6
  227. package/dist/sheet.d.ts +3 -0
  228. package/dist/sheet.js +7 -3
  229. package/dist/situation.d.ts +135 -0
  230. package/dist/situation.draw.d.ts +34 -0
  231. package/dist/situation.draw.js +202 -0
  232. package/dist/situation.js +337 -0
  233. package/dist/situation.style.d.ts +2 -0
  234. package/dist/situation.style.js +45 -0
  235. package/dist/situation.types.d.ts +77 -0
  236. package/dist/situation.types.js +3 -0
  237. package/dist/situation.widgets.d.ts +39 -0
  238. package/dist/situation.widgets.js +129 -0
  239. package/dist/skating/describe.d.ts +7 -0
  240. package/dist/skating/describe.js +44 -0
  241. package/dist/skating/events.d.ts +24 -0
  242. package/dist/skating/events.js +47 -0
  243. package/dist/skating/figure.d.ts +24 -0
  244. package/dist/skating/figure.js +37 -0
  245. package/dist/skating/long.d.ts +54 -0
  246. package/dist/skating/long.js +111 -0
  247. package/dist/skating/parts.d.ts +43 -0
  248. package/dist/skating/parts.js +40 -0
  249. package/dist/skating/plan.d.ts +55 -0
  250. package/dist/skating/plan.js +197 -0
  251. package/dist/skating/short.d.ts +47 -0
  252. package/dist/skating/short.js +89 -0
  253. package/dist/skating/track.d.ts +66 -0
  254. package/dist/skating/track.js +94 -0
  255. package/dist/skating/types.d.ts +57 -0
  256. package/dist/skating/types.js +3 -0
  257. package/dist/skating-entry.d.ts +17 -0
  258. package/dist/skating-entry.js +11 -0
  259. package/dist/skating.style.d.ts +4 -0
  260. package/dist/skating.style.js +24 -0
  261. package/dist/strings.d.ts +470 -0
  262. package/dist/strings.js +674 -13
  263. package/dist/style.d.ts +2 -0
  264. package/dist/style.js +19 -2
  265. package/dist/surfaces/artistic.d.ts +9 -0
  266. package/dist/surfaces/artistic.js +94 -0
  267. package/dist/surfaces/athletics.d.ts +16 -0
  268. package/dist/surfaces/athletics.js +132 -0
  269. package/dist/surfaces/baseball.js +17 -0
  270. package/dist/surfaces/basketball.floor.d.ts +27 -0
  271. package/dist/surfaces/basketball.floor.js +83 -0
  272. package/dist/surfaces/basketball.gear.d.ts +27 -0
  273. package/dist/surfaces/basketball.gear.js +90 -0
  274. package/dist/surfaces/basketball.js +44 -22
  275. package/dist/surfaces/budo.d.ts +6 -0
  276. package/dist/surfaces/budo.js +104 -0
  277. package/dist/surfaces/curling.d.ts +16 -0
  278. package/dist/surfaces/curling.fold.d.ts +67 -0
  279. package/dist/surfaces/curling.fold.js +107 -0
  280. package/dist/surfaces/curling.js +37 -3
  281. package/dist/surfaces/dive.d.ts +9 -0
  282. package/dist/surfaces/dive.js +128 -0
  283. package/dist/surfaces/field.d.ts +7 -2
  284. package/dist/surfaces/field.js +15 -9
  285. package/dist/surfaces/football.js +7 -0
  286. package/dist/surfaces/hockey.js +4 -2
  287. package/dist/surfaces/net.d.ts +2 -1
  288. package/dist/surfaces/net.js +160 -15
  289. package/dist/surfaces/polo.d.ts +12 -0
  290. package/dist/surfaces/polo.js +159 -0
  291. package/dist/surfaces/pool.d.ts +27 -0
  292. package/dist/surfaces/pool.js +198 -0
  293. package/dist/surfaces/skating.d.ts +6 -0
  294. package/dist/surfaces/skating.js +62 -0
  295. package/dist/surfaces/soccer.js +2 -1
  296. package/dist/surfaces/surface.d.ts +76 -0
  297. package/dist/surfaces/venue.d.ts +15 -0
  298. package/dist/surfaces/venue.js +95 -0
  299. package/dist/target-entry.d.ts +2 -0
  300. package/dist/target-entry.js +2 -0
  301. package/dist/target.d.ts +200 -0
  302. package/dist/target.js +525 -0
  303. package/dist/team.common.d.ts +1 -1
  304. package/dist/team.common.js +3 -3
  305. package/dist/team.formation.d.ts +3 -1
  306. package/dist/team.formation.js +3 -3
  307. package/dist/team.layers.d.ts +2 -2
  308. package/dist/team.layers.js +4 -1
  309. package/dist/team.lineup.d.ts +27 -0
  310. package/dist/team.lineup.js +207 -0
  311. package/dist/team.network.js +6 -5
  312. package/dist/team.shape.js +5 -5
  313. package/dist/team.types.d.ts +40 -1
  314. package/dist/tenants.d.ts +77 -0
  315. package/dist/tenants.data.d.ts +8 -0
  316. package/dist/tenants.data.js +1793 -0
  317. package/dist/tenants.js +46 -0
  318. package/dist/turn-entry.d.ts +12 -0
  319. package/dist/turn-entry.js +7 -0
  320. package/dist/turn.camera.d.ts +116 -0
  321. package/dist/turn.camera.js +184 -0
  322. package/dist/turn.dom.d.ts +40 -0
  323. package/dist/turn.dom.js +353 -0
  324. package/dist/turn.kit.d.ts +86 -0
  325. package/dist/turn.kit.js +110 -0
  326. package/dist/turn.markup.d.ts +48 -0
  327. package/dist/turn.markup.js +108 -0
  328. package/dist/turn.model.d.ts +78 -0
  329. package/dist/turn.model.js +91 -0
  330. package/dist/turn.style.d.ts +5 -0
  331. package/dist/turn.style.js +56 -0
  332. package/dist/types.d.ts +221 -20
  333. package/dist/units.d.ts +1 -1
  334. package/dist/units.js +22 -1
  335. package/dist/uprights.board.d.ts +17 -0
  336. package/dist/uprights.board.js +59 -0
  337. package/dist/uprights.budo.d.ts +17 -0
  338. package/dist/uprights.budo.js +87 -0
  339. package/dist/uprights.d.ts +37 -0
  340. package/dist/uprights.fields.d.ts +32 -0
  341. package/dist/uprights.fields.js +172 -0
  342. package/dist/uprights.goal.d.ts +49 -0
  343. package/dist/uprights.goal.js +69 -0
  344. package/dist/uprights.js +169 -0
  345. package/dist/uprights.more.d.ts +7 -0
  346. package/dist/uprights.more.js +183 -0
  347. package/dist/uprights.net.d.ts +12 -0
  348. package/dist/uprights.net.js +109 -0
  349. package/dist/uprights.netkit.d.ts +28 -0
  350. package/dist/uprights.netkit.js +67 -0
  351. package/dist/uprights.pools.d.ts +8 -0
  352. package/dist/uprights.pools.js +190 -0
  353. package/dist/uprights.rinks.d.ts +27 -0
  354. package/dist/uprights.rinks.js +106 -0
  355. package/dist/uprights.track.d.ts +50 -0
  356. package/dist/uprights.track.js +246 -0
  357. package/dist/version.d.ts +1 -1
  358. package/dist/version.js +1 -1
  359. package/dist/zones-entry.d.ts +2 -0
  360. package/dist/zones-entry.js +2 -0
  361. package/package.json +56 -3
package/dist/pool.d.ts ADDED
@@ -0,0 +1,176 @@
1
+ import { type RacePlan } from "./pool.race.ts";
2
+ import type { DeckLook, PoolKind, PoolLook, PoolSport, PoolStyle, VenueOptions, VenuePool } from "./pool.types.ts";
3
+ import type { SurfaceOptions } from "./types.ts";
4
+ /** The sports of the pool, in the order a menu lists them. */
5
+ export declare const POOL_SPORTS: readonly PoolSport[];
6
+ /** True for a sport whose surface is a pool. */
7
+ export declare const isPoolSport: (sport: unknown) => sport is PoolSport;
8
+ /** Metres as feet, the unit a drawing is made in. */
9
+ export declare const feet: (metres: number) => number;
10
+ /** The colours of the ropes of a pool, by name. */
11
+ export type RopeColour = "green" | "blue" | "yellow";
12
+ /** A lane rope: where it lies across the pool (metres from the top wall) and its colour. */
13
+ export interface Rope {
14
+ y: number;
15
+ colour: RopeColour;
16
+ }
17
+ /** A lane: its number, the middle of its marking on the floor, and its two edges, in metres from the top wall. */
18
+ export interface LanePlan {
19
+ number: number;
20
+ y: number;
21
+ top: number;
22
+ bottom: number;
23
+ }
24
+ /** The look and the extras every pool has. */
25
+ export interface Common {
26
+ look: PoolLook;
27
+ deck: DeckLook;
28
+ seed: number;
29
+ }
30
+ /** A swimming pool to draw. */
31
+ export interface SwimPlan extends Common {
32
+ sport: "swimming";
33
+ kind: PoolKind;
34
+ course: "long" | "short";
35
+ /** The length between the touch panels and the width across the lanes and the spaces, in metres. */
36
+ length: number;
37
+ width: number;
38
+ /** The lanes from the top of the drawing down: lane 1 (or 0) is at the bottom, on the right when one faces the course from the start (Part Two 15.8.6). */
39
+ lanes: LanePlan[];
40
+ /** The metres of space outside the first and the last lane. */
41
+ space: number;
42
+ ropes: Rope[];
43
+ blocks: boolean;
44
+ pads: boolean;
45
+ flags: boolean;
46
+ falseStart: boolean;
47
+ depth: number;
48
+ section: {
49
+ exaggerate: number;
50
+ } | undefined;
51
+ race: RacePlan | undefined;
52
+ }
53
+ /** A water polo field to draw. */
54
+ export interface PoloPlan extends Common {
55
+ sport: "waterpolo";
56
+ length: number;
57
+ width: number;
58
+ /** The side of the official table, as the field lies wide. */
59
+ table: "top" | "bottom";
60
+ }
61
+ /** One board of a diving well: a springboard or a platform, with its plummet (metres from the wall, then across from the top) and its size. */
62
+ export interface Board {
63
+ kind: "springboard" | "platform";
64
+ height: number;
65
+ /** The plummet: x from the pool wall the boards stand at, y across from the top wall. */
66
+ x: number;
67
+ y: number;
68
+ length: number;
69
+ width: number;
70
+ }
71
+ /** A diving well to draw. */
72
+ export interface DivePlan extends Common {
73
+ sport: "diving";
74
+ length: number;
75
+ width: number;
76
+ boards: Board[];
77
+ /** The metres behind the wall that the stands reach, for the view. */
78
+ behind: number;
79
+ }
80
+ /** An artistic swimming area to draw. */
81
+ export interface ArtisticPlan extends Common {
82
+ sport: "artisticswimming";
83
+ area: "olympic" | "minimum";
84
+ length: number;
85
+ width: number;
86
+ /** For the minimum area: the deep part, in metres from the left wall and the top wall, and its size. */
87
+ deep: {
88
+ x: number;
89
+ y: number;
90
+ length: number;
91
+ width: number;
92
+ } | undefined;
93
+ }
94
+ export type PoolPlan = SwimPlan | PoloPlan | DivePlan | ArtisticPlan;
95
+ /** The size of the water of a pool in metres: `length` along the drawing and `width` across it. */
96
+ export declare const poolSize: (plan: PoolPlan) => {
97
+ length: number;
98
+ width: number;
99
+ };
100
+ /** The look the options ask for. @throws Error for a look or a deck the pool does not have. */
101
+ export declare function commonOf(style: PoolStyle): Common;
102
+ /** The colour of rope `i` of `n + 1`: green outside, yellow round the middle, blue between (Part Two 15.7.6.1 and 15.7.6.3 for eight lanes; 15.7.6.2 for ten). */
103
+ export declare function ropeColour(i: number, lanes: number): RopeColour;
104
+ /** The width of a swimming pool of this length and this many lanes, the space outside the first and the last lane, and the width of those two lanes. */
105
+ export declare function laneWidths(course: "long" | "short", lanes: number, temporary: boolean): {
106
+ width: number;
107
+ space: number;
108
+ edge: number;
109
+ };
110
+ /** The lanes and the ropes of a pool of this width, from the top. */
111
+ export declare function lanesOf(width: number, lanes: number, space: number): {
112
+ lanes: LanePlan[];
113
+ ropes: Rope[];
114
+ };
115
+ /**
116
+ * The swimming pool the options ask for: `pool.course` (`long`, 50 m, or `short`, 25 m) and `pool.lanes` (8 by default). The width is the rules' for that many lanes: 25 m for eight in a 50 m
117
+ * pool (Part Two 15.6.1), 25 m for ten with lanes 0 and 9 of 2.4 m (Part Two 15.6.2.1), or 26 m for a temporary pool (Part Two 15.6.2.2), and lanes of 2.5 m with spaces of 0.5 m for the other pools.
118
+ * @throws RangeError for a lane count that is not 1 to 10, @throws Error for an unknown look.
119
+ */
120
+ export declare function swimPlan(o: Pick<SurfaceOptions, "pool" | "sport">, defaults?: Partial<Pick<VenuePool, "course" | "kind" | "lanes">>): SwimPlan;
121
+ /** The water polo field the options ask for: 25 by 20 m (Part Six 20.2.2). */
122
+ export declare function poloPlan(o: Pick<SurfaceOptions, "pool">): PoloPlan;
123
+ /**
124
+ * The diving well the options ask for. The springboards (1 m and 3 m, `pool.boards` of each, 2 by default so that a synchronised pair stands side by side) stand along the left wall, 3 m boards outside, each the preferred
125
+ * distance (Part Four, Appendix 2, B and C) from the wall and from the next; the platforms (5, 7.5 and 10 m by default) stand towards the right wall, the tallest the distance B from it and each lower one the distance C of the
126
+ * platform above it from that one. The well is 25 m across, wider if the boards need more room than that.
127
+ * @throws RangeError for a platform the rules do not have or a count of boards that is not 1 to 4.
128
+ */
129
+ export declare function divePlan(o: Pick<SurfaceOptions, "pool">): DivePlan;
130
+ /** The artistic swimming area the options ask for: 30 by 20 m for the Olympic Games and the World Championships, or the least, 25 by 15 m with a 12 by 12 m deep part (Part Seven 12.2.2, 12.1.1). */
131
+ export declare function artisticPlan(o: Pick<SurfaceOptions, "pool">): ArtisticPlan;
132
+ /** The pool the options ask for, of the sport's kind. */
133
+ export declare function poolPlan(o: Pick<SurfaceOptions, "sport" | "pool">): PoolPlan;
134
+ /** The hall of a natatorium asked for, with `natatorium` standing for the usual three pools. */
135
+ export declare function venueOf(style: PoolStyle): VenueOptions | undefined;
136
+ /** What each plan reaches beyond its water, in metres on each side: the blocks and flag standards, the platforms and table, the stands behind the diving boards, the judges' platform. */
137
+ export declare function reachOf(plan: PoolPlan): {
138
+ left: number;
139
+ right: number;
140
+ top: number;
141
+ bottom: number;
142
+ };
143
+ /** One pool of a hall: its plan and where its water's top left corner is, in metres from the corner of the water of the whole hall. */
144
+ export interface VenueItem {
145
+ pool: VenuePool;
146
+ plan: PoolPlan;
147
+ x: number;
148
+ y: number;
149
+ }
150
+ /** A hall laid out: its pools, and the size of the box round their water, in metres. */
151
+ export interface VenueLayout {
152
+ items: VenueItem[];
153
+ width: number;
154
+ height: number;
155
+ apart: number;
156
+ labels: boolean;
157
+ seating: boolean;
158
+ /** How far the pools' fixtures reach beyond the box, in metres. */
159
+ reach: {
160
+ left: number;
161
+ right: number;
162
+ top: number;
163
+ bottom: number;
164
+ };
165
+ }
166
+ /**
167
+ * The pools of a hall (`pool.venue`) laid out to scale. A pool with an `x` and a `y` stands there; the others are set in rows, left to right, each `apart` metres (10, the distance the rules prefer between
168
+ * a swimming pool and a diving well, Part Two 15.15.1; never less than the 8 they require) from the one before, and a new row when a row would be longer than 125 m.
169
+ * @throws RangeError when two pools are nearer each other than `apart`, for the pools given places.
170
+ */
171
+ export declare function venueLayout(style: PoolStyle): VenueLayout | undefined;
172
+ /** The box round the water the options draw, in feet: the pool's, or the whole hall's. */
173
+ export declare function poolBox(o: Pick<SurfaceOptions, "sport" | "pool">): {
174
+ w: number;
175
+ h: number;
176
+ };
@@ -0,0 +1,306 @@
1
+ /**
2
+ * The swimming pool (Part Two, Article 15). Lengths are metres; widths run across the course and depths down. `lane` is the width of a lane and the distance between the centres of two (Part Two 15.13.2,
3
+ * 15.6.1); a 10-lane pool for the World Championships has lanes 0 and 9 2.4 m wide with spaces of 0.1 m outside them in a permanent pool (Part Two 15.6.2.1), or all lanes 2.5 m
4
+ * with spaces of 0.5 m (a 26 m wide temporary pool, Part Two 15.6.2.2).
5
+ */
6
+ export declare const SWIMMING: {
7
+ /** The lengths between the touch panels: 50.000 m and 25.000 m (Part Two 15.1.1.1 and 15.1.2.1, was FR 2.1.1 and FR 2.1.2; June 2025: CR 16.1.1.1 and 16.1.1.2). */
8
+ readonly longCourse: 50;
9
+ readonly shortCourse: 25;
10
+ /** A lane is at least 2.5 m wide (Part Two 15.6.3, was FR 2.5; June 2025: CR 16.1.6); the first and the last may be 2.4 m wide, in the World Championships' permanent pool (Part Two 15.6.2.1) and at all other competitions (15.6.3). */
11
+ readonly lane: 2.5;
12
+ readonly edgeLane: 2.4;
13
+ /** The spaces outside the first and the last lane: Olympic Games, 2.5 m each side (Part Two 15.6.1); World Championships' permanent pool 0.1 m (15.6.2.1), temporary pool 0.5 m (15.6.2.2). */
14
+ readonly spaceOlympic: 2.5;
15
+ readonly spacePermanentWorld: 0.1;
16
+ readonly spaceTemporaryWorld: 0.5;
17
+ /** The space of a pool of the minimum standard: the 25 by 21 m, 8-lane pool of Appendix 6 of Part Two (Article 17.6) is 8 lanes of 2.5 m and two spaces, which makes the spaces 0.5 m (arithmetic, not a stated figure). */
18
+ readonly spaceMinimum: 0.5;
19
+ /** Lane ropes: floats end to end, "between 0.1 metres (at maximum) and 0.15 metres (at minimum)" across (Part Two 15.7.4: unverified, the sentence contradicts itself; June 2025 edition value: 0.10 to 0.15 m, 0.15 m at the Olympic Games and the World Championships, CR 16.1.7.1 and 16.2.7.1; 0.15 m is drawn). */
20
+ readonly floatDiameter: 0.15;
21
+ /** The floats within 5.0 m of each end wall are red (Part Two 15.7.7); those at 15 m from each end wall, and at 25 m in a 50 m pool, are distinct in colour (Part Two 15.7.9 and 15.7.10). */
22
+ readonly redEnds: 5;
23
+ readonly markAt15: 15;
24
+ readonly markAt25: 25;
25
+ /** How long a run of floats of a distinct colour is drawn: the rules do not say, a run of four floats is ours (drawn). */
26
+ readonly markRun: 0.6;
27
+ /** Lane markings on the floor: 0.2 to 0.3 m wide, 46.0 m long in a 50 m pool and 21.0 m in a 25 m one, ending 2.0 m from the end wall in a cross line 1.0 m long (Part Two 15.13.1 and 15.13.2, was FR 2.14; June 2025: CR 16.2.15). */
28
+ readonly laneLine: {
29
+ readonly width: 0.25;
30
+ readonly longLength: 46;
31
+ readonly shortLength: 21;
32
+ readonly endGap: 2;
33
+ readonly cross: 1;
34
+ };
35
+ /** Target lines on the end walls: the width of the lane line, down the wall to 3 m at most, with a cross line 0.5 m long 0.3 m below the water (Part Two 15.13.3); cross lines 0.5 m long at 15 m from each end (Part Two 15.13.4, pools built from 1 January 2006). */
36
+ readonly target: {
37
+ readonly width: 0.25;
38
+ readonly maxDepth: 3;
39
+ readonly cross: 0.5;
40
+ readonly crossBelowSurface: 0.3;
41
+ readonly crossAt15: 0.5;
42
+ };
43
+ /** The starting platform: at least 0.5 m by 0.5 m, 0.5 to 0.75 m above the water (Part Two 15.8.1). The June 2025 edition asked 0.5 by 0.6 m at the Olympic Games and the World Championships (CR 16.2.8); February 2026 asks at least 0.5 by 0.5 m everywhere, which is what is drawn. */
44
+ readonly block: {
45
+ readonly width: 0.5;
46
+ readonly length: 0.5;
47
+ readonly heightLeast: 0.5;
48
+ readonly heightMost: 0.75;
49
+ readonly height: 0.7;
50
+ };
51
+ /** Touch panels: 2.4 m wide and 0.9 m high, 0.3 m above the water and 0.6 m below it, with a 0.025 m black border (Part Two 15.16.4.1, 15.16.4.2 and 15.16.4.5; June 2025: CR 16.3.4). */
52
+ readonly pad: {
53
+ readonly width: 2.4;
54
+ readonly height: 0.9;
55
+ readonly above: 0.3;
56
+ readonly below: 0.6;
57
+ readonly border: 0.025;
58
+ };
59
+ /** Backstroke turn flags: flagged ropes 1.8 m above the water on standards 5.0 m from each end wall; a flag is a triangle of 0.40 m sides, 0.25 m apart (Part Two 15.9.1 and 15.9.2, was FR 2.9; June 2025: CR 16.1.10). */
60
+ readonly flags: {
61
+ readonly at: 5;
62
+ readonly height: 1.8;
63
+ readonly side: 0.4;
64
+ readonly apart: 0.25;
65
+ };
66
+ /** The false start rope: not less than 1.2 m above the water, on standards 15.0 m in front of the starting end (was FR 2.11; June 2025 edition value, CR 16.1.12). Unverified: the February 2026 text has no clause for it (Part Two Article 15 has false start detection equipment, 15.16.3.4, and no rope). */
67
+ readonly falseStart: {
68
+ readonly at: 15;
69
+ readonly height: 1.2;
70
+ };
71
+ /** Depth: 1.35 m from 1.0 to at least 6.0 m from an end wall that has starting platforms, 1.0 m elsewhere (Part Two 15.4.3 and 15.8.4; June 2025: CR 16.1.4); the Olympic Games and the World Championships 2.5 m (15.4.1), the 25 m World Championships 2.0 m (2.5 m preferred, 15.4.2); a pool shared with artistic swimming 3 m is the June 2025 edition value (CR 16.2.4) and unverified: Part Two Article 15.4 no longer says it (Part Seven 12.1.1 and 12.2.2 ask 3.0 m for the artistic swimming area). */
72
+ readonly depth: {
73
+ readonly least: 1;
74
+ readonly atBlocks: 1.35;
75
+ readonly blocksFrom: 1;
76
+ readonly blocksTo: 6;
77
+ readonly olympic: 2.5;
78
+ readonly shortWorld: 2;
79
+ readonly shared: 3;
80
+ };
81
+ /** The wall: a slip-resistant surface 0.8 m below the water (Part Two 15.5.1); a rest ledge not less than 1.2 m below the surface, 0.1 to 0.15 m wide (Part Two 15.5.2). */
82
+ readonly wall: {
83
+ readonly slipResistant: 0.8;
84
+ readonly ledgeDepth: 1.2;
85
+ };
86
+ /** The distance between a swimming pool and a diving well in the same area: 8 m, 10 m preferred, in pools built from 1 January 2014 (Part Two 15.15.1; June 2025: CR 16.2.17). */
87
+ readonly poolsApart: 8;
88
+ readonly poolsApartPreferred: 10;
89
+ /** The deck beyond the pool, our figure: the rules do not set one (drawn). */
90
+ readonly deck: 2.5;
91
+ };
92
+ /** The widths of the pools the rules draw, as Appendices 1 to 9 of Part Two (Article 17) name them (the pool's width by its length and lanes): 50 by 25 (8 or 10 lanes), 50 by 26 (10 lanes, temporary), 25 by 21 (8), 25 by 25 and 25 by 26 (10). */
93
+ export declare const SWIMMING_WIDTHS: {
94
+ readonly permanent: 25;
95
+ readonly temporary: 26;
96
+ readonly shortEight: 21;
97
+ };
98
+ /**
99
+ * The water polo field of play, in metres (Part Six, Articles 20 and 21). The field is 25.00 by 20.00 m, the distance between the two goal lines and between the two side lines (Part Six 20.2.2.1 and 20.2.2.2);
100
+ * the water at least 2.00 m deep everywhere (Part Six 20.2.4 and 20.8.2.1). The June 2025 edition asked 1.80 m, and 2.00 m at the Olympic Games and the World Championships (CR 18.1.3 and 18.2.2).
101
+ */
102
+ export declare const WATER_POLO: {
103
+ readonly length: 25;
104
+ readonly width: 20;
105
+ readonly depth: 2;
106
+ /** The marks on both sides of the field: white for the goal line and the half distance line, red 2 m from each goal line, yellow 6 m from it, and a red mark 5 m from it for the penalty throw (Part Six 21.7.1.1 to 21.7.1.5; June 2025: Appendix 4, 20.4.1.5). */
107
+ readonly twoMetre: 2;
108
+ readonly fiveMetre: 5;
109
+ readonly sixMetre: 6;
110
+ /** The sides of the field are marked red from the goal line to 2 m, yellow from 2 to 6 m and green from 6 m to the half distance line, which is white (Part Six 21.7.2.2 and 21.7.1.5; June 2025: Appendix 4, 20.4.1.5 and CR 18.3.1). */
111
+ readonly half: 12.5;
112
+ /** Boundary lines 2 m long from the goal posts, marked red, make the goal areas (Part Six 20.4 and 21.7.2.1.2; June 2025: Appendix 4, 20.4.1.2). */
113
+ readonly goalAreaLine: 2;
114
+ /** The goal: posts and crossbar of 75 to 80 mm square, white (Part Six 21.6.2.2 and 21.6.2.4; 80 mm is drawn); 3.0 m between the inner sides of the posts (21.6.3.2); the crossbar's underside 0.9 m above the water (21.6.4.2); a goal at least 0.30 m deep from the goal line to the rear of the net (21.6.5). */
115
+ readonly goal: {
116
+ readonly width: 3;
117
+ readonly post: 0.08;
118
+ readonly crossbarHeight: 0.9;
119
+ readonly netClear: 0.3;
120
+ };
121
+ /** The excluded players' re-entry area, 2.0 m wide along the goal line and 1.0 to 1.1 m long along the side line (Part Six 20.7.2; 1.08 m is drawn, inside the range), behind the goal line on the side of the team benches, opposite the official table (20.7.1 and 21.11); June 2025: CR 18.3.4 and Appendix 4, 20.4.1.6. */
122
+ readonly reEntry: {
123
+ readonly length: 2;
124
+ readonly depth: 1.08;
125
+ readonly fromCorner: 2;
126
+ };
127
+ /** The area for flying substitutions, not less than 0.50 m wide, on the side of the team benches, from the goal line in front of the bench to the halfway line (Part Six 20.6.1 to 20.6.3; June 2025: CR 18.1.8). */
128
+ readonly substitution: 0.5;
129
+ /** The referees' platforms: 1 m wide and 0.70 m above the water, on both sides of the field, colour coded like the lane ropes (Part Six 21.9.3.1 to 21.9.3.3; June 2025: CR 18.3.2). */
130
+ readonly platform: {
131
+ readonly width: 1;
132
+ readonly height: 0.7;
133
+ };
134
+ /** The lane ropes of a water polo field are 0.06 to 0.12 m across, at least 0.10 m at the Olympic Games and the World Championships (Part Six 21.7.4.2; June 2025: CR 18.1.7 and 18.2.6); 0.10 m is drawn. */
135
+ readonly rope: 0.1;
136
+ /** The deck beyond the pool, ours (drawn). */
137
+ readonly deck: 3;
138
+ /** The official table: the secretariat sits at a table behind the referees' platform (Part Six 21.10.1; June 2025: CR 18.3.6); its size is ours (drawn). */
139
+ readonly table: {
140
+ readonly length: 6;
141
+ readonly depth: 1.2;
142
+ };
143
+ };
144
+ /** How many lines cross a diving well for the Olympic Games and the World Championships (Part Four 15.6.3.1; June 2025: CR 13.2.7). A count, so it is kept out of the table of lengths. */
145
+ export declare const DIVING_LINES = 3;
146
+ /**
147
+ * Diving, in metres (Part Four of the Competition Regulations, Article 15 and Appendix 2, "Diving facility specifications", which is Article 17.2 of Part Four). A springboard is 4.88 m long and 0.50 m wide
148
+ * (Part Four 15.3.2), 1 m or 3 m above the water (Appendix 2); a platform of the length, width and height of the table (Part Four 15.4.3 and Appendix 2). Every distance is measured from the plummet, the vertical line
149
+ * through the middle of the front edge of the springboard or platform (Part Four 15.1.1). `A` is from the plummet back to the pool wall (for a platform on concrete: how far its front edge projects beyond the wall, Part Four 15.4.9),
150
+ * `B` to the pool wall at the side, `C` to the next plummet (the platforms' widths: Part Four 15.2.2), `D` to the wall ahead, `H` the depth of water at the plummet; each as [minimum, preferred]. A depth of 5 m under the boards is
151
+ * what a pool built after 1 January 2025 should have if possible (Part Four 15.1.2.1). The minima of `H` are the February 2026 table's (3.40, 3.70, 3.20, 3.50, 3.70, 4.10 and 4.50 m, with 5.00 m preferred everywhere); the June 2025 edition
152
+ * had 3.50, 3.80, 3.30, 3.60, 3.80, 4.30 and 5.00 m ("Table Diving Facilities"). The other figures of the table, A to D, are the same in both editions.
153
+ */
154
+ export declare const DIVING: {
155
+ readonly springboard: {
156
+ readonly length: 4.88;
157
+ readonly width: 0.5;
158
+ };
159
+ /** Each platform: length, width (minimum, preferred) and height above the water. The 5, 7.5 and 10 m platforms have one width. */
160
+ readonly platforms: {
161
+ readonly "1": {
162
+ readonly length: 5;
163
+ readonly width: readonly [1, 2.9];
164
+ readonly height: 1;
165
+ };
166
+ readonly "3": {
167
+ readonly length: 5;
168
+ readonly width: readonly [1, 2];
169
+ readonly height: 3;
170
+ };
171
+ readonly "5": {
172
+ readonly length: 6;
173
+ readonly width: readonly [2.9, 2.9];
174
+ readonly height: 5;
175
+ };
176
+ readonly "7.5": {
177
+ readonly length: 6;
178
+ readonly width: readonly [2, 2];
179
+ readonly height: 7.5;
180
+ };
181
+ readonly "10": {
182
+ readonly length: 6;
183
+ readonly width: readonly [3, 3];
184
+ readonly height: 10;
185
+ };
186
+ };
187
+ /** A, from the plummet back to the pool wall: springboards at 2.22 m for a concrete platform (the board then reaches 2.22 m beyond the wall), platforms 0.75 m (1 m), 1.25 m (3, 5 and 7.5 m) and 1.50 m (10 m). */
188
+ readonly A: {
189
+ readonly springboard1: readonly [2.22, 2.22];
190
+ readonly springboard3: readonly [2.22, 2.22];
191
+ readonly platform1: readonly [0.75, 0.75];
192
+ readonly platform3: readonly [1.25, 1.25];
193
+ readonly platform5: readonly [1.25, 1.25];
194
+ readonly platform75: readonly [1.25, 1.25];
195
+ readonly platform10: readonly [1.5, 1.5];
196
+ };
197
+ /** B, from the plummet to the pool wall at the side. */
198
+ readonly B: {
199
+ readonly springboard1: readonly [2.5, 2.5];
200
+ readonly springboard3: readonly [3.5, 3.5];
201
+ readonly platform1: readonly [2.5, 2.5];
202
+ readonly platform3: readonly [3, 3.6];
203
+ readonly platform5: readonly [4, 4.5];
204
+ readonly platform75: readonly [4.5, 4.75];
205
+ readonly platform10: readonly [5.75, 5.75];
206
+ };
207
+ /** C, from the plummet to the adjacent one: 1 m boards 2.00 apart, 3 m boards 2.20 (2.60 preferred) from a 3 m or a 1 m board; platforms 1.85 (2.15), 2.20 (2.35), 2.85, 2.75 and 3.00. */
208
+ readonly C: {
209
+ readonly springboard1: readonly [2, 2];
210
+ readonly springboard3: readonly [2.2, 2.6];
211
+ readonly platform1: readonly [1.85, 2.15];
212
+ readonly platform3: readonly [2.2, 2.35];
213
+ readonly platform5: readonly [2.85, 2.85];
214
+ readonly platform75: readonly [2.75, 2.75];
215
+ readonly platform10: readonly [3, 3];
216
+ };
217
+ /** D, from the plummet to the pool wall ahead: 9.00 (1 m), 10.25 (3 m), 8.00, 9.50, 10.25, 11.00 and 13.50 m for the platforms. */
218
+ readonly D: {
219
+ readonly springboard1: readonly [9, 9];
220
+ readonly springboard3: readonly [10.25, 10.25];
221
+ readonly platform1: readonly [8, 8];
222
+ readonly platform3: readonly [9.5, 9.5];
223
+ readonly platform5: readonly [10.25, 10.25];
224
+ readonly platform75: readonly [11, 11];
225
+ readonly platform10: readonly [13.5, 13.5];
226
+ };
227
+ /** H, the depth of water at the plummet, minimum and preferred: February 2026 gives 3.40 m (1 m board), 3.70 (3 m), 3.20 (1 m platform), 3.50 (3 m), 3.70 (5 m), 4.10 (7.5 m) and 4.50 m (10 m), with 5.00 m preferred (Part Four, Appendix 2); the June 2025 edition's minima were 3.50, 3.80, 3.30, 3.60, 3.80, 4.30 and 5.00 m. */
228
+ readonly H: {
229
+ readonly springboard1: readonly [3.4, 5];
230
+ readonly springboard3: readonly [3.7, 5];
231
+ readonly platform1: readonly [3.2, 5];
232
+ readonly platform3: readonly [3.5, 5];
233
+ readonly platform5: readonly [3.7, 5];
234
+ readonly platform75: readonly [4.1, 5];
235
+ readonly platform10: readonly [4.5, 5];
236
+ };
237
+ /** The depth of water is never less than 1.8 m anywhere in the diving pool (Part Four 15.1.3; June 2025: 13.1.3.9); 5 m under the boards for facilities built after 1 January 2025, if possible (Part Four 15.1.2.1). The June 2025 edition also made 5 m the rule at the Olympic Games and the World Championships (13.1.3.1); unverified in February 2026, whose Article 15.6 only applies Articles 15.2 to 15.5 there, with the minima of Appendix 2. */
238
+ readonly depthLeast: 1.8;
239
+ readonly depthBoards: 5;
240
+ /** The least distance between adjacent platforms: 0.25 m (Part Four, Appendix 2, notes). */
241
+ readonly platformsApart: 0.25;
242
+ /** Lane markings of a diving well for the Olympic Games and the World Championships: three lines across the well, 21.0 m long in a 25 m wide well, 2.5 m apart, the first directly under the plummet of the 3 m springboard (Part Four 15.6.3.1, 15.6.3.1.1 and 15.6.3.1.2, with the dimensions of Part Two 15.13.1; June 2025: 13.2.7). */
243
+ readonly lines: {
244
+ readonly length: 21;
245
+ readonly apart: 2.5;
246
+ readonly width: 0.25;
247
+ };
248
+ /** The pool: 25 m across, as the swimming pool's width (Part Four 15.6.3.1 asks for lines running the width of the well, with the dimensions of the swimming pool's lane markings), and the length ahead of the boards, ours; the rules set the clearances above, not the size of the well (drawn). */
249
+ readonly well: {
250
+ readonly width: 25;
251
+ readonly length: 21;
252
+ };
253
+ /** Judges sit side by side in a straight line along both sides of the pool (Part Four 15.5.1.1); the June 2025 edition (13.1.7.1.3) put them in line with or behind the front of the boards, never ahead of the plummet line. Unverified: Part Four 15.5.1.4 of February 2026 reads "No Judge may be seated alongside or behind the direct line of the front edge", which is the opposite on its face and is taken as a slip for "ahead of". */
254
+ readonly judges: {
255
+ readonly seat: 0.9;
256
+ };
257
+ };
258
+ /**
259
+ * Artistic swimming, in metres (Part Seven, Article 12). The routine area for the Olympic Games and the World Championships is at least 30.0 by 20.0 m, 3.0 m deep (Part Seven 12.2.2); elsewhere at least
260
+ * 15 by 25 m, of which 12 by 12 m is at least 3.0 m deep and the rest at least 2.0 m (Part Seven 12.1.1). The starting platform at least 0.7 m high at the Olympic Games and the World Championships, 1.0 m recommended (Part Seven 12.2.4),
261
+ * 0.5 m least elsewhere, 1.0 m recommended (12.1.6); the Technical Officials' platform (the judges') at least 0.6 m high and not more than 2 m from the pool's edge (12.2.5). A practice warm-up pool at least 25 by 25 m or 30 by 20 m,
262
+ * 3 m deep (12.2.6). June 2025: Article 27, 27.2.2 and 27.2.3, 27.1.2, 27.2.7 and 27.1.7, 27.2.8, 27.2.9.
263
+ */
264
+ export declare const ARTISTIC: {
265
+ readonly olympic: {
266
+ readonly length: 30;
267
+ readonly width: 20;
268
+ readonly depth: 3;
269
+ };
270
+ readonly minimum: {
271
+ readonly length: 25;
272
+ readonly width: 15;
273
+ readonly deepLength: 12;
274
+ readonly deepWidth: 12;
275
+ readonly deepDepth: 3;
276
+ readonly depth: 2;
277
+ };
278
+ readonly warmUp: {
279
+ readonly length: 30;
280
+ readonly width: 20;
281
+ readonly depth: 3;
282
+ };
283
+ /** The lane markings of the pool, or contrasting lines in one direction along its length if there are none (Part Seven 12.1.3; June 2025: 27.2.4). */
284
+ readonly line: 0.25;
285
+ readonly start: {
286
+ readonly heightOlympic: 0.7;
287
+ readonly heightRecommended: 1;
288
+ readonly heightLeast: 0.5;
289
+ };
290
+ readonly judges: {
291
+ readonly height: 0.6;
292
+ readonly fromEdge: 2;
293
+ };
294
+ /** The sizes of the starting platform, the judges' platform and its seats are not set by the rules (drawn). */
295
+ readonly drawn: {
296
+ readonly start: {
297
+ readonly length: 2;
298
+ readonly depth: 1.2;
299
+ };
300
+ readonly judges: {
301
+ readonly length: 12;
302
+ readonly depth: 1.4;
303
+ };
304
+ readonly deck: 3;
305
+ };
306
+ };
@@ -0,0 +1,148 @@
1
+ // The pools of the aquatic sports, from World Aquatics' Competition Regulations (in force as from February 2026), in metres, the unit the rules print them in. A rule
2
+ // is cited by its part and its number in that edition (Part Two, Swimming Rules, Article 15 for the swimming pool; Part Four, Article 15 and Appendix 2 for diving;
3
+ // Part Six, Articles 20 and 21 for water polo; Part Seven, Article 12 for artistic swimming): "Part Two 15.6.2.1" is clause 15.6.2.1 of Part Two. The part is always
4
+ // named, because Parts Two and Four both have an Article 15. The numbers changed from the edition in force as from 25 June 2025 (Part Two Article 16, Part Four
5
+ // Article 13, Part Six Article 18 and Appendix 4, Part Seven Article 27); a figure that is that edition's and that the February 2026 text does not repeat is marked "June 2025
6
+ // edition value" and says what the new text gives. The same rules were the Facilities Rules FR 2 to FR 8 of the 2017-2021 and 2021-2025 editions; the old number is given where a reader of
7
+ // those editions would look for it ("was FR 2.9"). The diagrams of the rules (the appendices) are pictures and were not read: nothing here is measured from one. Where the rules
8
+ // give no figure and the drawing needs one, the figure is named `drawn` and is ours.
9
+ /**
10
+ * The swimming pool (Part Two, Article 15). Lengths are metres; widths run across the course and depths down. `lane` is the width of a lane and the distance between the centres of two (Part Two 15.13.2,
11
+ * 15.6.1); a 10-lane pool for the World Championships has lanes 0 and 9 2.4 m wide with spaces of 0.1 m outside them in a permanent pool (Part Two 15.6.2.1), or all lanes 2.5 m
12
+ * with spaces of 0.5 m (a 26 m wide temporary pool, Part Two 15.6.2.2).
13
+ */
14
+ export const SWIMMING = {
15
+ /** The lengths between the touch panels: 50.000 m and 25.000 m (Part Two 15.1.1.1 and 15.1.2.1, was FR 2.1.1 and FR 2.1.2; June 2025: CR 16.1.1.1 and 16.1.1.2). */
16
+ longCourse: 50,
17
+ shortCourse: 25,
18
+ /** A lane is at least 2.5 m wide (Part Two 15.6.3, was FR 2.5; June 2025: CR 16.1.6); the first and the last may be 2.4 m wide, in the World Championships' permanent pool (Part Two 15.6.2.1) and at all other competitions (15.6.3). */
19
+ lane: 2.5,
20
+ edgeLane: 2.4,
21
+ /** The spaces outside the first and the last lane: Olympic Games, 2.5 m each side (Part Two 15.6.1); World Championships' permanent pool 0.1 m (15.6.2.1), temporary pool 0.5 m (15.6.2.2). */
22
+ spaceOlympic: 2.5,
23
+ spacePermanentWorld: 0.1,
24
+ spaceTemporaryWorld: 0.5,
25
+ /** The space of a pool of the minimum standard: the 25 by 21 m, 8-lane pool of Appendix 6 of Part Two (Article 17.6) is 8 lanes of 2.5 m and two spaces, which makes the spaces 0.5 m (arithmetic, not a stated figure). */
26
+ spaceMinimum: 0.5,
27
+ /** Lane ropes: floats end to end, "between 0.1 metres (at maximum) and 0.15 metres (at minimum)" across (Part Two 15.7.4: unverified, the sentence contradicts itself; June 2025 edition value: 0.10 to 0.15 m, 0.15 m at the Olympic Games and the World Championships, CR 16.1.7.1 and 16.2.7.1; 0.15 m is drawn). */
28
+ floatDiameter: 0.15,
29
+ /** The floats within 5.0 m of each end wall are red (Part Two 15.7.7); those at 15 m from each end wall, and at 25 m in a 50 m pool, are distinct in colour (Part Two 15.7.9 and 15.7.10). */
30
+ redEnds: 5,
31
+ markAt15: 15,
32
+ markAt25: 25,
33
+ /** How long a run of floats of a distinct colour is drawn: the rules do not say, a run of four floats is ours (drawn). */
34
+ markRun: 0.6,
35
+ /** Lane markings on the floor: 0.2 to 0.3 m wide, 46.0 m long in a 50 m pool and 21.0 m in a 25 m one, ending 2.0 m from the end wall in a cross line 1.0 m long (Part Two 15.13.1 and 15.13.2, was FR 2.14; June 2025: CR 16.2.15). */
36
+ laneLine: { width: 0.25, longLength: 46, shortLength: 21, endGap: 2, cross: 1 },
37
+ /** Target lines on the end walls: the width of the lane line, down the wall to 3 m at most, with a cross line 0.5 m long 0.3 m below the water (Part Two 15.13.3); cross lines 0.5 m long at 15 m from each end (Part Two 15.13.4, pools built from 1 January 2006). */
38
+ target: { width: 0.25, maxDepth: 3, cross: 0.5, crossBelowSurface: 0.3, crossAt15: 0.5 },
39
+ /** The starting platform: at least 0.5 m by 0.5 m, 0.5 to 0.75 m above the water (Part Two 15.8.1). The June 2025 edition asked 0.5 by 0.6 m at the Olympic Games and the World Championships (CR 16.2.8); February 2026 asks at least 0.5 by 0.5 m everywhere, which is what is drawn. */
40
+ block: { width: 0.5, length: 0.5, heightLeast: 0.5, heightMost: 0.75, height: 0.7 },
41
+ /** Touch panels: 2.4 m wide and 0.9 m high, 0.3 m above the water and 0.6 m below it, with a 0.025 m black border (Part Two 15.16.4.1, 15.16.4.2 and 15.16.4.5; June 2025: CR 16.3.4). */
42
+ pad: { width: 2.4, height: 0.9, above: 0.3, below: 0.6, border: 0.025 },
43
+ /** Backstroke turn flags: flagged ropes 1.8 m above the water on standards 5.0 m from each end wall; a flag is a triangle of 0.40 m sides, 0.25 m apart (Part Two 15.9.1 and 15.9.2, was FR 2.9; June 2025: CR 16.1.10). */
44
+ flags: { at: 5, height: 1.8, side: 0.4, apart: 0.25 },
45
+ /** The false start rope: not less than 1.2 m above the water, on standards 15.0 m in front of the starting end (was FR 2.11; June 2025 edition value, CR 16.1.12). Unverified: the February 2026 text has no clause for it (Part Two Article 15 has false start detection equipment, 15.16.3.4, and no rope). */
46
+ falseStart: { at: 15, height: 1.2 },
47
+ /** Depth: 1.35 m from 1.0 to at least 6.0 m from an end wall that has starting platforms, 1.0 m elsewhere (Part Two 15.4.3 and 15.8.4; June 2025: CR 16.1.4); the Olympic Games and the World Championships 2.5 m (15.4.1), the 25 m World Championships 2.0 m (2.5 m preferred, 15.4.2); a pool shared with artistic swimming 3 m is the June 2025 edition value (CR 16.2.4) and unverified: Part Two Article 15.4 no longer says it (Part Seven 12.1.1 and 12.2.2 ask 3.0 m for the artistic swimming area). */
48
+ depth: { least: 1, atBlocks: 1.35, blocksFrom: 1, blocksTo: 6, olympic: 2.5, shortWorld: 2, shared: 3 },
49
+ /** The wall: a slip-resistant surface 0.8 m below the water (Part Two 15.5.1); a rest ledge not less than 1.2 m below the surface, 0.1 to 0.15 m wide (Part Two 15.5.2). */
50
+ wall: { slipResistant: 0.8, ledgeDepth: 1.2 },
51
+ /** The distance between a swimming pool and a diving well in the same area: 8 m, 10 m preferred, in pools built from 1 January 2014 (Part Two 15.15.1; June 2025: CR 16.2.17). */
52
+ poolsApart: 8,
53
+ poolsApartPreferred: 10,
54
+ /** The deck beyond the pool, our figure: the rules do not set one (drawn). */
55
+ deck: 2.5,
56
+ };
57
+ /** The widths of the pools the rules draw, as Appendices 1 to 9 of Part Two (Article 17) name them (the pool's width by its length and lanes): 50 by 25 (8 or 10 lanes), 50 by 26 (10 lanes, temporary), 25 by 21 (8), 25 by 25 and 25 by 26 (10). */
58
+ export const SWIMMING_WIDTHS = { permanent: 25, temporary: 26, shortEight: 21 };
59
+ /**
60
+ * The water polo field of play, in metres (Part Six, Articles 20 and 21). The field is 25.00 by 20.00 m, the distance between the two goal lines and between the two side lines (Part Six 20.2.2.1 and 20.2.2.2);
61
+ * the water at least 2.00 m deep everywhere (Part Six 20.2.4 and 20.8.2.1). The June 2025 edition asked 1.80 m, and 2.00 m at the Olympic Games and the World Championships (CR 18.1.3 and 18.2.2).
62
+ */
63
+ export const WATER_POLO = {
64
+ length: 25,
65
+ width: 20,
66
+ depth: 2,
67
+ /** The marks on both sides of the field: white for the goal line and the half distance line, red 2 m from each goal line, yellow 6 m from it, and a red mark 5 m from it for the penalty throw (Part Six 21.7.1.1 to 21.7.1.5; June 2025: Appendix 4, 20.4.1.5). */
68
+ twoMetre: 2,
69
+ fiveMetre: 5,
70
+ sixMetre: 6,
71
+ /** The sides of the field are marked red from the goal line to 2 m, yellow from 2 to 6 m and green from 6 m to the half distance line, which is white (Part Six 21.7.2.2 and 21.7.1.5; June 2025: Appendix 4, 20.4.1.5 and CR 18.3.1). */
72
+ half: 12.5,
73
+ /** Boundary lines 2 m long from the goal posts, marked red, make the goal areas (Part Six 20.4 and 21.7.2.1.2; June 2025: Appendix 4, 20.4.1.2). */
74
+ goalAreaLine: 2,
75
+ /** The goal: posts and crossbar of 75 to 80 mm square, white (Part Six 21.6.2.2 and 21.6.2.4; 80 mm is drawn); 3.0 m between the inner sides of the posts (21.6.3.2); the crossbar's underside 0.9 m above the water (21.6.4.2); a goal at least 0.30 m deep from the goal line to the rear of the net (21.6.5). */
76
+ goal: { width: 3, post: 0.08, crossbarHeight: 0.9, netClear: 0.3 },
77
+ /** The excluded players' re-entry area, 2.0 m wide along the goal line and 1.0 to 1.1 m long along the side line (Part Six 20.7.2; 1.08 m is drawn, inside the range), behind the goal line on the side of the team benches, opposite the official table (20.7.1 and 21.11); June 2025: CR 18.3.4 and Appendix 4, 20.4.1.6. */
78
+ reEntry: { length: 2, depth: 1.08, fromCorner: 2 },
79
+ /** The area for flying substitutions, not less than 0.50 m wide, on the side of the team benches, from the goal line in front of the bench to the halfway line (Part Six 20.6.1 to 20.6.3; June 2025: CR 18.1.8). */
80
+ substitution: 0.5,
81
+ /** The referees' platforms: 1 m wide and 0.70 m above the water, on both sides of the field, colour coded like the lane ropes (Part Six 21.9.3.1 to 21.9.3.3; June 2025: CR 18.3.2). */
82
+ platform: { width: 1, height: 0.7 },
83
+ /** The lane ropes of a water polo field are 0.06 to 0.12 m across, at least 0.10 m at the Olympic Games and the World Championships (Part Six 21.7.4.2; June 2025: CR 18.1.7 and 18.2.6); 0.10 m is drawn. */
84
+ rope: 0.1,
85
+ /** The deck beyond the pool, ours (drawn). */
86
+ deck: 3,
87
+ /** The official table: the secretariat sits at a table behind the referees' platform (Part Six 21.10.1; June 2025: CR 18.3.6); its size is ours (drawn). */
88
+ table: { length: 6, depth: 1.2 },
89
+ };
90
+ /** How many lines cross a diving well for the Olympic Games and the World Championships (Part Four 15.6.3.1; June 2025: CR 13.2.7). A count, so it is kept out of the table of lengths. */
91
+ export const DIVING_LINES = 3;
92
+ /**
93
+ * Diving, in metres (Part Four of the Competition Regulations, Article 15 and Appendix 2, "Diving facility specifications", which is Article 17.2 of Part Four). A springboard is 4.88 m long and 0.50 m wide
94
+ * (Part Four 15.3.2), 1 m or 3 m above the water (Appendix 2); a platform of the length, width and height of the table (Part Four 15.4.3 and Appendix 2). Every distance is measured from the plummet, the vertical line
95
+ * through the middle of the front edge of the springboard or platform (Part Four 15.1.1). `A` is from the plummet back to the pool wall (for a platform on concrete: how far its front edge projects beyond the wall, Part Four 15.4.9),
96
+ * `B` to the pool wall at the side, `C` to the next plummet (the platforms' widths: Part Four 15.2.2), `D` to the wall ahead, `H` the depth of water at the plummet; each as [minimum, preferred]. A depth of 5 m under the boards is
97
+ * what a pool built after 1 January 2025 should have if possible (Part Four 15.1.2.1). The minima of `H` are the February 2026 table's (3.40, 3.70, 3.20, 3.50, 3.70, 4.10 and 4.50 m, with 5.00 m preferred everywhere); the June 2025 edition
98
+ * had 3.50, 3.80, 3.30, 3.60, 3.80, 4.30 and 5.00 m ("Table Diving Facilities"). The other figures of the table, A to D, are the same in both editions.
99
+ */
100
+ export const DIVING = {
101
+ springboard: { length: 4.88, width: 0.5 },
102
+ /** Each platform: length, width (minimum, preferred) and height above the water. The 5, 7.5 and 10 m platforms have one width. */
103
+ platforms: {
104
+ "1": { length: 5, width: [1, 2.9], height: 1 },
105
+ "3": { length: 5, width: [1, 2], height: 3 },
106
+ "5": { length: 6, width: [2.9, 2.9], height: 5 },
107
+ "7.5": { length: 6, width: [2, 2], height: 7.5 },
108
+ "10": { length: 6, width: [3, 3], height: 10 },
109
+ },
110
+ /** A, from the plummet back to the pool wall: springboards at 2.22 m for a concrete platform (the board then reaches 2.22 m beyond the wall), platforms 0.75 m (1 m), 1.25 m (3, 5 and 7.5 m) and 1.50 m (10 m). */
111
+ A: { springboard1: [2.22, 2.22], springboard3: [2.22, 2.22], platform1: [0.75, 0.75], platform3: [1.25, 1.25], platform5: [1.25, 1.25], platform75: [1.25, 1.25], platform10: [1.5, 1.5] },
112
+ /** B, from the plummet to the pool wall at the side. */
113
+ B: { springboard1: [2.5, 2.5], springboard3: [3.5, 3.5], platform1: [2.5, 2.5], platform3: [3, 3.6], platform5: [4, 4.5], platform75: [4.5, 4.75], platform10: [5.75, 5.75] },
114
+ /** C, from the plummet to the adjacent one: 1 m boards 2.00 apart, 3 m boards 2.20 (2.60 preferred) from a 3 m or a 1 m board; platforms 1.85 (2.15), 2.20 (2.35), 2.85, 2.75 and 3.00. */
115
+ C: { springboard1: [2, 2], springboard3: [2.2, 2.6], platform1: [1.85, 2.15], platform3: [2.2, 2.35], platform5: [2.85, 2.85], platform75: [2.75, 2.75], platform10: [3, 3] },
116
+ /** D, from the plummet to the pool wall ahead: 9.00 (1 m), 10.25 (3 m), 8.00, 9.50, 10.25, 11.00 and 13.50 m for the platforms. */
117
+ D: { springboard1: [9, 9], springboard3: [10.25, 10.25], platform1: [8, 8], platform3: [9.5, 9.5], platform5: [10.25, 10.25], platform75: [11, 11], platform10: [13.5, 13.5] },
118
+ /** H, the depth of water at the plummet, minimum and preferred: February 2026 gives 3.40 m (1 m board), 3.70 (3 m), 3.20 (1 m platform), 3.50 (3 m), 3.70 (5 m), 4.10 (7.5 m) and 4.50 m (10 m), with 5.00 m preferred (Part Four, Appendix 2); the June 2025 edition's minima were 3.50, 3.80, 3.30, 3.60, 3.80, 4.30 and 5.00 m. */
119
+ H: { springboard1: [3.4, 5], springboard3: [3.7, 5], platform1: [3.2, 5], platform3: [3.5, 5], platform5: [3.7, 5], platform75: [4.1, 5], platform10: [4.5, 5] },
120
+ /** The depth of water is never less than 1.8 m anywhere in the diving pool (Part Four 15.1.3; June 2025: 13.1.3.9); 5 m under the boards for facilities built after 1 January 2025, if possible (Part Four 15.1.2.1). The June 2025 edition also made 5 m the rule at the Olympic Games and the World Championships (13.1.3.1); unverified in February 2026, whose Article 15.6 only applies Articles 15.2 to 15.5 there, with the minima of Appendix 2. */
121
+ depthLeast: 1.8,
122
+ depthBoards: 5,
123
+ /** The least distance between adjacent platforms: 0.25 m (Part Four, Appendix 2, notes). */
124
+ platformsApart: 0.25,
125
+ /** Lane markings of a diving well for the Olympic Games and the World Championships: three lines across the well, 21.0 m long in a 25 m wide well, 2.5 m apart, the first directly under the plummet of the 3 m springboard (Part Four 15.6.3.1, 15.6.3.1.1 and 15.6.3.1.2, with the dimensions of Part Two 15.13.1; June 2025: 13.2.7). */
126
+ lines: { length: 21, apart: 2.5, width: 0.25 },
127
+ /** The pool: 25 m across, as the swimming pool's width (Part Four 15.6.3.1 asks for lines running the width of the well, with the dimensions of the swimming pool's lane markings), and the length ahead of the boards, ours; the rules set the clearances above, not the size of the well (drawn). */
128
+ well: { width: 25, length: 21 },
129
+ /** Judges sit side by side in a straight line along both sides of the pool (Part Four 15.5.1.1); the June 2025 edition (13.1.7.1.3) put them in line with or behind the front of the boards, never ahead of the plummet line. Unverified: Part Four 15.5.1.4 of February 2026 reads "No Judge may be seated alongside or behind the direct line of the front edge", which is the opposite on its face and is taken as a slip for "ahead of". */
130
+ judges: { seat: 0.9 },
131
+ };
132
+ /**
133
+ * Artistic swimming, in metres (Part Seven, Article 12). The routine area for the Olympic Games and the World Championships is at least 30.0 by 20.0 m, 3.0 m deep (Part Seven 12.2.2); elsewhere at least
134
+ * 15 by 25 m, of which 12 by 12 m is at least 3.0 m deep and the rest at least 2.0 m (Part Seven 12.1.1). The starting platform at least 0.7 m high at the Olympic Games and the World Championships, 1.0 m recommended (Part Seven 12.2.4),
135
+ * 0.5 m least elsewhere, 1.0 m recommended (12.1.6); the Technical Officials' platform (the judges') at least 0.6 m high and not more than 2 m from the pool's edge (12.2.5). A practice warm-up pool at least 25 by 25 m or 30 by 20 m,
136
+ * 3 m deep (12.2.6). June 2025: Article 27, 27.2.2 and 27.2.3, 27.1.2, 27.2.7 and 27.1.7, 27.2.8, 27.2.9.
137
+ */
138
+ export const ARTISTIC = {
139
+ olympic: { length: 30, width: 20, depth: 3 },
140
+ minimum: { length: 25, width: 15, deepLength: 12, deepWidth: 12, deepDepth: 3, depth: 2 },
141
+ warmUp: { length: 30, width: 20, depth: 3 },
142
+ /** The lane markings of the pool, or contrasting lines in one direction along its length if there are none (Part Seven 12.1.3; June 2025: 27.2.4). */
143
+ line: 0.25,
144
+ start: { heightOlympic: 0.7, heightRecommended: 1, heightLeast: 0.5 },
145
+ judges: { height: 0.6, fromEdge: 2 },
146
+ /** The sizes of the starting platform, the judges' platform and its seats are not set by the rules (drawn). */
147
+ drawn: { start: { length: 2, depth: 1.2 }, judges: { length: 12, depth: 1.4 }, deck: 3 },
148
+ };