#include <osgGA/TerrainManipulator>
#include <simgear/props/props.hxx>
+#include <simgear/props/props_io.hxx>
#include <simgear/misc/sg_path.hxx>
#include <simgear/scene/material/matlib.hxx>
#include <simgear/scene/tgdb/SGReaderWriterBTGOptions.hxx>
osgGA::KeySwitchMatrixManipulator* keyswitchManipulator;
keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator;
- osgGA::MatrixManipulator* mm = new osgGA::TrackballManipulator;
- keyswitchManipulator->addMatrixManipulator('1', "Trackball", mm);
- mm = new osgGA::FlightManipulator;
- keyswitchManipulator->addMatrixManipulator('2', "Flight", mm);
- mm = new osgGA::DriveManipulator;
- keyswitchManipulator->addMatrixManipulator('3', "Drive", mm);
- mm = new osgGA::TerrainManipulator;
- keyswitchManipulator->addMatrixManipulator('4', "Terrain", mm);
+ keyswitchManipulator->addMatrixManipulator('1', "Trackball",
+ new osgGA::TrackballManipulator);
+ keyswitchManipulator->addMatrixManipulator('2', "Flight",
+ new osgGA::FlightManipulator);
+ keyswitchManipulator->addMatrixManipulator('3', "Drive",
+ new osgGA::DriveManipulator);
+ keyswitchManipulator->addMatrixManipulator('4', "Terrain",
+ new osgGA::TerrainManipulator);
viewer.setCameraManipulator(keyswitchManipulator);
if (fg_root_env)
fg_root = fg_root_env;
else
+#if defined(PKGDATADIR)
+ fg_root = PKGDATADIR;
+#else
fg_root = ".";
+#endif
osgDB::FilePathList filePathList;
filePathList.push_back(fg_root);
}
SGSharedPtr<SGPropertyNode> props = new SGPropertyNode;
- props->getNode("sim/startup/season", true)->setStringValue("summer");
+ try {
+ SGPath preferencesFile = fg_root;
+ preferencesFile.append("preferences.xml");
+ readProperties(preferencesFile.str(), props);
+ } catch (...) {
+ // In case of an error, at least make summer :)
+ props->getNode("sim/startup/season", true)->setStringValue("summer");
+
+ std::cerr << "Problems loading FlightGear preferences.\n"
+ << "Probably FG_ROOT is not properly set." << std::endl;
+ }
SGMaterialLib* ml = new SGMaterialLib;
SGPath mpath(fg_root);
mpath.append("materials.xml");