use crate::coordinate_systems::{Radians, Spherical};
use crate::core::hilbert::Orientation;
pub type OriginId = u8;
pub type Quat = [f64; 4];
#[derive(Debug, Clone, PartialEq)]
pub struct Origin {
pub id: OriginId,
pub axis: Spherical,
pub quat: Quat,
pub inverse_quat: Quat,
pub angle: Radians,
pub orientation: Vec<Orientation>,
pub first_quintant: usize,
}
#[derive(Debug, Clone, PartialEq)]
pub struct A5Cell {
pub origin_id: OriginId,
pub segment: usize,
pub s: u64,
pub resolution: i32,
}
impl A5Cell {
pub fn origin(&self) -> &Origin {
&crate::core::origin::get_origins()[self.origin_id as usize]
}
}