@luceosports/play-rendering 1.19.1 → 2.0.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 (293) hide show
  1. package/.babelrc +2 -1
  2. package/.eslintrc +11 -42
  3. package/dist/play-rendering.d.ts +21 -0
  4. package/dist/play-rendering.js +17 -8
  5. package/dist/play-rendering.js.map +1 -1
  6. package/dist/types/constants.d.ts +41 -0
  7. package/dist/types/helpers/common.d.ts +5 -0
  8. package/dist/types/layers/court/index.d.ts +18 -0
  9. package/dist/types/math/Bezier.d.ts +19 -0
  10. package/dist/types/math/LineDrawingMath.d.ts +8 -0
  11. package/dist/types/models/AnimationModel.d.ts +21 -0
  12. package/dist/types/models/FrameModel.d.ts +39 -0
  13. package/dist/types/models/LineModel.d.ts +22 -0
  14. package/dist/types/models/NoteModel.d.ts +17 -0
  15. package/dist/types/models/PlayModel.d.ts +40 -0
  16. package/dist/types/models/PlayerModel.d.ts +20 -0
  17. package/dist/types/models/ShapeModel.d.ts +54 -0
  18. package/dist/types/models/ShapeModels/CircleShape.d.ts +8 -0
  19. package/dist/types/models/ShapeModels/ConeShape.d.ts +8 -0
  20. package/dist/types/models/ShapeModels/FovShape.d.ts +12 -0
  21. package/dist/types/models/ShapeModels/LineShape.d.ts +11 -0
  22. package/dist/types/models/ShapeModels/SquareShape.d.ts +8 -0
  23. package/dist/types/models/ShapeModels/StraightShape.d.ts +12 -0
  24. package/dist/types/models/ShapeModels/TriangleShape.d.ts +12 -0
  25. package/dist/types/models/ShapeModels/XMarkShape.d.ts +8 -0
  26. package/dist/types/models/ShapeModels/index.d.ts +14 -0
  27. package/dist/types/models/ShapeModels/line/CutLineShape.d.ts +3 -0
  28. package/dist/types/models/ShapeModels/line/DribbleLineShape.d.ts +3 -0
  29. package/dist/types/models/ShapeModels/line/HandoffLineShape.d.ts +3 -0
  30. package/dist/types/models/ShapeModels/line/PassLineShape.d.ts +3 -0
  31. package/dist/types/models/ShapeModels/line/ScreenLineShape.d.ts +3 -0
  32. package/dist/types/types/index.d.ts +138 -0
  33. package/package.json +16 -13
  34. package/src/config.ts +1 -0
  35. package/src/constants.ts +49 -0
  36. package/src/global.d.ts +9 -0
  37. package/src/helpers/common.ts +40 -0
  38. package/src/index.ts +36 -0
  39. package/src/layers/{CourtLayer.js → CourtLayer.ts} +4 -6
  40. package/src/layers/{LineControlPointLayer.js → LineControlPointLayer.ts} +2 -4
  41. package/src/layers/{LineLayer.js → LineLayer.ts} +5 -7
  42. package/src/layers/{NoteLayer.js → NoteLayer.ts} +19 -19
  43. package/src/layers/{PlayerLayer.js → PlayerLayer.ts} +6 -7
  44. package/src/layers/{ShapeControlPointLayer.js → ShapeControlPointLayer.ts} +2 -4
  45. package/src/layers/{ShapeLayer.js → ShapeLayer.ts} +4 -6
  46. package/src/layers/base/BaseLayer.ts +15 -0
  47. package/src/layers/base/InternalBaseLayer.ts +29 -0
  48. package/src/layers/court/base/{InternalCourtLayer.js → InternalCourtLayer.ts} +3 -5
  49. package/src/layers/court/index.ts +213 -0
  50. package/src/layers/court/layers/BASEBALL/constants.ts +5 -0
  51. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/constants.ts +34 -0
  52. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{ADirtLayer.js → ADirtLayer.ts} +11 -12
  53. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{BaseLineLayer.js → BaseLineLayer.ts} +4 -10
  54. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{HomePlateLayer.js → HomePlateLayer.ts} +14 -15
  55. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{PitchingMoundLayer.js → PitchingMoundLayer.ts} +7 -8
  56. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/index.ts +6 -0
  57. package/src/layers/court/layers/{BASKETBALL/layers/BorderRectLayer.js → BASEBALL/layers/BorderRectLayer.ts} +2 -4
  58. package/src/layers/court/layers/BASEBALL/layers/index.ts +3 -0
  59. package/src/layers/court/layers/BASKETBALL/common/{LaneMarkingNBATrait.js → LaneMarkingNBATrait.ts} +1 -1
  60. package/src/layers/court/layers/BASKETBALL/common/{LaneMarkingNCAATrait.js → LaneMarkingNCAATrait.ts} +1 -1
  61. package/src/layers/court/layers/BASKETBALL/constants.ts +5 -0
  62. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/constants.ts +11 -0
  63. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/{Big3Layer.js → Big3Layer.ts} +2 -4
  64. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/LaneMarkingLayer.ts +10 -0
  65. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/index.ts +4 -0
  66. package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/constants.ts +11 -0
  67. package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/layers/{LaneMarkingLayer.js → LaneMarkingLayer.ts} +2 -4
  68. package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/layers/index.ts +3 -0
  69. package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/constants.ts +11 -0
  70. package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/LaneMarkingLayer.ts +10 -0
  71. package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/index.ts +3 -0
  72. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/constants.ts +11 -0
  73. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/LaneMarkingLayer.ts +10 -0
  74. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/index.ts +3 -0
  75. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/constants.ts +11 -0
  76. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/LaneMarkingLayer.ts +10 -0
  77. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/index.ts +3 -0
  78. package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/constants.ts +11 -0
  79. package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/LaneMarkingLayer.ts +10 -0
  80. package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/index.ts +3 -0
  81. package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/constants.ts +11 -0
  82. package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/LaneMarkingLayer.ts +10 -0
  83. package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/index.ts +3 -0
  84. package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/constants.ts +11 -0
  85. package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/LaneMarkingLayer.ts +10 -0
  86. package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/index.ts +3 -0
  87. package/src/layers/court/layers/BASKETBALL/layers/{BaseLineMarkingLayer.js → BaseLineMarkingLayer.ts} +3 -4
  88. package/src/layers/court/layers/BASKETBALL/layers/{BenchAreaLayer.js → BenchAreaLayer.ts} +2 -4
  89. package/src/layers/court/layers/{LACROSSE/layers/BorderRectLayer.js → BASKETBALL/layers/BorderRectLayer.ts} +2 -4
  90. package/src/layers/court/layers/BASKETBALL/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
  91. package/src/layers/court/layers/{FOOTBALL/layers/CenterLineLayer.js → BASKETBALL/layers/CenterLineLayer.ts} +2 -4
  92. package/src/layers/court/layers/BASKETBALL/layers/{FreeThrowLayer.js → FreeThrowLayer.ts} +2 -4
  93. package/src/layers/court/layers/BASKETBALL/layers/{HoopLayer.js → HoopLayer.ts} +2 -4
  94. package/src/layers/court/layers/BASKETBALL/layers/{InnerOuterRectLayer.js → InnerOuterRectLayer.ts} +2 -4
  95. package/src/layers/court/layers/BASKETBALL/layers/{RestrictedAreaLayer.js → RestrictedAreaLayer.ts} +3 -4
  96. package/src/layers/court/layers/BASKETBALL/layers/{ThreePointLineLayer.js → ThreePointLineLayer.ts} +2 -4
  97. package/src/layers/court/layers/BASKETBALL/layers/index.ts +23 -0
  98. package/src/layers/court/layers/FOOTBALL/constants.ts +5 -0
  99. package/src/layers/court/layers/FOOTBALL/courtTypes/FOOTBALL_HIGH_SCHOOL/constants.ts +3 -0
  100. package/src/layers/court/layers/{BASEBALL/layers/BorderRectLayer.js → FOOTBALL/layers/BorderRectLayer.ts} +2 -4
  101. package/src/layers/court/layers/{SOCCER/layers/CenterLineLayer.js → FOOTBALL/layers/CenterLineLayer.ts} +2 -4
  102. package/src/layers/court/layers/FOOTBALL/layers/{EndZoneLayer.js → EndZoneLayer.ts} +2 -4
  103. package/src/layers/court/layers/FOOTBALL/layers/{FieldNumberLayer.js → FieldNumberLayer.ts} +2 -4
  104. package/src/layers/court/layers/FOOTBALL/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
  105. package/src/layers/court/layers/FOOTBALL/layers/{YardLineLayer.js → YardLineLayer.ts} +2 -4
  106. package/src/layers/court/layers/FOOTBALL/layers/index.ts +8 -0
  107. package/src/layers/court/layers/HOCKEY/constants.ts +5 -0
  108. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/constants.ts +12 -0
  109. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/layers/{GoaCreaseLayer.js → GoaCreaseLayer.ts} +2 -4
  110. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/layers/index.ts +3 -0
  111. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/constants.ts +12 -0
  112. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/layers/{GoaCreaseLayer.js → GoaCreaseLayer.ts} +2 -4
  113. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/layers/index.ts +3 -0
  114. package/src/layers/court/layers/HOCKEY/layers/{BorderRinkLayer.js → BorderRinkLayer.ts} +2 -4
  115. package/src/layers/court/layers/HOCKEY/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
  116. package/src/layers/court/layers/HOCKEY/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
  117. package/src/layers/court/layers/HOCKEY/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
  118. package/src/layers/court/layers/HOCKEY/layers/{EndZoneLayer.js → EndZoneLayer.ts} +2 -4
  119. package/src/layers/court/layers/HOCKEY/layers/{GoalLineLayer.js → GoalLineLayer.ts} +2 -4
  120. package/src/layers/court/layers/HOCKEY/layers/{NeutralZoneLayer.js → NeutralZoneLayer.ts} +2 -4
  121. package/src/layers/court/layers/HOCKEY/layers/{RefereeCreaseLayer.js → RefereeCreaseLayer.ts} +2 -4
  122. package/src/layers/court/layers/HOCKEY/layers/index.ts +19 -0
  123. package/src/layers/court/layers/LACROSSE/constants.ts +5 -0
  124. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/constants.ts +4 -0
  125. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
  126. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{GoalAreaLineLayer.js → GoalAreaLineLayer.ts} +2 -4
  127. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{WingAreaLineLayer.js → WingAreaLineLayer.ts} +2 -4
  128. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/index.ts +5 -0
  129. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/constants.ts +3 -0
  130. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
  131. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/{FanLineLayer.js → FanLineLayer.ts} +2 -4
  132. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/index.ts +4 -0
  133. package/src/layers/court/layers/{FOOTBALL/layers/BorderRectLayer.js → LACROSSE/layers/BorderRectLayer.ts} +2 -4
  134. package/src/layers/court/layers/LACROSSE/layers/{RestrainingLineLayer.js → RestrainingLineLayer.ts} +2 -4
  135. package/src/layers/court/layers/LACROSSE/layers/index.ts +4 -0
  136. package/src/layers/court/layers/SOCCER/constants.ts +5 -0
  137. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_FIFA/constants.ts +7 -0
  138. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/constants.ts +7 -0
  139. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
  140. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
  141. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
  142. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/index.ts +5 -0
  143. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/constants.ts +7 -0
  144. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
  145. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
  146. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/index.ts +4 -0
  147. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/constants.ts +7 -0
  148. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/{BuildOutLineLayer.js → BuildOutLineLayer.ts} +2 -4
  149. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
  150. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/index.ts +4 -0
  151. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/constants.ts +7 -0
  152. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
  153. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/layers/index.ts +3 -0
  154. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U19/constants.ts +7 -0
  155. package/src/layers/court/layers/SOCCER/layers/BorderRectLayer.ts +10 -0
  156. package/src/layers/court/layers/SOCCER/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
  157. package/src/layers/court/layers/{BASKETBALL/layers/CenterLineLayer.js → SOCCER/layers/CenterLineLayer.ts} +2 -4
  158. package/src/layers/court/layers/SOCCER/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
  159. package/src/layers/court/layers/SOCCER/layers/{CornerLayer.js → CornerLayer.ts} +3 -4
  160. package/src/layers/court/layers/SOCCER/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
  161. package/src/layers/court/layers/SOCCER/layers/{PenaltyAreaLayer.js → PenaltyAreaLayer.ts} +2 -4
  162. package/src/layers/court/layers/SOCCER/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
  163. package/src/layers/court/layers/SOCCER/layers/index.ts +19 -0
  164. package/src/layers/court/layers/VOLLEYBALL/constants.ts +5 -0
  165. package/src/layers/court/layers/VOLLEYBALL/courtTypes/VOLLEYBALL_INDOOR/constants.ts +2 -0
  166. package/src/layers/court/layers/VOLLEYBALL/layers/{AttackLineLayer.js → AttackLineLayer.ts} +3 -4
  167. package/src/layers/court/layers/VOLLEYBALL/layers/BorderRectLayer.ts +10 -0
  168. package/src/layers/court/layers/VOLLEYBALL/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
  169. package/src/layers/court/layers/VOLLEYBALL/layers/{HashMarkLayer.js → HashMarkLayer.ts} +3 -4
  170. package/src/layers/court/layers/VOLLEYBALL/layers/index.ts +6 -0
  171. package/src/layers/line/base/{ActionLineLayer.js → ActionLineLayer.ts} +2 -4
  172. package/src/layers/line/base/{InternalLineLayer.js → InternalLineLayer.ts} +30 -10
  173. package/src/layers/line/index.ts +8 -0
  174. package/src/layers/line/layers/CutLineLayer.ts +7 -0
  175. package/src/layers/line/layers/{DribbleLineLayer.js → DribbleLineLayer.ts} +14 -8
  176. package/src/layers/line/layers/{HandoffLineLayer.js → HandoffLineLayer.ts} +4 -5
  177. package/src/layers/line/layers/PassLineLayer.ts +11 -0
  178. package/src/layers/line/layers/ScreenLineLayer.ts +7 -0
  179. package/src/layers/line/layers/{ShotLineLayer.js → ShotLineLayer.ts} +2 -4
  180. package/src/layers/shape/base/{InternalShapeLayer.js → InternalShapeLayer.ts} +7 -5
  181. package/src/layers/shape/index.ts +28 -0
  182. package/src/layers/shape/layers/{CircleShapeLayer.js → CircleShapeLayer.ts} +2 -4
  183. package/src/layers/shape/layers/{ConeShapeLayer.js → ConeShapeLayer.ts} +2 -4
  184. package/src/layers/shape/layers/{FovShapeLayer.js → FovShapeLayer.ts} +2 -4
  185. package/src/layers/shape/layers/{SquareShapeLayer.js → SquareShapeLayer.ts} +2 -4
  186. package/src/layers/shape/layers/{StraightShapeLayer.js → StraightShapeLayer.ts} +2 -4
  187. package/src/layers/shape/layers/{TriangleShapeLayer.js → TriangleShapeLayer.ts} +2 -4
  188. package/src/layers/shape/layers/{XmarkShapeLayer.js → XmarkShapeLayer.ts} +2 -4
  189. package/src/layers/shape/layers/line/CutLineShapeLayer.ts +11 -0
  190. package/src/layers/shape/layers/line/DribbleLineShapeLayer.ts +26 -0
  191. package/src/layers/shape/layers/line/HandoffLineShapeLayer.ts +11 -0
  192. package/src/layers/shape/layers/line/PassLineShapeLayer.ts +15 -0
  193. package/src/layers/shape/layers/line/ScreenLineShapeLayer.ts +11 -0
  194. package/src/layers/shape/layers/line/base/InternalLineShapeLayer.ts +44 -0
  195. package/src/math/{Bezier.js → Bezier.ts} +48 -46
  196. package/src/math/LineDrawingMath.ts +573 -0
  197. package/src/models/{Animation.js → AnimationModel.ts} +29 -22
  198. package/src/models/Base/InternalFrameModel.ts +23 -0
  199. package/src/models/{Frame.js → FrameModel.ts} +136 -82
  200. package/src/models/{Line.js → LineModel.ts} +26 -14
  201. package/src/models/{Note.js → NoteModel.ts} +12 -11
  202. package/src/models/Play/Options.ts +31 -0
  203. package/src/models/PlayModel.ts +139 -0
  204. package/src/models/{Player.js → PlayerModel.ts} +5 -6
  205. package/src/models/{Shape.js → ShapeModel.ts} +9 -10
  206. package/src/models/ShapeModels/{CircleShape.js → CircleShape.ts} +2 -4
  207. package/src/models/ShapeModels/{ConeShape.js → ConeShape.ts} +2 -4
  208. package/src/models/ShapeModels/{FovShape.js → FovShape.ts} +2 -4
  209. package/src/models/ShapeModels/{LineShape.js → LineShape.ts} +4 -6
  210. package/src/models/ShapeModels/{XMarkShape.js → SquareShape.ts} +2 -4
  211. package/src/models/ShapeModels/{StraightShape.js → StraightShape.ts} +2 -4
  212. package/src/models/ShapeModels/{TriangleShape.js → TriangleShape.ts} +2 -4
  213. package/src/models/ShapeModels/{SquareShape.js → XMarkShape.ts} +2 -4
  214. package/src/models/ShapeModels/index.ts +30 -0
  215. package/src/models/ShapeModels/line/CutLineShape.ts +3 -0
  216. package/src/models/ShapeModels/line/DribbleLineShape.ts +3 -0
  217. package/src/models/ShapeModels/line/HandoffLineShape.ts +3 -0
  218. package/src/models/ShapeModels/line/PassLineShape.ts +3 -0
  219. package/src/models/ShapeModels/line/ScreenLineShape.ts +3 -0
  220. package/src/playerHatsConfig.ts +39 -0
  221. package/src/shapesConfig.ts +8 -0
  222. package/src/traits/{DribbleLineTrait.js → DribbleLineTrait.ts} +12 -10
  223. package/src/traits/{LineDrawOperationsTrait.js → LineDrawOperationsTrait.ts} +12 -9
  224. package/src/types/index.ts +205 -0
  225. package/tsconfig.json +21 -0
  226. package/webpack.config.js +5 -8
  227. package/index.js +0 -17
  228. package/src/config.js +0 -3
  229. package/src/constants.js +0 -51
  230. package/src/helpers/common.js +0 -12
  231. package/src/layers/base/BaseLayer.js +0 -20
  232. package/src/layers/base/InternalBaseLayer.js +0 -22
  233. package/src/layers/court/index.js +0 -64
  234. package/src/layers/court/layers/BASEBALL/constants.js +0 -7
  235. package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/constants.js +0 -36
  236. package/src/layers/court/layers/BASKETBALL/constants.js +0 -7
  237. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/constants.js +0 -13
  238. package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/LaneMarkingLayer.js +0 -12
  239. package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/constants.js +0 -13
  240. package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/constants.js +0 -13
  241. package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/LaneMarkingLayer.js +0 -12
  242. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/constants.js +0 -13
  243. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/LaneMarkingLayer.js +0 -12
  244. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/constants.js +0 -13
  245. package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/LaneMarkingLayer.js +0 -12
  246. package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/constants.js +0 -13
  247. package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/LaneMarkingLayer.js +0 -12
  248. package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/constants.js +0 -13
  249. package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/LaneMarkingLayer.js +0 -12
  250. package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/constants.js +0 -13
  251. package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/LaneMarkingLayer.js +0 -12
  252. package/src/layers/court/layers/FOOTBALL/constants.js +0 -7
  253. package/src/layers/court/layers/FOOTBALL/courtTypes/FOOTBALL_HIGH_SCHOOL/constants.js +0 -5
  254. package/src/layers/court/layers/HOCKEY/constants.js +0 -7
  255. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/constants.js +0 -14
  256. package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/constants.js +0 -14
  257. package/src/layers/court/layers/LACROSSE/constants.js +0 -7
  258. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/constants.js +0 -6
  259. package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/constants.js +0 -5
  260. package/src/layers/court/layers/SOCCER/constants.js +0 -7
  261. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_FIFA/constants.js +0 -9
  262. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/constants.js +0 -9
  263. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/constants.js +0 -9
  264. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/constants.js +0 -9
  265. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/constants.js +0 -9
  266. package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U19/constants.js +0 -9
  267. package/src/layers/court/layers/SOCCER/layers/BorderRectLayer.js +0 -12
  268. package/src/layers/court/layers/VOLLEYBALL/constants.js +0 -7
  269. package/src/layers/court/layers/VOLLEYBALL/courtTypes/VOLLEYBALL_INDOOR/constants.js +0 -4
  270. package/src/layers/court/layers/VOLLEYBALL/layers/BorderRectLayer.js +0 -12
  271. package/src/layers/line/index.js +0 -11
  272. package/src/layers/line/layers/CutLineLayer.js +0 -9
  273. package/src/layers/line/layers/PassLineLayer.js +0 -13
  274. package/src/layers/line/layers/ScreenLineLayer.js +0 -9
  275. package/src/layers/shape/index.js +0 -17
  276. package/src/layers/shape/layers/line/CutLineShapeLayer.js +0 -13
  277. package/src/layers/shape/layers/line/DribbleLineShapeLayer.js +0 -20
  278. package/src/layers/shape/layers/line/HandoffLineShapeLayer.js +0 -13
  279. package/src/layers/shape/layers/line/PassLineShapeLayer.js +0 -17
  280. package/src/layers/shape/layers/line/ScreenLineShapeLayer.js +0 -13
  281. package/src/layers/shape/layers/line/base/InternalLineShapeLayer.js +0 -34
  282. package/src/math/LineDrawingMath.js +0 -570
  283. package/src/models/Base/InternalFrameModel.js +0 -20
  284. package/src/models/Play/Options.js +0 -31
  285. package/src/models/Play.js +0 -91
  286. package/src/models/ShapeModels/index.js +0 -18
  287. package/src/models/ShapeModels/line/CutLineShape.js +0 -5
  288. package/src/models/ShapeModels/line/DribbleLineShape.js +0 -5
  289. package/src/models/ShapeModels/line/HandoffLineShape.js +0 -5
  290. package/src/models/ShapeModels/line/PassLineShape.js +0 -5
  291. package/src/models/ShapeModels/line/ScreenLineShape.js +0 -5
  292. package/src/playerHatsConfig.js +0 -29
  293. package/src/shapesConfig.js +0 -6
@@ -1,9 +1,9 @@
1
- const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../../../base/InternalCourtLayer';
2
2
 
3
3
  const HASH_MARK_TOUCH_LINE_OFFSET_X = 11;
4
4
  const HASH_MARK_LENGTH = 1;
5
5
 
6
- class HashMarkLayer extends InternalCourtLayer {
6
+ export default class HashMarkLayer extends InternalCourtLayer {
7
7
  reflection() {
8
8
  return true;
9
9
  }
@@ -31,5 +31,3 @@ class HashMarkLayer extends InternalCourtLayer {
31
31
  this.ctx.stroke();
32
32
  }
33
33
  }
34
-
35
- module.exports = HashMarkLayer;
@@ -1,9 +1,9 @@
1
- const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../../../base/InternalCourtLayer';
2
2
 
3
3
  const PENALTY_SPOT_OFFSET_Y = 12;
4
4
  const PENALTY_SPOT_LENGTH = 0.66;
5
5
 
6
- class PenaltySpotLayer extends InternalCourtLayer {
6
+ export default class PenaltySpotLayer extends InternalCourtLayer {
7
7
  reflection() {
8
8
  return true;
9
9
  }
@@ -17,5 +17,3 @@ class PenaltySpotLayer extends InternalCourtLayer {
17
17
  this.ctx.stroke();
18
18
  }
19
19
  }
20
-
21
- module.exports = PenaltySpotLayer;
@@ -0,0 +1,4 @@
1
+ import HashMarkLayer from './HashMarkLayer';
2
+ import PenaltySpotLayer from './PenaltySpotLayer';
3
+
4
+ export { HashMarkLayer, PenaltySpotLayer };
@@ -0,0 +1,7 @@
1
+ export const COURT_RECT_WIDTH = 45;
2
+ export const COURT_RECT_HEIGHT = 65;
3
+ export const CENTER_CIRCLE_RADIUS = 8;
4
+ export const PENALTY_SPOT_OFFSET_Y = 10;
5
+ export const PENALTY_AREA = { width: 24, height: 12 };
6
+ export const GOAL = { width: 6, height: 2 };
7
+ export const GOAL_AREA = { width: 8, height: 4 };
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../../../base/InternalCourtLayer';
2
2
 
3
- class BuildOutLineLayer extends InternalCourtLayer {
3
+ export default class BuildOutLineLayer extends InternalCourtLayer {
4
4
  reflection() {
5
5
  return true;
6
6
  }
@@ -20,5 +20,3 @@ class BuildOutLineLayer extends InternalCourtLayer {
20
20
  this.ctx.stroke();
21
21
  }
22
22
  }
23
-
24
- module.exports = BuildOutLineLayer;
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../../../base/InternalCourtLayer';
2
2
 
3
- class PenaltyArcLayer extends InternalCourtLayer {
3
+ export default class PenaltyArcLayer extends InternalCourtLayer {
4
4
  reflection() {
5
5
  return true;
6
6
  }
@@ -20,5 +20,3 @@ class PenaltyArcLayer extends InternalCourtLayer {
20
20
  this.ctx.stroke();
21
21
  }
22
22
  }
23
-
24
- module.exports = PenaltyArcLayer;
@@ -0,0 +1,4 @@
1
+ import BuildOutLineLayer from './BuildOutLineLayer';
2
+ import PenaltyArcLayer from './PenaltyArcLayer';
3
+
4
+ export { BuildOutLineLayer, PenaltyArcLayer };
@@ -0,0 +1,7 @@
1
+ export const COURT_RECT_WIDTH = 55;
2
+ export const COURT_RECT_HEIGHT = 80;
3
+ export const CENTER_CIRCLE_RADIUS = 8;
4
+ export const PENALTY_SPOT_OFFSET_Y = 10;
5
+ export const PENALTY_AREA = { width: 36, height: 14 };
6
+ export const GOAL = { width: 6.16, height: 2.16 };
7
+ export const GOAL_AREA = { width: 12, height: 5 };
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../../../base/InternalCourtLayer';
2
2
 
3
- class PenaltyArcLayer extends InternalCourtLayer {
3
+ export default class PenaltyArcLayer extends InternalCourtLayer {
4
4
  reflection() {
5
5
  return true;
6
6
  }
@@ -20,5 +20,3 @@ class PenaltyArcLayer extends InternalCourtLayer {
20
20
  this.ctx.stroke();
21
21
  }
22
22
  }
23
-
24
- module.exports = PenaltyArcLayer;
@@ -0,0 +1,3 @@
1
+ import PenaltyArcLayer from './PenaltyArcLayer';
2
+
3
+ export { PenaltyArcLayer };
@@ -0,0 +1,7 @@
1
+ export const COURT_RECT_WIDTH = 60;
2
+ export const COURT_RECT_HEIGHT = 110;
3
+ export const CENTER_CIRCLE_RADIUS = 10;
4
+ export const PENALTY_SPOT_OFFSET_Y = 12;
5
+ export const PENALTY_AREA = { width: 44, height: 18 };
6
+ export const GOAL = { width: 8, height: 2.66 };
7
+ export const GOAL_AREA = { width: 20, height: 6 };
@@ -0,0 +1,10 @@
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
+
3
+ export default class BorderRectLayer extends InternalCourtLayer {
4
+ drawLogic() {
5
+ this.ctx.beginPath();
6
+ this.ctx.lineWidth = this.courtTypeConstants.COURT_LINE_WIDTH * 2;
7
+ this.ctx.rect(0, 0, this.courtTypeConstants.COURT_RECT_WIDTH, this.courtTypeConstants.COURT_RECT_HEIGHT);
8
+ this.ctx.stroke();
9
+ }
10
+ }
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
- class CenterCircleLayer extends InternalCourtLayer {
3
+ export default class CenterCircleLayer extends InternalCourtLayer {
4
4
  drawLogic() {
5
5
  this.ctx.lineWidth = this.courtTypeConstants.COURT_LINE_WIDTH * 2;
6
6
 
@@ -16,5 +16,3 @@ class CenterCircleLayer extends InternalCourtLayer {
16
16
  this.ctx.stroke();
17
17
  }
18
18
  }
19
-
20
- module.exports = CenterCircleLayer;
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
- class CenterLineLayer extends InternalCourtLayer {
3
+ export default class CenterLineLayer extends InternalCourtLayer {
4
4
  drawLogic() {
5
5
  const courtOrigin = { x: 0.0, y: this.courtCenter.y };
6
6
  const courtTerminus = { x: this.courtTypeConstants.COURT_RECT_WIDTH, y: this.courtCenter.y };
@@ -12,5 +12,3 @@ class CenterLineLayer extends InternalCourtLayer {
12
12
  this.ctx.stroke();
13
13
  }
14
14
  }
15
-
16
- module.exports = CenterLineLayer;
@@ -1,7 +1,7 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
3
  const CENTER_SPOT_RADIUS = 0.25;
4
- class CenterSpotLayer extends InternalCourtLayer {
4
+ export default class CenterSpotLayer extends InternalCourtLayer {
5
5
  drawLogic() {
6
6
  this.ctx.lineWidth = this.courtTypeConstants.COURT_LINE_WIDTH * 2;
7
7
 
@@ -10,5 +10,3 @@ class CenterSpotLayer extends InternalCourtLayer {
10
10
  this.ctx.fill();
11
11
  }
12
12
  }
13
-
14
- module.exports = CenterSpotLayer;
@@ -1,7 +1,8 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
3
  const CORNER_RADIUS = 1;
4
- class CornerLayer extends InternalCourtLayer {
4
+
5
+ export default class CornerLayer extends InternalCourtLayer {
5
6
  reflection() {
6
7
  return true;
7
8
  }
@@ -21,5 +22,3 @@ class CornerLayer extends InternalCourtLayer {
21
22
  this.ctx.stroke();
22
23
  }
23
24
  }
24
-
25
- module.exports = CornerLayer;
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
- class PenaltyArcLayer extends InternalCourtLayer {
3
+ export default class PenaltyArcLayer extends InternalCourtLayer {
4
4
  reflection() {
5
5
  return true;
6
6
  }
@@ -20,5 +20,3 @@ class PenaltyArcLayer extends InternalCourtLayer {
20
20
  this.ctx.stroke();
21
21
  }
22
22
  }
23
-
24
- module.exports = PenaltyArcLayer;
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
- class PenaltyAreaLayer extends InternalCourtLayer {
3
+ export default class PenaltyAreaLayer extends InternalCourtLayer {
4
4
  reflection() {
5
5
  return true;
6
6
  }
@@ -39,5 +39,3 @@ class PenaltyAreaLayer extends InternalCourtLayer {
39
39
  this.ctx.stroke();
40
40
  }
41
41
  }
42
-
43
- module.exports = PenaltyAreaLayer;
@@ -1,8 +1,8 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
3
  const PENALTY_SPOT_RADIUS = 0.25;
4
4
 
5
- class PenaltySpotLayer extends InternalCourtLayer {
5
+ export default class PenaltySpotLayer extends InternalCourtLayer {
6
6
  reflection() {
7
7
  return true;
8
8
  }
@@ -22,5 +22,3 @@ class PenaltySpotLayer extends InternalCourtLayer {
22
22
  this.ctx.fill();
23
23
  }
24
24
  }
25
-
26
- module.exports = PenaltySpotLayer;
@@ -0,0 +1,19 @@
1
+ import BorderRectLayer from './BorderRectLayer';
2
+ import CenterCircleLayer from './CenterCircleLayer';
3
+ import CenterLineLayer from './CenterLineLayer';
4
+ import CenterSpotLayer from './CenterSpotLayer';
5
+ import CornerLayer from './CornerLayer';
6
+ import PenaltyArcLayer from './PenaltyArcLayer';
7
+ import PenaltyAreaLayer from './PenaltyAreaLayer';
8
+ import PenaltySpotLayer from './PenaltySpotLayer';
9
+
10
+ export {
11
+ BorderRectLayer,
12
+ CenterCircleLayer,
13
+ CenterLineLayer,
14
+ CenterSpotLayer,
15
+ CornerLayer,
16
+ PenaltyArcLayer,
17
+ PenaltyAreaLayer,
18
+ PenaltySpotLayer
19
+ };
@@ -0,0 +1,5 @@
1
+ export const COURT_LINE_WIDTH = 0.1667;
2
+ export const PLAYER_TOKEN_RADIUS = 1.5;
3
+ export const PLAYER_TOKEN_SCALE = 1;
4
+ export const LINE_WIDTH = 0.33;
5
+ export const LINE_MASKING = true;
@@ -0,0 +1,2 @@
1
+ export const COURT_RECT_WIDTH = 29.5;
2
+ export const COURT_RECT_HEIGHT = 59.1;
@@ -1,8 +1,9 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
3
  const ATTACK_LINE_CENTER_OFFSET_Y = 9.8;
4
4
  const ATTACK_LINE_HASH_MARK_LENGTH = 0.574;
5
- class AttackLineLayer extends InternalCourtLayer {
5
+
6
+ export default class AttackLineLayer extends InternalCourtLayer {
6
7
  reflection() {
7
8
  return true;
8
9
  }
@@ -36,5 +37,3 @@ class AttackLineLayer extends InternalCourtLayer {
36
37
  }
37
38
  }
38
39
  }
39
-
40
- module.exports = AttackLineLayer;
@@ -0,0 +1,10 @@
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
+
3
+ export default class BorderRectLayer extends InternalCourtLayer {
4
+ drawLogic() {
5
+ this.ctx.beginPath();
6
+ this.ctx.lineWidth = this.courtTypeConstants.COURT_LINE_WIDTH * 2;
7
+ this.ctx.rect(0, 0, this.courtTypeConstants.COURT_RECT_WIDTH, this.courtTypeConstants.COURT_RECT_HEIGHT);
8
+ this.ctx.stroke();
9
+ }
10
+ }
@@ -1,6 +1,6 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
- class CenterLineLayer extends InternalCourtLayer {
3
+ export default class CenterLineLayer extends InternalCourtLayer {
4
4
  drawLogic() {
5
5
  const courtOrigin = { x: 0.0, y: this.courtCenter.y };
6
6
  const courtTerminus = { x: this.courtTypeConstants.COURT_RECT_WIDTH, y: this.courtCenter.y };
@@ -14,5 +14,3 @@ class CenterLineLayer extends InternalCourtLayer {
14
14
  this.ctx.beginPath();
15
15
  }
16
16
  }
17
-
18
- module.exports = CenterLineLayer;
@@ -1,7 +1,8 @@
1
- const InternalCourtLayer = require('../../../base/InternalCourtLayer');
1
+ import InternalCourtLayer from '../../../base/InternalCourtLayer';
2
2
 
3
3
  const HASH_MARK_LENGTH = 0.574;
4
- class HashMarkLayer extends InternalCourtLayer {
4
+
5
+ export default class HashMarkLayer extends InternalCourtLayer {
5
6
  reflection() {
6
7
  return true;
7
8
  }
@@ -21,5 +22,3 @@ class HashMarkLayer extends InternalCourtLayer {
21
22
  this.ctx.stroke();
22
23
  }
23
24
  }
24
-
25
- module.exports = HashMarkLayer;
@@ -0,0 +1,6 @@
1
+ import AttackLineLayer from './AttackLineLayer';
2
+ import BorderRectLayer from './BorderRectLayer';
3
+ import CenterLineLayer from './CenterLineLayer';
4
+ import HashMarkLayer from './HashMarkLayer';
5
+
6
+ export { AttackLineLayer, BorderRectLayer, CenterLineLayer, HashMarkLayer };
@@ -1,10 +1,8 @@
1
- const InternalLineLayer = require('./InternalLineLayer');
1
+ import InternalLineLayer from './InternalLineLayer';
2
2
 
3
- class ActionLineLayer extends InternalLineLayer {
3
+ export default class ActionLineLayer extends InternalLineLayer {
4
4
  allowDrawLineCap() {
5
5
  if (this.line.hideLineTip) return false;
6
6
  return !(this.options.magnetMode && !this.options.animationGlobalProgress);
7
7
  }
8
8
  }
9
-
10
- module.exports = ActionLineLayer;
@@ -1,11 +1,33 @@
1
- const InternalBaseLayer = require('../../base/InternalBaseLayer');
2
- const LineDrawingMath = require('../../../math/LineDrawingMath');
3
- const LineDrawOperationsTrait = require('../../../traits/LineDrawOperationsTrait');
1
+ import InternalBaseLayer from '../../base/InternalBaseLayer';
2
+ import { adjustedBezierCurveWithExclusionZones } from '../../../math/LineDrawingMath';
3
+ import LineDrawOperationsTrait from '../../../traits/LineDrawOperationsTrait';
4
+ import LineLayer from '../../LineLayer';
5
+ import LineModel from '../../../models/LineModel';
6
+ import { CourtPoint, LinePart } from '../../../types';
7
+
8
+ export type MaskSettings = {
9
+ radius: number;
10
+ centerPoint: CourtPoint;
11
+ };
12
+
13
+ export default class InternalLineLayer extends InternalBaseLayer {
14
+ // ========= LineDrawOperationsTrait Methods ====================
15
+ protected drawLineFromControlPoints(): void {}
16
+ protected drawArrowLineCap(arrowTipPoint?: CourtPoint): void {}
17
+ protected handOffLineCap(lineParts: LinePart[]): void {}
18
+ protected drawPerpendicularLineCap(): void {}
19
+ protected angleBetweenLastTwoPoints(): number {
20
+ return 0;
21
+ }
22
+ // ==============================================================
23
+
24
+ protected lineWidth: number;
25
+ private readonly debugMasking: boolean;
26
+ private startMaskSettings: MaskSettings | null;
27
+ private endMaskSettings: MaskSettings | null;
4
28
 
5
- class InternalLineLayer extends InternalBaseLayer {
6
- constructor(parentLayer, line) {
29
+ constructor(parentLayer: LineLayer, protected line: LineModel) {
7
30
  super(parentLayer);
8
- this.line = line;
9
31
  this.lineWidth = parentLayer.lineWidth;
10
32
  this.debugMasking = false;
11
33
  this.startMaskSettings = null;
@@ -54,7 +76,7 @@ class InternalLineLayer extends InternalBaseLayer {
54
76
  // console.log('lineControlPointsBase', lineControlPoints);
55
77
 
56
78
  if (this.startMaskSettings) {
57
- lineControlPoints = LineDrawingMath.adjustedBezierCurveWithExclusionZones(
79
+ lineControlPoints = adjustedBezierCurveWithExclusionZones(
58
80
  lineControlPoints,
59
81
  this.startMaskSettings.radius,
60
82
  this.startMaskSettings.centerPoint
@@ -66,7 +88,7 @@ class InternalLineLayer extends InternalBaseLayer {
66
88
  }
67
89
 
68
90
  if (this.endMaskSettings) {
69
- lineControlPoints = LineDrawingMath.adjustedBezierCurveWithExclusionZones(
91
+ lineControlPoints = adjustedBezierCurveWithExclusionZones(
70
92
  lineControlPoints,
71
93
  null,
72
94
  null,
@@ -164,5 +186,3 @@ class InternalLineLayer extends InternalBaseLayer {
164
186
  }
165
187
 
166
188
  Object.assign(InternalLineLayer.prototype, LineDrawOperationsTrait);
167
-
168
- module.exports = InternalLineLayer;
@@ -0,0 +1,8 @@
1
+ import CutLineLayer from './layers/CutLineLayer';
2
+ import DribbleLineLayer from './layers/DribbleLineLayer';
3
+ import HandoffLineLayer from './layers/HandoffLineLayer';
4
+ import PassLineLayer from './layers/PassLineLayer';
5
+ import ScreenLineLayer from './layers/ScreenLineLayer';
6
+ import ShotLineLayer from './layers/ShotLineLayer';
7
+
8
+ export { CutLineLayer, DribbleLineLayer, HandoffLineLayer, PassLineLayer, ScreenLineLayer, ShotLineLayer };
@@ -0,0 +1,7 @@
1
+ import ActionLineLayer from '../base/ActionLineLayer';
2
+
3
+ export default class CutLineLayer extends ActionLineLayer {
4
+ drawLineCap() {
5
+ if (this.allowDrawLineCap()) this.drawArrowLineCap();
6
+ }
7
+ }
@@ -1,9 +1,17 @@
1
- const _ = require('lodash');
2
- const common = require('../../../helpers/common');
3
- const ActionLineLayer = require('../base/ActionLineLayer');
4
- const DribbleLineTrait = require('../../../traits/DribbleLineTrait');
1
+ import _ from 'lodash';
2
+ import { animationProgress } from '../../../helpers/common';
3
+ import ActionLineLayer from '../base/ActionLineLayer';
4
+ import DribbleLineTrait from '../../../traits/DribbleLineTrait';
5
+ import { CourtPoint, LinePart } from '../../../types';
6
+ import { LinePartAdjusted } from '../../../models/LineModel';
7
+
8
+ export default class DribbleLineLayer extends ActionLineLayer {
9
+ // ================ DribbleLineTrait Methods ====================
10
+ private convertLinePartsToDribble(lineParts: LinePart[]): LinePartAdjusted[] {
11
+ return [];
12
+ }
13
+ // ==============================================================
5
14
 
6
- class DribbleLineLayer extends ActionLineLayer {
7
15
  drawLineCap() {
8
16
  if (this.allowDrawLineCap()) this.drawArrowLineCap();
9
17
  }
@@ -19,7 +27,7 @@ class DribbleLineLayer extends ActionLineLayer {
19
27
  if (this.options.animationGlobalProgress) {
20
28
  const [start, end] = this.line.animationKeyTimeChunks[lpIndex];
21
29
  if (_.inRange(this.options.animationGlobalProgress, start, end)) {
22
- if (common.animationProgress(this.options.animationGlobalProgress, start, end) > firstPoint.time) {
30
+ if (animationProgress(this.options.animationGlobalProgress, start, end) > firstPoint.time) {
23
31
  alpha = 0.1;
24
32
  }
25
33
  }
@@ -30,5 +38,3 @@ class DribbleLineLayer extends ActionLineLayer {
30
38
  }
31
39
 
32
40
  Object.assign(DribbleLineLayer.prototype, DribbleLineTrait);
33
-
34
- module.exports = DribbleLineLayer;
@@ -1,6 +1,7 @@
1
- const InternalLineLayer = require('../base/InternalLineLayer');
1
+ import InternalLineLayer from '../base/InternalLineLayer';
2
+ import { CourtPointAdjusted } from '../../../models/LineModel';
2
3
 
3
- class HandoffLineLayer extends InternalLineLayer {
4
+ export default class HandoffLineLayer extends InternalLineLayer {
4
5
  drawLineCap() {
5
6
  this.handOffLineCap(this.line.baseLineParts());
6
7
  }
@@ -8,9 +9,7 @@ class HandoffLineLayer extends InternalLineLayer {
8
9
  getProcessedLinePaths() {
9
10
  return this.line.getLineParts().map(lp => {
10
11
  const cp = lp.controlPoints;
11
- return { ...lp, controlPoints: [cp[0], cp[cp.length - 1]] };
12
+ return { ...lp, controlPoints: [cp[0], cp[cp.length - 1]] as [CourtPointAdjusted, CourtPointAdjusted] };
12
13
  });
13
14
  }
14
15
  }
15
-
16
- module.exports = HandoffLineLayer;
@@ -0,0 +1,11 @@
1
+ import InternalLineLayer from '../base/InternalLineLayer';
2
+
3
+ export default class PassLineLayer extends InternalLineLayer {
4
+ setLineOptions() {
5
+ this.ctx.setLineDash([1, 0.5]);
6
+ }
7
+
8
+ drawLineCap() {
9
+ this.drawArrowLineCap();
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ import ActionLineLayer from '../base/ActionLineLayer';
2
+
3
+ export default class ScreenLineLayer extends ActionLineLayer {
4
+ drawLineCap() {
5
+ if (this.allowDrawLineCap()) this.drawPerpendicularLineCap();
6
+ }
7
+ }
@@ -1,6 +1,6 @@
1
- const ActionLineLayer = require('../base/ActionLineLayer');
1
+ import ActionLineLayer from '../base/ActionLineLayer';
2
2
 
3
- class ShotLineLayer extends ActionLineLayer {
3
+ export default class ShotLineLayer extends ActionLineLayer {
4
4
  drawLineCap() {
5
5
  if (this.allowDrawLineCap()) {
6
6
  const lastPoint = this.line.lastLinePartControlPoint;
@@ -84,5 +84,3 @@ class ShotLineLayer extends ActionLineLayer {
84
84
  this.ctx.restore();
85
85
  }
86
86
  }
87
-
88
- module.exports = ShotLineLayer;
@@ -1,9 +1,13 @@
1
- const InternalBaseLayer = require('../../base/InternalBaseLayer');
1
+ import InternalBaseLayer from '../../base/InternalBaseLayer';
2
+ import ShapeLayer from '../../ShapeLayer';
3
+ import ShapeModel from '../../../models/ShapeModel';
2
4
 
3
5
  const DEBUG_WRAP_POINTS = false;
4
6
 
5
- class InternalShapeLayer extends InternalBaseLayer {
6
- constructor(parentLayer, shape) {
7
+ export default class InternalShapeLayer extends InternalBaseLayer {
8
+ protected readonly shape: ShapeModel;
9
+
10
+ constructor(parentLayer: ShapeLayer, shape: ShapeModel) {
7
11
  super(parentLayer);
8
12
  this.shape = shape;
9
13
  }
@@ -72,5 +76,3 @@ class InternalShapeLayer extends InternalBaseLayer {
72
76
  // Override this function in a subclass
73
77
  }
74
78
  }
75
-
76
- module.exports = InternalShapeLayer;
@@ -0,0 +1,28 @@
1
+ import CutLineShapeLayer from './layers/line/CutLineShapeLayer';
2
+ import DribbleLineShapeLayer from './layers/line/DribbleLineShapeLayer';
3
+ import HandoffLineShapeLayer from './layers/line/HandoffLineShapeLayer';
4
+ import PassLineShapeLayer from './layers/line/PassLineShapeLayer';
5
+ import ScreenLineShapeLayer from './layers/line/ScreenLineShapeLayer';
6
+
7
+ import CircleShapeLayer from './layers/CircleShapeLayer';
8
+ import ConeShapeLayer from './layers/ConeShapeLayer';
9
+ import FovShapeLayer from './layers/FovShapeLayer';
10
+ import SquareShapeLayer from './layers/SquareShapeLayer';
11
+ import StraightShapeLayer from './layers/StraightShapeLayer';
12
+ import TriangleShapeLayer from './layers/TriangleShapeLayer';
13
+ import XmarkShapeLayer from './layers/XmarkShapeLayer';
14
+
15
+ export {
16
+ CutLineShapeLayer,
17
+ DribbleLineShapeLayer,
18
+ HandoffLineShapeLayer,
19
+ PassLineShapeLayer,
20
+ ScreenLineShapeLayer,
21
+ CircleShapeLayer,
22
+ ConeShapeLayer,
23
+ FovShapeLayer,
24
+ SquareShapeLayer,
25
+ StraightShapeLayer,
26
+ TriangleShapeLayer,
27
+ XmarkShapeLayer
28
+ };
@@ -1,6 +1,6 @@
1
- const InternalShapeLayer = require('../base/InternalShapeLayer');
1
+ import InternalShapeLayer from '../base/InternalShapeLayer';
2
2
 
3
- class CircleShapeLayer extends InternalShapeLayer {
3
+ export default class CircleShapeLayer extends InternalShapeLayer {
4
4
  drawShapeLogic() {
5
5
  const { outerCircleRadius } = this.shape;
6
6
 
@@ -9,5 +9,3 @@ class CircleShapeLayer extends InternalShapeLayer {
9
9
  this.ctx.fill();
10
10
  }
11
11
  }
12
-
13
- module.exports = CircleShapeLayer;
@@ -1,6 +1,6 @@
1
- const InternalShapeLayer = require('../base/InternalShapeLayer');
1
+ import InternalShapeLayer from '../base/InternalShapeLayer';
2
2
 
3
- class ConeShapeLayer extends InternalShapeLayer {
3
+ export default class ConeShapeLayer extends InternalShapeLayer {
4
4
  drawShapeLogic() {
5
5
  const { color, outerCircleRadius } = this.shape;
6
6
  if (color.alpha === 0) return;
@@ -19,5 +19,3 @@ class ConeShapeLayer extends InternalShapeLayer {
19
19
  }
20
20
  }
21
21
  }
22
-
23
- module.exports = ConeShapeLayer;