From bc99451a0ab10dbba6ac1fe4cea020d68bbbad2b Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 28 三月 2025 18:51:18 +0800
Subject: [PATCH] 增加水池和水泵绘制

---
 Yw.WinFrmUI.Hydro.L3d.Core/02-helper/06-transform/OrthoTransformHelper.cs |   49 ++++++++++---------------------------------------
 1 files changed, 10 insertions(+), 39 deletions(-)

diff --git a/Yw.WinFrmUI.Hydro.L3d.Core/02-helper/06-transform/OrthoTransformHelper.cs b/Yw.WinFrmUI.Hydro.L3d.Core/02-helper/06-transform/OrthoTransformHelper.cs
index 5cb3282..778d321 100644
--- a/Yw.WinFrmUI.Hydro.L3d.Core/02-helper/06-transform/OrthoTransformHelper.cs
+++ b/Yw.WinFrmUI.Hydro.L3d.Core/02-helper/06-transform/OrthoTransformHelper.cs
@@ -88,15 +88,16 @@
         /// <param name="mouseX">灞忓箷鍧愭爣X锛堝乏涓婅涓哄師鐐癸級</param>
         /// <param name="mouseY">灞忓箷鍧愭爣Y锛堝乏涓婅涓哄師鐐癸級</param>
         /// <param name="depth">娣卞害鍊硷紙鑼冨洿[0, 1]锛屽彲閫夛級</param>
-        /// <param name="mview">瑙嗗浘鐭╅樀</param>
+        /// <param name="model">妯″瀷鐭╅樀</param>
+        /// <param name="view">瑙嗗浘鐭╅樀</param>
         /// <param name="proj">鎶曞奖鐭╅樀</param>
         /// <param name="viewportWidth">瑙嗗彛瀹藉害</param>
         /// <param name="viewportHeight">瑙嗗彛楂樺害</param>
         /// <returns></returns>
-        public static Vector3 ScreenToWorld(float mouseX, float mouseY, float depth, Matrix4 mview, Matrix4 proj, int viewportWidth, int viewportHeight)
+        public static Vector3 ScreenToWorld(float mouseX, float mouseY, float depth, Matrix4 model, Matrix4 view, Matrix4 proj, int viewportWidth, int viewportHeight)
         {
             var ndc = ScreenToNDC(mouseX, mouseY, depth, viewportWidth, viewportHeight);
-            var matrix = mview * proj;
+            var matrix = model * view * proj;
             var invert = matrix.Inverted();
             // 灏哊DC鍧愭爣杞崲涓轰笘鐣屽潗鏍�
             var wp = Vector4.TransformRow(new Vector4(ndc, 1f), invert);
@@ -108,17 +109,18 @@
         /// 涓栫晫鍧愭爣 To 灞忓箷鍧愭爣
         /// </summary>
         /// <param name="wp">涓栫晫鍧愭爣</param>
-        /// <param name="mview">瑙嗗浘鐭╅樀</param>
+        /// <param name="model">妯″瀷鐭╅樀</param>
+        /// <param name="view">瑙嗗浘鐭╅樀</param>
         /// <param name="proj">鎶曞奖鐭╅樀</param>
         /// <param name="wiewportWidth">瑙嗗彛瀹藉害</param>
         /// <param name="viewportHeight">瑙嗗彛楂樺害</param>
         /// <returns></returns>
-        public static Vector2 WorldToScreen(Vector3 wp, Matrix4 mview, Matrix4 proj, int wiewportWidth, int viewportHeight)
+        public static Vector2 WorldToScreen(Vector3 wp, Matrix4 model, Matrix4 view, Matrix4 proj, int wiewportWidth, int viewportHeight)
         {
             // 杞崲涓洪綈娆″潗鏍�
             var wph = new Vector4(wp, 1.0f);
             //搴旂敤鐭╅樀
-            var mvp = mview * proj;
+            var mvp = model * view * proj;
             //瑁佸壀鍧愭爣
             var clip = Vector4.TransformRow(wph, mvp);
             //NDC
@@ -131,8 +133,6 @@
         /// </summary>
         /// <param name="mouseX">灞忓箷鍧愭爣X锛堝乏涓婅涓哄師鐐癸級</param>
         /// <param name="mouseY">灞忓箷鍧愭爣Y锛堝乏涓婅涓哄師鐐癸級</param>
-        /// <param name="depth">娣卞害鍊硷紙鑼冨洿[0, 1]锛屽彲閫夛級</param>
-        /// <param name="forward">瑙傚療鏂瑰悜</param>
         /// <param name="model">妯″瀷鐭╅樀</param>
         /// <param name="view">瑙嗗浘鐭╅樀</param>
         /// <param name="proj">鎶曞奖鐭╅樀</param>
@@ -142,8 +142,6 @@
             (
                 float mouseX,
                 float mouseY,
-                float depth,
-                Vector3 forward,
                 Matrix4 model,
                 Matrix4 view,
                 Matrix4 proj,
@@ -151,35 +149,8 @@
                 int viewportHeight
             )
         {
-            var mview = view * model;
-            var origins = ScreenToWorld(mouseX, mouseY, depth, mview, proj, viewportWidth, viewportHeight);
-            return new Ray3(origins, forward);
-        }
-
-        /// <summary>
-        /// 鍒涘缓灏勭嚎
-        /// </summary>
-        /// <param name="mouseX">灞忓箷鍧愭爣X锛堝乏涓婅涓哄師鐐癸級</param>
-        /// <param name="mouseY">灞忓箷鍧愭爣Y锛堝乏涓婅涓哄師鐐癸級</param>
-        /// <param name="model">妯″瀷鐭╅樀</param>
-        /// <param name="view">瑙嗗浘鐭╅樀</param>
-        /// <param name="proj">鎶曞奖鐭╅樀</param>
-        /// <param name="viewportWidth">瑙嗗彛瀹藉害</param>
-        /// <param name="viewportHeight">瑙嗗彛楂樺害</param>
-        public static Ray3 CreateRay2
-            (
-                float mouseX,
-                float mouseY,
-                Matrix4 model,
-                Matrix4 view,
-                Matrix4 proj,
-                int viewportWidth,
-                int viewportHeight
-            )
-        {
-            var mview = view * model;
-            var near = ScreenToWorld(mouseX, mouseY, 0f, mview, proj, viewportWidth, viewportHeight);
-            var far = ScreenToWorld(mouseX, mouseY, 1f, mview, proj, viewportWidth, viewportHeight);
+            var near = ScreenToWorld(mouseX, mouseY, 0f, model, view, proj, viewportWidth, viewportHeight);
+            var far = ScreenToWorld(mouseX, mouseY, 1f, model, view, proj, viewportWidth, viewportHeight);
             var direction = (far - near).Normalized();
             return new Ray3(near, direction);
         }

--
Gitblit v1.9.3