From c4543b9443e96d848260ef00254d2d3c0fa6a9d2 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 7 Aug 2026 20:02:24 +0100 Subject: [PATCH 1/3] Add canonical min-max rectangle --- src/CultMath/CultMath.csproj | 2 +- src/CultMath/rect.cs | 59 ++++++++++++++++++++++++ src/CultMath/rect.cs.meta | 2 + tests/CultMath.Tests/MathTests.cs | 35 ++++++++++++++ unity/org.gamecult.cultmath/package.json | 2 +- 5 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 src/CultMath/rect.cs create mode 100644 src/CultMath/rect.cs.meta diff --git a/src/CultMath/CultMath.csproj b/src/CultMath/CultMath.csproj index 73b3fd5..dfa5475 100644 --- a/src/CultMath/CultMath.csproj +++ b/src/CultMath/CultMath.csproj @@ -8,7 +8,7 @@ CultMath CultMath CultMath - 0.1.0 + 0.1.1 Clean-room C# math shaped for HLSL-style renderer code. GameCult https://github.com/GameCult/CultMath diff --git a/src/CultMath/rect.cs b/src/CultMath/rect.cs new file mode 100644 index 0000000..51e05c1 --- /dev/null +++ b/src/CultMath/rect.cs @@ -0,0 +1,59 @@ +namespace CultMath; + +/// +/// Axis-aligned 2D bounds stored canonically as normalized minimum and maximum +/// corners. Point containment and intersection include the boundary. +/// +public readonly record struct rect +{ + public rect(float minX, float minY, float maxX, float maxY) + : this(new float2(minX, minY), new float2(maxX, maxY)) + { + } + + public rect(float2 min, float2 max) + { + this.min = new float2(MathF.Min(min.x, max.x), MathF.Min(min.y, max.y)); + this.max = new float2(MathF.Max(min.x, max.x), MathF.Max(min.y, max.y)); + } + + public float2 min { get; } + public float2 max { get; } + + public float width => max.x - min.x; + public float height => max.y - min.y; + public float2 size => max - min; + public float2 center => (min + max) * 0.5f; + public float area => width * height; + public bool isEmpty => width == 0.0f || height == 0.0f; + + public bool Contains(float2 point) => + point.x >= min.x && point.x <= max.x && + point.y >= min.y && point.y <= max.y; + + public bool Contains(rect other) => + other.min.x >= min.x && other.max.x <= max.x && + other.min.y >= min.y && other.max.y <= max.y; + + public bool Intersects(rect other) => + min.x <= other.max.x && max.x >= other.min.x && + min.y <= other.max.y && max.y >= other.min.y; + + public rect Intersection(rect other) + { + if (!Intersects(other)) + return new rect(0.0f, 0.0f, 0.0f, 0.0f); + + return new rect( + MathF.Max(min.x, other.min.x), + MathF.Max(min.y, other.min.y), + MathF.Min(max.x, other.max.x), + MathF.Min(max.y, other.max.y)); + } + + public rect Encapsulate(float2 point) => new( + MathF.Min(min.x, point.x), + MathF.Min(min.y, point.y), + MathF.Max(max.x, point.x), + MathF.Max(max.y, point.y)); +} diff --git a/src/CultMath/rect.cs.meta b/src/CultMath/rect.cs.meta new file mode 100644 index 0000000..0b04a5c --- /dev/null +++ b/src/CultMath/rect.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5aab0d8e1ca94d42b85bba780a7ee449 diff --git a/tests/CultMath.Tests/MathTests.cs b/tests/CultMath.Tests/MathTests.cs index ad26821..8d42a0c 100644 --- a/tests/CultMath.Tests/MathTests.cs +++ b/tests/CultMath.Tests/MathTests.cs @@ -199,6 +199,41 @@ public sealed class MathTests Assert.Equal(new float2(2.0f, 0.0f), closest); } + [Fact] + public void RectNormalizesAndDerivesFromMinMax() + { + var bounds = new rect(8.0f, 6.0f, 2.0f, -2.0f); + + Assert.Equal(new float2(2.0f, -2.0f), bounds.min); + Assert.Equal(new float2(8.0f, 6.0f), bounds.max); + Assert.Equal(new float2(6.0f, 8.0f), bounds.size); + Assert.Equal(new float2(5.0f, 2.0f), bounds.center); + Assert.Equal(48.0f, bounds.area); + } + + [Fact] + public void RectContainmentIncludesBoundary() + { + var bounds = new rect(-2.0f, -1.0f, 4.0f, 3.0f); + + Assert.True(bounds.Contains(new float2(-2.0f, -1.0f))); + Assert.True(bounds.Contains(new float2(4.0f, 3.0f))); + Assert.True(bounds.Contains(new rect(-1.0f, 0.0f, 1.0f, 2.0f))); + Assert.False(bounds.Contains(new float2(4.001f, 3.0f))); + } + + [Fact] + public void RectIntersectionTreatsTouchingEdgesAsContact() + { + var left = new rect(0.0f, 0.0f, 4.0f, 4.0f); + var touching = new rect(4.0f, 1.0f, 8.0f, 3.0f); + var separate = new rect(4.001f, 1.0f, 8.0f, 3.0f); + + Assert.True(left.Intersects(touching)); + Assert.Equal(0.0f, left.Intersection(touching).area); + Assert.False(left.Intersects(separate)); + } + [Fact] public void FirstOrderInterceptSolvesSimpleClosingTarget() { diff --git a/unity/org.gamecult.cultmath/package.json b/unity/org.gamecult.cultmath/package.json index e45d0a3..d7039df 100644 --- a/unity/org.gamecult.cultmath/package.json +++ b/unity/org.gamecult.cultmath/package.json @@ -1,7 +1,7 @@ { "name": "org.gamecult.cultmath", "displayName": "CultMath", - "version": "0.1.0", + "version": "0.1.1", "unity": "2021.3", "description": "Precompiled CultMath numeric primitives and matching HLSL semantics for GameCult Unity runtimes.", "license": "MPL-2.0", From fcdddda72f6aa33ae6eeff3bce6a2d3e26eb16f3 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 7 Aug 2026 20:37:37 +0100 Subject: [PATCH 2/3] Rebuild Unity package with rectangle API --- src/CultMath/CultMath.csproj | 2 +- .../Runtime/Plugins/CultMath.dll | Bin 44544 -> 47104 bytes .../Runtime/Plugins/CultMath.pdb | Bin 23420 -> 23936 bytes unity/org.gamecult.cultmath/package.json | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CultMath/CultMath.csproj b/src/CultMath/CultMath.csproj index dfa5475..4e0027d 100644 --- a/src/CultMath/CultMath.csproj +++ b/src/CultMath/CultMath.csproj @@ -8,7 +8,7 @@ CultMath CultMath CultMath - 0.1.1 + 0.1.2 Clean-room C# math shaped for HLSL-style renderer code. GameCult https://github.com/GameCult/CultMath diff --git a/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll b/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.dll index 91b51d8d33ed8fcbc53a66b07131e2442f17c464..379dad44e209aea24d0cd34f7cb28a1a490d2ae8 100644 GIT binary patch delta 17237 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 delta 14912 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 diff --git a/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb b/unity/org.gamecult.cultmath/Runtime/Plugins/CultMath.pdb index 711cf76c53ef3d56a5f07fa25acb9c8532c93e3d..223b4de88b508404e9dd23578205c7692bc9427e 100644 GIT binary patch delta 3993 zcmZwJ3piBi9|!RF%nW1P!jjx)3FCenv$@r}wWyZV7F+916sBd6KWhltwpfhTMysrm zT4^^^Nv%}N{x|*iqKjQ!bWxOwM`3Hb{l5ph&C|2<_?+MSecyB5^PV|4=lM}8{{&Ue zUn?>r#4L}H#QB7X7-+8$r6r}VODFhTwIGCrYWBejas%y+bo;#z0{u`!ED3QGAp0Z> zV~~CM?h!twor_x|{UT4R>4OQ2OA&_vLPQzpbU0QPb6lO zUDFdOVWJrVR9f?_R@9Tw4SjG8Mqv^Zt(Axx7=t<3LJ%y6Fo=W%NC6S#z-HJA<cIbvaj9r6XwEuwXFa#VM4$%NzFa~q51s8A! zZwRoV&o}##Br|jZI3#$wPnks6%!o&&B||Z62MN?bJ?w*T;V5)K7o4-9?~YiRoVQUW zH{mXf!4$jzmaQsL0WHu2E?9y+xPmA6LJ%y6Fo=W%NC6S#z-HJAtW!MAV}I-m>A!FlM18!!x`FbU6rX|GC@K@;YI30Qy~@WBIoAP_=eEhK^n3hY(I zWGfmKuoLQGKOBN~I1Oi^7y98Q+=Fp=3Y3E?F#>b2gGKNj1jA~GgmoZMJU;#&XCr_0My`|F-x%Y&-^hF9vKGec z+4V#`nqPROIjEE==}?k>2Es{=b!E
  • U; zNYLyK#mLTRyTTD1umzd^2vO+#8L|)Z-{aem>BZ9dD8{$X?!O+n4Y_PKTjLdi&JsMe z-^bW~3OAYVs6xkTbX4L5bl!m+g`9(Y47m=O{?PZZT`p@PAD7Er$S05+X7`Um{$6&+ zc#yeFN-qxUxGqUC%pv^Or}>WCx`^?3K%pe!WuQ(?Wozd3zV;)I9iOhq^Y)Py9_$Gb zvXfHf*EPr$cZ&6fMQ%n5qI&8yhwuE}$oF5Nqo^C+$LN{Uw|1hEs~MQ?zeyCImKvQL zn3^Q|=VY6;x&A|j?tN~x3*S@Et8E(2P(EZQNi6!|ewc~L*o#WNQFnGqv?%fQ0m0mm zj&^QS#MI=a$Qt&Zr+0~O;7zrqi9SPv+C7iETt}R?O7eNS;=`V$M#C?D-NGsG)eosE zT_5(o#fkD|BPE@A7l}Zh=JfNfHqu&KXw}5+{YO8}VAea`ZD{m1e>LE1G-3OoI<_%n$>>Xou~ndI zaN(-LkJyFLg-L~*B&M)z1jZb@`bQqu34Sznpg7Ws@+O3RBYmtF9^ z7j0XbQeeBYci-vjC;v#PzV?#x{km4#blsqiA9UfVtZcA>U#znI*08IaI7a*Y*pJ=O zSKqP7e^hfrllg!ZGL_FAxDr=BdfUJ7;9hdedy8bpA(q|L9!EvSVAVPc^N`TO>!s`7 zZMxYTrea<&>3wRYM-6}C!WCB3<(;2@v9aQ1!_aWq&=a2G;QBwNy!Ux6+GUZoGCVZq zdk+(7q!VlXk}JDk*ag^&AL^WZDE@7-+BCU`H<6ZEYNylN^Wak3S=H4$-JR8&bEF=v zMFo2c7lwo+A7A8HY%WTlI$3;6;V@6FNYUebNcNW6D-R!f1_(J{?y|5jcCgx+niFs9 zrBUL0#WuUvwldj$sG-@jEmkS<)eku>k0iO_2OsAK-ruqC=V0CD?cdn0*>(Fr_2O#l z=8eT0I=)POwzZ=yXo|UQm4NrN=*JGtCBdeio?e}5ob}qCo4mi8v)J>`-Tl7|oI0R+ z?@V}2-{P7ui=MW7V}I5dYkN)Io_zVrQ8bqDY@vShO%;RsGaHV_99Waa=!sD}yK$6F zsZgw}9Md>qY(`3aswmymJ;&4`(!tu)UBb0<<;C({`7SYTe7;M(n;>ohe}S{WF+Rc3 z(b<(B=N#t}>zEKNh<1x}mV9EDOS#GZvfFPscLgQ=kdkIlQZXgnMoDWa=>bamgRDJB zpZV6mjLC+UJyI6a4#Yp} zd-@=jk~Ljal^o_9NbZLD|LeubPDy;jy(mLTLAZ!Al1zoK)y7-K()>b>Ia$LXHuSpl RKQoaee7J|=O4w^e{|97??IHjG delta 3501 zcmZwJ2Ut_r0tfJO6EMRti=a3NG6G>Q5f>_3L7XTW?uQlv>`v(pKVA_qbYP})tIL`qPfPuIhyLW%DP4A|DwHBEq2eQMg9vX;0&C0 zph!QK@e;IRM`**K%Mqq`TAd=Tg`otT8i)iXnB=0x{a zH&ce5hNQQXjtxqhBLqSyM8RZ;2N6iS2SyM>GT(__Ob?9Ku|Y{w>gA(c1r=}v8sQvV zh8Adr$KA7qV3v;V*;wR*lMd6FMQB{G10i_9U1!xPlK1fl&|+(GUaEK>{g|2AQDD#%Vbe z!&=x38rTJU;UFA`Cb$UK;0`>5XYf0`flpxQ#v?rV2CTsroWKJH!EgwMu`m&0-FQlp zh{|k`K?Y=j3JRbUHb5oRKrQTt!*CMLLNnZiU*HkEfLHJiD0d!Vg9%tde{cpr7zN|p zm3V7VnE|sv2LFMjkPpSM4l1Aq_P_x+22F4YoVJmLl;Ap#~sJj??nl!6AngM)Aaeu8Fj^5PLs7z`sJ#f$#x8j(^j zoed~ym3rnisL*P`)!T^pcU`qzHWRi; zE>HD#7pM2|AQY1o!mlmb`qJ@r`^THN^95IAo1Px2obl0~O?rdQluq4|2HxmPeFdF}NVx-nnfW(nVP#Gch1BjPx3=eKsAT9?`~Jl&?Y zRl22b>fy#$X+^E4bVGc<+@_A-|F8NM`G&jO466fK=6|(?U5ib4F)byi>)}$t%+)so z=CY)+uh-SaSB@zkwL0Sc+$B=cvY^J$;4$l~_g{LVt~W4VH8E@?_qN0=B0Xf0A~{W# zlo}zED*m}yt_A=6liBK+LLZ+TPV9RHtMA$G?!=5aD$|C?^|&ht2)mxnnwO-Q^JPFZ z|J|+ocEc-bZ?qJ;B`3w+%qx~g8u`t6Xy8=!Jfxw2HAs==x-b(gT|s|(8v)J-lAlwW$}vH6ld53GNS-TF!7 zxZv5acH@Q_RKb%~8FgJ1?NwJtZoF!mv-dK72eoVBQ~G+D=Cv~4nyB7iDO-HAc!8B* zYl$o(ZiVeB>AUgoJY6pS##O|IYVtq6NxFBV<>-mg)&3D-t$m7p&%Jt9Slp%=w!CMg zd5uw~Qe<)EWkX@(L3xxxFW(>SLR&ah(P>u&Myojq^4B*@G@nl>)9*EXu^qWLpSa3x_T!#@%Bc!+k=6h!!COCzxc<5f+qjE zXPT0sftzP7oE$$pZV4Y7Q$XhAnltqL<6ExftIlM-&PZ%9qB@j|1TG2gQ}aelcipjgyJh(H zv9*(jd+e&-!JRIyjX6}4nbS5;9`IBv39OSOuewq^`)=R8U9Kk^U%iS~SB3tlvbvTx z$A13jypCVpBI8QkD;{NvwNX=Qa?dM|-~3SZbYAp~m!D07-t6(WDcfs(Y@eA>RpZjs zRBAQeQhXslJzBleJ=!TC$H~-RBFOBZxn$pil1GbPZ zcx(@QYjsCl$iL21-%}kPKb-2T&W~46{nYQ{6D;~;&&pPD97sHaxR7uL$u1b6PD!Yu LY}CBz3X1#>Qw59x diff --git a/unity/org.gamecult.cultmath/package.json b/unity/org.gamecult.cultmath/package.json index d7039df..80cedda 100644 --- a/unity/org.gamecult.cultmath/package.json +++ b/unity/org.gamecult.cultmath/package.json @@ -1,7 +1,7 @@ { "name": "org.gamecult.cultmath", "displayName": "CultMath", - "version": "0.1.1", + "version": "0.1.2", "unity": "2021.3", "description": "Precompiled CultMath numeric primitives and matching HLSL semantics for GameCult Unity runtimes.", "license": "MPL-2.0", From 1c007a528470b59ed03b8473cd59e7236b592ec9 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 26 Aug 2026 17:57:30 +0200 Subject: [PATCH 3/3] Point CultMath history at its CultLib home --- README.md | 10 +++++++--- src/CultMath/CultMath.csproj | 2 +- unity/org.gamecult.cultmath/README.md | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 02d4775..d5cc137 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# CultMath +# CultMath (archived) + +CultMath now lives in [`GameCult/CultLib`](https://github.com/GameCult/CultLib) +under `packages/cultmath`. This repository preserves pre-monorepo history and +release provenance; it is not the source or release authority. Clean-room math shaped for people who think in HLSL. @@ -84,7 +88,7 @@ CultMath's Unity 2021.3 surface is the tracked precompiled package at tree and does not require a consumer `csc.rsp` workaround. ```json -"org.gamecult.cultmath": "https://github.com/GameCult/CultMath.git?path=/unity/org.gamecult.cultmath" +"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath#cultmath-unity-v0.1.2" ``` The repository root is not a Unity package. Build the tracked package with @@ -102,7 +106,7 @@ CultMath keeps portable DXC outside git under `.tools/`: .\tools\compile-hlsl-spirv.ps1 ` -ShaderPath E:\Projects\Odin\crates\muninn-move-tracker\shaders\MoveSphereCandidate.comp.hlsl ` -OutputPath E:\Projects\Odin\crates\muninn-move-tracker\artifacts\shader\MoveSphereCandidate.comp.spv ` - -IncludePath E:\Projects\CultMath\shaders + -IncludePath E:\Projects\CultLib\packages\cultmath\shaders .\tools\compile-spirv-metal.ps1 ` -SpirvPath E:\Projects\Odin\crates\muninn-move-tracker\artifacts\shader\MoveSphereCandidate.comp.spv ` -OutputPath E:\Projects\Odin\crates\muninn-move-tracker\artifacts\shader\MoveSphereCandidate.comp.metal diff --git a/src/CultMath/CultMath.csproj b/src/CultMath/CultMath.csproj index 4e0027d..54dc54b 100644 --- a/src/CultMath/CultMath.csproj +++ b/src/CultMath/CultMath.csproj @@ -11,7 +11,7 @@ 0.1.2 Clean-room C# math shaped for HLSL-style renderer code. GameCult - https://github.com/GameCult/CultMath + https://github.com/GameCult/CultLib README.md $(NoWarn);CS8981 true diff --git a/unity/org.gamecult.cultmath/README.md b/unity/org.gamecult.cultmath/README.md index 223e16c..ad8af61 100644 --- a/unity/org.gamecult.cultmath/README.md +++ b/unity/org.gamecult.cultmath/README.md @@ -22,7 +22,7 @@ DLL/PDB and stable Unity metadata, and stages an inspectable package under Consume the repository package with: ```json -"org.gamecult.cultmath": "https://github.com/GameCult/CultMath.git?path=/unity/org.gamecult.cultmath" +"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath#cultmath-unity-v0.1.2" ``` Production consumers should pin that URL to a commit or release tag.