use myko::prelude::*;
use myko_macros::myko_item;
/// Durable Home camera configuration for one Pixel Streaming stream.
///
/// This is intentionally separate from the operator's global control preferences:
/// Home is part of a stream's authored camera configuration and must not leak from
/// one previs instance to another. Updating it changes only the saved reset target;
/// it never moves the live camera until the operator explicitly invokes Home.
#[myko_item]
pub struct CameraHome {
pub stream_id: String,
pub location_x: f32,
pub location_y: f32,
pub location_z: f32,
pub rotation_pitch: f32,
pub rotation_yaw: f32,
pub rotation_roll: f32,
pub focal_length: f32,
}
impl CameraHome {
pub fn row_id(stream_id: &str) -> CameraHomeId {
stream_id.to_owned().into()
}
}