@johnmorrisdotca/dougu-sports 0.0.1 → 0.2.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/CHANGELOG.md +61 -1
- package/LICENSES/README.md +4 -3
- package/NOTICE.md +54 -14
- package/README.md +251 -80
- package/dist/emblems/award/badge.d.ts +2 -0
- package/dist/emblems/award/badge.js +14 -0
- package/dist/emblems/award/crown.d.ts +2 -0
- package/dist/emblems/award/crown.js +15 -0
- package/dist/emblems/award/medal.d.ts +1 -1
- package/dist/emblems/award/medal.js +10 -15
- package/dist/emblems/award/shield.d.ts +2 -0
- package/dist/emblems/award/shield.js +11 -0
- package/dist/emblems/award/star.d.ts +2 -0
- package/dist/emblems/award/star.js +11 -0
- package/dist/emblems/ball/ball.afl.d.ts +1 -0
- package/dist/emblems/ball/ball.afl.js +24 -0
- package/dist/emblems/ball/ball.baseball.d.ts +1 -0
- package/dist/emblems/ball/ball.baseball.js +14 -0
- package/dist/emblems/ball/ball.basketball.d.ts +7 -0
- package/dist/emblems/ball/ball.basketball.js +32 -0
- package/dist/emblems/ball/ball.basketball3x3.d.ts +1 -0
- package/dist/emblems/ball/ball.basketball3x3.js +10 -0
- package/dist/emblems/ball/ball.basketball6.d.ts +1 -0
- package/dist/emblems/ball/ball.basketball6.js +10 -0
- package/dist/emblems/ball/ball.core.d.ts +111 -0
- package/dist/emblems/ball/ball.core.js +79 -0
- package/dist/emblems/ball/ball.cricket.d.ts +5 -0
- package/dist/emblems/ball/ball.cricket.js +31 -0
- package/dist/emblems/ball/ball.curlingstone.d.ts +3 -0
- package/dist/emblems/ball/ball.curlingstone.js +46 -0
- package/dist/emblems/ball/ball.discus.d.ts +1 -0
- package/dist/emblems/ball/ball.discus.js +24 -0
- package/dist/emblems/ball/ball.engine.d.ts +114 -0
- package/dist/emblems/ball/ball.engine.js +342 -0
- package/dist/emblems/ball/ball.family.dotted.d.ts +27 -0
- package/dist/emblems/ball/ball.family.dotted.js +20 -0
- package/dist/emblems/ball/ball.family.panelled.d.ts +7 -0
- package/dist/emblems/ball/ball.family.panelled.js +60 -0
- package/dist/emblems/ball/ball.family.prolate.d.ts +16 -0
- package/dist/emblems/ball/ball.family.prolate.js +29 -0
- package/dist/emblems/ball/ball.family.seamed.d.ts +31 -0
- package/dist/emblems/ball/ball.family.seamed.js +26 -0
- package/dist/emblems/ball/ball.fieldhockey.d.ts +1 -0
- package/dist/emblems/ball/ball.fieldhockey.js +15 -0
- package/dist/emblems/ball/ball.football.d.ts +3 -0
- package/dist/emblems/ball/ball.football.js +51 -0
- package/dist/emblems/ball/ball.gaelic.d.ts +2 -0
- package/dist/emblems/ball/ball.gaelic.js +30 -0
- package/dist/emblems/ball/ball.golf.d.ts +1 -0
- package/dist/emblems/ball/ball.golf.js +15 -0
- package/dist/emblems/ball/ball.hammer.d.ts +1 -0
- package/dist/emblems/ball/ball.hammer.js +31 -0
- package/dist/emblems/ball/ball.handball.d.ts +1 -0
- package/dist/emblems/ball/ball.handball.js +25 -0
- package/dist/emblems/ball/ball.index.d.ts +48 -0
- package/dist/emblems/ball/ball.index.js +103 -0
- package/dist/emblems/ball/ball.math.d.ts +38 -0
- package/dist/emblems/ball/ball.math.js +105 -0
- package/dist/emblems/ball/ball.object.d.ts +38 -0
- package/dist/emblems/ball/ball.object.js +20 -0
- package/dist/emblems/ball/ball.padel.d.ts +1 -0
- package/dist/emblems/ball/ball.padel.js +13 -0
- package/dist/emblems/ball/ball.pickleball.d.ts +2 -0
- package/dist/emblems/ball/ball.pickleball.js +26 -0
- package/dist/emblems/ball/ball.polyhedra.d.ts +15 -0
- package/dist/emblems/ball/ball.polyhedra.js +63 -0
- package/dist/emblems/ball/ball.puck.d.ts +3 -0
- package/dist/emblems/ball/ball.puck.js +22 -0
- package/dist/emblems/ball/ball.roundnet.d.ts +1 -0
- package/dist/emblems/ball/ball.roundnet.js +15 -0
- package/dist/emblems/ball/ball.rugby.d.ts +1 -0
- package/dist/emblems/ball/ball.rugby.js +35 -0
- package/dist/emblems/ball/ball.sepaktakraw.d.ts +1 -0
- package/dist/emblems/ball/ball.sepaktakraw.js +48 -0
- package/dist/emblems/ball/ball.shuttlecock.d.ts +6 -0
- package/dist/emblems/ball/ball.shuttlecock.js +93 -0
- package/dist/emblems/ball/ball.sliotar.d.ts +1 -0
- package/dist/emblems/ball/ball.sliotar.js +14 -0
- package/dist/emblems/ball/ball.smooth.d.ts +4 -0
- package/dist/emblems/ball/ball.smooth.js +51 -0
- package/dist/emblems/ball/ball.soccer.d.ts +2 -0
- package/dist/emblems/ball/ball.soccer.js +54 -0
- package/dist/emblems/ball/ball.softball.d.ts +1 -0
- package/dist/emblems/ball/ball.softball.js +14 -0
- package/dist/emblems/ball/ball.squash.d.ts +7 -0
- package/dist/emblems/ball/ball.squash.js +27 -0
- package/dist/emblems/ball/ball.stack.d.ts +48 -0
- package/dist/emblems/ball/ball.stack.js +127 -0
- package/dist/emblems/ball/ball.stitch.d.ts +10 -0
- package/dist/emblems/ball/ball.stitch.js +59 -0
- package/dist/emblems/ball/ball.tennis.d.ts +1 -0
- package/dist/emblems/ball/ball.tennis.js +13 -0
- package/dist/emblems/ball/ball.teqball.d.ts +1 -0
- package/dist/emblems/ball/ball.teqball.js +27 -0
- package/dist/emblems/ball/ball.volleyball.d.ts +3 -0
- package/dist/emblems/ball/ball.volleyball.js +56 -0
- package/dist/emblems/ball/ball.waterpolo.d.ts +1 -0
- package/dist/emblems/ball/ball.waterpolo.js +31 -0
- package/dist/emblems/crest/diamond.d.ts +2 -0
- package/dist/emblems/crest/diamond.js +18 -0
- package/dist/emblems/crest/pennant.d.ts +2 -0
- package/dist/emblems/crest/pennant.js +18 -0
- package/dist/emblems/crest/roundel.d.ts +2 -0
- package/dist/emblems/crest/roundel.js +18 -0
- package/dist/emblems/crest/shield.d.ts +2 -0
- package/dist/emblems/crest/shield.js +17 -0
- package/dist/emblems/emblem.api.d.ts +77 -9
- package/dist/emblems/emblem.api.js +56 -10
- package/dist/emblems/emblem.compose.d.ts +31 -0
- package/dist/emblems/emblem.compose.js +91 -0
- package/dist/emblems/emblem.core.d.ts +89 -7
- package/dist/emblems/emblem.core.js +85 -11
- package/dist/emblems/emblem.descriptions.d.ts +7 -0
- package/dist/emblems/emblem.descriptions.js +60 -0
- package/dist/emblems/emblem.display.d.ts +75 -0
- package/dist/emblems/emblem.display.js +214 -0
- package/dist/emblems/emblem.engrave.d.ts +50 -0
- package/dist/emblems/emblem.engrave.js +145 -0
- package/dist/emblems/emblem.equipment.d.ts +24 -0
- package/dist/emblems/emblem.equipment.js +57 -0
- package/dist/emblems/emblem.flip.d.ts +10 -0
- package/dist/emblems/emblem.flip.js +45 -0
- package/dist/emblems/emblem.ids.d.ts +44 -30
- package/dist/emblems/emblem.ids.js +51 -17
- package/dist/emblems/emblem.lathe.d.ts +62 -0
- package/dist/emblems/emblem.lathe.js +426 -0
- package/dist/emblems/emblem.medal.d.ts +6 -0
- package/dist/emblems/emblem.medal.js +38 -0
- package/dist/emblems/emblem.pennant.d.ts +3 -0
- package/dist/emblems/emblem.pennant.js +79 -0
- package/dist/emblems/emblem.registry.js +162 -4
- package/dist/emblems/emblem.shapes.d.ts +48 -12
- package/dist/emblems/emblem.shapes.js +138 -31
- package/dist/emblems/emblem.sprite.d.ts +38 -0
- package/dist/emblems/emblem.sprite.js +65 -0
- package/dist/emblems/emblem.uri.d.ts +22 -0
- package/dist/emblems/emblem.uri.js +29 -0
- package/dist/emblems/gear/gear.badmintonracket.d.ts +1 -0
- package/dist/emblems/gear/gear.badmintonracket.js +19 -0
- package/dist/emblems/gear/gear.baseballglove.d.ts +1 -0
- package/dist/emblems/gear/gear.baseballglove.js +21 -0
- package/dist/emblems/gear/gear.budo.d.ts +17 -0
- package/dist/emblems/gear/gear.budo.js +60 -0
- package/dist/emblems/gear/gear.core.d.ts +64 -0
- package/dist/emblems/gear/gear.core.js +127 -0
- package/dist/emblems/gear/gear.cricketbat.d.ts +1 -0
- package/dist/emblems/gear/gear.cricketbat.js +17 -0
- package/dist/emblems/gear/gear.field.d.ts +6 -0
- package/dist/emblems/gear/gear.field.js +81 -0
- package/dist/emblems/gear/gear.fieldhockeystick.d.ts +1 -0
- package/dist/emblems/gear/gear.fieldhockeystick.js +16 -0
- package/dist/emblems/gear/gear.footballhelmet.d.ts +1 -0
- package/dist/emblems/gear/gear.footballhelmet.js +16 -0
- package/dist/emblems/gear/gear.goaliemask.d.ts +1 -0
- package/dist/emblems/gear/gear.goaliemask.js +23 -0
- package/dist/emblems/gear/gear.goalnet.d.ts +1 -0
- package/dist/emblems/gear/gear.goalnet.js +25 -0
- package/dist/emblems/gear/gear.hockeystick.d.ts +1 -0
- package/dist/emblems/gear/gear.hockeystick.js +15 -0
- package/dist/emblems/gear/gear.index.d.ts +22 -0
- package/dist/emblems/gear/gear.index.js +49 -0
- package/dist/emblems/gear/gear.kendo.d.ts +2 -0
- package/dist/emblems/gear/gear.kendo.js +41 -0
- package/dist/emblems/gear/gear.kyudo.d.ts +2 -0
- package/dist/emblems/gear/gear.kyudo.js +31 -0
- package/dist/emblems/gear/gear.lacrossestick.d.ts +1 -0
- package/dist/emblems/gear/gear.lacrossestick.js +26 -0
- package/dist/emblems/gear/gear.rackets.d.ts +4 -0
- package/dist/emblems/gear/gear.rackets.js +60 -0
- package/dist/emblems/gear/gear.skates.d.ts +3 -0
- package/dist/emblems/gear/gear.skates.js +39 -0
- package/dist/emblems/gear/gear.sticks.d.ts +3 -0
- package/dist/emblems/gear/gear.sticks.js +34 -0
- package/dist/emblems/gear/gear.sumo.d.ts +2 -0
- package/dist/emblems/gear/gear.sumo.js +43 -0
- package/dist/emblems/gear/gear.tabletennispaddle.d.ts +1 -0
- package/dist/emblems/gear/gear.tabletennispaddle.js +16 -0
- package/dist/emblems/gear/gear.tennisracket.d.ts +1 -0
- package/dist/emblems/gear/gear.tennisracket.js +17 -0
- package/dist/emblems/gear/gear.track.d.ts +4 -0
- package/dist/emblems/gear/gear.track.js +45 -0
- package/dist/emblems/gear/gear.water.d.ts +2 -0
- package/dist/emblems/gear/gear.water.js +25 -0
- package/dist/emblems/medal/bronze.d.ts +2 -0
- package/dist/emblems/medal/bronze.js +4 -0
- package/dist/emblems/medal/gold.d.ts +2 -0
- package/dist/emblems/medal/gold.js +4 -0
- package/dist/emblems/medal/place-1.d.ts +2 -0
- package/dist/emblems/medal/place-1.js +4 -0
- package/dist/emblems/medal/place-2.d.ts +2 -0
- package/dist/emblems/medal/place-2.js +4 -0
- package/dist/emblems/medal/place-3.d.ts +2 -0
- package/dist/emblems/medal/place-3.js +4 -0
- package/dist/emblems/medal/silver.d.ts +2 -0
- package/dist/emblems/medal/silver.js +4 -0
- package/dist/emblems/pennant/championship.d.ts +2 -0
- package/dist/emblems/pennant/championship.js +4 -0
- package/dist/emblems/sport/afl.d.ts +2 -0
- package/dist/emblems/sport/afl.js +12 -0
- package/dist/emblems/sport/artisticswimming.d.ts +2 -0
- package/dist/emblems/sport/artisticswimming.js +16 -0
- package/dist/emblems/sport/athletics.d.ts +2 -0
- package/dist/emblems/sport/athletics.js +12 -0
- package/dist/emblems/sport/badminton.d.ts +2 -0
- package/dist/emblems/sport/badminton.js +13 -0
- package/dist/emblems/sport/cfl.d.ts +2 -0
- package/dist/emblems/sport/cfl.js +5 -0
- package/dist/emblems/sport/cricket.d.ts +2 -0
- package/dist/emblems/sport/cricket.js +14 -0
- package/dist/emblems/sport/curling.d.ts +2 -0
- package/dist/emblems/sport/curling.js +14 -0
- package/dist/emblems/sport/diving.d.ts +2 -0
- package/dist/emblems/sport/diving.js +18 -0
- package/dist/emblems/sport/fieldhockey.d.ts +2 -0
- package/dist/emblems/sport/fieldhockey.js +11 -0
- package/dist/emblems/sport/gaelic.d.ts +2 -0
- package/dist/emblems/sport/gaelic.js +11 -0
- package/dist/emblems/sport/handball.d.ts +2 -0
- package/dist/emblems/sport/handball.js +15 -0
- package/dist/emblems/sport/ifaf.d.ts +2 -0
- package/dist/emblems/sport/ifaf.js +5 -0
- package/dist/emblems/sport/judo.d.ts +2 -0
- package/dist/emblems/sport/judo.js +13 -0
- package/dist/emblems/sport/karate.d.ts +2 -0
- package/dist/emblems/sport/karate.js +13 -0
- package/dist/emblems/sport/kendo.d.ts +2 -0
- package/dist/emblems/sport/kendo.js +14 -0
- package/dist/emblems/sport/kyudo.d.ts +2 -0
- package/dist/emblems/sport/kyudo.js +15 -0
- package/dist/emblems/sport/lacrosse.d.ts +2 -0
- package/dist/emblems/sport/lacrosse.js +13 -0
- package/dist/emblems/sport/mlb.d.ts +2 -0
- package/dist/emblems/sport/mlb.js +28 -0
- package/dist/emblems/sport/nba.d.ts +2 -0
- package/dist/emblems/sport/nba.js +12 -0
- package/dist/emblems/sport/netball.d.ts +2 -0
- package/dist/emblems/sport/netball.js +14 -0
- package/dist/emblems/sport/nfl.d.ts +3 -0
- package/dist/emblems/sport/nfl.js +15 -0
- package/dist/emblems/sport/nhl.d.ts +2 -0
- package/dist/emblems/sport/nhl.js +13 -0
- package/dist/emblems/sport/padel.d.ts +2 -0
- package/dist/emblems/sport/padel.js +14 -0
- package/dist/emblems/sport/pickleball.d.ts +2 -0
- package/dist/emblems/sport/pickleball.js +13 -0
- package/dist/emblems/sport/racquetball.d.ts +2 -0
- package/dist/emblems/sport/racquetball.js +13 -0
- package/dist/emblems/sport/roundnet.d.ts +2 -0
- package/dist/emblems/sport/roundnet.js +15 -0
- package/dist/emblems/sport/rugby.d.ts +2 -0
- package/dist/emblems/sport/rugby.js +12 -0
- package/dist/emblems/sport/sepaktakraw.d.ts +2 -0
- package/dist/emblems/sport/sepaktakraw.js +11 -0
- package/dist/emblems/sport/skating.d.ts +2 -0
- package/dist/emblems/sport/skating.js +14 -0
- package/dist/emblems/sport/soccer.d.ts +2 -0
- package/dist/emblems/sport/soccer.js +31 -0
- package/dist/emblems/sport/squash.d.ts +2 -0
- package/dist/emblems/sport/squash.js +15 -0
- package/dist/emblems/sport/sumo.d.ts +2 -0
- package/dist/emblems/sport/sumo.js +15 -0
- package/dist/emblems/sport/swimming.d.ts +2 -0
- package/dist/emblems/sport/swimming.js +15 -0
- package/dist/emblems/sport/tabletennis.d.ts +2 -0
- package/dist/emblems/sport/tabletennis.js +12 -0
- package/dist/emblems/sport/tennis.d.ts +2 -0
- package/dist/emblems/sport/tennis.js +15 -0
- package/dist/emblems/sport/teqball.d.ts +2 -0
- package/dist/emblems/sport/teqball.js +15 -0
- package/dist/emblems/sport/volleyball.d.ts +2 -0
- package/dist/emblems/sport/volleyball.js +25 -0
- package/dist/emblems/sport/waterpolo.d.ts +2 -0
- package/dist/emblems/sport/waterpolo.js +15 -0
- package/dist/emblems/trophy/banner.d.ts +2 -0
- package/dist/emblems/trophy/banner.js +20 -0
- package/dist/emblems/trophy/baseball.d.ts +2 -0
- package/dist/emblems/trophy/baseball.js +15 -0
- package/dist/emblems/trophy/basketball.d.ts +2 -0
- package/dist/emblems/trophy/basketball.js +17 -0
- package/dist/emblems/trophy/belt.d.ts +2 -0
- package/dist/emblems/trophy/belt.js +17 -0
- package/dist/emblems/trophy/bowl.d.ts +2 -0
- package/dist/emblems/trophy/bowl.js +8 -0
- package/dist/emblems/trophy/canadian-bowl.d.ts +2 -0
- package/dist/emblems/trophy/canadian-bowl.js +23 -0
- package/dist/emblems/trophy/championship-banner.d.ts +2 -0
- package/dist/emblems/trophy/championship-banner.js +67 -0
- package/dist/emblems/trophy/cricket-urn.d.ts +2 -0
- package/dist/emblems/trophy/cricket-urn.js +23 -0
- package/dist/emblems/trophy/cup.d.ts +2 -0
- package/dist/emblems/trophy/cup.js +16 -0
- package/dist/emblems/trophy/football.d.ts +2 -0
- package/dist/emblems/trophy/football.js +11 -0
- package/dist/emblems/trophy/globe.d.ts +2 -0
- package/dist/emblems/trophy/globe.js +9 -0
- package/dist/emblems/trophy/hockey-cup.d.ts +2 -0
- package/dist/emblems/trophy/hockey-cup.js +22 -0
- package/dist/emblems/trophy/laurel.d.ts +2 -0
- package/dist/emblems/trophy/laurel.js +40 -0
- package/dist/emblems/trophy/lidded-cup.d.ts +2 -0
- package/dist/emblems/trophy/lidded-cup.js +21 -0
- package/dist/emblems/trophy/plaque.d.ts +2 -0
- package/dist/emblems/trophy/plaque.js +17 -0
- package/dist/emblems/trophy/ring.d.ts +2 -0
- package/dist/emblems/trophy/ring.js +30 -0
- package/dist/emblems/trophy/rosette.d.ts +2 -0
- package/dist/emblems/trophy/rosette.js +27 -0
- package/dist/emblems/trophy/rugby-cup.d.ts +2 -0
- package/dist/emblems/trophy/rugby-cup.js +23 -0
- package/dist/emblems/trophy/salver.d.ts +2 -0
- package/dist/emblems/trophy/salver.js +9 -0
- package/dist/emblems/trophy/soccer-ball.d.ts +2 -0
- package/dist/emblems/trophy/soccer-ball.js +9 -0
- package/dist/emblems/trophy/soccer-globe.d.ts +2 -0
- package/dist/emblems/trophy/soccer-globe.js +18 -0
- package/dist/emblems/trophy/sumo-cup.d.ts +2 -0
- package/dist/emblems/trophy/sumo-cup.js +28 -0
- package/dist/emblems/trophy/tennis-cup.d.ts +2 -0
- package/dist/emblems/trophy/tennis-cup.js +24 -0
- package/dist/emblems/trophy/tennis-plate.d.ts +2 -0
- package/dist/emblems/trophy/tennis-plate.js +16 -0
- package/dist/emblems-entry.d.ts +20 -7
- package/dist/emblems-entry.js +8 -2
- package/dist/index.d.ts +131 -1
- package/dist/index.js +131 -3
- package/dist/turn-control.d.ts +101 -0
- package/dist/turn-control.js +363 -0
- package/dist/turn-entry.d.ts +2 -0
- package/dist/turn-entry.js +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +33 -7
- package/LICENSES/Apache-2.0.txt +0 -55
- package/LICENSES/CC-BY-3.0.md +0 -15
- package/dist/emblems/ball/soccer.d.ts +0 -2
- package/dist/emblems/ball/soccer.js +0 -9
- package/dist/emblems/emblem.ball.d.ts +0 -28
- package/dist/emblems/emblem.ball.js +0 -70
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Curved table and ball: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
|
|
2
|
+
import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
|
|
3
|
+
/** Curved table and ball. */
|
|
4
|
+
export const SPORT_TEQBALL = /* @__PURE__ */ defineIcon("sport:teqball", "Curved table", "テックボールの台", "ours", {
|
|
5
|
+
metal: "flat",
|
|
6
|
+
ink: true,
|
|
7
|
+
front: [
|
|
8
|
+
["m", "M4 30c10 10 46 10 56 0v5c-10 10-46 10-56 0z"],
|
|
9
|
+
["t", "M4 30c10 10 46 10 56 0"],
|
|
10
|
+
["n", "M18 40v16M46 40v16M26 58h12"],
|
|
11
|
+
["p", "M31 16h2v16h-2z"],
|
|
12
|
+
["p", circ(46, 14, 7)],
|
|
13
|
+
["t", "M40 12q6 4 12 0"],
|
|
14
|
+
],
|
|
15
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Volleyball: a pictogram of the ball, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
|
|
2
|
+
import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
|
|
3
|
+
/** One panel seam, from the edge past the middle to the edge, turned about the centre three times, each with a second seam beside it. */
|
|
4
|
+
const SEAMS = (() => {
|
|
5
|
+
const turn = (x, y, deg) => {
|
|
6
|
+
const a = (deg * Math.PI) / 180;
|
|
7
|
+
return `${(32 + (x - 32) * Math.cos(a) - (y - 32) * Math.sin(a)).toFixed(1)} ${(32 + (x - 32) * Math.sin(a) + (y - 32) * Math.cos(a)).toFixed(1)}`;
|
|
8
|
+
};
|
|
9
|
+
let d = "";
|
|
10
|
+
for (const base of [0, 120, 240]) {
|
|
11
|
+
for (const shift of [0, 17]) {
|
|
12
|
+
d += `M${turn(32, 8, base + shift)}Q${turn(35, 35, base + shift)} ${turn(52.8, 44, base + shift)}`;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return d;
|
|
16
|
+
})();
|
|
17
|
+
/** Volleyball. */
|
|
18
|
+
export const SPORT_VOLLEYBALL = /* @__PURE__ */ defineIcon("sport:volleyball", "Volleyball", "バレーボール", "ours", {
|
|
19
|
+
metal: "flat",
|
|
20
|
+
ink: true,
|
|
21
|
+
front: [
|
|
22
|
+
["m", circ(32, 32, 24)],
|
|
23
|
+
["t", SEAMS],
|
|
24
|
+
],
|
|
25
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Water polo ball: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
|
|
2
|
+
import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
|
|
3
|
+
/** Waves: a wavy line across the box at a height. */
|
|
4
|
+
const wave = (y) => `M3 ${y}q7-6 14 0t14 0 14 0 14 0`;
|
|
5
|
+
/** Water polo ball. */
|
|
6
|
+
export const SPORT_WATERPOLO = /* @__PURE__ */ defineIcon("sport:waterpolo", "Water polo ball", "水球のボール", "ours", {
|
|
7
|
+
metal: "gold",
|
|
8
|
+
ink: true,
|
|
9
|
+
front: [
|
|
10
|
+
["m", circ(32, 24, 17)],
|
|
11
|
+
["t", "M15 24h34M32 7c-8 9-8 25 0 34M32 7c8 9 8 25 0 34"],
|
|
12
|
+
["n", wave(47)],
|
|
13
|
+
["n", wave(56)],
|
|
14
|
+
],
|
|
15
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// A rafter banner: a vertical banner with a pointed foot, hung from a rod by two cords, in a team's colour with a stripe of its second colour, the words on its face and the year under them. It flips as a flat
|
|
2
|
+
// item and shows its plain back. Drawn for this package: generic, no team's or league's banner (the fringed championship flag is another emblem).
|
|
3
|
+
import { circlePath, defineFlat } from "../emblem.shapes.js";
|
|
4
|
+
const WOOD = "#7a5230";
|
|
5
|
+
const hang = [["f", "M5 3.4h54v3.6H5z", WOOD], ["f", circlePath(5, 5.2, 2.6), WOOD], ["f", circlePath(59, 5.2, 2.6), WOOD], ["t", "M18 7L18 12M46 7L46 12"]];
|
|
6
|
+
const cloth = [
|
|
7
|
+
["m", "M13 9h38v37L32 59L13 46z"],
|
|
8
|
+
["r", "M13 9h38v4.6H13z"],
|
|
9
|
+
["r", "M13 46L32 59L51 46L51 42.4L32 55.4L13 42.4z"],
|
|
10
|
+
];
|
|
11
|
+
/** A rafter banner. */
|
|
12
|
+
export const TROPHY_BANNER = /* @__PURE__ */ defineFlat("trophy:banner", "Rafter banner", "優勝バナー", "ours", {
|
|
13
|
+
metal: "flat",
|
|
14
|
+
color: "#1f4e8c",
|
|
15
|
+
ribbon: "#f4f0e4",
|
|
16
|
+
front: [...hang, ...cloth, ["e", "M16.6 16.6h30.8v24.6", "1.2"], ["l", "M13 14h8l-8 14z"]],
|
|
17
|
+
back: [...hang, ...cloth],
|
|
18
|
+
rim: 1.6,
|
|
19
|
+
engrave: { front: { x: 32, y: 27.5, w: 27, h: 19 }, year: { x: 32, y: 46.5, w: 17, h: 5.5 }, back: { x: 32, y: 30, w: 27, h: 14 } },
|
|
20
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// A ring of thirty pennants on poles that stand round a baseball, the tops of the poles stepping up once round, on a round base. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A ring of about thirty gold pennants standing round a silver baseball on a round base. */
|
|
4
|
+
export const TROPHY_BASEBALL = /* @__PURE__ */ defineLathe("trophy:baseball", "Baseball trophy", "野球のトロフィー", "ours", {
|
|
5
|
+
metal: "silver",
|
|
6
|
+
tones: { gilt: "#d9a620", pole: "#aab2bc", accent: "#e0b030" },
|
|
7
|
+
solids: [
|
|
8
|
+
{
|
|
9
|
+
p: [[49, 13.4, 1, "gilt"], [51, 13.4, 1, "gilt"], [51, 13, 1], [57, 13, 1], [57, 14.6, 1, "gilt"], [60, 14.6, 1, "gilt"]],
|
|
10
|
+
},
|
|
11
|
+
],
|
|
12
|
+
balls: [{ kind: "base", cy: 47.4, r: 5.6 }],
|
|
13
|
+
poles: { n: 30, y0: 50, r0: 11, r1: 12, top1: 5, top2: 20, size: 3.4 },
|
|
14
|
+
plate: { y0: 51.2, y1: 56.8 },
|
|
15
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A ball resting over a rim and a net, on a tapered column and a stepped base, all in gold. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A gold ball resting over a net and rim, on a tapered column and base. */
|
|
4
|
+
export const TROPHY_BASKETBALL = /* @__PURE__ */ defineLathe("trophy:basketball", "Basketball trophy", "バスケットボールのトロフィー", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
solids: [
|
|
7
|
+
{
|
|
8
|
+
p: [
|
|
9
|
+
[22, 11.2, 1], [24.4, 11.2, 1], [24.4, 10.4, 1], [37, 3.8, 1], [37, 3, 1], [47, 3, 1],
|
|
10
|
+
[47, 6, 1], [50, 6, 1], [50, 12.5, 1], [54, 12.5, 1], [54, 14.8, 1], [58.5, 14.8, 1],
|
|
11
|
+
],
|
|
12
|
+
decor: [["net", 24.6, 36.6, 12]],
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
balls: [{ kind: "basket", cy: 12.4, r: 10 }],
|
|
16
|
+
plate: { y0: 54.2, y1: 58.4 },
|
|
17
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A broad strap with a large central plate and a smaller plate on each side. Drawn for this package.
|
|
2
|
+
import { defineFlat, ellipsePath, starPath } from "../emblem.shapes.js";
|
|
3
|
+
/** A broad strap with a large central plate and a smaller plate on each side. */
|
|
4
|
+
export const TROPHY_BELT = /* @__PURE__ */ defineFlat("trophy:belt", "Championship belt", "チャンピオンベルト", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
ribbon: "#2b2f36",
|
|
7
|
+
front: [
|
|
8
|
+
["r", "M2 20h60v24H2z"],
|
|
9
|
+
["o", "M7 26h11v12H7zM46 26h11v12H46z"],
|
|
10
|
+
["o", ellipsePath(32, 32, 16.5, 23)],
|
|
11
|
+
["e", ellipsePath(32, 32, 13.4, 19.8), "2"],
|
|
12
|
+
["M", starPath(32, 32, 7.5, 3.2)],
|
|
13
|
+
["l", "M22 22a14 20 0 0 1 8-9 18 22 0 0 0-8 22z"],
|
|
14
|
+
],
|
|
15
|
+
rim: 3,
|
|
16
|
+
engrave: { front: { x: 32, y: 32, w: 20, h: 26 } },
|
|
17
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// A round gold bowl on a short stem and a foot. Drawn for this package.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A round bowl on a short foot. */
|
|
4
|
+
export const TROPHY_BOWL = /* @__PURE__ */ defineLathe("trophy:bowl", "Bowl", "ボウル", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
solids: [{ open: true, p: [[16, 25, 1], [19, 24.8], [30, 15], [38, 7, 1], [38, 4.6, 1], [46, 3.6, 1], [46, 9, 1], [49, 9, 1], [49, 13.4, 1], [54, 13.4, 1]], decor: [["ring", 21]] }],
|
|
7
|
+
plate: { y0: 49.2, y1: 53.8 },
|
|
8
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// A wide silver bowl with two handles on a short stem, over a tall base that widens like a cone, with a dark band and a dark foot. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A wide silver bowl with two handles on a tall tiered base. */
|
|
4
|
+
export const TROPHY_CANADIAN_BOWL = /* @__PURE__ */ defineLathe("trophy:canadian-bowl", "Wide two-handled bowl", "取っ手が二つの広いボウル", "ours", {
|
|
5
|
+
metal: "silver",
|
|
6
|
+
tones: { dark: "#2b2f36" },
|
|
7
|
+
solids: [
|
|
8
|
+
{
|
|
9
|
+
open: true,
|
|
10
|
+
p: [
|
|
11
|
+
[8, 12.6, 1], [10, 12.2], [16.5, 8.5], [21, 4.4, 1],
|
|
12
|
+
[21, 3.8, 1], [24.5, 3.4, 1], [24.5, 5.8, 1], [26, 5.8, 1], [26, 9.2, 1, "dark"], [29.4, 9.2, 1, "dark"],
|
|
13
|
+
[29.4, 9.8, 1], [46.4, 14.8, 1], [46.4, 15.8, 1, "dark"], [49.6, 15.8, 1, "dark"], [49.6, 16.6, 1], [52.2, 16.6, 1], [52.2, 17.2, 1, "dark"], [58, 17.2, 1, "dark"],
|
|
14
|
+
],
|
|
15
|
+
decor: [["mer", 30, 46, 11]],
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
handles: [
|
|
19
|
+
{ a: 90, w: 2.2, pts: [[8, 17], [13.4, 16], [17.4, 11.5], [15.8, 7.4], [12.8, 8.6]] },
|
|
20
|
+
{ a: -90, w: 2.2, pts: [[8, 17], [13.4, 16], [17.4, 11.5], [15.8, 7.4], [12.8, 8.6]] },
|
|
21
|
+
],
|
|
22
|
+
plate: { y0: 52.4, y1: 57.8, tone: "dark" },
|
|
23
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// A championship banner: a broad, softly waving cloth hung from a pole with a gilt finial, an embroidered border and a short fringe along the bottom. No lettering unless some is given (up to three letters);
|
|
2
|
+
// the blank cloth has a ring and a star. Drawn for this package; a generic banner that carries no name, mark or lettering of any event. `tint` is the cloth, `accent` the gold of the trim.
|
|
3
|
+
import { circlePath, defineFlat, starPath } from "../emblem.shapes.js";
|
|
4
|
+
const CLOTH = "M11 10C21 6 29 14 39 10S52 8 58 11V46C52 43 46 50 39 47S21 51 11 47Z";
|
|
5
|
+
const BORDER = "M14.6 13.6C22 10.6 29 17.4 39 13.8S50 12.4 54.4 14.4V42.6C50 41 46 46 39 43.6S22 47 14.6 44.4Z";
|
|
6
|
+
/** The bottom edge of the cloth at `x`: the two cubic curves of CLOTH from the right to the left, sampled. */
|
|
7
|
+
const edgeAt = (x) => {
|
|
8
|
+
const cubic = (p, t) => {
|
|
9
|
+
const u = 1 - t;
|
|
10
|
+
return [u * u * u * p[0] + 3 * u * u * t * p[2] + 3 * u * t * t * p[4] + t * t * t * p[6], u * u * u * p[1] + 3 * u * u * t * p[3] + 3 * u * t * t * p[5] + t * t * t * p[7]];
|
|
11
|
+
};
|
|
12
|
+
let best = 47;
|
|
13
|
+
let gap = Infinity;
|
|
14
|
+
for (const c of [[58, 46, 52, 43, 46, 50, 39, 47], [39, 47, 32, 44, 21, 51, 11, 47]]) {
|
|
15
|
+
for (let i = 0; i <= 40; i++) {
|
|
16
|
+
const [px, py] = cubic(c, i / 40);
|
|
17
|
+
if (Math.abs(px - x) < gap)
|
|
18
|
+
[gap, best] = [Math.abs(px - x), py];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return best;
|
|
22
|
+
};
|
|
23
|
+
/** The fringe along the bottom edge, following the cloth's wave. */
|
|
24
|
+
const FRINGE = (() => {
|
|
25
|
+
let d = "";
|
|
26
|
+
for (let i = 0; i < 12; i++) {
|
|
27
|
+
const x = 12.4 + i * 3.8;
|
|
28
|
+
d += `M${x.toFixed(1)} ${(edgeAt(x + 0.7) - 0.6).toFixed(1)}h1.4v4.6h-1.4z`;
|
|
29
|
+
}
|
|
30
|
+
return d;
|
|
31
|
+
})();
|
|
32
|
+
const POLE = ["r", "M7 8h4.4v54H7z"];
|
|
33
|
+
const FINIAL = ["r", "M9.2 1.4L12.4 8.4H6z"];
|
|
34
|
+
/** A fringed banner on a pole. */
|
|
35
|
+
export const TROPHY_CHAMPIONSHIP_BANNER = /* @__PURE__ */ defineFlat("trophy:championship-banner", "Championship banner", "優勝旗", "ours", {
|
|
36
|
+
metal: "flat",
|
|
37
|
+
color: "#4b2a6b",
|
|
38
|
+
ribbon: "#d9a620",
|
|
39
|
+
front: [
|
|
40
|
+
["r", FRINGE],
|
|
41
|
+
["m", CLOTH],
|
|
42
|
+
["s", "M11 40C21 44 28 44 39 41S52 40 58 41V46C52 43 46 50 39 47S21 51 11 47Z"],
|
|
43
|
+
["e", BORDER, "1.8"],
|
|
44
|
+
["l", "M14 12C20 11 24 13 28 15L14 22z"],
|
|
45
|
+
POLE,
|
|
46
|
+
["f", "M7.8 10h1v50h-1z", "#f6dc7a"],
|
|
47
|
+
["r", "M5.2 6.6h8.4v3H5.2z"],
|
|
48
|
+
FINIAL,
|
|
49
|
+
["f", "M9.2 3.6l1.4 3H8z", "#f6dc7a"],
|
|
50
|
+
["r", circlePath(9.2, 2.2, 1.7)],
|
|
51
|
+
],
|
|
52
|
+
back: [
|
|
53
|
+
["r", FRINGE],
|
|
54
|
+
["m", CLOTH],
|
|
55
|
+
["s", "M11 40C21 44 28 44 39 41S52 40 58 41V46C52 43 46 50 39 47S21 51 11 47Z"],
|
|
56
|
+
["e", BORDER, "1.8"],
|
|
57
|
+
POLE,
|
|
58
|
+
["r", "M5.2 6.6h8.4v3H5.2z"],
|
|
59
|
+
FINIAL,
|
|
60
|
+
],
|
|
61
|
+
blank: [
|
|
62
|
+
["e", circlePath(36, 29, 9.6), "1.6"],
|
|
63
|
+
["r", starPath(36, 29, 6.4, 2.8)],
|
|
64
|
+
],
|
|
65
|
+
letters: [36, 29, 17],
|
|
66
|
+
rim: 2,
|
|
67
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// A small terracotta urn: a flared lip, a narrow neck with two square handles, an egg-shaped belly, a stem and a round foot on a wooden base. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A small terracotta urn. */
|
|
4
|
+
export const TROPHY_CRICKET_URN = /* @__PURE__ */ defineLathe("trophy:cricket-urn", "Urn", "取っ手付きの壺", "ours", {
|
|
5
|
+
metal: "flat",
|
|
6
|
+
color: "#a8442f",
|
|
7
|
+
tones: { wood: "#b98a4f" },
|
|
8
|
+
solids: [
|
|
9
|
+
{
|
|
10
|
+
p: [
|
|
11
|
+
[6, 5, 1], [8, 4.4], [10, 3.2, 1], [13, 2.9, 1], [15, 3.6], [19, 7.2], [24, 9.2], [31, 8.8], [38, 5.4], [42, 3.3, 1],
|
|
12
|
+
[42, 3, 1], [44, 3.6], [45.6, 5.4, 1], [45.6, 5, 1], [47.6, 5, 1],
|
|
13
|
+
[47.6, 8, 1, "wood"], [49, 8, 1, "wood"], [49, 11.4, 1, "wood"], [55, 12.6, 1, "wood"],
|
|
14
|
+
],
|
|
15
|
+
decor: [["ring", 17.4], ["ring", 38]],
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
handles: [
|
|
19
|
+
{ a: 90, w: 1.6, pts: [[3.2, 11], [8.4, 11], [8.4, 16.4], [8, 20]] },
|
|
20
|
+
{ a: -90, w: 1.6, pts: [[3.2, 11], [8.4, 11], [8.4, 16.4], [8, 20]] },
|
|
21
|
+
],
|
|
22
|
+
plate: { y0: 49.4, y1: 54.6, tone: "wood" },
|
|
23
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// A plain two-handled cup, drawn for this package: a deep bowl with a star, a bevelled handle on each side, a short stem and a flared foot, in polished metal.
|
|
2
|
+
import { defineIcon } from "../emblem.shapes.js";
|
|
3
|
+
/** Cup. */
|
|
4
|
+
export const TROPHY_CUP = /* @__PURE__ */ defineIcon("trophy:cup", "Cup", "カップ", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
front: [
|
|
7
|
+
["m", "M15.4 8.6H7.6Q5 8.6 5 11.2V17Q5 27 16.4 29.4V24.6Q10 22.6 10 17V13.4H15.4Z"],
|
|
8
|
+
["m", "M48.6 8.6H56.4Q59 8.6 59 11.2V17Q59 27 47.6 29.4V24.6Q54 22.6 54 17V13.4H48.6Z"],
|
|
9
|
+
["m", "M15 5h34v15C49 32 42 40 32 41 22 40 15 32 15 20z"],
|
|
10
|
+
["m", "M27.4 40h9.2l1 7h-11.2z"],
|
|
11
|
+
["m", "M19 47h26l4 6v5H15v-5z"],
|
|
12
|
+
["s", "M32 12.4l1.8 4.4 4.8.4-3.6 3.2 1.1 4.7L32 22.4l-4.1 2.7 1.1-4.7-3.6-3.2 4.8-.4z"],
|
|
13
|
+
["l", "M19.4 8h5v13q-5-3.6-5-13z"],
|
|
14
|
+
["l", "M20 49.6h24l1.4 2H18.6z"],
|
|
15
|
+
],
|
|
16
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// A football standing on one end, leaning as if ready for a kick, on a tapered three-sided stand with a stepped base. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A silver football standing on end, tilted as if ready for a kick, on a tapered three-sided stand. */
|
|
4
|
+
export const TROPHY_FOOTBALL = /* @__PURE__ */ defineLathe("trophy:football", "Football trophy", "アメフトのトロフィー", "ours", {
|
|
5
|
+
metal: "silver",
|
|
6
|
+
solids: [
|
|
7
|
+
{ sides: 3, p: [[28.6, 3.4, 1], [49, 10.2, 1], [49, 12.8, 1], [53.4, 12.8, 1], [53.4, 15, 1], [58.4, 15, 1]] },
|
|
8
|
+
],
|
|
9
|
+
balls: [{ kind: "football", cx: 25.6, cy: 16.8, r: 9.4, ry: 13.6, rot: -28 }],
|
|
10
|
+
plate: { y0: 53.6, y1: 58.2, face: 2 },
|
|
11
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// A gold globe, drawn with its lines of latitude and longitude, standing on a column and a stepped base. Drawn for this package.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A globe in a stand. */
|
|
4
|
+
export const TROPHY_GLOBE = /* @__PURE__ */ defineLathe("trophy:globe", "Globe on a stand", "台座の上の地球儀", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
solids: [{ p: [[34, 3.4, 1], [48, 3.4, 1], [48, 8, 1], [51, 8, 1], [51, 13, 1], [55, 13, 1], [55, 15.2, 1], [59, 15.2, 1]] }],
|
|
7
|
+
balls: [{ kind: "globe", cy: 21, r: 15 }],
|
|
8
|
+
plate: { y0: 55.2, y1: 58.8 },
|
|
9
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// A tall silver cup: a flared bowl on a short stem and a collar, a bell that widens over a stack of bands, each a little wider than the one above, and a dark foot. Drawn for this package; it is a
|
|
2
|
+
// generic cup and carries no name, mark or engraving.
|
|
3
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
4
|
+
/** A tall silver cup: a small bowl on a collar over a tall tiered barrel of widening bands. */
|
|
5
|
+
export const TROPHY_HOCKEY_CUP = /* @__PURE__ */ defineLathe("trophy:hockey-cup", "Banded silver cup", "段付きの銀カップ", "ours", {
|
|
6
|
+
metal: "silver",
|
|
7
|
+
tones: { dark: "#2b2f36" },
|
|
8
|
+
solids: [
|
|
9
|
+
{
|
|
10
|
+
open: true,
|
|
11
|
+
p: [
|
|
12
|
+
[3, 11.4, 1], [6, 10.6], [9.5, 6.6], [12, 4.4, 1],
|
|
13
|
+
[13.4, 3.8, 1], [13.4, 5.6, 1], [15, 5.6, 1], [15, 4.4, 1], [17.4, 4.6, 1], [17.4, 5.8, 1],
|
|
14
|
+
[19.4, 6], [22.6, 7.3], [25.6, 8.2, 1],
|
|
15
|
+
[25.6, 10.4, 1], [30.8, 10.4, 1], [30.8, 10.9, 1], [36.2, 10.9, 1], [36.2, 11.4, 1], [41.6, 11.4, 1], [41.6, 11.9, 1], [47, 11.9, 1], [47, 12.4, 1], [52.4, 12.4, 1],
|
|
16
|
+
[52.4, 13.6, 1, "dark"], [58, 13.6, 1, "dark"],
|
|
17
|
+
],
|
|
18
|
+
decor: [["mer", 4.5, 10, 14]],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
plate: { y0: 52.4, y1: 58, tone: "dark" },
|
|
22
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Two branches of laurel leaves that curve round and stay open at the top. Drawn for this package.
|
|
2
|
+
import { defineFlat } from "../emblem.shapes.js";
|
|
3
|
+
const round = (n) => Math.round(n * 2) / 2;
|
|
4
|
+
/** A leaf at a point, pointing along an angle (degrees from the x axis). */
|
|
5
|
+
function leaf(x, y, angle, length, width) {
|
|
6
|
+
const a = (angle * Math.PI) / 180;
|
|
7
|
+
const ex = x + Math.cos(a) * length;
|
|
8
|
+
const ey = y + Math.sin(a) * length;
|
|
9
|
+
const nx = -Math.sin(a) * width;
|
|
10
|
+
const ny = Math.cos(a) * width;
|
|
11
|
+
const mx = (x + ex) / 2;
|
|
12
|
+
const my = (y + ey) / 2;
|
|
13
|
+
return `M${round(x)} ${round(y)}Q${round(mx + nx)} ${round(my + ny)} ${round(ex)} ${round(ey)}Q${round(mx - nx)} ${round(my - ny)} ${round(x)} ${round(y)}z`;
|
|
14
|
+
}
|
|
15
|
+
/** The leaves and stems of a wreath: two branches along an ellipse from the bottom up to the top corners, a pair of leaves at each step. */
|
|
16
|
+
function wreath() {
|
|
17
|
+
let leaves = "";
|
|
18
|
+
let stems = "";
|
|
19
|
+
const [cx, cy, rx, ry] = [32, 33, 20, 22];
|
|
20
|
+
for (const side of [-1, 1]) {
|
|
21
|
+
let stem = "";
|
|
22
|
+
for (let i = 0; i < 5; i++) {
|
|
23
|
+
const phi = ((24 + i * 32) * Math.PI) / 180;
|
|
24
|
+
const x = cx + side * rx * Math.sin(phi);
|
|
25
|
+
const y = cy + ry * Math.cos(phi);
|
|
26
|
+
const run = (Math.atan2(-ry * Math.sin(phi), -side * rx * Math.cos(phi)) * 180) / Math.PI;
|
|
27
|
+
stem += `${i === 0 ? "M" : "L"}${round(x)} ${round(y)}`;
|
|
28
|
+
leaves += leaf(x, y, run - 38, 11, 4.2) + leaf(x, y, run + 38, 11, 4.2);
|
|
29
|
+
}
|
|
30
|
+
stems += stem;
|
|
31
|
+
}
|
|
32
|
+
return { leaves, stems };
|
|
33
|
+
}
|
|
34
|
+
const W = /* @__PURE__ */ wreath();
|
|
35
|
+
/** Two branches of leaves that curve round, open at the top. */
|
|
36
|
+
export const TROPHY_LAUREL = /* @__PURE__ */ defineFlat("trophy:laurel", "Laurel wreath", "月桂樹の冠", "ours", {
|
|
37
|
+
metal: "gold",
|
|
38
|
+
front: [["t", W.stems], ["m", W.leaves]],
|
|
39
|
+
rim: 2,
|
|
40
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// A gold cup with a domed lid and a knob, two small handles, on a stem and a round foot. Drawn for this package.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A cup with a domed lid and a knob. */
|
|
4
|
+
export const TROPHY_LIDDED_CUP = /* @__PURE__ */ defineLathe("trophy:lidded-cup", "Cup with a lid", "ふた付きカップ", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
solids: [
|
|
7
|
+
{
|
|
8
|
+
p: [
|
|
9
|
+
[5, 2.2, 1], [7, 2.8, 1], [7, 3.6, 1], [8.6, 3.6, 1], [8.6, 5, 1], [10, 5, 1], [10.6, 9.2], [15.4, 12.4, 1],
|
|
10
|
+
[15.4, 12.2, 1], [17, 12.4, 1], [24, 11.6], [32, 7.6], [37.4, 4.6, 1],
|
|
11
|
+
[37.4, 3.2, 1], [41, 3.2, 1], [41, 7, 1], [44, 7, 1], [44, 10.6, 1], [47.4, 10.6, 1], [47.4, 13.6, 1], [52, 13.6, 1],
|
|
12
|
+
],
|
|
13
|
+
decor: [["ring", 17.2]],
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
handles: [
|
|
17
|
+
{ a: 90, w: 2, pts: [[11.4, 20], [16.4, 19], [17.6, 24], [12, 29]] },
|
|
18
|
+
{ a: -90, w: 2, pts: [[11.4, 20], [16.4, 19], [17.6, 24], [12, 29]] },
|
|
19
|
+
],
|
|
20
|
+
plate: { y0: 47.8, y1: 51.8 },
|
|
21
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A wooden board with a metal plate and lines for the words. Drawn for this package.
|
|
2
|
+
import { defineFlat } from "../emblem.shapes.js";
|
|
3
|
+
/** A wooden board with a plate and lines for the words. */
|
|
4
|
+
export const TROPHY_PLAQUE = /* @__PURE__ */ defineFlat("trophy:plaque", "Plaque", "記念盾", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
ribbon: "#7a5230",
|
|
7
|
+
front: [
|
|
8
|
+
["r", "M10 4h44l5 6v44l-5 6H10l-5-6V10z"],
|
|
9
|
+
["e", "M12 8h40l3 4v40l-3 4H12l-3-4V12z", "1.4"],
|
|
10
|
+
["m", "M15 12h34v30H15z"],
|
|
11
|
+
["T", "M21 20h22M21 27h22M21 34h13"],
|
|
12
|
+
["m", "M23 47h18v7H23z"],
|
|
13
|
+
["l", "M17 14h8l-8 8z"],
|
|
14
|
+
],
|
|
15
|
+
rim: 4,
|
|
16
|
+
engrave: { front: { x: 32, y: 27, w: 30, h: 26 }, year: { x: 32, y: 50.5, w: 16, h: 5 } },
|
|
17
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// A championship ring seen face on: a thick band, a wide faceted head with a gem in a bezel, and a flat on each shoulder of the head for the team and the year. It turns like a coin, with its rim, and shows
|
|
2
|
+
// the plain back of the head. Drawn for this package: generic, no team's or league's ring.
|
|
3
|
+
import { circlePath, defineFlat } from "../emblem.shapes.js";
|
|
4
|
+
const poly = (...p) => `M${p.map((q) => q.join(" ")).join("L")}Z`;
|
|
5
|
+
/** A band: a disc with a round hole, wound the other way so that it is cut out. */
|
|
6
|
+
const annulus = (cx, cy, R, r) => `M${cx - R} ${cy}a${R} ${R} 0 1 0 ${2 * R} 0a${R} ${R} 0 1 0 ${-2 * R} 0ZM${cx - r} ${cy}a${r} ${r} 0 1 1 ${2 * r} 0a${r} ${r} 0 1 1 ${-2 * r} 0Z`;
|
|
7
|
+
const HEAD = poly([16, 5], [48, 5], [58, 14], [58, 26], [48, 35], [16, 35], [6, 26], [6, 14]);
|
|
8
|
+
const BEZEL = poly([17.5, 8], [46.5, 8], [54.5, 15], [54.5, 25], [46.5, 32], [17.5, 32], [9.5, 25], [9.5, 15]);
|
|
9
|
+
const GEM = poly([24, 11], [40, 11], [47, 17], [47, 23], [40, 29], [24, 29], [17, 23], [17, 17]);
|
|
10
|
+
/** The facets: the table, and a line from each corner of the gem to the nearest corner of the table. */
|
|
11
|
+
const FACETS = `${poly([27.5, 15.5], [36.5, 15.5], [40.5, 18.5], [40.5, 21.5], [36.5, 24.5], [27.5, 24.5], [23.5, 21.5], [23.5, 18.5])}M24 11L27.5 15.5M40 11L36.5 15.5M47 17L40.5 18.5M47 23L40.5 21.5M40 29L36.5 24.5M24 29L27.5 24.5M17 23L23.5 21.5M17 17L23.5 18.5`;
|
|
12
|
+
const front = [
|
|
13
|
+
["o", annulus(32, 44, 19, 11)],
|
|
14
|
+
["t", circlePath(32, 44, 15)],
|
|
15
|
+
["o", HEAD],
|
|
16
|
+
["e", BEZEL, "1.6"],
|
|
17
|
+
["r", GEM],
|
|
18
|
+
["t", FACETS],
|
|
19
|
+
["l", "M24 11L40 11L36.5 15.5L27.5 15.5ZM17 17L24 11L27.5 15.5L23.5 18.5Z"],
|
|
20
|
+
];
|
|
21
|
+
const back = [["o", annulus(32, 44, 19, 11)], ["o", HEAD], ["e", BEZEL, "1.6"]];
|
|
22
|
+
/** A championship ring. */
|
|
23
|
+
export const TROPHY_RING = /* @__PURE__ */ defineFlat("trophy:ring", "Championship ring", "優勝リング", "ours", {
|
|
24
|
+
metal: "gold",
|
|
25
|
+
ribbon: "#b3262e",
|
|
26
|
+
front,
|
|
27
|
+
back,
|
|
28
|
+
rim: 5,
|
|
29
|
+
engrave: { front: { x: 12.4, y: 20, w: 19, h: 7, rot: -90 }, year: { x: 51.6, y: 20, w: 19, h: 7, rot: 90 }, back: { x: 32, y: 20, w: 30, h: 12 } },
|
|
30
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// A scalloped rosette with a centre and two tails of ribbon. Drawn for this package.
|
|
2
|
+
import { circlePath, defineFlat, starPath } from "../emblem.shapes.js";
|
|
3
|
+
/** The scalloped edge of a rosette. */
|
|
4
|
+
function scallops(cx, cy, r, n) {
|
|
5
|
+
const round = (v) => Math.round(v * 2) / 2;
|
|
6
|
+
let d = "";
|
|
7
|
+
for (let i = 0; i <= n; i++) {
|
|
8
|
+
const a = (i / n) * Math.PI * 2;
|
|
9
|
+
const x = round(cx + r * Math.cos(a));
|
|
10
|
+
const y = round(cy + r * Math.sin(a));
|
|
11
|
+
d += i === 0 ? `M${x} ${y}` : `A${round((Math.PI * r) / n)} ${round((Math.PI * r) / n)} 0 0 1 ${x} ${y}`;
|
|
12
|
+
}
|
|
13
|
+
return `${d}z`;
|
|
14
|
+
}
|
|
15
|
+
/** A scalloped rosette with a centre and two tails of ribbon. */
|
|
16
|
+
export const TROPHY_ROSETTE = /* @__PURE__ */ defineFlat("trophy:rosette", "Rosette with ribbons", "リボン付きのロゼット", "ours", {
|
|
17
|
+
metal: "gold",
|
|
18
|
+
ribbon: "#2f6fb3",
|
|
19
|
+
front: [
|
|
20
|
+
["r", "M22 38L12 62l11-5 6 6 4-24zM42 38l10 24-11-5-6 6-4-24z"],
|
|
21
|
+
["o", scallops(32, 24, 19, 14)],
|
|
22
|
+
["e", circlePath(32, 24, 13), "1.8"],
|
|
23
|
+
["m", starPath(32, 24, 9, 3.8)],
|
|
24
|
+
["l", "M18 22a14 14 0 0 1 9-9 16 16 0 0 0-9 14z"],
|
|
25
|
+
],
|
|
26
|
+
rim: 3,
|
|
27
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// A gilded two-handled cup with a lid: tall scrolled handles that rise above the rim, a domed lid with a tall finial, a rounded bowl on a knopped stem, and a plain plinth. Drawn for this package; a generic trophy.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A gilded two-handled cup with a lid. */
|
|
4
|
+
export const TROPHY_RUGBY_CUP = /* @__PURE__ */ defineLathe("trophy:rugby-cup", "Gilded cup with a lid", "ふた付きの金色のカップ", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
tones: { dark: "#3a2a22" },
|
|
7
|
+
solids: [
|
|
8
|
+
{
|
|
9
|
+
p: [
|
|
10
|
+
[2.6, 1.4, 1], [6, 1.9], [9, 2.6, 1], [9, 3.4, 1], [11, 3.4, 1], [11, 6, 1], [12.4, 6], [15, 10, 1],
|
|
11
|
+
[15, 11, 1], [16.6, 11.4, 1], [16.6, 11.4], [24, 11.2], [31, 8.4], [34.6, 5, 1],
|
|
12
|
+
[34.6, 3.6, 1], [37, 3.6, 1], [37, 5.6, 1], [39, 5.6, 1], [39, 3.8, 1], [41, 3.8, 1], [41, 7.6, 1], [42.4, 7.6, 1],
|
|
13
|
+
[42.4, 8.4, 1], [52, 8.4, 1], [52, 10.4, 1, "dark"], [56, 10.4, 1, "dark"],
|
|
14
|
+
],
|
|
15
|
+
decor: [["dots", 16.4, 18, 0.8]],
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
handles: [
|
|
19
|
+
{ a: 90, w: 1.5, pts: [[9.4, 28], [14.2, 26], [17.6, 20], [17.6, 12.6], [15.6, 10.4], [16.6, 8.6]] },
|
|
20
|
+
{ a: -90, w: 1.5, pts: [[9.4, 28], [14.2, 26], [17.6, 20], [17.6, 12.6], [15.6, 10.4], [16.6, 8.6]] },
|
|
21
|
+
],
|
|
22
|
+
plate: { y0: 43.4, y1: 51.2 },
|
|
23
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// A broad gold dish with a raised rim on a low foot. Drawn for this package.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A broad dish on a low foot, with a banded rim. */
|
|
4
|
+
export const TROPHY_SALVER = /* @__PURE__ */ defineLathe("trophy:salver", "Salver", "足付きの丸盆", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
tilt: 24,
|
|
7
|
+
solids: [{ open: true, p: [[22, 30, 1], [24.4, 30, 1], [29, 22, 1], [34, 8, 1], [34, 4.8, 1], [42, 3.8, 1], [42, 9.4, 1], [46, 10.4, 1], [48, 12.6, 1], [51, 12.6, 1]], decor: [["disc", 26.4, "main"]] }],
|
|
8
|
+
plate: { y0: 48.2, y1: 50.8 },
|
|
9
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// A gold soccer ball held up on a tapering stand with a stepped base. Drawn for this package.
|
|
2
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
3
|
+
/** A soccer ball held up on a tapering stand. */
|
|
4
|
+
export const TROPHY_SOCCER_BALL = /* @__PURE__ */ defineLathe("trophy:soccer-ball", "Soccer ball trophy", "サッカーのトロフィー", "ours", {
|
|
5
|
+
metal: "gold",
|
|
6
|
+
solids: [{ p: [[27, 4.4, 1], [38, 3.4], [47, 5.4, 1], [47, 8, 1], [51, 8, 1], [51, 12.4, 1], [55, 12.4, 1], [55, 15, 1], [59, 15, 1]] }],
|
|
7
|
+
balls: [{ kind: "soccer", cy: 16, r: 11.4 }],
|
|
8
|
+
plate: { y0: 55.2, y1: 58.8 },
|
|
9
|
+
});
|