ft: quad support

This commit is contained in:
djaidjai committed 2026-05-02 04:46:15 +02:00
1 parent 27bdce5882
commit f1ac226dbb
7 files changed
+193 -42

No files matched your search

+25 -3
View File
@@ -1,13 +1,13 @@
use core::f32::math::sqrt;
use is_close::default;
use rand::RngExt;
use serde::Deserialize;
use serde::{Deserialize, Serialize, Serializer};
use std::{
fmt::Display,
ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub, SubAssign},
};
#[derive(Copy, Clone, Debug, Deserialize)]
#[derive(Copy, Clone, Debug)]
pub struct Vec3 {
x: f32,
y: f32,
@@ -156,6 +156,29 @@ impl Vec3 {
}
}
impl Serialize for Vec3 {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
([self.x, self.y, self.z] as [f32; 3]).serialize(serializer)
}
}
impl<'de> Deserialize<'de> for Vec3 {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let arr = <[f32; 3]>::deserialize(deserializer)?;
Ok(Self {
x: arr[0],
y: arr[1],
z: arr[2],
})
}
}
impl Default for Vec3 {
fn default() -> Self {
Self {
@@ -222,7 +245,6 @@ impl Add<f32> for &Vec3 {
}
}
impl Add<f32> for Vec3 {
type Output = Self;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.