Skip to content

Merge dev#343

Merged
jdahlstrom merged 61 commits intomasterfrom
dev
Jan 2, 2026
Merged

Merge dev#343
jdahlstrom merged 61 commits intomasterfrom
dev

Conversation

@jdahlstrom
Copy link
Owner

No description provided.

Gives an alterative way to construct a Batch,
no good reason to keep them private.
Moves a point towards another point by an offset without overshooting.
These are needed often enough that adding them manually is a pain.
Implements airplane-like control of the pitch (elevation), yaw (bearing),
and roll (bank) angles of the camera. These angles are also known to as
Tait–Bryan angles.
* Color::clamp(): like in Vec and Point
* VecN::normalize_or_zero(): don't panic, return zero
* MatN::origin(): return the translation vector as a point
* Batch::append(): append the geometry of a batch to another
* Tri::centroid(): return the center point of a triangle
Supports linear, radial, and conical gradients with arbitrary color maps.
The core module started getting really crowded.
Added a glob re-export to keep all existing paths valid.
Add proper unit tests for linear and translate/origin
* Implement fallback sqrt, finally
* Fix negative divisor in fallback rem_euclid
* Fix negative zero in fallback floor and rem_euclid
* Add exp and log2 to mm feature
* Improve mm sqrt and inv_sqrt precision
* Improve test coverage and consistency
* Triangle filling
* Triangle clipping
* Ray-bbox/sphere intersection
Revamp tests to ensure that the methods are approximate inverses.
* No square roots needed
* Division only when needed
* Early exits in unlikely cases only pessimize
* Add some #[inline]s and #[inline(never)]s
* Use unit-tagged matrix and vector types internally
* Avoid formatting machinery when not needed
* Polymorphize Lathe::build_with
Can be used to reduce generic bloat and needless Vector wrapping.
Require that (a, b, c) passed to Plane::new is unit length.
Removes the need for normalizing on the fly and the abc() helper.
* Line-line
* Ray-line
* Ray-edge
* Edge-edge

These are all in the same "family", just different constraints.
This is a better match and allows making various Target impls generic over
any pixel format. The custom Framebuf type for SDL2 could be removed.
* Similar to SDL2 frontend
* Removes the unsafe block casting [u32] to [u8]
* Fixes component order from BGRA to RGBA, oops.
@jdahlstrom jdahlstrom merged commit 908ccc1 into master Jan 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant