diff --git a/src/PathPlanning/ChannelBasedGridBuilder.cs b/src/PathPlanning/ChannelBasedGridBuilder.cs index 8c5d876..d31f6ef 100644 --- a/src/PathPlanning/ChannelBasedGridBuilder.cs +++ b/src/PathPlanning/ChannelBasedGridBuilder.cs @@ -188,7 +188,7 @@ namespace NavisworksTransport.PathPlanning double channelSpeedLimit = CategoryAttributeManager.GetSpeedLimit(channel); // 提取三角形几何 - var triangles = GeometryHelper.ExtractTriangles(channel); + var triangles = GeometryHelper.ExtractTriangles(new[] { channel }); if (triangles.Count == 0) { LogManager.Warning($"[通道网格构建器] 未能从 '{channel.DisplayName}' 提取到三角形"); diff --git a/src/PathPlanning/ChannelHeightDetector.cs b/src/PathPlanning/ChannelHeightDetector.cs index 4cc5c20..44a79b6 100644 --- a/src/PathPlanning/ChannelHeightDetector.cs +++ b/src/PathPlanning/ChannelHeightDetector.cs @@ -620,7 +620,7 @@ namespace NavisworksTransport.PathPlanning screenPoint.Y >= 0 && screenPoint.Y < activeView.Height) { // 使用PickItemFromPoint获取该屏幕位置的实际表面点 - var pickResult = activeView.PickItemFromPoint((int)screenPoint.X, (int)screenPoint.Y); + var pickResult = activeView.PickItemFromPoint(screenPoint.X, screenPoint.Y); if (pickResult != null && (pickResult.ModelItem.Equals(channel) || ModelItemAnalysisHelper.IsChildOf(pickResult.ModelItem, channel))) { LogManager.Info($"[射线投射] ✅ 成功检测到表面点: Z={pickResult.Point.Z:F2}"); @@ -653,9 +653,9 @@ namespace NavisworksTransport.PathPlanning try { LogManager.Info($"[COM几何射线] 开始从ModelItem提取三角形几何数据: {channel.DisplayName}"); - + // 使用COM API提取三角形几何数据 - var triangles = GeometryHelper.ExtractTriangles(channel); + var triangles = GeometryHelper.ExtractTriangles(new[] { channel }); if (triangles.Count == 0) { LogManager.Warning($"[COM几何射线] 未能从ModelItem提取到三角形数据: {channel.DisplayName}"); diff --git a/src/PathPlanning/MeshSDFTester.cs b/src/PathPlanning/MeshSDFTester.cs index eeb22cd..601b098 100644 --- a/src/PathPlanning/MeshSDFTester.cs +++ b/src/PathPlanning/MeshSDFTester.cs @@ -265,7 +265,7 @@ namespace NavisworksTransport.PathPlanning { // 步骤 1:提取三角形 LogManager.Info("[步骤 1/3] 提取三角形网格..."); - var triangles = GeometryHelper.ExtractTriangles(modelItem); + var triangles = GeometryHelper.ExtractTriangles(new[] { modelItem }); if (triangles.Count == 0) { diff --git a/src/Utils/NavisworksToDMesh3Converter.cs b/src/Utils/NavisworksToDMesh3Converter.cs index 4e3e770..cebb994 100644 --- a/src/Utils/NavisworksToDMesh3Converter.cs +++ b/src/Utils/NavisworksToDMesh3Converter.cs @@ -147,7 +147,7 @@ namespace NavisworksTransport LogManager.Info($"[DMesh3转换] 共 {itemCount} 个模型项,使用批量提取方式"); - var allTriangles = GeometryHelper.ExtractTrianglesBatch(itemsList); + var allTriangles = GeometryHelper.ExtractTriangles(itemsList); extractStopwatch.Stop(); LogManager.Info($"[DMesh3转换] 从 {itemCount} 个模型项共提取 {allTriangles.Count} 个三角形,耗时: {extractStopwatch.ElapsedMilliseconds} ms ({extractStopwatch.Elapsed.TotalSeconds:F2}秒)"); @@ -173,7 +173,7 @@ namespace NavisworksTransport try { - var triangles = GeometryHelper.ExtractTriangles(item); + var triangles = GeometryHelper.ExtractTriangles(new[] { item }); return Convert(triangles); } catch (Exception ex)