use vec2d::{Rotation, Vector, Point, Transform};
pub const TAU: f32 = 6.2831853;
pub const POINT_ORIGIN: Point = Point { x: 0.0, y: 0.0 };
pub const VEC_ONE: Vector = Vector { x: 1.0, y: 1.0 };
pub const VEC_ZERO: Vector = Vector { x: 0.0, y: 0.0 };
pub const VEC_UP: Vector = Vector { x: 0.0, y: 1.0 };
pub const VEC_DOWN: Vector = Vector { x: 0.0, y: -1.0 };
pub const VEC_LEFT: Vector = Vector { x: -1.0, y: 0.0 };
pub const VEC_RIGHT: Vector = Vector { x: 1.0, y: 0.0 };
const SQRT1_2: f32 = 0.70710678;
pub const VEC_UP_LEFT : Vector = Vector { x: -SQRT1_2, y: SQRT1_2 };
pub const VEC_UP_RIGHT : Vector = Vector { x: SQRT1_2, y: SQRT1_2 };
pub const VEC_DOWN_LEFT : Vector = Vector { x: SQRT1_2, y: -SQRT1_2 };
pub const VEC_DOWN_RIGHT: Vector = Vector { x: -SQRT1_2, y: -SQRT1_2 };
pub const ROTATION_0_DEG : Rotation = Rotation { cos: 1.0, sin: 0.0 };
pub const ROTATION_45_DEG : Rotation = Rotation { cos: SQRT1_2, sin: SQRT1_2 };
pub const ROTATION_90_DEG : Rotation = Rotation { cos: 0.0, sin: 1.0 };
pub const ROTATION_135_DEG: Rotation = Rotation { cos: -SQRT1_2, sin: SQRT1_2 };
pub const ROTATION_180_DEG: Rotation = Rotation { cos: -1.0, sin: 0.0 };
pub const ROTATION_225_DEG: Rotation = Rotation { cos: -SQRT1_2, sin: -SQRT1_2 };
pub const ROTATION_270_DEG: Rotation = Rotation { cos: 0.0, sin: -1.0 };
pub const ROTATION_315_DEG: Rotation = Rotation { cos: SQRT1_2, sin: -SQRT1_2 };
pub const TRANSFORM_IDENTITY: Transform = Transform {
vec: VEC_ZERO,
mat: [[1.0, 0.0],
[0.0, 1.0]],
};