#include "ZoomManager.h" #include "config.h" #include "common/SpdLogger.h" #include "viewer/OsgViewUI.h" #include "common/RecourceHelper.h" ZoomManager::ZoomManager(void) { zoom = 0.0; state = ZoomManager::DEFAULT; _canvasZoom = new osgWidget::Canvas("Zoom"); _canvasZoom->setOrigin(733, 350); _canvasZoom->getBackground()->setColor(0, 0, 0, 0); _canvasZoom->setVisibilityMode(osgWidget::Window::VM_ENTIRE); _canvasZoom->setStrata(osgWidget::Window::STRATA_FOREGROUND); const std::string texturePath = RecourceHelper::Get().GetResourcesPath().toStdString(); _lessen = new ZoomWidget("lessen", 18, 20, texturePath + "/northarrow/zoom_down.png", "lessen", osgWidget::Widget::LAYER_TOP, this); _enlargement = new ZoomWidget("enlargement", 18, 20, texturePath + "/northarrow/zoom_up.png", "enlargement", osgWidget::Widget::LAYER_TOP, this); _zoomBackground = new BackGroundWidget("zoomBackground", 18, 144, texturePath + "/northarrow/zoomactive.png"); _bar = new ZoomWidget("bar", 17, 10, texturePath + "/northarrow/zoombar_norm.png", "bar", osgWidget::Widget::LAYER_TOP, this); _bar_ = new BackGroundWidget("bar_", 18, 12, texturePath + "/northarrow/zoombar_norm_.png"); _zoomBackground_shadow = new BackGroundWidget("background_shadow", 18, 144, texturePath + "/northarrow/zoombackground.png"); _canvasZoom->addWidget(_lessen, 0, 0); _canvasZoom->addWidget(_enlargement, 0, 124); _canvasZoom->addWidget(_bar_, 0, 66); _canvasZoom->addWidget(_bar, 0, 67); _canvasZoom->addWidget(_zoomBackground, 0, 0); _canvasZoom->addWidget(_zoomBackground_shadow, 0, 0); } ZoomManager::~ZoomManager(void) { delete _canvasZoom; delete _lessen; delete _enlargement; delete _zoomBackground; delete _bar; delete _bar_; delete _zoomBackground_shadow; } void ZoomManager::ResetCanvasPosition(double x, double y) { _canvasZoom->setOrigin(x - 100 + 33, y - 250); _canvasZoom->resize(); } void ZoomManager::SendZoom() { _zoomNum[0] = zoom; //emit signalZoom(QVariant(_zoomNum[0])); } void ZoomManager::AttachViewUI(OsgViewUI* ui) { dyt_check(nullptr != ui); ui->addChild(_canvasZoom); }