func (rv *RoomViewer) modelviewToRightWall(mx, my float32) (x, y, dist float32) { mz := d2p(rv.right_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.right_wall_imat) if v.Y > float32(rv.room.Size.Dy) { v.Y = float32(rv.room.Size.Dy) } return v.X + float32(rv.room.Size.Dx), v.Y, mz }