ClearAll[σ1,σ2,σ3,ω,t0,t1,a,b,h,m]
ω=E^(I*Pi/3);
σ1=({{I,0},{0,-I}});(*the standard basis for the lie algebra su(2)*)σ2=({{0,1},{-1,0}});
σ3=({{0,I},{I,0}});

(*=======================================================================================================================================*)


(*group elements and operations in SU2*)

su2exp[{u1_,u2_,u3_}]:=MatrixExp[u1*σ1+u2*σ2+u3*σ3];

(*the generators a,b of the binary dihedral group*)
a=su2exp[{Pi/3,0,0}];
b=su2exp[{0,0,Pi/2}];

(*the element in SU(2) which corresponds to the max of the Morse function on Chiang*)
h=su2exp[{Pi/6,0,0}];

(*deviation and interception times for transition discs*)
t0=ArcCos[Sqrt[2]/Sqrt[3]];
(*for example a transition disc intersects the descending manifold of x_1prime at exp(t_0 v1prime).Δ*)
t1=Pi/2-t0;



(*stereographic projections*)
stereographicS3[{x_,y_,z_,w_}]:={w/(1+x),-z/(1+x),y/(1+x)};

(*rotated projection,so plot looks nice*)
stereographicSU2[A_]:=stereographicS3[{Re[A[[1,1]]],Im[A[[1,1]]],Re[A[[1,2]]],Im[A[[1,2]]]}];


(*axes of rotation*)

v1prime={0,0,1};
v2prime={0,Sqrt[3]/2,-1/2};
v3prime={0,-Sqrt[3]/2,-1/2};
v1={0,-Sqrt[3]/2,1/2};
v2={0,Sqrt[3]/2,1/2};
v3={0,0,-1};


(*Finding all axes for transitional discs*)

front11={Sqrt[6]/3,Sqrt[3]/6,-1/2};
back11={-Sqrt[6]/3,Sqrt[3]/6,-1/2};
front12={Sqrt[6]/3,-Sqrt[3]/6,-1/2};
back12={-Sqrt[6]/3,-Sqrt[3]/6,-1/2};

front22=RotationMatrix[-2 Pi/3,{1,0,0}].front11;
back22=RotationMatrix[-2 Pi/3,{1,0,0}].back11;
front23=RotationMatrix[-2 Pi/3,{1,0,0}].front12;
back23=RotationMatrix[-2 Pi/3,{1,0,0}].back12;

front33=RotationMatrix[2 Pi/3,{1,0,0}].front11;
back33=RotationMatrix[2 Pi/3,{1,0,0}].back11;
front31=RotationMatrix[2 Pi/3,{1,0,0}].front12;
back31=RotationMatrix[2 Pi/3,{1,0,0}].back12;

(*calculating lifts of deviation points*)
(*Note:these lifts are chosen to either lie on an identification path or on a the extension of such a path*)
devPointFront11Back12=su2exp[t1*v1prime];
devPointFront12Back11=su2exp[t0*v1prime];
devPointFront22Back23=su2exp[-t0*v2prime];
devPointFront23Back22=su2exp[-t1*v2prime];
devPointFront33Back31=su2exp[t1*v3prime];
devPointFront31Back33=su2exp[t0*v3prime];



(*setting up the plot*)

(*descending manifolds of x1prime,x2prime and x3prime*)

descendingX1prime[t_]:=su2exp[t*v1prime];
descendingX2prime[t_]:=su2exp[t*v2prime];
descendingX3prime[t_]:=su2exp[t*v3prime];


(*ascending manifolds of x1,x2 and x3*)

ascendingX1[t_]:=su2exp[t*v1].h;
ascendingX2[t_]:=su2exp[t*v2].h;
ascendingX3[t_]:=su2exp[t*v3].h;

(*transition discs*)

transitionDiscFront11GammaZero[t_]:=su2exp[t*front11].devPointFront11Back12;
transitionDiscBack11GammaZero[t_]:=su2exp[t*back11].devPointFront12Back11;

transitionDiscFront12GammaZero[t_]:=su2exp[t*front12].devPointFront12Back11;
transitionDiscBack12GammaZero[t_]:=su2exp[t*back12].devPointFront11Back12;

transitionDiscFront22GammaZero[t_]:=su2exp[t*front22].devPointFront22Back23;
transitionDiscBack22GammaZero[t_]:=su2exp[t*back22].devPointFront23Back22;

transitionDiscFront23GammaZero[t_]:=su2exp[t*front23].devPointFront23Back22;
transitionDiscBack23GammaZero[t_]:=su2exp[t*back23].devPointFront22Back23;

transitionDiscFront33GammaZero[t_]:=su2exp[t*front33].devPointFront33Back31;
transitionDiscBack33GammaZero[t_]:=su2exp[t*back33].devPointFront31Back33;

transitionDiscFront31GammaZero[t_]:=su2exp[t*front31].devPointFront31Back33;
transitionDiscBack31GammaZero[t_]:=su2exp[t*back31].devPointFront33Back31;


(*interception points*)

intPointFront11=transitionDiscFront11GammaZero[t0];
intPointBack11=transitionDiscBack11GammaZero[t1];

intPointFront12=transitionDiscFront12GammaZero[t1];
intPointBack12=transitionDiscBack12GammaZero[t0];

intPointFront22=transitionDiscFront22GammaZero[t0];
intPointBack22=transitionDiscBack22GammaZero[t1];

intPointFront23=transitionDiscFront23GammaZero[t1];
intPointBack23=transitionDiscBack23GammaZero[t0];

intPointFront33=transitionDiscFront33GammaZero[t0];
intPointBack33=transitionDiscBack33GammaZero[t1];

intPointFront31=transitionDiscFront31GammaZero[t1];
intPointBack31=transitionDiscBack31GammaZero[t0];

listOfPoints={intPointFront11,intPointBack11,intPointFront12,intPointBack12,intPointFront22,intPointBack22,intPointFront23,intPointBack23,intPointFront33,intPointBack33,intPointFront31,intPointBack31};


(*deviation points for return*)
(*Note-these are different lifts of the interception points*)
devPointFront11GammaOne=ascendingX1[t0];
devPointBack11GammaOne=ascendingX1[t1];

devPointFront12GammaOne=ascendingX2[-t0];
devPointBack12GammaOne=ascendingX2[-t1];

devPointFront22GammaOne=ascendingX2[-t1];
devPointBack22GammaOne=ascendingX2[-t0];

devPointFront23GammaOne=ascendingX3[t1];
devPointBack23GammaOne=ascendingX3[t0];

devPointFront33GammaOne=ascendingX3[t0];
devPointBack33GammaOne=ascendingX3[t1];

devPointFront31GammaOne=ascendingX1[t1];
devPointBack31GammaOne=ascendingX1[t0];

(*transtition discs for return*)

transitionDiscFront11GammaOne[t_]:=su2exp[t*front11].devPointFront11GammaOne;
transitionDiscBack11GammaOne[t_]:=su2exp[t*back11].devPointBack11GammaOne;

transitionDiscFront12GammaOne[t_]:=su2exp[t*front12].devPointFront12GammaOne;
transitionDiscBack12GammaOne[t_]:=su2exp[t*back12].devPointBack12GammaOne;

transitionDiscFront22GammaOne[t_]:=su2exp[t*front22].devPointFront22GammaOne;
transitionDiscBack22GammaOne[t_]:=su2exp[t*back22].devPointBack22GammaOne;

transitionDiscFront23GammaOne[t_]:=su2exp[t*front23].devPointFront23GammaOne;
transitionDiscBack23GammaOne[t_]:=su2exp[t*back23].devPointBack23GammaOne;

transitionDiscFront33GammaOne[t_]:=su2exp[t*front33].devPointFront33GammaOne;
transitionDiscBack33GammaOne[t_]:=su2exp[t*back33].devPointBack33GammaOne;

transitionDiscFront31GammaOne[t_]:=su2exp[t*front31].devPointFront31GammaOne;
transitionDiscBack31GammaOne[t_]:=su2exp[t*back31].devPointBack31GammaOne;


(*return points for transition discs*)

returnPointFront11=transitionDiscFront11GammaOne[t1];
returnPointBack11=transitionDiscBack11GammaOne[t0];

returnPointFront12=transitionDiscFront12GammaOne[t0];
returnPointBack12=transitionDiscBack12GammaOne[t1];

returnPointFront22=transitionDiscFront22GammaOne[t1];
returnPointBack22=transitionDiscBack22GammaOne[t0];

returnPointFront23=transitionDiscFront23GammaOne[t0];
returnPointBack23=transitionDiscBack23GammaOne[t1];

returnPointFront33=transitionDiscFront33GammaOne[t1];
returnPointBack33=transitionDiscBack33GammaOne[t0];

returnPointFront31=transitionDiscFront31GammaOne[t0];
returnPointBack31=transitionDiscBack31GammaOne[t1];



(*setting up the points for the plot-so applying stereographic projection everywhere*)

mprime=Point[stereographicSU2[su2exp[{0,0,0}]],VertexColors->Green];
mprimeLabel=Text[Style["m'",Green,Bold],stereographicSU2[su2exp[{0,0,0}]]-{0,0,0.05}];

x1prime=Point[stereographicSU2[su2exp[(Pi/4)*v1prime]],VertexColors->Brown];
x1primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(1\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v1prime]]];

x2prime=Point[stereographicSU2[su2exp[(-Pi/4)*v2prime]],VertexColors->Brown];
x2primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(2\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v2prime]]];

x3prime=Point[stereographicSU2[su2exp[(Pi/4)*v3prime]],VertexColors->Brown];
x3primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(3\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v3prime]]];

otherx1prime=Point[stereographicSU2[su2exp[(-Pi/4)*v1prime]],VertexColors->Brown];
otherx1primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(1\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v1prime]]];

otherx2prime=Point[stereographicSU2[su2exp[(Pi/4)*v2prime]],VertexColors->Brown];
otherx2primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(2\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v2prime]]];

otherx3prime=Point[stereographicSU2[su2exp[(-Pi/4)*v3prime]],VertexColors->Brown];
otherx3primeLabel=Text[Style["\!\(\*SubscriptBox[\(x\), \(3\)]\)'",Brown,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v3prime]]];

x1=Point[stereographicSU2[su2exp[(Pi/4)*v1].h],VertexColors->Black];
x1Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(1\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v1].h]];

x2=Point[stereographicSU2[su2exp[(Pi/4)*v2].h],VertexColors->Black];
x2Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(2\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v2].h]];

x3=Point[stereographicSU2[su2exp[(Pi/4)*v3].h],VertexColors->Black];
x3Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(3\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(Pi/4)*v3].h]];

otherx1=Point[stereographicSU2[su2exp[(-Pi/4)*v1].h],VertexColors->Black];
otherx1Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(1\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v1].h]];

otherx2=Point[stereographicSU2[su2exp[(-Pi/4)*v2].h],VertexColors->Black];
otherx2Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(2\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v2].h]];

otherx3=Point[stereographicSU2[su2exp[(-Pi/4)*v3].h],VertexColors->Black];
otherx3Label=Text[Style["\!\(\*SubscriptBox[\(x\), \(3\)]\)",Black,Bold],1.2*stereographicSU2[su2exp[(-Pi/4)*v3].h]];

mPoint=Point[stereographicSU2[h],VertexColors->Darker[Green,.5]];
mLabel=Text[Style["m",Darker[Green,.5],Bold],1.2*stereographicSU2[h]];



(*deviation points for plot-GammaZero*)

pointDevPointFront11Back12=Point[stereographicSU2[devPointFront11Back12],VertexColors->Orange];
pointDevPointFront12Back11=Point[stereographicSU2[devPointFront12Back11],VertexColors->Orange];
pointDevPointFront22Back23=Point[stereographicSU2[devPointFront22Back23],VertexColors->Orange];
pointDevPointFront23Back22=Point[stereographicSU2[devPointFront23Back22],VertexColors->Orange];
pointDevPointFront33Back31=Point[stereographicSU2[devPointFront33Back31],VertexColors->Orange];
pointDevPointFront31Back33=Point[stereographicSU2[devPointFront31Back33],VertexColors->Orange];


(*interception points for plot*)

pointIntPointFront11=Point[stereographicSU2[intPointFront11],VertexColors->Orange];
pointIntPointBack11=Point[stereographicSU2[intPointBack11],VertexColors->Orange];

pointIntPointFront12=Point[stereographicSU2[intPointFront12],VertexColors->Orange];
pointIntPointBack12=Point[stereographicSU2[intPointBack12],VertexColors->Orange];

pointIntPointFront22=Point[stereographicSU2[intPointFront22],VertexColors->Orange];
pointIntPointBack22=Point[stereographicSU2[intPointBack22],VertexColors->Orange];

pointIntPointFront23=Point[stereographicSU2[intPointFront23],VertexColors->Orange];
pointIntPointBack23=Point[stereographicSU2[intPointBack23],VertexColors->Orange];

pointIntPointFront33=Point[stereographicSU2[intPointFront33],VertexColors->Orange];
pointIntPointBack33=Point[stereographicSU2[intPointBack33],VertexColors->Orange];

pointIntPointFront31=Point[stereographicSU2[intPointFront31],VertexColors->Orange];
pointIntPointBack31=Point[stereographicSU2[intPointBack31],VertexColors->Orange];

(*devitation points for GammaOne for plot*)

pointDevPointFront11GammaOne=Point[stereographicSU2[devPointFront11GammaOne],VertexColors->Orange];
pointDevPointBack11GammaOne=Point[stereographicSU2[devPointBack11GammaOne],VertexColors->Orange];

pointDevPointFront12GammaOne=Point[stereographicSU2[devPointFront12GammaOne],VertexColors->Orange];
pointDevPointBack12GammaOne=Point[stereographicSU2[devPointBack12GammaOne],VertexColors->Orange];

pointDevPointFront22GammaOne=Point[stereographicSU2[devPointFront22GammaOne],VertexColors->Orange];
pointDevPointBack22GammaOne=Point[stereographicSU2[devPointBack22GammaOne],VertexColors->Orange];

pointDevPointFront23GammaOne=Point[stereographicSU2[devPointFront23GammaOne],VertexColors->Orange];
pointDevPointBack23GammaOne=Point[stereographicSU2[devPointBack23GammaOne],VertexColors->Orange];

pointDevPointFront33GammaOne=Point[stereographicSU2[devPointFront33GammaOne],VertexColors->Orange];
pointDevPointBack33GammaOne=Point[stereographicSU2[devPointBack33GammaOne],VertexColors->Orange];

pointDevPointFront31GammaOne=Point[stereographicSU2[devPointFront31GammaOne],VertexColors->Orange];
pointDevPointBack31GammaOne=Point[stereographicSU2[devPointBack31GammaOne],VertexColors->Orange];


(*return points for plot*)

pointReturnPointFront11=Point[stereographicSU2[returnPointFront11],VertexColors->{Orange}];
pointReturnPointBack11=Point[stereographicSU2[returnPointBack11],VertexColors->{Orange}];

pointReturnPointFront12=Point[stereographicSU2[returnPointFront12],VertexColors->{Orange}];
pointReturnPointBack12=Point[stereographicSU2[returnPointBack12],VertexColors->{Orange}];

pointReturnPointFront22=Point[stereographicSU2[returnPointFront22],VertexColors->{Orange}];
pointReturnPointBack22=Point[stereographicSU2[returnPointBack22],VertexColors->{Orange}];

pointReturnPointFront23=Point[stereographicSU2[returnPointFront23],VertexColors->{Orange}];
pointReturnPointBack23=Point[stereographicSU2[returnPointBack23],VertexColors->{Orange}];

pointReturnPointFront33=Point[stereographicSU2[returnPointFront33],VertexColors->{Orange}];
pointReturnPointBack33=Point[stereographicSU2[returnPointBack33],VertexColors->{Orange}];

pointReturnPointFront31=Point[stereographicSU2[returnPointFront31],VertexColors->{Orange}];
pointReturnPointBack31=Point[stereographicSU2[returnPointBack31],VertexColors->{Orange}];



(*===================================================PLOT==============================================================*)


(*======================================================================================================================================*)
Manipulate[Show[
(*critical points*)
Graphics3D[{PointSize[Large],#}]&/@{mprime,x1prime,x2prime,x3prime,otherx1prime,otherx2prime,otherx3prime,x1,x2,x3,otherx1,otherx2,otherx3,mPoint},Graphics3D[#]&/@{mprimeLabel,x1primeLabel,x2primeLabel,x3primeLabel,otherx1primeLabel,otherx2primeLabel,otherx3primeLabel,x1Label,x2Label,x3Label,otherx1Label,otherx2Label,otherx3Label,mLabel},
(*coordinate rays*)
(*ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{0,0,t}]]],{t,0,Pi/4},PlotStyle->{Green,Dashed}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{0,t,0}]]],{t,0,Pi/4},PlotStyle->{Black,Dashed}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}]]],{t,0,Pi/6},PlotStyle->{Black,Dashed}],*)

(*the path sigma in all the domains*)
ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}]]],{t,0,Pi/6},PlotStyle->{Green,Dashed}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismA]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.a.a.a.a]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAAAAA]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismB]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAB]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.a.b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAAB]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.a.a.b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAAAB]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.a.a.a.b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAAAAB]}],ParametricPlot3D[Evaluate[stereographicSU2[su2exp[{t,0,0}].a.a.a.a.a.b]],{t,0,Pi/6},PlotStyle->{Green,Dashed,Opacity[prismAAAAAB]}],(*----------------------------------------------------descending manifolds----------------------------------------------------------------*)ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t]],{t,-Pi/4,0},PlotStyle->{Blue}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t]],{t,0,Pi/4},PlotStyle->{Green}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t]],{t,-Pi/4,0},PlotStyle->{Green}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t]],{t,0,Pi/4},PlotStyle->{Blue}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t]],{t,-Pi/4,0},PlotStyle->{Blue}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t]],{t,0,Pi/4},PlotStyle->{Green}]],

(*descending manifolds A*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismA]}]],

(*descending manifolds AAAAA*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAA]}]],

(*descending manifolds B*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismB]}]],

(*descending manifolds AB*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAB]}]],

(*descending manifolds AAB*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAB]}]],

(*descending manifolds AAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAB]}]],

(*descending manifolds AAAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAB]}]],

(*descending manifolds AAAAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX1prime[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Green,Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX2prime[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Blue,Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Blue,Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[descendingX3prime[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Green,Opacity[prismAAAAAB]}]],(*---------------------------------------------------------ascending manifolds-------------------------------------------------------------*)ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t]],{t,-Pi/4,0},PlotStyle->{Darker[Blue]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t]],{t,0,Pi/4},PlotStyle->{Darker[Green]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t]],{t,-Pi/4,0},PlotStyle->{Darker[Green]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t]],{t,0,Pi/4},PlotStyle->{Darker[Blue]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t]],{t,-Pi/4,0},PlotStyle->{Darker[Blue]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t]],{t,0,Pi/4},PlotStyle->{Darker[Green]}]],

(*ascending manifolds A*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismA]}]],

(*ascending manifolds AAAAA*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.a],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAA]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.a],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAA]}]],

(*ascending manifolds B*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismB]}]],

(*ascending manifolds AB*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAB]}]],

(*ascending manifolds AAB*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAB]}]],

(*ascending manifolds AAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAB]}]],

(*ascending manifolds AAAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAB]}]],

(*ascending manifolds AAAAAB*)
ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX1[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Green],Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX2[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Blue],Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.a.b],{t,-Pi/4,0},PlotStyle->{Darker[Blue],Opacity[prismAAAAAB]}]],ParametricPlot3D[Evaluate[stereographicSU2[ascendingX3[t].a.a.a.a.a.b],{t,0,Pi/4},PlotStyle->{Darker[Green],Opacity[prismAAAAAB]}]],

(*-----------------------------------------MORE POINTS--------------------------------------------------------------------------------------*)
(*plot deviation points*)
Graphics3D[{PointSize[Large],Opacity[Max[showFront11GammaZero,showBack12GammaZero]],pointDevPointFront11Back12}],Graphics3D[{PointSize[Large],Opacity[Max[showFront12GammaZero,showBack11GammaZero]],pointDevPointFront12Back11}],Graphics3D[{PointSize[Large],Opacity[Max[showFront22GammaZero,showBack23GammaZero]],pointDevPointFront22Back23}],Graphics3D[{PointSize[Large],Opacity[Max[showFront23GammaZero,showBack22GammaZero]],pointDevPointFront23Back22}],Graphics3D[{PointSize[Large],Opacity[Max[showFront33GammaZero,showBack31GammaZero]],pointDevPointFront33Back31}],Graphics3D[{PointSize[Large],Opacity[Max[showFront31GammaZero,showBack33GammaZero]],pointDevPointFront31Back33}],

(*plot interception points*)
Graphics3D[{PointSize[Large],Opacity[showFront11GammaZero],pointIntPointFront11}],Graphics3D[{PointSize[Large],Opacity[showBack11GammaZero],pointIntPointBack11}],Graphics3D[{PointSize[Large],Opacity[showFront12GammaZero],pointIntPointFront12}],Graphics3D[{PointSize[Large],Opacity[showBack12GammaZero],pointIntPointBack12}],Graphics3D[{PointSize[Large],Opacity[showFront22GammaZero],pointIntPointFront22}],Graphics3D[{PointSize[Large],Opacity[showBack22GammaZero],pointIntPointBack22}],Graphics3D[{PointSize[Large],Opacity[showFront23GammaZero],pointIntPointFront23}],Graphics3D[{PointSize[Large],Opacity[showBack23GammaZero],pointIntPointBack23}],Graphics3D[{PointSize[Large],Opacity[showFront33GammaZero],pointIntPointFront33}],Graphics3D[{PointSize[Large],Opacity[showBack33GammaZero],pointIntPointBack33}],Graphics3D[{PointSize[Large],Opacity[showFront31GammaZero],pointIntPointFront31}],Graphics3D[{PointSize[Large],Opacity[showBack31GammaZero],pointIntPointBack31}],

(*plot deviation points for return and return points*)
Graphics3D[{PointSize[Large],Opacity[showFront11GammaOne],#}]&/@{pointDevPointFront11GammaOne,pointReturnPointFront11},Graphics3D[{PointSize[Large],Opacity[showBack11GammaOne],#}]&/@{pointDevPointBack11GammaOne,pointReturnPointBack11},Graphics3D[{PointSize[Large],Opacity[showFront12GammaOne],#}]&/@{pointDevPointFront12GammaOne,pointReturnPointFront12},Graphics3D[{PointSize[Large],Opacity[showBack12GammaOne],#}]&/@{pointDevPointBack12GammaOne,pointReturnPointBack12},Graphics3D[{PointSize[Large],Opacity[showFront22GammaOne],#}]&/@{pointDevPointFront22GammaOne,pointReturnPointFront22},Graphics3D[{PointSize[Large],Opacity[showBack22GammaOne],#}]&/@{pointDevPointBack22GammaOne,pointReturnPointBack22},Graphics3D[{PointSize[Large],Opacity[showFront23GammaOne],#}]&/@{pointDevPointFront23GammaOne,pointReturnPointFront23},Graphics3D[{PointSize[Large],Opacity[showBack23GammaOne],#}]&/@{pointDevPointBack23GammaOne,pointReturnPointBack23},Graphics3D[{PointSize[Large],Opacity[showFront33GammaOne],#}]&/@{pointDevPointFront33GammaOne,pointReturnPointFront33},Graphics3D[{PointSize[Large],Opacity[showBack33GammaOne],#}]&/@{pointDevPointBack33GammaOne,pointReturnPointBack33},Graphics3D[{PointSize[Large],Opacity[showFront31GammaOne],#}]&/@{pointDevPointFront31GammaOne,pointReturnPointFront31},Graphics3D[{PointSize[Large],Opacity[showBack31GammaOne],#}]&/@{pointDevPointBack31GammaOne,pointReturnPointBack31},

(*----------------------------------------------plot SPLIT transition discs-----------------------------------------------*)ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront11GammaZero[t]]],{t,0,t0},PlotStyle->{Yellow,Opacity[showFront11GammaZero]},PlotRange->All],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront11GammaOne[t]]],{t,0,t1},PlotStyle->{Red,Opacity[showFront11GammaOne]},PlotRange->All],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack11GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack11GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack11GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showBack11GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront12GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showFront12GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront12GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showFront12GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack12GammaZero[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack12GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack12GammaOne[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Red,Opacity[showBack12GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront22GammaZero[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Yellow,Opacity[showFront22GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront22GammaOne[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Red,Opacity[showFront22GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack22GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack22GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack22GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showBack22GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront23GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showFront23GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront23GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showFront23GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack23GammaZero[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack23GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack23GammaOne[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Red,Opacity[showBack23GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront33GammaZero[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Yellow,Opacity[showFront33GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront33GammaOne[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Red,Opacity[showFront33GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack33GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack33GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack33GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showBack33GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront31GammaZero[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Yellow,Opacity[showFront31GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscFront31GammaOne[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Red,Opacity[showFront31GammaOne]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack31GammaZero[t]]],{t,0,t0},PlotRange->All,PlotStyle->{Yellow,Opacity[showBack31GammaZero]}],ParametricPlot3D[Evaluate[stereographicSU2[transitionDiscBack31GammaOne[t]]],{t,0,t1},PlotRange->All,PlotStyle->{Red,Opacity[showBack31GammaOne]}],
ImageSize->1200],
{showFront11GammaZero,{0,1},Checkbox},
{showFront11GammaOne,{0,1},Checkbox},
{showBack11GammaZero,{0,1},Checkbox},
{showBack11GammaOne,{0,1},Checkbox},
{showFront12GammaZero,{0,1},Checkbox},
{showFront12GammaOne,{0,1},Checkbox},
{showBack12GammaZero,{0,1},Checkbox},
{showBack12GammaOne,{0,1},Checkbox},
{showFront22GammaZero,{0,1},Checkbox},
{showFront22GammaOne,{0,1},Checkbox},
{showBack22GammaZero,{0,1},Checkbox},
{showBack22GammaOne,{0,1},Checkbox},
{showFront23GammaZero,{0,1},Checkbox},
{showFront23GammaOne,{0,1},Checkbox},
{showBack23GammaZero,{0,1},Checkbox},
{showBack23GammaOne,{0,1},Checkbox},
{showFront33GammaZero,{0,1},Checkbox},
{showFront33GammaOne,{0,1},Checkbox},
{showBack33GammaZero,{0,1},Checkbox},
{showBack33GammaOne,{0,1},Checkbox},
{showFront31GammaZero,{0,1},Checkbox},
{showFront31GammaOne,{0,1},Checkbox},
{showBack31GammaZero,{0,1},Checkbox},
{showBack31GammaOne,{0,1},Checkbox},
{prismA,{0,1},Checkbox},
{prismAAAAA,{0,1},Checkbox},
{prismB,{0,1},Checkbox},
{prismAB,{0,1},Checkbox},
{prismAAB,{0,1},Checkbox},
{prismAAAB,{0,1},Checkbox},
{prismAAAAB,{0,1},Checkbox},
{prismAAAAAB,{0,1},Checkbox},
ControlPlacement->Above]