from rlutilities.linear_algebra import vec3
from choreography.utils.bezier import BezierPath

zero = BezierPath([
    vec3(0, -4000, 1750),
    vec3(0, -3500, 1750),
    vec3(0, -850, 1680),
    vec3(0, 450, 1060),
    vec3(0, 1900, 330),
    vec3(0, 2945, 265),
    vec3(0, 3868, 846),
    vec3(0, 3705, 1761),
    vec3(0, 1522, 1943),
    vec3(0, -309, 1783),
    vec3(0, -1554, 1756),
    vec3(0, -3745, 1750),
    vec3(0, -2436, 931),
    vec3(0, -588, 1640),
    vec3(0, 926, 1745),
    vec3(0, 900, 1750),
])

one = BezierPath([
    vec3(-250, -4250, 1750),
    vec3(-250, -3750, 1750),
    vec3(-450, 760, 1750),
    vec3(-1630, 2020, 1750),
    vec3(-2680, -45, 1750),
    vec3(-2065, -1217, 1750),
    vec3(-1247, 146, 1750),
    vec3(-488, -101, 1750),
    vec3(-299, -1080, 1750),
    vec3(-250, -3745, 1750),
    vec3(-250, -2436, 931),
    vec3(-250, -588, 1640),
    vec3(-250, 926, 1745),
    vec3(-250, 900, 1750),
])

two = BezierPath([
    vec3(250, -4250, 1750),
    vec3(250, -3750, 1750),
    vec3(450, 760, 1750),
    vec3(1630, 2020, 1750),
    vec3(2680, -45, 1750),
    vec3(2065, -1217, 1750),
    vec3(1247, 146, 1750),
    vec3(488, -101, 1750),
    vec3(299, -1080, 1750),
    vec3(250, -3745, 1750),
    vec3(250, -2436, 931),
    vec3(250, -588, 1640),
    vec3(250, 926, 1745),
    vec3(250, 900, 1750),
])

three = BezierPath([
    vec3(-500, -4500, 1750),
    vec3(-500, -4000, 1750),
    vec3(-500, -3500, 1750),
    vec3(-500, -3000, 1750),
    vec3(-500, -2500, 1750),
    vec3(-500, -2000, 1750),
    vec3(-500, -1500, 1750),
    vec3(-700, -1000, 1750),
    vec3(-1630, -400, 1910),
    vec3(-2470, -90, 1710),
    vec3(-2310, 1505, 1630),
    vec3(-2085, 2287, 1750),
    vec3(-2007, 3063, 1750),
    vec3(-1913, 3976, 1750),
    vec3(-1321, 4438, 1760),
    vec3(-620, 4009, 1680),
    vec3(250, 2099, 1695),
    vec3(405, 1289, 1752),
    vec3(457, -205, 1751),
    vec3(460, -180, 1750),
])

five = BezierPath([
    vec3(-750, -4750, 1750),
    vec3(-750, -4250, 1750),
    vec3(-750, -3750, 1750),
    vec3(-750, -3250, 1750),
    vec3(-750, -2750, 1750),
    vec3(-750, -2250, 1750),
    vec3(-750, -1750, 1750),
    vec3(-950, -1250, 1750),
    vec3(-2180, 310, 1750),
    vec3(-2380, 3100, 1750),
    vec3(-1790, 4500, 1750),
    vec3(-680, 4300, 1950),
    vec3(115, 3130, 1925),
    vec3(697, 1835, 1750),
    vec3(788, -142, 1750),
    vec3(780, -560, 1750),
])

seven = BezierPath([
    vec3(-1000, -5000, 1750),
    vec3(-1000, -4500, 1750),
    vec3(-1000, -4000, 1750),
    vec3(-1000, -3500, 1750),
    vec3(-1000, -3000, 1750),
    vec3(-1000, -2500, 1750),
    vec3(-1000, -2000, 1750),
    vec3(-1200, -1500, 1750),
    vec3(-1730, -410, 1610),
    vec3(-2305, 1210, 1870),
    vec3(-2690, 3190, 1750),
    vec3(-1230, 4800, 1860),
    vec3(-365, 4273, 1642),
    vec3(780, 2552, 1685),
    vec3(1000, 1381, 1777),
    vec3(1035, -94, 1763),
    vec3(1050, -790, 1750),
])

four = BezierPath([
    vec3(500, -4500, 1750),
    vec3(500, -4000, 1750),
    vec3(500, -3500, 1750),
    vec3(500, -3000, 1750),
    vec3(500, -2500, 1750),
    vec3(500, -2000, 1750),
    vec3(500, -1500, 1750),
    vec3(700, -1000, 1750),
    vec3(1630, -400, 1910),
    vec3(2470, -90, 1710),
    vec3(2310, 1505, 1630),
    vec3(2085, 2287, 1750),
    vec3(2007, 3063, 1750),
    vec3(1913, 3976, 1750),
    vec3(1321, 4438, 1760),
    vec3(620, 4009, 1840),
    vec3(-250, 2099, 1825),
    vec3(-405, 1289, 1752),
    vec3(-457, -205, 1751),
    vec3(-460, -180, 1750),
])

six = BezierPath([
    vec3(750, -4750, 1750),
    vec3(750, -4250, 1750),
    vec3(750, -3750, 1750),
    vec3(750, -3250, 1750),
    vec3(750, -2750, 1750),
    vec3(750, -2250, 1750),
    vec3(750, -1750, 1750),
    vec3(950, -1250, 1750),
    vec3(2180, 310, 1750),
    vec3(2380, 3100, 1750),
    vec3(1790, 4500, 1750),
    vec3(680, 4300, 1600),
    vec3(-115, 3130, 1620),
    vec3(-697, 1835, 1750),
    vec3(-788, -142, 1750),
    vec3(-780, -560, 1750),
])

eight = BezierPath([
    vec3(1000, -5000, 1750),
    vec3(1000, -4500, 1750),
    vec3(1000, -4000, 1750),
    vec3(1000, -3500, 1750),
    vec3(1000, -3000, 1750),
    vec3(1000, -2500, 1750),
    vec3(1000, -2000, 1750),
    vec3(1200, -1500, 1750),
    vec3(1730, -410, 1610),
    vec3(2305, 1210, 1870),
    vec3(2690, 3190, 1750),
    vec3(1230, 4800, 1860),
    vec3(365, 4273, 1998),
    vec3(-780, 2552, 1945),
    vec3(-1000, 1381, 1777),
    vec3(-1035, -94, 1763),
    vec3(-1050, -790, 1750),
])


def get_paths():
    return [zero, one, two, three, four, five, six, seven, eight]
