@luceosports/play-rendering 1.19.0 → 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.
- package/.babelrc +2 -1
- package/.eslintrc +11 -42
- package/dist/play-rendering.d.ts +21 -0
- package/dist/play-rendering.js +17 -8
- package/dist/play-rendering.js.map +1 -1
- package/dist/types/constants.d.ts +41 -0
- package/dist/types/helpers/common.d.ts +5 -0
- package/dist/types/layers/court/index.d.ts +18 -0
- package/dist/types/math/Bezier.d.ts +19 -0
- package/dist/types/math/LineDrawingMath.d.ts +8 -0
- package/dist/types/models/AnimationModel.d.ts +21 -0
- package/dist/types/models/FrameModel.d.ts +39 -0
- package/dist/types/models/LineModel.d.ts +22 -0
- package/dist/types/models/NoteModel.d.ts +17 -0
- package/dist/types/models/PlayModel.d.ts +40 -0
- package/dist/types/models/PlayerModel.d.ts +20 -0
- package/dist/types/models/ShapeModel.d.ts +54 -0
- package/dist/types/models/ShapeModels/CircleShape.d.ts +8 -0
- package/dist/types/models/ShapeModels/ConeShape.d.ts +8 -0
- package/dist/types/models/ShapeModels/FovShape.d.ts +12 -0
- package/dist/types/models/ShapeModels/LineShape.d.ts +11 -0
- package/dist/types/models/ShapeModels/SquareShape.d.ts +8 -0
- package/dist/types/models/ShapeModels/StraightShape.d.ts +12 -0
- package/dist/types/models/ShapeModels/TriangleShape.d.ts +12 -0
- package/dist/types/models/ShapeModels/XMarkShape.d.ts +8 -0
- package/dist/types/models/ShapeModels/index.d.ts +14 -0
- package/dist/types/models/ShapeModels/line/CutLineShape.d.ts +3 -0
- package/dist/types/models/ShapeModels/line/DribbleLineShape.d.ts +3 -0
- package/dist/types/models/ShapeModels/line/HandoffLineShape.d.ts +3 -0
- package/dist/types/models/ShapeModels/line/PassLineShape.d.ts +3 -0
- package/dist/types/models/ShapeModels/line/ScreenLineShape.d.ts +3 -0
- package/dist/types/types/index.d.ts +138 -0
- package/package.json +16 -13
- package/src/config.ts +1 -0
- package/src/constants.ts +49 -0
- package/src/global.d.ts +9 -0
- package/src/helpers/common.ts +40 -0
- package/src/index.ts +36 -0
- package/src/layers/{CourtLayer.js → CourtLayer.ts} +4 -6
- package/src/layers/{LineControlPointLayer.js → LineControlPointLayer.ts} +2 -4
- package/src/layers/{LineLayer.js → LineLayer.ts} +5 -7
- package/src/layers/{NoteLayer.js → NoteLayer.ts} +19 -19
- package/src/layers/{PlayerLayer.js → PlayerLayer.ts} +6 -7
- package/src/layers/{ShapeControlPointLayer.js → ShapeControlPointLayer.ts} +2 -4
- package/src/layers/{ShapeLayer.js → ShapeLayer.ts} +4 -6
- package/src/layers/base/BaseLayer.ts +15 -0
- package/src/layers/base/InternalBaseLayer.ts +29 -0
- package/src/layers/court/base/{InternalCourtLayer.js → InternalCourtLayer.ts} +3 -5
- package/src/layers/court/index.ts +213 -0
- package/src/layers/court/layers/BASEBALL/constants.ts +5 -0
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/constants.ts +34 -0
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{ADirtLayer.js → ADirtLayer.ts} +14 -14
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{BaseLineLayer.js → BaseLineLayer.ts} +4 -10
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{HomePlateLayer.js → HomePlateLayer.ts} +14 -15
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/{PitchingMoundLayer.js → PitchingMoundLayer.ts} +7 -8
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/layers/index.ts +6 -0
- package/src/layers/court/layers/{BASKETBALL/layers/BorderRectLayer.js → BASEBALL/layers/BorderRectLayer.ts} +2 -4
- package/src/layers/court/layers/BASEBALL/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/common/{LaneMarkingNBATrait.js → LaneMarkingNBATrait.ts} +1 -1
- package/src/layers/court/layers/BASKETBALL/common/{LaneMarkingNCAATrait.js → LaneMarkingNCAATrait.ts} +1 -1
- package/src/layers/court/layers/BASKETBALL/constants.ts +5 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/{Big3Layer.js → Big3Layer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/index.ts +4 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/layers/{LaneMarkingLayer.js → LaneMarkingLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/constants.ts +11 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/LaneMarkingLayer.ts +10 -0
- package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/index.ts +3 -0
- package/src/layers/court/layers/BASKETBALL/layers/{BaseLineMarkingLayer.js → BaseLineMarkingLayer.ts} +3 -4
- package/src/layers/court/layers/BASKETBALL/layers/{BenchAreaLayer.js → BenchAreaLayer.ts} +2 -4
- package/src/layers/court/layers/{LACROSSE/layers/BorderRectLayer.js → BASKETBALL/layers/BorderRectLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
- package/src/layers/court/layers/{FOOTBALL/layers/CenterLineLayer.js → BASKETBALL/layers/CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/{FreeThrowLayer.js → FreeThrowLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/{HoopLayer.js → HoopLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/{InnerOuterRectLayer.js → InnerOuterRectLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/{RestrictedAreaLayer.js → RestrictedAreaLayer.ts} +3 -4
- package/src/layers/court/layers/BASKETBALL/layers/{ThreePointLineLayer.js → ThreePointLineLayer.ts} +2 -4
- package/src/layers/court/layers/BASKETBALL/layers/index.ts +23 -0
- package/src/layers/court/layers/FOOTBALL/constants.ts +5 -0
- package/src/layers/court/layers/FOOTBALL/courtTypes/FOOTBALL_HIGH_SCHOOL/constants.ts +3 -0
- package/src/layers/court/layers/{BASEBALL/layers/BorderRectLayer.js → FOOTBALL/layers/BorderRectLayer.ts} +2 -4
- package/src/layers/court/layers/{SOCCER/layers/CenterLineLayer.js → FOOTBALL/layers/CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/FOOTBALL/layers/{EndZoneLayer.js → EndZoneLayer.ts} +2 -4
- package/src/layers/court/layers/FOOTBALL/layers/{FieldNumberLayer.js → FieldNumberLayer.ts} +2 -4
- package/src/layers/court/layers/FOOTBALL/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
- package/src/layers/court/layers/FOOTBALL/layers/{YardLineLayer.js → YardLineLayer.ts} +2 -4
- package/src/layers/court/layers/FOOTBALL/layers/index.ts +8 -0
- package/src/layers/court/layers/HOCKEY/constants.ts +5 -0
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/constants.ts +12 -0
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/layers/{GoaCreaseLayer.js → GoaCreaseLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/layers/index.ts +3 -0
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/constants.ts +12 -0
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/layers/{GoaCreaseLayer.js → GoaCreaseLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/layers/index.ts +3 -0
- package/src/layers/court/layers/HOCKEY/layers/{BorderRinkLayer.js → BorderRinkLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{EndZoneLayer.js → EndZoneLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{GoalLineLayer.js → GoalLineLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{NeutralZoneLayer.js → NeutralZoneLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/{RefereeCreaseLayer.js → RefereeCreaseLayer.ts} +2 -4
- package/src/layers/court/layers/HOCKEY/layers/index.ts +19 -0
- package/src/layers/court/layers/LACROSSE/constants.ts +5 -0
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/constants.ts +4 -0
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{GoalAreaLineLayer.js → GoalAreaLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/{WingAreaLineLayer.js → WingAreaLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/layers/index.ts +5 -0
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/constants.ts +3 -0
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/{FanLineLayer.js → FanLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/layers/index.ts +4 -0
- package/src/layers/court/layers/{FOOTBALL/layers/BorderRectLayer.js → LACROSSE/layers/BorderRectLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/layers/{RestrainingLineLayer.js → RestrainingLineLayer.ts} +2 -4
- package/src/layers/court/layers/LACROSSE/layers/index.ts +4 -0
- package/src/layers/court/layers/SOCCER/constants.ts +5 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_FIFA/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/layers/index.ts +5 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/{HashMarkLayer.js → HashMarkLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/layers/index.ts +4 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/{BuildOutLineLayer.js → BuildOutLineLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/layers/index.ts +4 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/layers/index.ts +3 -0
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U19/constants.ts +7 -0
- package/src/layers/court/layers/SOCCER/layers/BorderRectLayer.ts +10 -0
- package/src/layers/court/layers/SOCCER/layers/{CenterCircleLayer.js → CenterCircleLayer.ts} +2 -4
- package/src/layers/court/layers/{BASKETBALL/layers/CenterLineLayer.js → SOCCER/layers/CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/layers/{CenterSpotLayer.js → CenterSpotLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/layers/{CornerLayer.js → CornerLayer.ts} +3 -4
- package/src/layers/court/layers/SOCCER/layers/{PenaltyArcLayer.js → PenaltyArcLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/layers/{PenaltyAreaLayer.js → PenaltyAreaLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/layers/{PenaltySpotLayer.js → PenaltySpotLayer.ts} +2 -4
- package/src/layers/court/layers/SOCCER/layers/index.ts +19 -0
- package/src/layers/court/layers/VOLLEYBALL/constants.ts +5 -0
- package/src/layers/court/layers/VOLLEYBALL/courtTypes/VOLLEYBALL_INDOOR/constants.ts +2 -0
- package/src/layers/court/layers/VOLLEYBALL/layers/{AttackLineLayer.js → AttackLineLayer.ts} +3 -4
- package/src/layers/court/layers/VOLLEYBALL/layers/BorderRectLayer.ts +10 -0
- package/src/layers/court/layers/VOLLEYBALL/layers/{CenterLineLayer.js → CenterLineLayer.ts} +2 -4
- package/src/layers/court/layers/VOLLEYBALL/layers/{HashMarkLayer.js → HashMarkLayer.ts} +3 -4
- package/src/layers/court/layers/VOLLEYBALL/layers/index.ts +6 -0
- package/src/layers/line/base/{ActionLineLayer.js → ActionLineLayer.ts} +2 -4
- package/src/layers/line/base/{InternalLineLayer.js → InternalLineLayer.ts} +30 -10
- package/src/layers/line/index.ts +8 -0
- package/src/layers/line/layers/CutLineLayer.ts +7 -0
- package/src/layers/line/layers/{DribbleLineLayer.js → DribbleLineLayer.ts} +14 -8
- package/src/layers/line/layers/{HandoffLineLayer.js → HandoffLineLayer.ts} +4 -5
- package/src/layers/line/layers/PassLineLayer.ts +11 -0
- package/src/layers/line/layers/ScreenLineLayer.ts +7 -0
- package/src/layers/line/layers/{ShotLineLayer.js → ShotLineLayer.ts} +2 -4
- package/src/layers/shape/base/{InternalShapeLayer.js → InternalShapeLayer.ts} +7 -5
- package/src/layers/shape/index.ts +28 -0
- package/src/layers/shape/layers/{CircleShapeLayer.js → CircleShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{ConeShapeLayer.js → ConeShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{FovShapeLayer.js → FovShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{SquareShapeLayer.js → SquareShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{StraightShapeLayer.js → StraightShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{TriangleShapeLayer.js → TriangleShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/{XmarkShapeLayer.js → XmarkShapeLayer.ts} +2 -4
- package/src/layers/shape/layers/line/CutLineShapeLayer.ts +11 -0
- package/src/layers/shape/layers/line/DribbleLineShapeLayer.ts +26 -0
- package/src/layers/shape/layers/line/HandoffLineShapeLayer.ts +11 -0
- package/src/layers/shape/layers/line/PassLineShapeLayer.ts +15 -0
- package/src/layers/shape/layers/line/ScreenLineShapeLayer.ts +11 -0
- package/src/layers/shape/layers/line/base/InternalLineShapeLayer.ts +44 -0
- package/src/math/{Bezier.js → Bezier.ts} +48 -46
- package/src/math/LineDrawingMath.ts +573 -0
- package/src/models/{Animation.js → AnimationModel.ts} +29 -22
- package/src/models/Base/InternalFrameModel.ts +23 -0
- package/src/models/{Frame.js → FrameModel.ts} +136 -82
- package/src/models/{Line.js → LineModel.ts} +26 -14
- package/src/models/{Note.js → NoteModel.ts} +12 -11
- package/src/models/Play/Options.ts +31 -0
- package/src/models/PlayModel.ts +139 -0
- package/src/models/{Player.js → PlayerModel.ts} +5 -6
- package/src/models/{Shape.js → ShapeModel.ts} +9 -10
- package/src/models/ShapeModels/{CircleShape.js → CircleShape.ts} +2 -4
- package/src/models/ShapeModels/{ConeShape.js → ConeShape.ts} +2 -4
- package/src/models/ShapeModels/{FovShape.js → FovShape.ts} +2 -4
- package/src/models/ShapeModels/{LineShape.js → LineShape.ts} +4 -6
- package/src/models/ShapeModels/{XMarkShape.js → SquareShape.ts} +2 -4
- package/src/models/ShapeModels/{StraightShape.js → StraightShape.ts} +2 -4
- package/src/models/ShapeModels/{TriangleShape.js → TriangleShape.ts} +2 -4
- package/src/models/ShapeModels/{SquareShape.js → XMarkShape.ts} +2 -4
- package/src/models/ShapeModels/index.ts +30 -0
- package/src/models/ShapeModels/line/CutLineShape.ts +3 -0
- package/src/models/ShapeModels/line/DribbleLineShape.ts +3 -0
- package/src/models/ShapeModels/line/HandoffLineShape.ts +3 -0
- package/src/models/ShapeModels/line/PassLineShape.ts +3 -0
- package/src/models/ShapeModels/line/ScreenLineShape.ts +3 -0
- package/src/playerHatsConfig.ts +39 -0
- package/src/shapesConfig.ts +8 -0
- package/src/traits/{DribbleLineTrait.js → DribbleLineTrait.ts} +12 -10
- package/src/traits/{LineDrawOperationsTrait.js → LineDrawOperationsTrait.ts} +12 -9
- package/src/types/index.ts +205 -0
- package/tsconfig.json +21 -0
- package/webpack.config.js +5 -8
- package/index.js +0 -17
- package/src/config.js +0 -3
- package/src/constants.js +0 -51
- package/src/helpers/common.js +0 -12
- package/src/layers/base/BaseLayer.js +0 -20
- package/src/layers/base/InternalBaseLayer.js +0 -22
- package/src/layers/court/index.js +0 -64
- package/src/layers/court/layers/BASEBALL/constants.js +0 -7
- package/src/layers/court/layers/BASEBALL/courtTypes/BASEBALL_HIGH_SCHOOL/constants.js +0 -36
- package/src/layers/court/layers/BASKETBALL/constants.js +0 -7
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/BIG3/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/FIBA/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/NBA/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAM/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/NCAAW/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/US_JUNIOR_HIGH/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/constants.js +0 -13
- package/src/layers/court/layers/BASKETBALL/courtTypes/WNBA/layers/LaneMarkingLayer.js +0 -12
- package/src/layers/court/layers/FOOTBALL/constants.js +0 -7
- package/src/layers/court/layers/FOOTBALL/courtTypes/FOOTBALL_HIGH_SCHOOL/constants.js +0 -5
- package/src/layers/court/layers/HOCKEY/constants.js +0 -7
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_INTERNATIONAL/constants.js +0 -14
- package/src/layers/court/layers/HOCKEY/courtTypes/HOCKEY_NHL/constants.js +0 -14
- package/src/layers/court/layers/LACROSSE/constants.js +0 -7
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_M/constants.js +0 -6
- package/src/layers/court/layers/LACROSSE/courtTypes/LACROSSE_US_W/constants.js +0 -5
- package/src/layers/court/layers/SOCCER/constants.js +0 -7
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_FIFA/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NCAA/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_NFHS/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U10/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U12/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/courtTypes/SOCCER_U19/constants.js +0 -9
- package/src/layers/court/layers/SOCCER/layers/BorderRectLayer.js +0 -12
- package/src/layers/court/layers/VOLLEYBALL/constants.js +0 -7
- package/src/layers/court/layers/VOLLEYBALL/courtTypes/VOLLEYBALL_INDOOR/constants.js +0 -4
- package/src/layers/court/layers/VOLLEYBALL/layers/BorderRectLayer.js +0 -12
- package/src/layers/line/index.js +0 -11
- package/src/layers/line/layers/CutLineLayer.js +0 -9
- package/src/layers/line/layers/PassLineLayer.js +0 -13
- package/src/layers/line/layers/ScreenLineLayer.js +0 -9
- package/src/layers/shape/index.js +0 -17
- package/src/layers/shape/layers/line/CutLineShapeLayer.js +0 -13
- package/src/layers/shape/layers/line/DribbleLineShapeLayer.js +0 -20
- package/src/layers/shape/layers/line/HandoffLineShapeLayer.js +0 -13
- package/src/layers/shape/layers/line/PassLineShapeLayer.js +0 -17
- package/src/layers/shape/layers/line/ScreenLineShapeLayer.js +0 -13
- package/src/layers/shape/layers/line/base/InternalLineShapeLayer.js +0 -34
- package/src/math/LineDrawingMath.js +0 -570
- package/src/models/Base/InternalFrameModel.js +0 -20
- package/src/models/Play/Options.js +0 -31
- package/src/models/Play.js +0 -91
- package/src/models/ShapeModels/index.js +0 -18
- package/src/models/ShapeModels/line/CutLineShape.js +0 -5
- package/src/models/ShapeModels/line/DribbleLineShape.js +0 -5
- package/src/models/ShapeModels/line/HandoffLineShape.js +0 -5
- package/src/models/ShapeModels/line/PassLineShape.js +0 -5
- package/src/models/ShapeModels/line/ScreenLineShape.js +0 -5
- package/src/playerHatsConfig.js +0 -29
- package/src/shapesConfig.js +0 -6
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
export type PlayerPosition = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11';
|
|
2
|
+
|
|
3
|
+
export type DefenderPosition = 'x1' | 'x2' | 'x3' | 'x4' | 'x5' | 'x6' | 'x7' | 'x8' | 'x9' | 'x10' | 'x11';
|
|
4
|
+
|
|
5
|
+
export type CoachPosition = 'C';
|
|
6
|
+
|
|
7
|
+
export type Position = PlayerPosition | DefenderPosition | CoachPosition;
|
|
8
|
+
|
|
9
|
+
export type LineType = 'PASS' | 'CUT' | 'SCREEN' | 'DRIBBLE' | 'HANDOFF' | 'SHOT';
|
|
10
|
+
|
|
11
|
+
export type LineShapeType = 'LINE.CUT' | 'LINE.SCREEN' | 'LINE.DRIBBLE' | 'LINE.PASS' | 'LINE.HANDOFF';
|
|
12
|
+
|
|
13
|
+
export type ShapeType = 'CIRCLE' | 'SQUARE' | 'TRIANGLE' | 'FOV' | 'XMARK' | 'STRAIGHT' | 'CONE' | LineShapeType;
|
|
14
|
+
|
|
15
|
+
export type SportType = 'FOOTBALL' | 'BASKETBALL' | 'VOLLEYBALL' | 'LACROSSE' | 'SOCCER' | 'HOCKEY' | 'BASEBALL';
|
|
16
|
+
|
|
17
|
+
export type CourtTypeSportBasketball =
|
|
18
|
+
| 'BIG3'
|
|
19
|
+
| 'NBA'
|
|
20
|
+
| 'WNBA'
|
|
21
|
+
| 'FIBA'
|
|
22
|
+
| 'NCAAM'
|
|
23
|
+
| 'NCAAW'
|
|
24
|
+
| 'US_HIGH_SCHOOL'
|
|
25
|
+
| 'US_JUNIOR_HIGH';
|
|
26
|
+
|
|
27
|
+
export type CourtTypeSportVolleyball = 'VOLLEYBALL_INDOOR';
|
|
28
|
+
|
|
29
|
+
export type CourtTypeSportSoccer =
|
|
30
|
+
| 'SOCCER_FIFA'
|
|
31
|
+
| 'SOCCER_NCAA'
|
|
32
|
+
| 'SOCCER_NFHS'
|
|
33
|
+
| 'SOCCER_U10'
|
|
34
|
+
| 'SOCCER_U12'
|
|
35
|
+
| 'SOCCER_U19';
|
|
36
|
+
|
|
37
|
+
export type CourtTypeSportHockey = 'HOCKEY_NHL' | 'HOCKEY_INTERNATIONAL';
|
|
38
|
+
|
|
39
|
+
export type CourtTypeSportBaseball = 'BASEBALL_HIGH_SCHOOL';
|
|
40
|
+
|
|
41
|
+
export type CourtTypeSportLacrosse = 'LACROSSE_US_M' | 'LACROSSE_US_W';
|
|
42
|
+
|
|
43
|
+
export type CourtTypeSportFootball = 'FOOTBALL_HIGH_SCHOOL';
|
|
44
|
+
|
|
45
|
+
export type CourtTypeSportFootballLegacy = 'FOOTBALL';
|
|
46
|
+
|
|
47
|
+
export type CourtType =
|
|
48
|
+
| CourtTypeSportBasketball
|
|
49
|
+
| CourtTypeSportVolleyball
|
|
50
|
+
| CourtTypeSportLacrosse
|
|
51
|
+
| CourtTypeSportSoccer
|
|
52
|
+
| CourtTypeSportHockey
|
|
53
|
+
| CourtTypeSportBaseball
|
|
54
|
+
| CourtTypeSportFootball
|
|
55
|
+
| CourtTypeSportFootballLegacy;
|
|
56
|
+
|
|
57
|
+
export type ShapeControlPoints =
|
|
58
|
+
| [CourtPoint, CourtPoint]
|
|
59
|
+
| [CourtPoint, CourtPoint, CourtPoint]
|
|
60
|
+
| [CourtPoint, CourtPoint, CourtPoint, CourtPoint];
|
|
61
|
+
|
|
62
|
+
export type NoteDisplayModes = ['onCourt'] | ['playNote'] | ['onCourt', 'playNote'];
|
|
63
|
+
|
|
64
|
+
export interface SportConstants {
|
|
65
|
+
PLAYER_TOKEN_RADIUS: number;
|
|
66
|
+
PLAYER_TOKEN_SCALE: number;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface CourtTypeConstants {
|
|
70
|
+
COURT_RECT_WIDTH: number;
|
|
71
|
+
COURT_RECT_HEIGHT: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface CourtPoint {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface CourtSize {
|
|
80
|
+
height: number;
|
|
81
|
+
width: number;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface Scale {
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface LinePart {
|
|
90
|
+
controlPoints:
|
|
91
|
+
| [CourtPoint, CourtPoint]
|
|
92
|
+
| [CourtPoint, CourtPoint, CourtPoint]
|
|
93
|
+
| [CourtPoint, CourtPoint, CourtPoint, CourtPoint];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface Color {
|
|
97
|
+
red: number;
|
|
98
|
+
green: number;
|
|
99
|
+
blue: number;
|
|
100
|
+
alpha: number;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface CourtRect {
|
|
104
|
+
origin: CourtPoint;
|
|
105
|
+
size: CourtSize;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface Court {
|
|
109
|
+
type: CourtType;
|
|
110
|
+
courtRect: CourtRect;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export type PlayerAnimationType = 'POSITION';
|
|
114
|
+
|
|
115
|
+
export interface PlayerAnimation {
|
|
116
|
+
id: string;
|
|
117
|
+
type: PlayerAnimationType;
|
|
118
|
+
keyTimes: number[];
|
|
119
|
+
lineParts: LinePart[];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface Player {
|
|
123
|
+
id: string;
|
|
124
|
+
possession: boolean;
|
|
125
|
+
color: Color;
|
|
126
|
+
position: Position;
|
|
127
|
+
location: CourtPoint;
|
|
128
|
+
textOverride?: string;
|
|
129
|
+
playerHatKey?: string;
|
|
130
|
+
animations: PlayerAnimation[];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export type LineAnimationType = 'LINESTROKE';
|
|
134
|
+
|
|
135
|
+
export interface LineAnimation {
|
|
136
|
+
id: string;
|
|
137
|
+
type: LineAnimationType;
|
|
138
|
+
keyTimes: number[];
|
|
139
|
+
strokeStartValues: [number, number, number];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export interface Line {
|
|
143
|
+
id: string;
|
|
144
|
+
type: LineType;
|
|
145
|
+
phase: number;
|
|
146
|
+
playerPositionOrigin: Position;
|
|
147
|
+
playerPositionTerminus: Position | null;
|
|
148
|
+
playerLineSequence: number;
|
|
149
|
+
lineParts: LinePart[];
|
|
150
|
+
color: Color;
|
|
151
|
+
hideLineTip?: boolean;
|
|
152
|
+
animations: LineAnimation[];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface Shape {
|
|
156
|
+
id: string;
|
|
157
|
+
type: ShapeType;
|
|
158
|
+
location: CourtPoint;
|
|
159
|
+
color: Color;
|
|
160
|
+
scale: Scale;
|
|
161
|
+
angle?: number;
|
|
162
|
+
showBorder?: boolean;
|
|
163
|
+
linePart?: LinePart;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export interface Note {
|
|
167
|
+
id: string;
|
|
168
|
+
location: CourtPoint;
|
|
169
|
+
displayModes: NoteDisplayModes;
|
|
170
|
+
text: string;
|
|
171
|
+
animations: NoteAnimation[];
|
|
172
|
+
font: NoteFont;
|
|
173
|
+
color: Color;
|
|
174
|
+
showBorder: boolean;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export interface NoteAnimation {
|
|
178
|
+
id: string;
|
|
179
|
+
keyTimes: number[];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface NoteFont {
|
|
183
|
+
bold: boolean;
|
|
184
|
+
italic: boolean;
|
|
185
|
+
underline: boolean;
|
|
186
|
+
strikethrough: boolean;
|
|
187
|
+
fontSize: number;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface PlayConstructData {
|
|
191
|
+
id?: string;
|
|
192
|
+
lastUpdtTS?: string;
|
|
193
|
+
name: string;
|
|
194
|
+
playData: PlayData;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export interface PlayData {
|
|
198
|
+
animationDuration: number;
|
|
199
|
+
sport: SportType;
|
|
200
|
+
court: Court;
|
|
201
|
+
players: Player[];
|
|
202
|
+
lines: Line[];
|
|
203
|
+
shapes?: Shape[];
|
|
204
|
+
notes?: Note[];
|
|
205
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
// Ensure that .d.ts files are created by tsc, but not .js files
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"declarationDir": "./dist/types-generated",
|
|
6
|
+
"emitDeclarationOnly": true,
|
|
7
|
+
// Ensure that Babel can safely transpile files in the TypeScript project
|
|
8
|
+
"isolatedModules": true,
|
|
9
|
+
"outDir": "./dist",
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"lib": [
|
|
12
|
+
"es2015",
|
|
13
|
+
"dom"
|
|
14
|
+
],
|
|
15
|
+
"target": "es2015",
|
|
16
|
+
"moduleResolution": "node"
|
|
17
|
+
},
|
|
18
|
+
"exclude": [
|
|
19
|
+
"node_modules"
|
|
20
|
+
]
|
|
21
|
+
}
|
package/webpack.config.js
CHANGED
|
@@ -4,7 +4,7 @@ module.exports = {
|
|
|
4
4
|
target: 'async-node', // this needed for linking this package for development via "npm link"
|
|
5
5
|
mode: 'production',
|
|
6
6
|
devtool: 'source-map',
|
|
7
|
-
entry: './index.
|
|
7
|
+
entry: './src/index.ts',
|
|
8
8
|
output: {
|
|
9
9
|
path: path.resolve(__dirname, './dist'),
|
|
10
10
|
filename: 'play-rendering.js',
|
|
@@ -13,24 +13,21 @@ module.exports = {
|
|
|
13
13
|
// libraryExport: 'default',
|
|
14
14
|
library: 'playRendering'
|
|
15
15
|
},
|
|
16
|
+
resolve: {
|
|
17
|
+
extensions: ['.ts', '.js']
|
|
18
|
+
},
|
|
16
19
|
externals: {
|
|
17
20
|
lodash: {
|
|
18
21
|
commonjs: 'lodash',
|
|
19
22
|
commonjs2: 'lodash',
|
|
20
23
|
amd: 'lodash',
|
|
21
24
|
root: '_'
|
|
22
|
-
},
|
|
23
|
-
canvas: {
|
|
24
|
-
commonjs: 'canvas',
|
|
25
|
-
commonjs2: 'canvas',
|
|
26
|
-
amd: 'canvas',
|
|
27
|
-
root: 'canvas'
|
|
28
25
|
}
|
|
29
26
|
},
|
|
30
27
|
module: {
|
|
31
28
|
rules: [
|
|
32
29
|
{
|
|
33
|
-
test: /\.(js)$/,
|
|
30
|
+
test: /\.(js|ts)$/,
|
|
34
31
|
exclude: /(node_modules|bower_components)/,
|
|
35
32
|
use: 'babel-loader'
|
|
36
33
|
},
|
package/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module.exports.Play = require('./src/models/Play');
|
|
2
|
-
module.exports.Frame = require('./src/models/Frame');
|
|
3
|
-
module.exports.Animation = require('./src/models/Animation');
|
|
4
|
-
module.exports.Line = require('./src/models/Line');
|
|
5
|
-
module.exports.Player = require('./src/models/Player');
|
|
6
|
-
module.exports.Note = require('./src/models/Note');
|
|
7
|
-
module.exports.Shape = require('./src/models/Shape');
|
|
8
|
-
module.exports.ShapeModels = require('./src/models/ShapeModels');
|
|
9
|
-
module.exports.LineDrawingMath = require('./src/math/LineDrawingMath');
|
|
10
|
-
module.exports.Bezier = require('./src/math/Bezier').Bezier;
|
|
11
|
-
module.exports.Constants = require('./src/constants');
|
|
12
|
-
|
|
13
|
-
const { courtTypeConstants, sportConstants, sportCourtTypeMap } = require('./src/layers/court');
|
|
14
|
-
|
|
15
|
-
module.exports.SportConstants = sportConstants;
|
|
16
|
-
module.exports.CourtTypeConstants = courtTypeConstants;
|
|
17
|
-
module.exports.SportCourtTypeMap = sportCourtTypeMap;
|
package/src/config.js
DELETED
package/src/constants.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
SPORT_TYPE_BASKETBALL: 'BASKETBALL',
|
|
3
|
-
SPORT_TYPE_VOLLEYBALL: 'VOLLEYBALL',
|
|
4
|
-
SPORT_TYPE_FOOTBALL: 'FOOTBALL',
|
|
5
|
-
SPORT_TYPE_LACROSSE: 'LACROSSE',
|
|
6
|
-
SPORT_TYPE_SOCCER: 'SOCCER',
|
|
7
|
-
SPORT_TYPE_HOCKEY: 'HOCKEY',
|
|
8
|
-
SPORT_TYPE_BASEBALL: 'BASEBALL',
|
|
9
|
-
|
|
10
|
-
COURT_TYPE_BIG3: 'BIG3',
|
|
11
|
-
COURT_TYPE_FIBA: 'FIBA',
|
|
12
|
-
COURT_TYPE_NBA: 'NBA',
|
|
13
|
-
COURT_TYPE_NCAAM: 'NCAAM',
|
|
14
|
-
COURT_TYPE_NCAAW: 'NCAAW',
|
|
15
|
-
COURT_TYPE_US_HIGH_SCHOOL: 'US_HIGH_SCHOOL',
|
|
16
|
-
COURT_TYPE_US_JUNIOR_HIGH: 'US_JUNIOR_HIGH',
|
|
17
|
-
COURT_TYPE_WNBA: 'WNBA',
|
|
18
|
-
|
|
19
|
-
COURT_TYPE_FOOTBALL_HIGH_SCHOOL: 'FOOTBALL_HIGH_SCHOOL',
|
|
20
|
-
COURT_TYPE_FOOTBALL_HIGH_SCHOOL_LEGACY: 'FOOTBALL',
|
|
21
|
-
|
|
22
|
-
COURT_TYPE_VOLLEYBALL_INDOOR: 'VOLLEYBALL_INDOOR',
|
|
23
|
-
|
|
24
|
-
COURT_TYPE_LACROSSE_US_M: 'LACROSSE_US_M',
|
|
25
|
-
COURT_TYPE_LACROSSE_US_W: 'LACROSSE_US_W',
|
|
26
|
-
|
|
27
|
-
COURT_TYPE_SOCCER_FIFA: 'SOCCER_FIFA',
|
|
28
|
-
COURT_TYPE_SOCCER_NCAA: 'SOCCER_NCAA',
|
|
29
|
-
COURT_TYPE_SOCCER_NFHS: 'SOCCER_NFHS',
|
|
30
|
-
COURT_TYPE_SOCCER_U10: 'SOCCER_U10',
|
|
31
|
-
COURT_TYPE_SOCCER_U12: 'SOCCER_U12',
|
|
32
|
-
COURT_TYPE_SOCCER_U19: 'SOCCER_U19',
|
|
33
|
-
|
|
34
|
-
COURT_TYPE_HOCKEY_NHL: 'HOCKEY_NHL',
|
|
35
|
-
COURT_TYPE_HOCKEY_INTERNATIONAL: 'HOCKEY_INTERNATIONAL',
|
|
36
|
-
|
|
37
|
-
COURT_TYPE_BASEBALL_HIGH_SCHOOL: 'BASEBALL_HIGH_SCHOOL',
|
|
38
|
-
|
|
39
|
-
SHAPE_TYPE_CIRCLE: 'CIRCLE',
|
|
40
|
-
SHAPE_TYPE_SQUARE: 'SQUARE',
|
|
41
|
-
SHAPE_TYPE_TRIANGLE: 'TRIANGLE',
|
|
42
|
-
SHAPE_TYPE_FOV: 'FOV',
|
|
43
|
-
SHAPE_TYPE_XMARK: 'XMARK',
|
|
44
|
-
SHAPE_TYPE_STRAIGHT: 'STRAIGHT',
|
|
45
|
-
SHAPE_TYPE_CONE: 'CONE',
|
|
46
|
-
SHAPE_TYPE_LINE_CUT: 'LINE.CUT',
|
|
47
|
-
SHAPE_TYPE_LINE_SCREEN: 'LINE.SCREEN',
|
|
48
|
-
SHAPE_TYPE_LINE_DRIBBLE: 'LINE.DRIBBLE',
|
|
49
|
-
SHAPE_TYPE_LINE_PASS: 'LINE.PASS',
|
|
50
|
-
SHAPE_TYPE_LINE_HANDOFF: 'LINE.HANDOFF'
|
|
51
|
-
});
|
package/src/helpers/common.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module.exports.animationProgress = function(globalProgress, start, end) {
|
|
2
|
-
const max = end - start;
|
|
3
|
-
const local = globalProgress - start;
|
|
4
|
-
return (local * 100) / max / 100;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
module.exports.rotatePoint = function(x, y, cX, cY, degrees) {
|
|
8
|
-
return {
|
|
9
|
-
x: (x - cX) * Math.cos((degrees * Math.PI) / 180) - (y - cY) * Math.sin((degrees * Math.PI) / 180) + cX,
|
|
10
|
-
y: (x - cX) * Math.sin((degrees * Math.PI) / 180) + (y - cY) * Math.cos((degrees * Math.PI) / 180) + cY
|
|
11
|
-
};
|
|
12
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const { sportConstants, courtTypeConstants } = require('../court');
|
|
2
|
-
|
|
3
|
-
class BaseLayer {
|
|
4
|
-
constructor(ctx, playData) {
|
|
5
|
-
this.ctx = ctx;
|
|
6
|
-
this.playData = playData;
|
|
7
|
-
this.options = { ...playData.options };
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
get courtTypeConstants() {
|
|
11
|
-
if (!sportConstants[this.playData.sport]) throw new Error('unknown sport type constants');
|
|
12
|
-
if (!courtTypeConstants[this.playData.court.type]) throw new Error('unknown court type constants');
|
|
13
|
-
return {
|
|
14
|
-
...sportConstants[this.playData.sport],
|
|
15
|
-
...courtTypeConstants[this.playData.court.type]
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
module.exports = BaseLayer;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class InternalBaseLayer {
|
|
2
|
-
constructor(parentLayer) {
|
|
3
|
-
this.ctx = parentLayer.ctx;
|
|
4
|
-
this.playData = parentLayer.playData;
|
|
5
|
-
this.options = parentLayer.options ? parentLayer.options : {};
|
|
6
|
-
this.courtTypeConstants = parentLayer.courtTypeConstants;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
apply() {
|
|
10
|
-
this.ctx.save();
|
|
11
|
-
|
|
12
|
-
this.drawLogic();
|
|
13
|
-
|
|
14
|
-
this.ctx.restore();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
drawLogic() {
|
|
18
|
-
// Override this
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
module.exports = InternalBaseLayer;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// require all modules on the path and with the pattern defined
|
|
2
|
-
const req = require.context('./layers/', true, /.js$/);
|
|
3
|
-
|
|
4
|
-
const sportLayers = {};
|
|
5
|
-
const courtTypeLayers = {};
|
|
6
|
-
const sportConstants = {};
|
|
7
|
-
const courtTypeConstants = {};
|
|
8
|
-
const sportCourtTypeMap = {};
|
|
9
|
-
|
|
10
|
-
req.keys().forEach(key => {
|
|
11
|
-
if (key.match(/layers\//)) {
|
|
12
|
-
return processLayers(key);
|
|
13
|
-
}
|
|
14
|
-
if (key.match(/\/constants\.js/)) {
|
|
15
|
-
return processConstants(key);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
function processLayers(key) {
|
|
20
|
-
if (key.match(/\/courtTypes\//)) {
|
|
21
|
-
const mPath = key
|
|
22
|
-
.replace('./', '')
|
|
23
|
-
.replace('/courtTypes', '')
|
|
24
|
-
.replace('/layers', '')
|
|
25
|
-
.replace('.js', '');
|
|
26
|
-
const [sportName, courtType, mName] = mPath.split('/');
|
|
27
|
-
if (!courtTypeLayers[sportName]) courtTypeLayers[sportName] = {};
|
|
28
|
-
if (!courtTypeLayers[sportName][courtType]) courtTypeLayers[sportName][courtType] = {};
|
|
29
|
-
courtTypeLayers[sportName][courtType][mName] = req(key);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const mPath = key
|
|
33
|
-
.replace('./', '')
|
|
34
|
-
.replace('/layers', '')
|
|
35
|
-
.replace('.js', '');
|
|
36
|
-
const [sportName, mName] = mPath.split('/');
|
|
37
|
-
if (!sportLayers[sportName]) sportLayers[sportName] = {};
|
|
38
|
-
sportLayers[sportName][mName] = req(key);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function processConstants(key) {
|
|
42
|
-
if (!key.match(/\/courtTypes\//)) {
|
|
43
|
-
// Process sport
|
|
44
|
-
const sportType = key.replace('./', '').replace('/constants.js', '');
|
|
45
|
-
sportConstants[sportType] = req(key);
|
|
46
|
-
|
|
47
|
-
sportCourtTypeMap[sportType] = {
|
|
48
|
-
courtTypes: []
|
|
49
|
-
};
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Process court type
|
|
54
|
-
const mPath = key
|
|
55
|
-
.replace('./', '')
|
|
56
|
-
.replace('/courtTypes', '')
|
|
57
|
-
.replace('/constants.js', '');
|
|
58
|
-
const [sportType, courtType] = mPath.split('/');
|
|
59
|
-
courtTypeConstants[courtType] = req(key);
|
|
60
|
-
|
|
61
|
-
sportCourtTypeMap[sportType].courtTypes.push(courtType);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
module.exports = { sportLayers, courtTypeLayers, sportConstants, courtTypeConstants, sportCourtTypeMap };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 460,
|
|
3
|
-
COURT_RECT_HEIGHT: 290,
|
|
4
|
-
COURT_DIRT_COLOR: '#C49463',
|
|
5
|
-
|
|
6
|
-
HOME_PLATE_APEX_TO_PITCHERS_PLATE_FRONT: 60.5,
|
|
7
|
-
HOME_PLATE_APEX_TO_SECOND_BASE_APEX: 127.28125,
|
|
8
|
-
HOME_PLATE_APEX_TO_BACKSTOP: 60,
|
|
9
|
-
HOME_PLATE_SIDE: 1.41667,
|
|
10
|
-
HOME_PLATE_CIRCLE_DIA: 26,
|
|
11
|
-
|
|
12
|
-
HOME_PLATE_SIDE_TO_BATTERS_BOX: 0.5,
|
|
13
|
-
BATTERS_BOX_WIDTH: 4,
|
|
14
|
-
BATTERS_BOX_HEIGHT: 6,
|
|
15
|
-
BATTERS_BOX_TO_CATCHERS_BACK_LINE: 5,
|
|
16
|
-
|
|
17
|
-
CATCHERS_BACK_LINE_LENGTH: 3.58333,
|
|
18
|
-
ON_DECK_CIRCLE_DIA: 5,
|
|
19
|
-
ON_DECK_CIRCLE_DISTANCE_FROM_CENTER: 37,
|
|
20
|
-
|
|
21
|
-
COACH_BOX_TO_BASE_LINE: 15,
|
|
22
|
-
COACH_BOX_WIDTH: 20,
|
|
23
|
-
COACH_BOX_HEIGHT: 5,
|
|
24
|
-
|
|
25
|
-
PITCHERS_PLATE_WIDTH: 2,
|
|
26
|
-
PITCHERS_PLATE_HEIGHT: 0.5,
|
|
27
|
-
PITCHERS_PLATE_TO_PITCHING_MOUND_CENTER: 1.5,
|
|
28
|
-
PITCHING_MOUND_DIA: 18,
|
|
29
|
-
|
|
30
|
-
PITCHERS_PLATE_GRASS_LINE_RAD: 95,
|
|
31
|
-
|
|
32
|
-
FOUL_LINE_LENGTH: 325,
|
|
33
|
-
BASE_LINE_LENGTH: 90,
|
|
34
|
-
BASE_SQUARE_SIDE_LENGTH: 1.25,
|
|
35
|
-
BASE_DIRT_RAD: 13
|
|
36
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 50.0,
|
|
3
|
-
COURT_RECT_HEIGHT: 94.0,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 22,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 23.6762,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 10.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 14.0,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 16.0,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: true,
|
|
11
|
-
CENTER_INNER_CIRCLE: true,
|
|
12
|
-
BENCH_MARKING: true
|
|
13
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
|
|
2
|
-
const LaneMarkingNBATrait = require('../../../common/LaneMarkingNBATrait');
|
|
3
|
-
|
|
4
|
-
class LaneMarkingLayer extends InternalCourtLayer {
|
|
5
|
-
reflection() {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
Object.assign(LaneMarkingLayer.prototype, LaneMarkingNBATrait);
|
|
11
|
-
|
|
12
|
-
module.exports = LaneMarkingLayer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 49.21,
|
|
3
|
-
COURT_RECT_HEIGHT: 91.86,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 21.65,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 22.15,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 6.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 8.0,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 16.08,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: false,
|
|
11
|
-
CENTER_INNER_CIRCLE: false,
|
|
12
|
-
BENCH_MARKING: false
|
|
13
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 50.0,
|
|
3
|
-
COURT_RECT_HEIGHT: 94.0,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 22,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 23.6762,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 10.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 14.0,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 16.0,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: true,
|
|
11
|
-
CENTER_INNER_CIRCLE: true,
|
|
12
|
-
BENCH_MARKING: true
|
|
13
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
|
|
2
|
-
const LaneMarkingNBATrait = require('../../../common/LaneMarkingNBATrait');
|
|
3
|
-
|
|
4
|
-
class LaneMarkingLayer extends InternalCourtLayer {
|
|
5
|
-
reflection() {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
Object.assign(LaneMarkingLayer.prototype, LaneMarkingNBATrait);
|
|
11
|
-
|
|
12
|
-
module.exports = LaneMarkingLayer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 50.0,
|
|
3
|
-
COURT_RECT_HEIGHT: 94.0,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 20.75,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 20.75,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 2.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 6.0,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 12.0,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: false,
|
|
11
|
-
CENTER_INNER_CIRCLE: false,
|
|
12
|
-
BENCH_MARKING: false
|
|
13
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
|
|
2
|
-
const LaneMarkingNCAATrait = require('../../../common/LaneMarkingNCAATrait');
|
|
3
|
-
|
|
4
|
-
class LaneMarkingLayer extends InternalCourtLayer {
|
|
5
|
-
reflection() {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
Object.assign(LaneMarkingLayer.prototype, LaneMarkingNCAATrait);
|
|
11
|
-
|
|
12
|
-
module.exports = LaneMarkingLayer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 50.0,
|
|
3
|
-
COURT_RECT_HEIGHT: 94.0,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 20.75,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 20.75,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 2.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 6.0,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 12.0,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: false,
|
|
11
|
-
CENTER_INNER_CIRCLE: false,
|
|
12
|
-
BENCH_MARKING: true
|
|
13
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
|
|
2
|
-
const LaneMarkingNCAATrait = require('../../../common/LaneMarkingNCAATrait');
|
|
3
|
-
|
|
4
|
-
class LaneMarkingLayer extends InternalCourtLayer {
|
|
5
|
-
reflection() {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
Object.assign(LaneMarkingLayer.prototype, LaneMarkingNCAATrait);
|
|
11
|
-
|
|
12
|
-
module.exports = LaneMarkingLayer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = Object.freeze({
|
|
2
|
-
COURT_RECT_WIDTH: 50.0,
|
|
3
|
-
COURT_RECT_HEIGHT: 84.0,
|
|
4
|
-
HOOP_CORNER_DISTANCE: 19.75,
|
|
5
|
-
THREE_POINT_ARC_RADIUS: 19.75,
|
|
6
|
-
THREE_POINT_ASIN_APPROX: 2.0,
|
|
7
|
-
THREE_POINT_OFFSET_ORIGIN_Y_APPROX: 6,
|
|
8
|
-
FREE_THROW_INNER_WIDTH: 12.0,
|
|
9
|
-
FREE_THROW_OUTER_WIDTH: 12.0,
|
|
10
|
-
FREE_THROW_INNER_DASHED_CIRCLE: false,
|
|
11
|
-
CENTER_INNER_CIRCLE: false,
|
|
12
|
-
BENCH_MARKING: false
|
|
13
|
-
});
|
package/src/layers/court/layers/BASKETBALL/courtTypes/US_HIGH_SCHOOL/layers/LaneMarkingLayer.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const InternalCourtLayer = require('../../../../../base/InternalCourtLayer');
|
|
2
|
-
const LaneMarkingNCAATrait = require('../../../common/LaneMarkingNCAATrait');
|
|
3
|
-
|
|
4
|
-
class LaneMarkingLayer extends InternalCourtLayer {
|
|
5
|
-
reflection() {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
Object.assign(LaneMarkingLayer.prototype, LaneMarkingNCAATrait);
|
|
11
|
-
|
|
12
|
-
module.exports = LaneMarkingLayer;
|