use serde::{Deserialize, Serialize};
use crate::types::Float;
#[derive(Clone, Copy, Debug, Deserialize, PartialEq, PartialOrd, Serialize)]
pub struct MaskPosition {
pub point: MaskPositionPoint,
pub scale: Float,
pub x_shift: Float,
pub y_shift: Float,
}
impl MaskPosition {
pub fn new(point: MaskPositionPoint, scale: Float, x_shift: Float, y_shift: Float) -> Self {
Self {
point,
scale,
x_shift,
y_shift,
}
}
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum MaskPositionPoint {
Chin,
Eyes,
Forehead,
Mouth,
}