Beispiel #1
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)
}
Beispiel #2
0
// vo view transform implementation.
func vo(v *view, vm *lin.M4) *lin.M4 {
	return vm.Set(lin.M4I).ScaleMS(1, 1, 0).TranslateMT(5, 5, 0)
}
Beispiel #3
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)
}
Beispiel #4
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)
}