From: Lizzy Fleckenstein Date: Sun, 26 Feb 2023 21:30:48 +0000 (+0100) Subject: Support cgmath and collision X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=ab7c3c2d7ce52d96dba6e13e852ef4dfd4f473ce;p=mt_ser.git Support cgmath and collision --- diff --git a/Cargo.toml b/Cargo.toml index 56363d9..0e54d56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,8 @@ edition = "2021" [dependencies] byteorder = "1.4.3" +cgmath = "0.17.0" +collision = "0.20.1" enumset = { git = "https://github.com/Lymia/enumset" } flate2 = { version = "1.0.25", features = ["zlib"], default-features = false } mt_ser_derive = { path = "derive" } diff --git a/src/lib.rs b/src/lib.rs index 7cce3b6..ef72615 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,6 +8,8 @@ pub use paste; pub use zstd; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; +use cgmath::{Deg, Euler, Point1, Point2, Point3, Rad, Vector1, Vector2, Vector3, Vector4}; +use collision::{Aabb2, Aabb3}; use enumset::{EnumSet, EnumSetTypeWithRepr}; use paste::paste as paste_macro; use std::{ @@ -614,3 +616,96 @@ struct RemoteRangeTo { struct RemoteRangeToInclusive { end: T, } + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Vector1")] +#[allow(unused)] +struct RemoteVector1 { + x: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Vector2")] +#[allow(unused)] +struct RemoteVector2 { + x: T, + y: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Vector3")] +#[allow(unused)] +struct RemoteVector3 { + x: T, + y: T, + z: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Vector4")] +#[allow(unused)] +struct RemoteVector4 { + x: T, + y: T, + z: T, + w: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Point1")] +#[allow(unused)] +struct RemotePoint1 { + x: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Point2")] +#[allow(unused)] +struct RemotePoint2 { + x: T, + y: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Point3")] +#[allow(unused)] +struct RemotePoint3 { + x: T, + y: T, + z: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Deg")] +#[allow(unused)] +struct RemoteDeg(T); + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Rad")] +#[allow(unused)] +struct RemoteRad(T); + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Euler")] +#[allow(unused)] +struct RemoteEuler { + x: T, + y: T, + z: T, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Aabb2")] +#[allow(unused)] +struct RemoteAabb2 { + min: Point2, + max: Point2, +} + +#[derive(MtSerialize, MtDeserialize)] +#[mt(typename = "Aabb3")] +#[allow(unused)] +struct RemoteAabb3 { + min: Point3, + max: Point3, +}