affn
StableAffine transforms with compile-time tracking of reference frames.
2 stars
0 forks
Rust
AGPL-3.0
Updated 2 weeks ago
Why it exists
affn exists to make coordinate transforms harder to misuse. It carries frame information in types so mixed-frame bugs show up at compile time instead of later.
Key Features
- SIMD-optimized operations
- Const-friendly APIs
- Serde support
- No-std compatible
Getting Started
# Add to your Cargo.toml
[dependencies]
affn = "0.7.3"
# Transform some points
use affn::{Point2, Transform2};
let transform = Transform2::rotate(45.0_f32.to_radians())
.then_translate(10.0, 5.0);
let point = Point2::new(1.0, 0.0);
let transformed = transform.apply(point); Contributing
We welcome contributions! Here's how you can help:
- 1 Fork the repository and create your branch from main
- 2 Make your changes and add tests if applicable
- 3 Ensure all tests pass with cargo test
- 4 Submit a pull request with a clear description
License
This project is licensed under the AGPL-3.0 license. See the LICENSE file for details.
Quick Links
Tags
math graphics geometry rust