modify osg view widget

This commit is contained in:
jiegeaiai 2025-01-11 22:17:15 +08:00
parent 95882dfee0
commit ed758bc551
4 changed files with 26 additions and 47 deletions

View File

@ -3,6 +3,7 @@
#include <algorithm>
#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;
}

View File

@ -1267,18 +1267,18 @@
<context>
<name>QtOsgViewWidget</name>
<message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="389"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="397"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="366"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="374"/>
<source>warning</source>
<translation></translation>
</message>
<message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="389"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="366"/>
<source>default workspace failed</source>
<translation></translation>
</message>
<message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="397"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="374"/>
<source>open dyt file failed</source>
<translation></translation>
</message>

View File

@ -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");
emit signalScaleInfo(QString("%1 miUS").arg(feet / 5280.0));
} else {
_scaleLabel->setText(osgEarth::Stringify()
<< feet
<< " ftUS");
}
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");
emit signalScaleInfo(QString("%1 mi").arg(feet / 5280.0));
} else {
_scaleLabel->setText(osgEarth::Stringify()
<< feet
<< " ft");
}
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");
emit signalScaleInfo(QString("%1 km").arg(meters * 0.001));
} else {
_scaleLabel->setText(osgEarth::Stringify()
<< meters
<< " m");
}
emit signalScaleInfo(QString("%1 m").arg(meters));
}
} break;
}
*/
}
void QtOsgViewWidget::Initialize(void) {

View File

@ -36,7 +36,7 @@ public:
signals:
void signalResetWorkSpace();
void signalScaleBarInfo(const QString&);
void signalScaleInfo(const QString&);
protected: