A = Intersect(xAxis, yAxis)
B = (4, 0)
C = (4, 4)
D = (0, 4)
q1, a, b, c, d = Polygon(A, B, C, D)
E: (0, 0, 4)
F: (4, 0, 4)
G: (0, 4, 4)
q2, b_1, f, e, a_1 = Polygon(B, F, E, A)
q3, e_1, g, d_1, a_2 = Polygon(E, G, D, A)
t1, e_2, f_1, g_1 = Polygon(F, G, E)
t2, b_2, f_2, c_1 = Polygon(F, C, B)
t3, c_2, g_2, d_2 = Polygon(G, D, C)
t4, c_3, f_3, g_3 = Polygon(F, G, C)
t1' = Mirror(t1, q2)
q3' = Mirror(q3, q2)
t4' = Mirror(t4, q2)
t2' = Mirror(t2, q2)
t3' = Mirror(t3, q2)
A' = Mirror(A, q2)
B' = Mirror(B, q2)
C' = Mirror(C, q2)
D' = Mirror(D, q2)
q1', a', b', c', d' = Polygon(A', B', C', D')
t4'' = Mirror(t4', t2')
t1'' = Mirror(t1', t2')
t1'_1 = Mirror(t1, t2')
t4'_1 = Mirror(t4, t2)
t3'' = Mirror(t3', t2')
q1'' = Mirror(q1', t2')
A'_1 = Mirror(A, t2)
B'_1 = Mirror(B, t2)
C'_1 = Mirror(C, t2)
D'_1 = Mirror(D, t2)
q1'_1, a'_1, b'_1, c'_1, d'_1 = Polygon(A'_1, B'_1, C'_1, D'_1)
t3'_1 = Mirror(t3, t2)
q3'_1 = Mirror(q3, t2')
q3'' = Mirror(q3', t2')
t1'_2 = Mirror(t1, q3)
t1''_1 = Mirror(t1', t4'_1)
t5 = Mirror(t4'_1, q3)
t6 = Mirror(t1'_1, q3)
t1''' = Mirror(t1'', q3)
t4''' = Mirror(t4'', q3')
t4''_1 = Mirror(t4', q3')
t4'_2 = Mirror(t4, q3)
t3'_2 = Mirror(t3, q3)
t1''_2 = Mirror(t1', q3')
t7 = Mirror(t3'_1, q3)
q4 = Mirror(q1'_1, q3)
q1''' = Mirror(q1'', q3)
A'_2 = Mirror(A, q3)
B'_2 = Mirror(B, q3)
C'_2 = Mirror(C, q3)
D'_2 = Mirror(D, q3)
q1'_2, a'_2, b'_2, c'_2, d'_2 = Polygon(A'_2, B'_2, C'_2, D'_2)
q1''_1 = Mirror(q1', q3')
t3''' = Mirror(t3'', q3')
t3''_1 = Mirror(t3', q3')
q3''' = Mirror(q3'', q3)
q5 = Mirror(q3'_1, q3)