diff --git a/ground/openpilotgcs/src/plugins/osgearthview/OsgEarthview.pluginspec b/ground/openpilotgcs/src/plugins/osgearthview/OsgEarthview.pluginspec new file mode 100644 index 000000000..fa10241f9 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/OsgEarthview.pluginspec @@ -0,0 +1,11 @@ + + The OpenPilot Project + (C) 2012 The OpenPilot Project + The GNU Public License (GPL) Version 3 + Visualize UAV and the scene based on OpenSceneGraph and OsgEarth + http://www.openpilot.org + + + + + diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osg.pri b/ground/openpilotgcs/src/plugins/osgearthview/osg.pri new file mode 100644 index 000000000..40e14ec30 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osg.pri @@ -0,0 +1,6 @@ + +LIBS += -losg -lOpenThreads -losgUtil -losgViewer -losgDB -losgQt -losgGA + +#QMAKE_LFLAGS += -F/usr/local/lib +#LIBS += -framework OpenThreads -framework osg -framework osgUtil -framework osgViewer -framework osgDB -framework osgQt -framework osgGA +#LIBS += -framework CoreFoundation diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearth.pri b/ground/openpilotgcs/src/plugins/osgearthview/osgearth.pri new file mode 100644 index 000000000..6a4ea3e40 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearth.pri @@ -0,0 +1,2 @@ + +LIBS += -losgEarth -losgEarthUtil -losgEarthQt diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.pro b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.pro new file mode 100644 index 000000000..e461f3a72 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.pro @@ -0,0 +1,26 @@ +TEMPLATE = lib +TARGET = PFDGadget + +QT += opengl +include(../../openpilotgcsplugin.pri) +include(../../plugins/coreplugin/coreplugin.pri) +include(pfd_dependencies.pri) +include(osg.pri) +include(osgearth.pri) + +HEADERS += osgearthviewplugin.h +HEADERS += osgearthviewgadget.h +HEADERS += osgearthviewwidget.h +HEADERS += osgearthviewgadgetfactory.h +HEADERS += osgearthviewgadgetconfiguration.h +HEADERS += osgearthviewgadgetoptionspage.h + +SOURCES += osgearthviewplugin.cpp +SOURCES += osgearthviewgadget.cpp +SOURCES += osgearthviewwidget.cpp +SOURCES += osgearthviewgadgetfactory.cpp +SOURCES += osgearthviewgadgetconfiguration.cpp +SOURCES += osgearthviewgadgetoptionspage.cpp + +OTHER_FILES += OsgEarthview.pluginspec +RESOURCES += osgearthview.qrc diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.qrc b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.qrc new file mode 100644 index 000000000..278dd281e --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview.qrc @@ -0,0 +1,5 @@ + + + images/pfd-default.svg + + diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthview_dependencies.pri b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview_dependencies.pri new file mode 100644 index 000000000..9aae5fbc0 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthview_dependencies.pri @@ -0,0 +1 @@ +include(../../plugins/uavobjects/uavobjects.pri) diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.cpp new file mode 100644 index 000000000..04d46338b --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.cpp @@ -0,0 +1,50 @@ +/******************************************************************************** +* @file osgearthviewgadget.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "osgearthviewgadget.h" +#include "osgearthviewwidget.h" +#include "osgearthviewconfiguration.h" + +OsgEarthviewGadget::OsgEarthviewGadget(QString classId, OsgEarthviewGadgetWidget *widget, QWidget *parent) : + IUAVGadget(classId, parent), + m_widget(widget) +{ +} + +OsgEarthviewGadget::~OsgEarthviewGadget() +{ + delete m_widget; +} + +/* + This is called when a configuration is loaded, and updates the plugin's settings. + Careful: the plugin is already drawn before the loadConfiguration method is called the + first time, so you have to be careful not to assume all the plugin values are initialized + the first time you use them + */ +void OsgEarthviewGadget::loadConfiguration(IUAVGadgetConfiguration* config) +{ + OsgEarthviewGadgetConfiguration *m = qobject_cast(config); +} diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.h new file mode 100644 index 000000000..09678a46c --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadget.h @@ -0,0 +1,55 @@ +/******************************************************************************** +* +* @file osgearthviewgadget.h +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWGADGET_H_ +#define OSGEARTHVIEWGADGET_H_ + +#include +#include "osgearthviewwidget.h" + +class IUAVGadget; +class QWidget; +class QString; +class OsgEarthviewGadgetWidget; + +using namespace Core; + +class OsgEarthviewGadget : public Core::IUAVGadget +{ + Q_OBJECT +public: + OsgEarthviewGadget(QString classId, OsgEarthviewWidget *widget, QWidget *parent = 0); + ~OsgEarthviewGadget(); + + QWidget *widget() { return m_widget; } + void loadConfiguration(IUAVGadgetConfiguration* config); + +private: + OsgEarthviewGadgetWidget *m_widget; +}; + + +#endif // OSGEARTHVIEWGADGET_H_ diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.cpp new file mode 100644 index 000000000..04a559162 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.cpp @@ -0,0 +1,58 @@ +/******************************************************************************** +* @file osgearthviewgadgetconfiguration.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "osgearthviewgadgetconfiguration.h" +#include "utils/pathutils.h" + +/** + * Loads a saved configuration or defaults if non exist. + * + */ +OsgEarthviewGadgetConfiguration::OsgEarthviewGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) +{ + Q_UNUSED(qSettings); + //if a saved configuration exists load it + if(qSettings != 0) { + } +} + +/** + * Clones a configuration. + * + */ +IUAVGadgetConfiguration *OsgEarthviewGadgetConfiguration::clone() +{ + OsgEarthviewGadgetConfiguration *m = new OsgEarthviewGadgetConfiguration(this->classId()); + return m; +} + +/** + * Saves a configuration. + * + */ +void OsgEarthviewGadgetConfiguration::saveConfig(QSettings* qSettings) const { + QString dialFile = Utils::PathUtils().RemoveDataPath(m_defaultDial); +} diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.h new file mode 100644 index 000000000..e49bf4af9 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetconfiguration.h @@ -0,0 +1,46 @@ +/******************************************************************************** +* +* @file osgearthviewgadgetconfiguration.h +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWGADGETCONFIGURATION_H +#define OSGEARTHVIEWGADGETCONFIGURATION_H + +#include + +using namespace Core; + +class OsgEarthviewGadgetConfiguration : public IUAVGadgetConfiguration +{ +Q_OBJECT +public: + explicit OsgEarthviewGadgetConfiguration(QString classId, QSettings* qSettings = 0, QObject *parent = 0); + + void saveConfig(QSettings* settings) const; + IUAVGadgetConfiguration *clone(); + +private: +}; + +#endif // OSGEARTHVIEWGADGETCONFIGURATION_H diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.cpp new file mode 100644 index 000000000..79f5d96f3 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.cpp @@ -0,0 +1,58 @@ +/******************************************************************************** +* @file osgearthviewgadgetfactory.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include "osgearthviewgadgetfactory.h" +#include "osgearthviewwidget.h" +#include "osgearthviewgadget.h" +#include "osgearthviewgadgetconfiguration.h" +#include "osgearthviewgadgetoptionspage.h" +#include + +OsgEarthviewGadgetFactory::OsgEarthviewGadgetFactory(QObject *parent) : + IUAVGadgetFactory(QString("OsgEarthviewGadget"), + tr("Osg Earth View"), + parent) +{ +} + +OsgEarthviewGadgetFactory::~OsgEarthviewGadgetFactory() +{ +} + +Core::IUAVGadget* OsgEarthviewGadgetFactory::createGadget(QWidget *parent) +{ + OsgEarthviewGadgetWidget* gadgetWidget = new OsgEarthviewGadgetWidget(parent); + return new OsgEarthviewGadget(QString("OsgEarthviewGadget"), gadgetWidget, parent); +} + +IUAVGadgetConfiguration *OsgEarthviewGadgetFactory::createConfiguration(QSettings* qSettings) +{ + return new OsgEarthviewGadgetConfiguration(QString("OsgEarthviewGadget"), qSettings); +} + +IOptionsPage *OsgEarthviewGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) +{ + return new OsgEarthviewGadgetOptionsPage(qobject_cast(config)); +} + diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.h new file mode 100644 index 000000000..5c60366c3 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetfactory.h @@ -0,0 +1,52 @@ +/** + ****************************************************************************** + + * @file osgearthviewgadgetfactory.h + * @author The OpenPilot Team Copyright (C) 2012. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OsgEarthview Plugin + * @{ + * @brief The Primary Flight Display Gadget + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWGADGETFACTORY_H_ +#define OSGEARTHVIEWGADGETFACTORY_H_ + +#include + +namespace Core { +class IUAVGadget; +class IUAVGadgetFactory; +} + +using namespace Core; + +class OsgEarthviewGadgetFactory : public IUAVGadgetFactory +{ + Q_OBJECT +public: + OsgEarthviewGadgetFactory(QObject *parent = 0); + ~OsgEarthviewGadgetFactory(); + + Core::IUAVGadget *createGadget(QWidget *parent); + IUAVGadgetConfiguration *createConfiguration(QSettings* qSettings); + IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); +}; + +#endif // OSGEARTHVIEWGADGETFACTORY_H_ diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.cpp new file mode 100644 index 000000000..6beb7aebf --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.cpp @@ -0,0 +1,86 @@ +/******************************************************************************** +* @file osgearthviewgadgetoptions.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "pfdgadgetoptionspage.h" +#include "pfdgadgetconfiguration.h" +#include "ui_pfdgadgetoptionspage.h" +#include "extensionsystem/pluginmanager.h" +#include "uavobjectmanager.h" +#include "uavdataobject.h" + + +#include +#include +#include + +PFDGadgetOptionsPage::PFDGadgetOptionsPage(PFDGadgetConfiguration *config, QObject *parent) : + IOptionsPage(parent), + m_config(config) +{ +} + +//creates options page widget (uses the UI file) +QWidget *PFDGadgetOptionsPage::createPage(QWidget *parent) +{ + + options_page = new Ui::PFDGadgetOptionsPage(); + //main widget + QWidget *optionsPageWidget = new QWidget; + //main layout + options_page->setupUi(optionsPageWidget); + + + + // Restore the contents from the settings: + options_page->svgSourceFile->setExpectedKind(Utils::PathChooser::File); + options_page->svgSourceFile->setPromptDialogFilter(tr("SVG image (*.svg)")); + options_page->svgSourceFile->setPromptDialogTitle(tr("Choose SVG image")); + options_page->svgSourceFile->setPath(m_config->dialFile()); + options_page->useOpenGL->setChecked(m_config->useOpenGL()); + options_page->hqText->setChecked(m_config->getHqFonts()); + options_page->smoothUpdates->setChecked(m_config->getBeSmooth()); + + return optionsPageWidget; +} + +/** + * Called when the user presses apply or OK. + * + * Saves the current values + * + */ +void PFDGadgetOptionsPage::apply() +{ + m_config->setDialFile(options_page->svgSourceFile->path()); + m_config->setUseOpenGL(options_page->useOpenGL->checkState()); + m_config->setHqFonts(options_page->hqText->checkState()); + m_config->setBeSmooth(options_page->smoothUpdates->checkState()); +} + + + +void PFDGadgetOptionsPage::finish() +{ +} diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.h new file mode 100644 index 000000000..8aef8ef8b --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.h @@ -0,0 +1,65 @@ +/** + ****************************************************************************** + * + * @file osgearthviewgadgetoptionspage.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin Primary Flight Display Plugin + * @{ + * @brief The Primary Flight Display Gadget + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWGADGETOPTIONSPAGE_H +#define OSGEARTHVIEWGADGETOPTIONSPAGE_H + +#include "coreplugin/dialogs/ioptionspage.h" +#include "QString" +#include +#include + +namespace Core { +class IUAVGadgetConfiguration; +} + +class OsgEarthviewGadgetConfiguration; + +namespace Ui { + class OsgEarthviewGadgetOptionsPage; +} + +using namespace Core; + +class OsgEarthviewGadgetOptionsPage : public IOptionsPage +{ +Q_OBJECT +public: + explicit OsgEarthviewGadgetOptionsPage(OsgEarthviewGadgetConfiguration *config, QObject *parent = 0); + + QWidget *createPage(QWidget *parent); + void apply(); + void finish(); + +private: + Ui::OsgEarthviewGadgetOptionsPage *options_page; + OsgEarthviewGadgetConfiguration *m_config; + +private slots: +}; + +#endif // OSGEARTHVIEWGADGETOPTIONSPAGE_H diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.ui b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.ui new file mode 100644 index 000000000..f9a2808b3 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewgadgetoptionspage.ui @@ -0,0 +1,126 @@ + + + PFDGadgetOptionsPage + + + + 0 + 0 + 529 + 271 + + + + + 0 + 0 + + + + Form + + + + + + 10 + + + QLayout::SetMaximumSize + + + 10 + + + + + PFD SVG: + + + + + + + + 0 + 0 + + + + + + + + + + Qt::Horizontal + + + + + + + + + true + + + Use OpenGL for rendering + + + true + + + + + + + High Quality text (OpenGL) + + + + + + + + + + + Smooth updates + + + true + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 40 + + + + + + + + + Utils::PathChooser + QWidget +
utils/pathchooser.h
+ 1 +
+
+ + +
diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp new file mode 100644 index 000000000..bb33fd8c7 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp @@ -0,0 +1,64 @@ +/******************************************************************************** +* @file osgearthviewplugin.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "osgearthviewplugin.h" +#include "osgearthviewgadgetfactory.h" +#include +#include +#include +#include + + +OsgEarthviewPlugin::OsgEarthviewPlugin() +{ + // Do nothing +} + +OsgEarthviewPlugin::~OsgEarthviewPlugin() +{ + // Do nothing +} + +bool OsgEarthviewPlugin::initialize(const QStringList& args, QString *errMsg) +{ + Q_UNUSED(args); + Q_UNUSED(errMsg); + mf = new OsgEarthviewGadgetFactory(this); + addAutoReleasedObject(mf); + + return true; +} + +void OsgEarthviewPlugin::extensionsInitialized() +{ + // Do nothing +} + +void OsgEarthviewPlugin::shutdown() +{ + // Do nothing +} +Q_EXPORT_PLUGIN(OsgEarthviewPlugin) + diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h new file mode 100644 index 000000000..2fc1625a0 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h @@ -0,0 +1,47 @@ +/** + ****************************************************************************** + * + * @file pfdplugin.h + * @author Edouard Lafargue Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin Primary Flight Display Plugin + * @{ + * @brief The Primary Flight Display Gadget + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWPLUGIN_H_ +#define OSGEARTHVIEWPLUGIN_H_ + +#include + +class OsgEarthviewGadgetFactory; + +class OsgEarthviewPlugin : public ExtensionSystem::IPlugin +{ +public: + OsgEarthviewPlugin(); + ~OsgEarthviewPlugin(); + + void extensionsInitialized(); + bool initialize(const QStringList & arguments, QString * errorString); + void shutdown(); +private: + OsgEarthviewGadgetFactory *mf; +}; +#endif /* PFDPLUGIN_H_ */ diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp new file mode 100644 index 000000000..33e297b27 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp @@ -0,0 +1,53 @@ +/******************************************************************************** +* @file osgearthviewwidget.cpp +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin Widget +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "osgearthviewwidget.h" +#include +#include +#include +#include +#include +#include +#include + +OsgEarthviewWidget::OsgEarthviewWidget(QWidget *parent) : QGraphicsView(parent) +{ +} + +OsgEarthviewWidget::~OsgEarthviewWidget() +{ +} + +void OsgEarthviewWidget::paint() +{ +} + +void OsgEarthviewWidget::paintEvent(QPaintEvent *event) +{ +} + +void OsgEarthviewWidget::resizeEvent(QResizeEvent *event) +{ +} diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.h new file mode 100644 index 000000000..67e3ecc62 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.h @@ -0,0 +1,60 @@ +/******************************************************************************** +* @file osgearthviewwidget.h +* @author The OpenPilot Team Copyright (C) 2012. +* @addtogroup GCSPlugins GCS Plugins +* @{ +* @addtogroup OsgEarthview Plugin +* @{ +* @brief Osg Earth view of UAV +*****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef OSGEARTHVIEWWIDGET_H_ +#define OSGEARTHVIEWWIDGET_H_ + +#include "osgearthviewgadgetconfiguration.h" +#include "extensionsystem/pluginmanager.h" +#include "uavobjectmanager.h" +#include "uavobject.h" +#include +#include +#include + +#include +#include + +class OsgEarthviewWidget : public QGraphicsView +{ + Q_OBJECT + +public: + OsgEarthviewWidget(QWidget *parent = 0); + ~OsgEarthviewWidget(); + void paint(); + +public slots: + +protected: + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + +private slots: + +private: + +}; +#endif /* OSGEARTHVIEWWIDGET_H_ */