From ed758bc55152e3b6ebc6db09c1983d5a7965a0b9 Mon Sep 17 00:00:00 2001 From: jiegeaiai Date: Sat, 11 Jan 2025 22:17:15 +0800 Subject: [PATCH] modify osg view widget --- src/entities/EntitiesManager.cpp | 8 +++-- src/translations/Dyt_zh_CN.ts | 8 ++--- src/viewer/QtOsgViewWidget.cpp | 55 ++++++++++---------------------- src/viewer/QtOsgViewWidget.h | 2 +- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/src/entities/EntitiesManager.cpp b/src/entities/EntitiesManager.cpp index 11a56260..a2c47199 100644 --- a/src/entities/EntitiesManager.cpp +++ b/src/entities/EntitiesManager.cpp @@ -3,6 +3,7 @@ #include #include "workspace/WorkSpace.h" +#include "workspace/WorkSpaceManager.h" #include "common/SpdLogger.h" #include "entities/Entity.h" #include "entities/ComponentFactory.h" @@ -70,9 +71,10 @@ bool EntitiesManager::Parse(const tinyxml2::XMLElement* element, WorkSpace* work } Entity* EntitiesManager::Create(const QString& name) { - /* if (name == "Entity") { - return new Entity(this); - }*/ + if (name == "Entity") { + //WorkSpace* workspace = WorkSpaceManager::Get().GetCurrent(); + return new Entity(name); + } return nullptr; } diff --git a/src/translations/Dyt_zh_CN.ts b/src/translations/Dyt_zh_CN.ts index 0ceb91ed..70270304 100644 --- a/src/translations/Dyt_zh_CN.ts +++ b/src/translations/Dyt_zh_CN.ts @@ -1267,18 +1267,18 @@ QtOsgViewWidget - - + + warning 警告 - + default workspace failed 加载默认空间失败 - + open dyt file failed 打开空间文件失败 diff --git a/src/viewer/QtOsgViewWidget.cpp b/src/viewer/QtOsgViewWidget.cpp index e8516841..709306e8 100644 --- a/src/viewer/QtOsgViewWidget.cpp +++ b/src/viewer/QtOsgViewWidget.cpp @@ -204,12 +204,12 @@ void QtOsgViewWidget::OnComputeScale() { float x = 0.0f, y = 0.0f; osg::Vec3d world1, world2; if (!mapNode->getTerrain()->getWorldCoordsUnderMouse(view_->GetView(), x, y, world1)) { - emit signalScaleBarInfo(""); + emit signalScaleInfo(""); return; } x += devicePixelRatio_; if (!mapNode->getTerrain()->getWorldCoordsUnderMouse(view_->GetView(), x, y, world2)) { - emit signalScaleBarInfo(""); + emit signalScaleInfo(""); return; } @@ -253,33 +253,23 @@ void QtOsgViewWidget::OnComputeScale() { #if 0 TRACE("m: %g px: %g m/px: %g", meters, pixelWidth, scale); #endif - /* switch (scaleUnits_) { + switch (scaleUnits_) { case ScaleBarHandler::Delegate::Units::UNITS_NAUTICAL_MILES: { double nmi = meters / 1852.0; scale = nmi / devicePixelRatio_; nmi = normalizeScaleNauticalMiles(nmi); pixelWidth = nmi / scale; - if (_scaleLabel.valid()) { - _scaleLabel->setText(osgEarth::Stringify() - << nmi - << " nmi"); - } + emit signalScaleInfo(QString("%1 nmi").arg(nmi)); } break; case ScaleBarHandler::Delegate::Units::UNITS_US_SURVEY_FEET: { double feet = meters * 3937.0 / 1200.0; scale = feet / pixelWidth; feet = normalizeScaleFeet(feet); pixelWidth = feet / scale; - if (_scaleLabel.valid()) { - if (feet >= 5280) { - _scaleLabel->setText(osgEarth::Stringify() - << feet / 5280.0 - << " miUS"); - } else { - _scaleLabel->setText(osgEarth::Stringify() - << feet - << " ftUS"); - } + if (feet >= 5280) { + emit signalScaleInfo(QString("%1 miUS").arg(feet / 5280.0)); + } else { + emit signalScaleInfo(QString("%1 ftUS").arg(feet)); } } break; case ScaleBarHandler::Delegate::Units::UNITS_INTL_FEET: { @@ -287,36 +277,23 @@ void QtOsgViewWidget::OnComputeScale() { scale = feet / pixelWidth; feet = normalizeScaleFeet(feet); pixelWidth = feet / scale; - if (_scaleLabel.valid()) { - if (feet >= 5280) { - _scaleLabel->setText(osgEarth::Stringify() - << feet / 5280.0 - << " mi"); - } else { - _scaleLabel->setText(osgEarth::Stringify() - << feet - << " ft"); - } + if (feet >= 5280) { + emit signalScaleInfo(QString("%1 mi").arg(feet / 5280.0)); + } else { + emit signalScaleInfo(QString("%1 ft").arg(feet)); } } break; case ScaleBarHandler::Delegate::Units::UNITS_METERS: default: { meters = normalizeScaleMeters(meters); pixelWidth = meters / scale; - if (_scaleLabel.valid()) { - if (meters >= 1000) { - _scaleLabel->setText(osgEarth::Stringify() - << meters / 1000.0 - << " km"); - } else { - _scaleLabel->setText(osgEarth::Stringify() - << meters - << " m"); - } + if (meters >= 1000) { + emit signalScaleInfo(QString("%1 km").arg(meters * 0.001)); + } else { + emit signalScaleInfo(QString("%1 m").arg(meters)); } } break; } - */ } void QtOsgViewWidget::Initialize(void) { diff --git a/src/viewer/QtOsgViewWidget.h b/src/viewer/QtOsgViewWidget.h index 02a153e9..9c2031f6 100644 --- a/src/viewer/QtOsgViewWidget.h +++ b/src/viewer/QtOsgViewWidget.h @@ -36,7 +36,7 @@ public: signals: void signalResetWorkSpace(); - void signalScaleBarInfo(const QString&); + void signalScaleInfo(const QString&); protected: