1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
easy_impl! {
    Vec2 cgmath::Vector2<f32> { x, y },
    Vec3 cgmath::Vector3<f32> { x, y, z },
    Vec4 cgmath::Vector4<f32> { x, y, z, w },

    Vec2 cgmath::Point2<f32> { x, y },
    Vec3 cgmath::Point3<f32> { x, y, z },

    IVec2 cgmath::Vector2<i32> { x, y },
    IVec3 cgmath::Vector3<i32> { x, y, z },
    IVec4 cgmath::Vector4<i32> { x, y, z, w },

    IVec2 cgmath::Point2<i32> { x, y },
    IVec3 cgmath::Point3<i32> { x, y, z },

    UVec2 cgmath::Vector2<u32> { x, y },
    UVec3 cgmath::Vector3<u32> { x, y, z },
    UVec4 cgmath::Vector4<u32> { x, y, z, w },

    UVec2 cgmath::Point2<u32> { x, y },
    UVec3 cgmath::Point3<u32> { x, y, z },

    BVec2 cgmath::Vector2<bool> { x, y },
    BVec3 cgmath::Vector3<bool> { x, y, z },
    BVec4 cgmath::Vector4<bool> { x, y, z, w },

    BVec2 cgmath::Point2<bool> { x, y },
    BVec3 cgmath::Point3<bool> { x, y, z },

    DVec2 cgmath::Vector2<f64> { x, y },
    DVec3 cgmath::Vector3<f64> { x, y, z },
    DVec4 cgmath::Vector4<f64> { x, y, z, w },

    DVec2 cgmath::Point2<f64> { x, y },
    DVec3 cgmath::Point3<f64> { x, y, z },

    Mat2 cgmath::Matrix2<f32> { x, y },
    Mat3 cgmath::Matrix3<f32> { x, y, z },
    Mat4 cgmath::Matrix4<f32> { x, y, z, w },

    DMat2 cgmath::Matrix2<f64> { x, y },
    DMat3 cgmath::Matrix3<f64> { x, y, z },
    DMat4 cgmath::Matrix4<f64> { x, y, z, w },
}