//! Earth-Centered Earth-Fixed (ECEF) coordinate frame.
//!
//! Rotates with the Earth.  The conversion from ECI to ECEF applies
//! a rotation by the Greenwich Mean Sidereal Time angle.

use crate::coordinate::vec3::Vec3;

/// Witness type for the ECEF frame.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Ecef;

/// Position in ECEF coordinates (km).
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct EcefPosition(Vec3);

impl EcefPosition {
    #[must_use]
    pub fn new(v: Vec3) -> Self {
        Self(v)
    }

    #[must_use]
    pub fn vec3(self) -> Vec3 {
        self.0
    }
}
