33 lines
No EOL
724 B
Rust
Executable file
33 lines
No EOL
724 B
Rust
Executable file
use edict::Component;
|
|
|
|
use crate::{math::{Angle, Transform}, render::camera::CameraProjectionMode};
|
|
|
|
#[derive(Clone, Component)]
|
|
pub struct CameraComponent {
|
|
pub transform: Transform,
|
|
pub fov: Angle,
|
|
pub mode: CameraProjectionMode,
|
|
}
|
|
|
|
impl Default for CameraComponent {
|
|
fn default() -> Self {
|
|
Self {
|
|
transform: Transform::default(),
|
|
fov: Angle::Degrees(45.0),
|
|
mode: CameraProjectionMode::Perspective,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl CameraComponent {
|
|
pub fn new_3d() -> Self {
|
|
Self::default()
|
|
}
|
|
|
|
pub fn new_2d() -> Self {
|
|
CameraComponent {
|
|
mode: CameraProjectionMode::Orthographic,
|
|
..Default::default()
|
|
}
|
|
}
|
|
} |