Source


(* Camera Point*)
    CB->If[MC,ArcTan[ty,tz-Rz],CB],
    ty->(F+5)*Cos[CB],
    tz->(F+5)*Sin[CB]+Rz,
    
    CA->If[MC,ArcTan[px-Rx,py-Ry],CA],
    px->F*Cos[CA]Cos[CB]+Rx,
    py->F*Sin[CA]Cos[CB]+Ry,
    
    CC->If[MC,ArcTan[rx-Rx,rz-Rz],CC],
    rx->F*Cos[CC]+Rx,
    rz->F*Sin[CC]+Rz,
    
    Tx->F*Cos[CA]Cos[CB],
    Ty->F*Sin[CA]Cos[CB],
    Tz->F*Sin[CB],
    
    Cx->Tx+Rx,
    Cy->Ty+Ry,
    Cz->Tz+Rz,

Clx→-W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Cly→-W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Clz→W Cos[CB]Sin[CC],

Crx→W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Cry→W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Crz→-W Cos[CB]Sin[CC],

Ctlx→H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC])-W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Ctly→H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC])-W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Ctlz→H Cos[CB]Cos[CC]+W Cos[CB]Sin[CC],

Ctx→H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC]),
Cty→H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC]),
Ctz→H Cos[CB]Cos[CC],

Ctrx→H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC])+W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Ctry→H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC])+W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Ctrz→H Cos[CB]Cos[CC]-W Cos[CB]Sin[CC],

Cblx→-H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC])-W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Cbly→-H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC])-W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Cblz→-H Cos[CB]Cos[CC]+W Cos[CB]Sin[CC],

Cbx→-H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC]),
Cby→-H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC]),
Cbz→-H Cos[CB]Cos[CC],

Cbrx→-H(-Cos[CA]Cos[CC]Sin[CB]+Sin[CA]Sin[CC])+W(Cos[CC]Sin[CA]+Cos[CA]Sin[CB]Sin[CC]),
Cbry→-H(-Cos[CC]Sin[CA]Sin[CB]-Cos[CA]Sin[CC])+W(-Cos[CA]Cos[CC]+Sin[CA]Sin[CB]Sin[CC]),
Cbrz→-H Cos[CB]Cos[CC]-W Cos[CB]Sin[CC],