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.

59 lines
1.3KB

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