func (a *Box) UpdateWorld(prg *simplex.Program) { prg.For(&a.l, &a.r, &a.b, &a.t, &a.z) a.world.Identity() a.world.Translate(&a.world, a.l.Val, a.b.Val, 0) a.world.Scale(&a.world, a.r.Val-a.l.Val, a.t.Val-a.b.Val, 1) a.world[2][3] = a.z.Val }
func NewBox(prg *simplex.Program) (a Box) { a.l, a.r, a.b, a.t, a.z = prg.Var(1), prg.Var(1), prg.Var(1), prg.Var(1), prg.Var(1) return }