Browse Source

Working on adding generic 3D models

QGC4.4
lm 15 years ago
parent
commit
157fe76235
  1. 20
      qgroundcontrol.pri
  2. 4
      src/ui/MainWindow.cc
  3. 32
      src/ui/map3D/Pixhawk3DWidget.cc

20
qgroundcontrol.pri

@ -34,6 +34,11 @@ release {
# DEFINES += QT_NO_WARNING_OUTPUT # DEFINES += QT_NO_WARNING_OUTPUT
} }
QMAKE_PRE_LINK += echo "Copying files"
#QMAKE_PRE_LINK += && cp -rf $$BASEDIR/models $$TARGETDIR/debug/.
#QMAKE_PRE_LINK += && cp -rf $$BASEDIR/models $$TARGETDIR/release/.
# MAC OS X # MAC OS X
macx { macx {
@ -102,8 +107,6 @@ macx {
# GNU/Linux # GNU/Linux
linux-g++ { linux-g++ {
CONFIG += debug
debug { debug {
DESTDIR = $$BUILDDIR/debug DESTDIR = $$BUILDDIR/debug
@ -170,7 +173,7 @@ linux-g++ {
DEFINES += QGC_LIBFREENECT_ENABLED DEFINES += QGC_LIBFREENECT_ENABLED
} }
QMAKE_CXXFLAGS += -Wl,-E #QMAKE_CXXFLAGS += -Wl,-E
#-lflite_cmu_us_rms \ #-lflite_cmu_us_rms \
#-lflite_cmu_us_slt \ #-lflite_cmu_us_slt \
@ -267,7 +270,9 @@ win32-msvc2008 {
QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$TARGETDIR/debug/. && QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$TARGETDIR/debug/. &&
QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$TARGETDIR/release/. && QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$TARGETDIR/release/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/debug/. && QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/debug/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/release/. QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/release/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/models $$TARGETDIR/debug/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/models $$TARGETDIR/release/.
} }
# Windows (32bit) # Windows (32bit)
@ -300,8 +305,10 @@ win32-g++ {
# Copy dependencies # Copy dependencies
QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/debug/. && QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/debug/. &&
QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/release/. && QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/release/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/debug/. && QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/debug/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/release/. QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$TARGETDIR/release/.
QMAKE_PRE_LINK += cp -rf $$BASEDIR/models $$TARGETDIR/debug/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/models $$TARGETDIR/release/.
} }
# Windows (64bit) # Windows (64bit)
@ -337,4 +344,3 @@ win64-g++ {
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/debug/. && QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/debug/. &&
QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/release/. QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/release/.
} }

4
src/ui/MainWindow.cc

@ -136,8 +136,8 @@ void MainWindow::buildWidgets()
protocolWidget = new XMLCommProtocolWidget(this); protocolWidget = new XMLCommProtocolWidget(this);
dataplotWidget = new QGCDataPlot2D(this); dataplotWidget = new QGCDataPlot2D(this);
#ifdef QGC_OSG_ENABLED #ifdef QGC_OSG_ENABLED
_3DWidget = Q3DWidgetFactory::get("PIXHAWK"); //_3DWidget = Q3DWidgetFactory::get("PIXHAWK");
//_3DWidget = Q3DWidgetFactory::get("MAP3D"); _3DWidget = Q3DWidgetFactory::get("MAP3D");
#endif #endif
// Dock widgets // Dock widgets

32
src/ui/map3D/Pixhawk3DWidget.cc

@ -208,7 +208,7 @@ QVector< osg::ref_ptr<osg::Node> >
Pixhawk3DWidget::findVehicleModels(void) Pixhawk3DWidget::findVehicleModels(void)
{ {
QDir directory("models"); QDir directory("models");
QStringList files = directory.entryList(QStringList("*.osg")); QStringList files = directory.entryList(QStringList("*.osg"), QDir::Files);
QVector< osg::ref_ptr<osg::Node> > nodes; QVector< osg::ref_ptr<osg::Node> > nodes;
@ -221,9 +221,39 @@ Pixhawk3DWidget::findVehicleModels(void)
osg::ref_ptr<osg::Node> node = osg::ref_ptr<osg::Node> node =
osgDB::readNodeFile(directory.absoluteFilePath(files[i]).toStdString().c_str()); osgDB::readNodeFile(directory.absoluteFilePath(files[i]).toStdString().c_str());
if (node)
{
nodes.push_back(node); nodes.push_back(node);
}
else
{
printf(QString("ERROR: Could not load file " + directory.absoluteFilePath(files[i]) + "\n").toStdString().c_str());
}
} }
// QStringList dirs = directory.entryList(QDir::Dirs);
// // Add models in subfolders
// for (int i = 0; i < dirs.size(); ++i)
// {
// // Handling the current directory
// QStringList currFiles = QDir(dirs[i]).entryList(QStringList("*.ac"), QDir::Files);
// // Load the file
// osg::ref_ptr<osg::Node> node =
// osgDB::readNodeFile(directory.absoluteFilePath(currFiles.first()).toStdString().c_str());
// if (node)
// {
// nodes.push_back(node);
// }
// else
// {
// printf(QString("ERROR: Could not load file " + directory.absoluteFilePath(files[i]) + "\n").toStdString().c_str());
// }
// }
return nodes; return nodes;
} }

Loading…
Cancel
Save