From 7fc62537d1940ca3e8e87bdcf4a325a3eb00362a Mon Sep 17 00:00:00 2001
From: tian <11429339@qq.com>
Date: Tue, 6 Jan 2026 09:53:38 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=AE=89=E5=85=A8=E9=98=B6=E6=AE=B5?=
=?UTF-8?q?=E7=9A=84=E5=BC=A7=E7=BA=BF=E6=AE=B5=E6=B8=B2=E6=9F=93=E4=B8=BA?=
=?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=A0=B7=E5=BC=8F=EF=BC=88=E7=BA=A2=E8=89=B2?=
=?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/Core/PathPointRenderPlugin.cs | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/Core/PathPointRenderPlugin.cs b/src/Core/PathPointRenderPlugin.cs
index 7786918..c3cba31 100644
--- a/src/Core/PathPointRenderPlugin.cs
+++ b/src/Core/PathPointRenderPlugin.cs
@@ -113,7 +113,12 @@ namespace NavisworksTransport
///
/// 切点样式(深红色)
///
- TangentPoint
+ TangentPoint,
+
+ ///
+ /// 安全警告样式(红色)
+ ///
+ SafetyWarning
}
///
@@ -1090,18 +1095,32 @@ namespace NavisworksTransport
else if (edge.SegmentType == PathSegmentType.Arc && edge.Trajectory != null)
{
// 圆弧段:检查Trajectory是否有效
+
+ // 检查是否发生安全截断
+ bool hasSafetyTruncation = edge.Trajectory.ActualRadius < edge.Trajectory.RequestedRadius;
+
+ // 如果发生安全截断,使用安全警告样式
+ Color arcLineColor = lineColor;
+ double arcLineOpacity = lineOpacity;
+ if (hasSafetyTruncation)
+ {
+ var warningStyle = GetRenderStyle(RenderStyleName.SafetyWarning);
+ arcLineColor = warningStyle.Color;
+ arcLineOpacity = warningStyle.Alpha;
+ }
+
var arcMarker = new LineMarker
{
StartPoint = edge.Trajectory.Ts,
EndPoint = edge.Trajectory.Te,
- Color = lineColor,
+ Color = arcLineColor,
Radius = GetLineRadius(),
SegmentType = PathSegmentType.Arc,
Trajectory = edge.Trajectory,
SampledPoints = edge.SampledPoints,
Height = heightInModelUnits, // 根据模式设置高度
Width = widthInModelUnits, // 根据模式设置宽度
- Opacity = lineOpacity // 根据模式设置透明度
+ Opacity = arcLineOpacity // 根据模式设置透明度
};
visualization.PathLineMarkers.Add(arcMarker);
@@ -1349,6 +1368,9 @@ namespace NavisworksTransport
case RenderStyleName.TangentPoint:
return new RenderStyle(Color.FromByteRGB(244, 67, 54), 0.8); // Material Red切点,20%透明
+ case RenderStyleName.SafetyWarning:
+ return new RenderStyle(Color.FromByteRGB(244, 67, 54), 0.85); // Material Red安全警告,15%透明
+
default:
return new RenderStyle(Color.White, 1.0); // 默认白色,完全不透明
}