An unofficial collection of APIs used in FreeJam games and mods
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.1KB

  1. use crate::techblox::{Parsable};
  2. use libfj_parsable_macro_derive::*;
  3. /// Unity-like floating-point vector for 3-dimensional space.
  4. #[derive(Clone, Copy, Parsable)]
  5. pub struct UnityFloat3 {
  6. /// x coordinate
  7. pub x: f32,
  8. /// y coordinate
  9. pub y: f32,
  10. /// z coordinate
  11. pub z: f32,
  12. }
  13. /// Unity-like floating-point vector for 4-dimensional space.
  14. #[derive(Clone, Copy, Parsable)]
  15. pub struct UnityFloat4 {
  16. /// x coordinate
  17. pub x: f32,
  18. /// y coordinate
  19. pub y: f32,
  20. /// z coordinate
  21. pub z: f32,
  22. /// w coordinate
  23. pub w: f32,
  24. }
  25. /// Unity-like floating-point vector matrix for 4-dimensional space.
  26. #[derive(Clone, Copy, Parsable)]
  27. pub struct UnityFloat4x4 {
  28. /// c0 row(?)
  29. pub c0: UnityFloat4,
  30. /// c1 row(?)
  31. pub c1: UnityFloat4,
  32. /// c2 row(?)
  33. pub c2: UnityFloat4,
  34. /// c3 row(?)
  35. pub c3: UnityFloat4,
  36. }
  37. /// Unity-like floating-point quaternion for rotation in 3-dimensional space.
  38. #[derive(Clone, Copy, Parsable)]
  39. pub struct UnityQuaternion {
  40. /// Rotational orientation
  41. pub value: UnityFloat4,
  42. }