From 48028183e597a845dd58b34c7b1d6cef45a9d50f Mon Sep 17 00:00:00 2001 From: brige Date: Sat, 21 Mar 2026 20:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=84=E4=BB=B6=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BF=BB=E8=AF=91=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/SceneComponent.h | 2 +- src/entities/TrajectoryTraceComponent.cpp | 18 + src/entities/TrajectoryTraceComponent.h | 1 + src/translations/Dyt_zh_CN.qm | Bin 50173 -> 51851 bytes src/translations/Dyt_zh_CN.ts | 525 ++++++++++++---------- 5 files changed, 314 insertions(+), 232 deletions(-) diff --git a/src/entities/SceneComponent.h b/src/entities/SceneComponent.h index ad120efc..4791c4d8 100644 --- a/src/entities/SceneComponent.h +++ b/src/entities/SceneComponent.h @@ -38,7 +38,7 @@ public: template T* GetComponent() { for (auto& componet : children_) { - if (componet->GetTypeName() == T::GetTypeName()) { + if (componet->GetSelfTypeName() == T::GetTypeName()) { return reinterpret_cast(componet); } } diff --git a/src/entities/TrajectoryTraceComponent.cpp b/src/entities/TrajectoryTraceComponent.cpp index 4b8195d0..487b81d5 100644 --- a/src/entities/TrajectoryTraceComponent.cpp +++ b/src/entities/TrajectoryTraceComponent.cpp @@ -91,6 +91,7 @@ void TrajectoryTraceComponent::Begin() { sampleAccum_ = 0.0; elapsedTime_ = 0.0; hasLastSample_ = false; + traceRestartPending_ = false; attachedToScene_ = false; ClearTrace(); } @@ -108,6 +109,14 @@ void TrajectoryTraceComponent::Update(double dt) { TrimExpiredPoints(); const osg::Vec3d currentPos = entity->GetTransform()->GetLocation(); + if (traceRestartPending_) { + lastSamplePos_ = currentPos; + hasLastSample_ = true; + sampleAccum_ = 0.0; + traceRestartPending_ = false; + return; + } + if (!hasLastSample_) { osg::Vec3d initialPos = currentPos; if (PathComponent* pathComponent = entity->GetComponent()) { @@ -279,9 +288,17 @@ double TrajectoryTraceComponent::GetDashScrollSpeed() const { void TrajectoryTraceComponent::ClearTrace() { InitializeGeometry(); + Entity* entity = GetEntity(); + if (nullptr != entity && nullptr != entity->GetTransform()) { + lastSamplePos_ = entity->GetTransform()->GetLocation(); + } + vertices_->clear(); renderVertices_->clear(); sampleTimes_.clear(); + hasLastSample_ = true; + sampleAccum_ = 0.0; + traceRestartPending_ = true; DirtyGeometry(); } @@ -457,6 +474,7 @@ void TrajectoryTraceComponent::DirtyGeometry() { RebuildRenderGeometry(); renderVertices_->dirty(); + geometry_->dirtyDisplayList(); geometry_->dirtyBound(); if (geode_.valid()) { geode_->dirtyBound(); diff --git a/src/entities/TrajectoryTraceComponent.h b/src/entities/TrajectoryTraceComponent.h index d7753acb..46b13b19 100644 --- a/src/entities/TrajectoryTraceComponent.h +++ b/src/entities/TrajectoryTraceComponent.h @@ -99,6 +99,7 @@ private: double elapsedTime_{0.0}; osg::Vec3d lastSamplePos_{0.0, 0.0, 0.0}; bool hasLastSample_{false}; + bool traceRestartPending_{false}; bool attachedToScene_{false}; std::deque sampleTimes_; }; diff --git a/src/translations/Dyt_zh_CN.qm b/src/translations/Dyt_zh_CN.qm index f021687ee43a7f3ff5713d282b679b5527c11a56..a0018d65e23ada599df4efd54cd83a3bb1c23f3d 100644 GIT binary patch delta 4662 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%0Dsnilrg5b;SQK<+qpy aeT{zPdaaG=EAI_$NakA#+I!lpO#cIc@r&^Q delta 3011 zcmXYzd0bOh7RP^i$;-M8U#HYlj&Xx4KnpXB?-kSeL1-cC0c}wZ)Is&WYE*zB%tD=iKu<%S~yW@@b*6 zYNX&gRP7mPuA2kkJ)rI?XG0lh<7Uq0hs4G7K8v$n!`bi`&c-gz9iGH!U`HhJLty^r zoH+z!lKnGh&I95`Aj<7Ihr|2>Aa&Chb`k#!q@5rhB_>o426}CM3`{ftl>wYp^edaa z{Q#$B1q)aB1XNU05+4JF=8OE)bh3{2D)qT?K$O z6k;ER-x~RXJ0TujMfsnB__YdVlnl{_&w%pppthYep%Q8<39;z`)CaEtsew>mQ~|pm zL9!h%D;JV2aJB)``eG8v5mM)JVkl>J5~NE-K+Y24Gh!vA@5naKC6aB9Ej@2WU@3GMqEISyR+`b1oG|2U#Mqj%L zMe7(a#uZHulPKCP&c?6UZIy@6k;)`7EV|yJP^&0~J&zUA3>vxOwF>9XL7?D6&dzBH ze^V$Bk*JvVOCd#nNAV}0kAVq2igdd}K*v`~)w+=PHD9so-f zB3djI<#S=dMG`je4bHLAIG(Kl#`rj z*4K9{=P!4rp-x~IC0Aj$$Zks>0j>7RhV3(f_5|gg2UL^n3(9UKjl%||vZvphmQcF# z%twAeXNmHB=ev~G12$DNofT=kh2jv_tyw5E-C&ZuP_PuTWpcESH34|(o~moyZXnsL z>Y`3T^4px{GdNpf*`RE62vMDx7DS7rLUs0aB@Nz>%&7J7-}!;+Rxquk#1pE!Pajgz z$8t7$aW;i$U-uJ;1#ESx(h zv3_l+SGA{@GM&~{_#rW447J$0Z#j24iJ2?YfD|X@Y3C`2iG@Anyy7!9$1Y4;zF%zY zTuU4CI%~Ca)uwcbmKu87KAH8?+v>aGnYB4UlZDyqjB=J*sk=k^^)QppL&$r`=IDIg z+|)s_&j6=pb%>2Fo$6`hNvKW7SS5X_eJ|_Q1xB}DRxk4Q0$y9h8T>?@nAAZ9)N|IF z)Tu|xX_fq2o$?dluiE3--7c{Ky>f@1HsG;|>DSBVI zNBv|%IxT1ei`VZFN(5$aFqy-o=V=$rmv)AbtAuM(=LPE4>{jW}BU1DA%hKVzw}6_z zNk@n6r%86^Y%7zFEp-CkpCz3xKLd1)l+M|P7^VAP%riIYGw)IQRj1<}h8%HsdeW+tilxFsEN+*4|X1*gSn7NUe?Og*Z zt27&b-3J7zHRX}Pz&j>QfWd#@W&!$DKb*^(mJVF3`=Bx?j$luA)VDPTnO5)D=tRj%`*FHBLVGg95`5_ojTV zhO*s!g0sb6KJPMxez1UD92V%`aalVo`VufJM?1o{dID3lW6#PYPNMdWmu}HWjM0V~ zzNc~A&rA-LZX>j-2VH0ZIdPUg)2?}+E~c87*;fu8Lgyv+tAnq@VeRSDvw`tR+OugQ zP`#Cz9DUus(cXHZqe_VC0@rI;1w!O;DjzZTlm6bbY~6o$A17lF*{k`bpvk#4^_HB_QJ&}3(Dww=<|$5V);MY?Up-n2Xu*&=5@^U)QfX!0s_1GkE)`&Q_#22%yY>U8&u z(kRSa-Qyq%P%%sQ`)!gV{Wrb*IGz4do#kYY^uxq_+A6vFc`Y<~3*z)~R}{di2K~A$ zx;!>~txxy!B|Au;nYWu_HtMq{+X`5&FP>`zOy$hi#nrq%icET(R?AuNl(ROIv+EOm zy{oP3U(=rmA~%)+{mtr?bmK|-@7xOLE(+(|*QbA6vV*2>DQD{wgC?9LD1F7Co4SQc z-@sXR#GorXM->||c(oKjiPTuu@8Tm^ud~}O9@^cL4WIVVFt=Q0_O9IyhwYceJOq~R zvtQmfiT21mcG1xU z6}z$HWtGih^R~M5CYLO9VK + + FontSettingDialog + + + + 字体设置 + + + + + 斜体 + + + + + + AaBb中文预览 + + + + + 下划线 + + + + + 删除线 + + + + + 应用 + + + + + 确定 + + + + + 重置 + + + + + 取消 + + + FrameTitleBar @@ -2266,22 +2316,22 @@ - + file manager 文件管理 - + simu manager 仿真管理 - + play manager 回放管理 - + system manager 系统管理 @@ -2317,117 +2367,127 @@ ModelTreeWidget - + Curves 曲线图表集 - + Surfaces 曲面图表集 - + Tables 表格图表集 - + Lights 信号灯图表集 - + Polars 极坐标图表集 - + Images 图像图表集 - + Delete File 删除 - + Add boke Entity - + Add lsjhqt Entity - + Add nimizi Entity - + Add tkdlj Entity - + Add jiaofan Entity - + Add satellite Entity - + Confirm 确认 - + Delete this file entry from workspace? 从工作区中删除? - + Prompt 提示 - + Delete failed 删除失败 - + Release Track 释放 - + Track 跟踪 - + Add Label Component 添加标签组件 - + Add Mesh Component 添加网格体组件 - + Add Path Component 添加路径组件 - + + Add Trajectory Trace Component + 添加轨迹组件 + + + + Clear Trajectory Trace + 清理轨迹 + + + Delete 删除 @@ -2858,12 +2918,12 @@ 后缀 - + ModelBase 模型 - + color base 颜色 @@ -2969,68 +3029,68 @@ Save Workspace 保存工作区间 - - - - Curve[%1] - - - Surface[%1] + Curve[%1] - Table[%1] + Surface[%1] - Light[%1] + Table[%1] - Polar[%1] + + Light[%1] - + Polar[%1] + + + + + Image[%1] - + Curve[%1] Name - + Curve[%1] Color - + Curve[%1] WaveStart - + Curve[%1] WaveStop - + Curve[%1] ReportX - + Curve[%1] ReportY @@ -3054,12 +3114,12 @@ QtBoolPropertyManager - + True - + False @@ -3083,22 +3143,22 @@ QtColorPropertyManager - + Red - + Green - + Blue - + Alpha @@ -3106,47 +3166,47 @@ QtConeWaveComponentManager - + ConeWaveComponent 锥波组件 - + Height 高度 - + Radius 半径 - + waveCount 波纹数量 - + waveSpeed 波纹速度 - + baseColor 基础颜色 - + waveColor 波纹颜色 - + ringBrightAlpha 亮环透明度 - + ringDarkAlpha 暗环透明度 @@ -3252,68 +3312,68 @@ QtCurveEntryPropertyManager - - + + Curve[%1] Name - - + + Curve[%1] Color - - + + Curve[%1] WaveStart - - + + Curve[%1] WaveStop - - + + Curve[%1] ReportX - - + + Curve[%1] ReportY - + Name - + ChartType - + Wave - + Report - + Curves - + Count @@ -3321,87 +3381,27 @@ QtDashedLineComponentManager - + DashedLineComponent 虚线组件 - + Start 起点 - + End 终点 - + Radius 半径 - - Color - 颜色 - - - - QtTrajectoryTraceComponentManager - - - TrajectoryTraceComponent - 尾迹组件 - - - - LineWidth - 线宽 - - - - SampleInterval - 采样间隔 - - - - MinMoveDistance - 最小移动距离 - - - - MaxPoints - 最大点数 - - - - TailDuration - 尾迹时长 - - - - Visible - 显示 - - - - Dashed - 虚线 - - - DashLength - 虚线段长度 - - - GapLength - 间隔长度 - - - DashScrollSpeed - 滚动速度 - - - + Color 颜色 @@ -3417,17 +3417,17 @@ QtEntityPropertyManager - + Name 名称 - + Visible 显示 - + Transform 变换 @@ -3448,37 +3448,37 @@ QtFontPropertyManager - + Family - + Point Size - + Bold - + Italic - + Underline - + Strikeout - + Kerning @@ -3486,22 +3486,22 @@ QtLocalePropertyManager - + <Invalid> - + %1, %2 - + Language - + Country @@ -3509,12 +3509,12 @@ QtMeshComponetManager - + MeshComponent 网格体组件 - + Mesh 网格体 @@ -3522,27 +3522,27 @@ QtModelBasePropertyManager - + Name 名称 - + Description 说明 - + Inflow 流入 - + InnerBottomElevation 内底标高 - + Visible 显示 @@ -3563,12 +3563,12 @@ QtPathComponentManager - + PathComponent 路径组件 - + Path 路径 @@ -3576,17 +3576,17 @@ QtPointFPropertyManager - + (%1, %2) - + X - + Y @@ -3594,17 +3594,17 @@ QtPointPropertyManager - + (%1, %2) - + X - + Y @@ -3622,12 +3622,12 @@ - + [%1, %2, %3] - + [%1, %2, %3] [%4, %5, %6] [%7, %8, %9] @@ -3635,27 +3635,27 @@ QtRectFPropertyManager - + [(%1, %2), %3 x %4] - + X - + Y - + Width - + Height @@ -3663,27 +3663,27 @@ QtRectPropertyManager - + [(%1, %2), %3 x %4] - + X - + Y - + Width - + Height @@ -3691,17 +3691,17 @@ QtSizeFPropertyManager - + %1 x %2 - + Width - + Height @@ -3709,33 +3709,33 @@ QtSizePolicyPropertyManager - + <Invalid> - + [%1, %2, %3, %4] - + Horizontal Policy - + Vertical Policy - + Horizontal Stretch - + Vertical Stretch @@ -3743,21 +3743,84 @@ QtSizePropertyManager - + %1 x %2 - + Width - + Height + + QtTrajectoryTraceComponentManager + + + TrajectoryTraceComponent + 尾迹组件 + + + + LineWidth + 线宽 + + + + SampleInterval + 采样间隔 + + + + MinMoveDistance + 最小移动距离 + + + + MaxPoints + 最大点数 + + + + TailDuration + 尾迹时长 + + + + Visible + 显示 + + + + Dashed + 虚线 + + + + DashLength + 虚线段长度 + + + + GapLength + 间隔长度 + + + + DashScrollSpeed + 滚动速度 + + + + Color + 颜色 + + QtTransfromEditWidget @@ -3769,17 +3832,17 @@ QtTransfromPropertyManager - + Location 位置 - + Rotation 旋转 - + Scale 缩放 @@ -3800,17 +3863,17 @@ QtVec3PropertyManager - + X - + Y - + Z @@ -3818,132 +3881,132 @@ QtWorkspacePropertyManager - + Name 名称 - + Description 说明 - + CommondPath 命令路径 - + HomeViewpoint 复位视点 - + Longitude 经度 - + Latitude 纬度 - + Altitude 高度 - + Heading 航向 - + Pitch 俯仰 - + Range 距离 - + Simulation Time 仿真时间 - + Simulation Start 开始 - + Simulation End 结束 - + Simulation Step 步长 - + Count 数目 - + Curve[%1] - + Surface[%1] - + Table[%1] - + Light[%1] - + Image[%1] - + Curves - + Surfaces - + Tables - + Lights - + Polars - + Images @@ -4036,12 +4099,12 @@ UI设置 - + question 提问 - + are you sure to exit 真的要退出吗?