func (rv *RoomViewer) modelviewToLeftWall(mx, my float32) (x, y, dist float32) { mz := d2p(rv.left_wall_mat, mathgl.Vec3{mx, my, 0}, mathgl.Vec3{0, 0, 1}) v := mathgl.Vec4{X: mx, Y: my, Z: mz, W: 1} v.Transform(&rv.left_wall_imat) if v.X > float32(rv.room.Size.Dx) { v.X = float32(rv.room.Size.Dx) } return v.X, v.Y + float32(rv.room.Size.Dy), mz }