From 921870e46a78b305a88e54e9ac99e59306b743b7 Mon Sep 17 00:00:00 2001 From: hengli Date: Thu, 16 Feb 2012 10:38:33 +0100 Subject: [PATCH] Fixed bug in bird's eye view in 3D view. --- src/ui/map3D/GCManipulator.cc | 2 +- src/ui/map3D/Pixhawk3DWidget.cc | 18 ++++++++---------- src/ui/map3D/Pixhawk3DWidget.h | 2 +- src/ui/map3D/Q3DWidget.cc | 6 ++++++ src/ui/map3D/Q3DWidget.h | 5 +++++ 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/ui/map3D/GCManipulator.cc b/src/ui/map3D/GCManipulator.cc index 8804e5e0b..b5248c473 100644 --- a/src/ui/map3D/GCManipulator.cc +++ b/src/ui/map3D/GCManipulator.cc @@ -25,7 +25,7 @@ This file is part of the QGROUNDCONTROL project * @file * @brief Definition of the class GCManipulator. * - * @author Lionel Heng + * @author Lionel Heng * */ diff --git a/src/ui/map3D/Pixhawk3DWidget.cc b/src/ui/map3D/Pixhawk3DWidget.cc index 0e600a4b1..ca2c3c3d8 100644 --- a/src/ui/map3D/Pixhawk3DWidget.cc +++ b/src/ui/map3D/Pixhawk3DWidget.cc @@ -292,14 +292,12 @@ Pixhawk3DWidget::modelChanged(int systemId, int index) } void -Pixhawk3DWidget::setBirdView(void) +Pixhawk3DWidget::setBirdEyeView(void) { mViewParamWidget->setFollowCameraId(-1); - mCameraPos = QVector3D(0.0, 0.0, -100.0); - m3DWidget->rotateCamera(0.0, 0.0, 0.0); - m3DWidget->recenterCamera(mCameraPos.y(), mCameraPos.x(), -mCameraPos.z()); + m3DWidget->setCameraDistance(100.0); } void @@ -692,7 +690,7 @@ Pixhawk3DWidget::update(void) mCameraPos = QVector3D(x, y, z); - setBirdView(); + setBirdEyeView(); mInitCameraPos = true; } } @@ -828,12 +826,12 @@ Pixhawk3DWidget::buildLayout(void) QPushButton* recenterButton = new QPushButton(this); recenterButton->setText("Recenter Camera"); - QPushButton* birdViewButton = new QPushButton(this); - birdViewButton->setText("Bird's Eye View"); + QPushButton* birdEyeViewButton = new QPushButton(this); + birdEyeViewButton->setText("Bird's Eye View"); QHBoxLayout* layoutBottom = new QHBoxLayout; layoutBottom->addWidget(recenterButton); - layoutBottom->addWidget(birdViewButton); + layoutBottom->addWidget(birdEyeViewButton); layoutBottom->addItem(new QSpacerItem(10, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); QGridLayout* layout = new QGridLayout(this); @@ -850,8 +848,8 @@ Pixhawk3DWidget::buildLayout(void) this, SLOT(showViewParamWindow())); connect(recenterButton, SIGNAL(clicked()), this, SLOT(recenterActiveCamera())); - connect(birdViewButton, SIGNAL(clicked()), - this, SLOT(setBirdView())); + connect(birdEyeViewButton, SIGNAL(clicked()), + this, SLOT(setBirdEyeView())); } void diff --git a/src/ui/map3D/Pixhawk3DWidget.h b/src/ui/map3D/Pixhawk3DWidget.h index 534e6d615..bc25bec34 100644 --- a/src/ui/map3D/Pixhawk3DWidget.h +++ b/src/ui/map3D/Pixhawk3DWidget.h @@ -67,7 +67,7 @@ private slots: void followCameraChanged(int systemId); void recenterActiveCamera(void); void modelChanged(int systemId, int index); - void setBirdView(void); + void setBirdEyeView(void); void selectTargetHeading(void); void selectTarget(void); diff --git a/src/ui/map3D/Q3DWidget.cc b/src/ui/map3D/Q3DWidget.cc index ef4576803..d05fdcc60 100644 --- a/src/ui/map3D/Q3DWidget.cc +++ b/src/ui/map3D/Q3DWidget.cc @@ -133,6 +133,12 @@ Q3DWidget::rotateCamera(double roll, double pitch, double yaw) mCameraManipulator->setRotation(q); } +void +Q3DWidget::setCameraDistance(double distance) +{ + mCameraManipulator->setDistance(distance); +} + void Q3DWidget::setDisplayMode3D(void) { diff --git a/src/ui/map3D/Q3DWidget.h b/src/ui/map3D/Q3DWidget.h index 8367f030e..32b9dc464 100644 --- a/src/ui/map3D/Q3DWidget.h +++ b/src/ui/map3D/Q3DWidget.h @@ -103,6 +103,11 @@ public: */ void rotateCamera(double roll, double pitch, double yaw); + /** + * @brief Sets the camera distance. + */ + void setCameraDistance(double distance); + /** * @brief Sets up 3D display mode. */ -- 2.22.0