// inverse vp view transform. For ray casting... only one view // inverse for now. Need better design if more are needed. func ivp(at *lin.T, xrot, scr *lin.Q, vm *lin.M4) *lin.M4 { rot := scr.Inv(at.Rot) vm.SetQ(rot) return vm.TranslateMT(at.Loc.X, at.Loc.Y, at.Loc.Z) }