From e8e328d6af59513e5b8880a2498ac0cf35b36182 Mon Sep 17 00:00:00 2001
From: ikpil <ikpil0@gmail.com>
Date: Sat, 6 May 2023 11:24:09 +0900
Subject: [PATCH] float[][] -> Vector3f[]

---
 .../RecastFilledVolumeRasterization.cs        | 34 +++++++++----------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs b/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs
index 2a54321..11d2534 100644
--- a/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs
+++ b/src/DotRecast.Recast/RecastFilledVolumeRasterization.cs
@@ -304,8 +304,8 @@ namespace DotRecast.Recast
 
             if (axis.y * axis.y > EPSILON)
             {
-                float[][] rectangleOnStartPlane = ArrayUtils.Of<float>(4, 3);
-                float[][] rectangleOnEndPlane = ArrayUtils.Of<float>(4, 3);
+                Vector3f[] rectangleOnStartPlane = new Vector3f[4];
+                Vector3f[] rectangleOnEndPlane = new Vector3f[4];
                 float ds = Dot(axis, start);
                 float de = Dot(axis, end);
                 for (int i = 0; i < 4; i++)
@@ -315,13 +315,13 @@ namespace DotRecast.Recast
                     Vector3f a = Vector3f.Of(x, rectangle[4], z);
                     float dotAxisA = Dot(axis, a);
                     float t = (ds - dotAxisA) / axis.y;
-                    rectangleOnStartPlane[i][0] = x;
-                    rectangleOnStartPlane[i][1] = rectangle[4] + t;
-                    rectangleOnStartPlane[i][2] = z;
+                    rectangleOnStartPlane[i].x = x;
+                    rectangleOnStartPlane[i].y = rectangle[4] + t;
+                    rectangleOnStartPlane[i].z = z;
                     t = (de - dotAxisA) / axis.y;
-                    rectangleOnEndPlane[i][0] = x;
-                    rectangleOnEndPlane[i][1] = rectangle[4] + t;
-                    rectangleOnEndPlane[i][2] = z;
+                    rectangleOnEndPlane[i].x = x;
+                    rectangleOnEndPlane[i].y = rectangle[4] + t;
+                    rectangleOnEndPlane[i].z = z;
                 }
 
                 for (int i = 0; i < 4; i++)
@@ -334,19 +334,19 @@ namespace DotRecast.Recast
             return s;
         }
 
-        private static float[] CylinderCapIntersection(Vector3f start, float radiusSqr, float[] s, int i, float[][] rectangleOnPlane)
+        private static float[] CylinderCapIntersection(Vector3f start, float radiusSqr, float[] s, int i, Vector3f[] rectangleOnPlane)
         {
             int j = (i + 1) % 4;
             // Ray against sphere intersection
             var m = Vector3f.Of(
-                rectangleOnPlane[i][0] - start.x,
-                rectangleOnPlane[i][1] - start.y,
-                rectangleOnPlane[i][2] - start.z
+                rectangleOnPlane[i].x - start.x,
+                rectangleOnPlane[i].y - start.y,
+                rectangleOnPlane[i].z - start.z
             );
             var d = Vector3f.Of(
-                rectangleOnPlane[j][0] - rectangleOnPlane[i][0],
-                rectangleOnPlane[j][1] - rectangleOnPlane[i][1],
-                rectangleOnPlane[j][2] - rectangleOnPlane[i][2]
+                rectangleOnPlane[j].x - rectangleOnPlane[i].x,
+                rectangleOnPlane[j].y - rectangleOnPlane[i].y,
+                rectangleOnPlane[j].z - rectangleOnPlane[i].z
             );
             float dl = Dot(d, d);
             float b = Dot(m, d) / dl;
@@ -361,8 +361,8 @@ namespace DotRecast.Recast
                 {
                     t1 = Math.Max(0, t1);
                     t2 = Math.Min(1, t2);
-                    float y1 = rectangleOnPlane[i][1] + t1 * d.y;
-                    float y2 = rectangleOnPlane[i][1] + t2 * d.y;
+                    float y1 = rectangleOnPlane[i].y + t1 * d.y;
+                    float y2 = rectangleOnPlane[i].y + t2 * d.y;
                     float[] y = { Math.Min(y1, y2), Math.Max(y1, y2) };
                     s = MergeIntersections(s, y);
                 }