rust/lib-hedgewars-engine/src/render/camera.rs
author alfadur
Fri, 22 Mar 2019 20:01:47 +0300
changeset 14709 12db7e435ea6
child 14710 19122a329774
permissions -rw-r--r--
move camera into engine
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14709
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     1
use integral_geometry::{Point, Rect, Size};
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     2
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     3
#[derive(Debug)]
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     4
pub struct Camera {
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     5
    pub position: Point,
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     6
    pub zoom: f32,
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     7
    size: Size
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     8
}
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
     9
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    10
impl Camera {
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    11
    pub fn new() -> Self {
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    12
        Self {position: Point::ZERO, zoom: 0.0, size: Size::new(1024, 768) }
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    13
    }
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    14
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    15
    pub fn viewport(&self) -> Rect {
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    16
        Rect::from_size(self.position, self.size)
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    17
    }
12db7e435ea6 move camera into engine
alfadur
parents:
diff changeset
    18
}