update Transform2D and switch matrix4x4 to matrix3x2
							parent
							
								
									d553c2e213
								
							
						
					
					
						commit
						bf7a97af20
					
				
							
								
								
									
										11
									
								
								Bonk/AABB.cs
								
								
								
								
							
							
						
						
									
										11
									
								
								Bonk/AABB.cs
								
								
								
								
							|  | @ -49,14 +49,13 @@ namespace MoonTools.Core.Bonk | ||||||
|             Max = max; |             Max = max; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private static Matrix4x4 AbsoluteMatrix(Matrix4x4 matrix) |         private static Matrix3x2 AbsoluteMatrix(Matrix3x2 matrix) | ||||||
|         { |         { | ||||||
|             return new Matrix4x4 |             return new Matrix3x2 | ||||||
|             ( |             ( | ||||||
|                 Math.Abs(matrix.M11), Math.Abs(matrix.M12), Math.Abs(matrix.M13), Math.Abs(matrix.M14), |                 Math.Abs(matrix.M11), Math.Abs(matrix.M12), | ||||||
|                 Math.Abs(matrix.M21), Math.Abs(matrix.M22), Math.Abs(matrix.M23), Math.Abs(matrix.M24), |                 Math.Abs(matrix.M21), Math.Abs(matrix.M22), | ||||||
|                 Math.Abs(matrix.M31), Math.Abs(matrix.M32), Math.Abs(matrix.M33), Math.Abs(matrix.M34), |                 Math.Abs(matrix.M31), Math.Abs(matrix.M32) | ||||||
|                 Math.Abs(matrix.M41), Math.Abs(matrix.M42), Math.Abs(matrix.M43), Math.Abs(matrix.M44) |  | ||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -20,8 +20,8 @@ | ||||||
|       <PrivateAssets>all</PrivateAssets> |       <PrivateAssets>all</PrivateAssets> | ||||||
|       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> |       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||||
|     </PackageReference> |     </PackageReference> | ||||||
|     <PackageReference Include="MoonTools.Core.Structs" Version="2.1.0" /> |     <PackageReference Include="MoonTools.Core.Structs" Version="3.0.0" /> | ||||||
|     <PackageReference Include="System.Collections.Immutable" Version="1.6.0" /> |     <PackageReference Include="System.Collections.Immutable" Version="1.7.0" /> | ||||||
|     <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" /> |     <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" /> | ||||||
|     <PackageReference Include="Microsoft.Bcl.HashCode" Version="1.1.0" /> |     <PackageReference Include="Microsoft.Bcl.HashCode" Version="1.1.0" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|  |  | ||||||
|  | @ -59,13 +59,13 @@ namespace MoonTools.Core.Bonk | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         public IEnumerable<(T, IShape2D, Transform2D)> Retrieve(T id, IShape2D shape, Transform2D transform2D) |         public IEnumerable<(T, IShape2D, Transform2D)> Retrieve(T id, IShape2D shape, Transform2D transform2D) | ||||||
|         { |         { | ||||||
|             AABB box = shape.TransformedAABB(transform2D); |             var box = shape.TransformedAABB(transform2D); | ||||||
|             var minHash = Hash(box.Min); |             var minHash = Hash(box.Min); | ||||||
|             var maxHash = Hash(box.Max); |             var maxHash = Hash(box.Max); | ||||||
| 
 | 
 | ||||||
|             for (int i = minHash.Item1; i <= maxHash.Item1; i++) |             for (var i = minHash.Item1; i <= maxHash.Item1; i++) | ||||||
|             { |             { | ||||||
|                 for (int j = minHash.Item2; j <= maxHash.Item2; j++) |                 for (var j = minHash.Item2; j <= maxHash.Item2; j++) | ||||||
|                 { |                 { | ||||||
|                     var key = MakeLong(i, j); |                     var key = MakeLong(i, j); | ||||||
|                     if (hashDictionary.ContainsKey(key)) |                     if (hashDictionary.ContainsKey(key)) | ||||||
|  |  | ||||||
|  | @ -1,9 +1,11 @@ | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Numerics; | using System.Numerics; | ||||||
| using MoonTools.Core.Structs; | using MoonTools.Core.Structs; | ||||||
| 
 | 
 | ||||||
| internal unsafe struct SimplexVertexBuffer | namespace MoonTools.Core.Bonk | ||||||
| { | { | ||||||
|  |     internal unsafe struct SimplexVertexBuffer | ||||||
|  |     { | ||||||
|         private const int Size = 35; |         private const int Size = 35; | ||||||
| 
 | 
 | ||||||
|         public int Length { get; private set; } |         public int Length { get; private set; } | ||||||
|  | @ -44,4 +46,5 @@ internal unsafe struct SimplexVertexBuffer | ||||||
| 
 | 
 | ||||||
|         private fixed float _simplexXBuffer[Size]; |         private fixed float _simplexXBuffer[Size]; | ||||||
|         private fixed float _simplexYBuffer[Size]; |         private fixed float _simplexYBuffer[Size]; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -79,8 +79,8 @@ namespace MoonTools.Core.Bonk | ||||||
| 
 | 
 | ||||||
|         public Vector2 Support(Vector2 direction, Transform2D transform) |         public Vector2 Support(Vector2 direction, Transform2D transform) | ||||||
|         { |         { | ||||||
|             Matrix4x4 inverseTransform; |             Matrix3x2 inverseTransform; | ||||||
|             Matrix4x4.Invert(transform.TransformMatrix, out inverseTransform); |             Matrix3x2.Invert(transform.TransformMatrix, out inverseTransform); | ||||||
|             var inverseDirection = Vector2.TransformNormal(direction, inverseTransform); |             var inverseDirection = Vector2.TransformNormal(direction, inverseTransform); | ||||||
|             return Vector2.Transform(Support(inverseDirection), transform.TransformMatrix); |             return Vector2.Transform(Support(inverseDirection), transform.TransformMatrix); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -4,12 +4,12 @@ | ||||||
|     <IsPackable>false</IsPackable> |     <IsPackable>false</IsPackable> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <PackageReference Include="nunit" Version="3.11.0"/> |     <PackageReference Include="nunit" Version="3.12.0" /> | ||||||
|     <PackageReference Include="NUnit3TestAdapter" Version="3.12.0"/> |     <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> | ||||||
|     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0"/> |     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | ||||||
|     <PackageReference Include="FluentAssertions" Version="5.9.0"/> |     <PackageReference Include="FluentAssertions" Version="5.9.0" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ProjectReference Include="..\Bonk\Bonk.csproj"/> |     <ProjectReference Include="..\Bonk\Bonk.csproj" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
		Loading…
	
		Reference in New Issue