ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

Commit: 5d164d1d6e3ac595ac069acb31fbbef28fa97ae1
Parent: ba63744242e8ca671c4a91c5bc9b9c21f24b6931
Author: Randy Palamar
Date:   Thu, 12 Mar 2026 11:12:44 -0600

math: don't use abs() on transform extents

if the user specifies a flipped transform then so be it. If we use
abs() then the result will flip if they adjust the UI afterwords
which is not expected.

Diffstat:
Mmath.c | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/math.c b/math.c @@ -768,7 +768,7 @@ das_transform_1d(v3 p1, v3 p2) function m4 das_transform_2d_xz(v2 min_coordinate, v2 max_coordinate, f32 y_off) { - v2 extent = v2_abs(v2_sub(max_coordinate, min_coordinate)); + v2 extent = v2_sub(max_coordinate, min_coordinate); m4 result; result.c[0] = (v4){{extent.x, 0.0f, 0.0f, 0.0f}}; @@ -781,7 +781,7 @@ das_transform_2d_xz(v2 min_coordinate, v2 max_coordinate, f32 y_off) function m4 das_transform_2d_yz(v2 min_coordinate, v2 max_coordinate, f32 x_off) { - v2 extent = v2_abs(v2_sub(max_coordinate, min_coordinate)); + v2 extent = v2_sub(max_coordinate, min_coordinate); m4 result; result.c[0] = (v4){{0.0f, extent.x, 0.0f, 0.0f}}; @@ -794,7 +794,7 @@ das_transform_2d_yz(v2 min_coordinate, v2 max_coordinate, f32 x_off) function m4 das_transform_2d_xy(v2 min_coordinate, v2 max_coordinate, f32 z_off) { - v2 extent = v2_abs(v2_sub(max_coordinate, min_coordinate)); + v2 extent = v2_sub(max_coordinate, min_coordinate); m4 result; result.c[0] = (v4){{extent.x, 0.0f, 0.0f, 0.0f}}; @@ -807,8 +807,12 @@ das_transform_2d_xy(v2 min_coordinate, v2 max_coordinate, f32 z_off) function m4 das_transform_3d(v3 min_coordinate, v3 max_coordinate) { - v3 extent = v3_abs(v3_sub(max_coordinate, min_coordinate)); - m4 result = m4_mul(m4_translation(min_coordinate), m4_scale(extent)); + v3 extent = v3_sub(max_coordinate, min_coordinate); + m4 result; + result.c[0] = (v4){{extent.x, 0.0f, 0.0f, 0.0f}}; + result.c[1] = (v4){{0.0f, extent.y, 0.0f, 0.0f}}; + result.c[2] = (v4){{0.0f, 0.0f, extent.z, 0.0f}}; + result.c[3] = (v4){{min_coordinate.x, min_coordinate.y, min_coordinate.z, 1.0f}}; return result; }