use serde::{Deserialize, Serialize};
use crate::Vector3;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[cfg_attr(feature = "schema", schemars(deny_unknown_fields))]
#[serde(rename_all = "camelCase")]
/// Description of a three-dimensional rotation.
/// All attributes are mandatory.
pub struct Quaternion {
#[serde(flatten)]
pub vector: Vector3,
pub w: f64,
}
impl Default for Quaternion {
fn default() -> Self {
Self {
vector: Default::default(),
w: 1.0,
}
}
}