11 releases (6 stable)

Uses old Rust 2015

2.1.1 Apr 23, 2020
2.0.1 Apr 22, 2020
1.0.2 Apr 5, 2020
1.0.0 Sep 29, 2018
0.1.3 Sep 25, 2018

#1689 in Math

MIT license

155KB
2.5K SLoC

vex

vex is yet another 3D math library for performing primarily vector and matrix operations.

Roadmap (Priority's a Wild Ride)

TODOs

  • Implement reusable code to reduce the growing amount of redundancy (traits, maybe?)
  • Check if using base-type values in function calls move their ownership prohibiting further use in their declared scope
  • Add a compiler flag for setting the coordinate system (left-handed vs right-handed)
  • Add compiler flag for setting the memory mapping matrices
  • Add generics to vector and matrix types
  • Use std::mem::swap<T>(...) in matrixX::transpose() functions
  • Add serialization support
  • Clean up documentation for more consistent use-cases
  • Add SIMD support
  • Implement quaternion support
  • Implement plane support
  • Implement rect support

DONE

  • Convert m[n] lookups with mXX() for memory mapping-agnostic
  • Rename vecX/VecX to vector/VectorX to remove collisions with std::vec and std::Vec
  • Rename matX/MatX to matrix/MatrixX to remove collisions with std::mat and std::Mat
  • Remove local MatX::identity() methods, and rename MatX::new() methods to MatX::identity()
  • Rename ::construct(...) methods to ::make(...)
  • Add inlining to functions

No runtime deps