modify osg view widget
This commit is contained in:
parent
95882dfee0
commit
ed758bc551
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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) {
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
|
||||
signals:
|
||||
void signalResetWorkSpace();
|
||||
void signalScaleBarInfo(const QString&);
|
||||
void signalScaleInfo(const QString&);
|
||||
|
||||
protected:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user