Esempio n. 1
0
// vf view transform implementation.
func vf(v *view, vm *lin.M4) *lin.M4 {
	rot := v.q0.SetAa(1, 0, 0, lin.Rad(-v.up))
	rot.Mult(rot, v.dir)
	return vm.SetQ(rot).TranslateTM(-v.loc.X, -v.loc.Y, -v.loc.Z)
}
Esempio n. 2
0
// xz_xy view transform implementation.
func xz_xy(v *view, vm *lin.M4) *lin.M4 {
	rot := v.q0.SetAa(1, 0, 0, -lin.Rad(90))
	return vm.SetQ(rot).ScaleMS(1, 1, 0).TranslateTM(-v.loc.X, -v.loc.Y, -v.loc.Z)
}
Esempio n. 3
0
// vp view transform implementation.
func vp(v *view, vm *lin.M4) *lin.M4 {
	vm.SetQ(v.dir)
	return vm.TranslateTM(-v.loc.X, -v.loc.Y, -v.loc.Z)
}