retrofire-core 0.4.0-pre4

Core functionality of the retrofire project.
Documentation
```
                                                    _______
                       ____                       /´  ____/\
      __ ______ _____ /   /\_ _ ______ _____ ____/   /_/___/\ __ _____ ______
   ==/  ´ ____/ __   \   ____/ ´ ____/  __  ` __    ___,  /==/  ´  ___/ __   \
  ==/   /´=/   ______/  /==/   /´=/   /==/   /=/   /=/   /==/   /´=/   ______/\
 ==/   /==/   /____/   /__/   /==/   /__/   /=/   /=/   /__/   /==/   /______\/
==/___/ ==\_______/\______/__/ ==\________,´_/   /==\______/__/ ==\________/\
==\___\/ ==\______\/\_____\__\/ ==\______/_____,´ /==\_____\___\/==\_______\/
                                         \_____\,´
```

# Retrofire-core

Core functionality of the [`retrofire`][1] project.

Includes a math library with strongly typed points, vectors, matrices,
colors, and angles; basic geometry primitives; a software 3D renderer with
customizable shaders; with more to come.

[1]: https://crates.io/crates/retrofire

## Crate features

* `std`:
  Makes available items requiring I/O, timekeeping, or any floating-point
  functions not included in `core`. In particular this means trigonometric
  and transcendental functions. Enabled by default. If this feature is
  disabled, the crate only depends on `alloc`.

* `libm`:
  Provides software implementations of floating-point functions via the
  [`libm`]https://crates.io/crates/libm crate.

* `mm`:
  Provides fast approximate implementations of floating-point functions
  via the [`micromath`]https://crates.io/crates/micromath crate.

One of the above features must be enabled in order to enable APIs using
trigonometric or transcendental functions.

## License

Copyright 2020-2025 Johannes Dahlström.

Retrofire is licensed under either of:

* Apache License, Version 2.0
  (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

* MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option. Unless you explicitly state otherwise, any contribution
intentionally submitted for inclusion in the work by you, as defined in
the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.