From c9165a565b6c7e8b8680fa1229fd7e02c289e765 Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Sun, 4 Mar 2012 08:40:56 +0100 Subject: [PATCH] Use an implementation file for SGReaderWriterOptions. --- simgear/scene/util/CMakeLists.txt | 1 + simgear/scene/util/SGReaderWriterOptions.cxx | 51 ++++++++++++++++++++ simgear/scene/util/SGReaderWriterOptions.hxx | 22 ++------- 3 files changed, 55 insertions(+), 19 deletions(-) create mode 100644 simgear/scene/util/SGReaderWriterOptions.cxx diff --git a/simgear/scene/util/CMakeLists.txt b/simgear/scene/util/CMakeLists.txt index 8ec8d119..8b922157 100644 --- a/simgear/scene/util/CMakeLists.txt +++ b/simgear/scene/util/CMakeLists.txt @@ -31,6 +31,7 @@ set(SOURCES PrimitiveUtils.cxx QuadTreeBuilder.cxx SGEnlargeBoundingBox.cxx + SGReaderWriterOptions.cxx SGSceneFeatures.cxx SGSceneUserData.cxx SGStateAttributeVisitor.cxx diff --git a/simgear/scene/util/SGReaderWriterOptions.cxx b/simgear/scene/util/SGReaderWriterOptions.cxx new file mode 100644 index 00000000..d2951cc5 --- /dev/null +++ b/simgear/scene/util/SGReaderWriterOptions.cxx @@ -0,0 +1,51 @@ +// Copyright (C) 2007 Tim Moore timoore@redhat.com +// Copyright (C) 2008 Till Busch buti@bux.at +// Copyright (C) 2011 Mathias Froehlich +// +// 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// + +#include "SGReaderWriterOptions.hxx" + +#include + +namespace simgear +{ + +SGReaderWriterOptions::~SGReaderWriterOptions() +{ +} + +SGReaderWriterOptions* +SGReaderWriterOptions::copyOrCreate(const osgDB::Options* options) +{ + if (!options) + options = osgDB::Registry::instance()->getOptions(); + if (!options) + return new SGReaderWriterOptions; + if (!dynamic_cast(options)) + return new SGReaderWriterOptions(*options); + return new SGReaderWriterOptions(*static_cast(options)); +} + +SGReaderWriterOptions* +SGReaderWriterOptions::fromPath(const std::string& path) +{ + SGReaderWriterOptions* options = copyOrCreate(0); + options->setDatabasePath(path); + return options; +} + +} diff --git a/simgear/scene/util/SGReaderWriterOptions.hxx b/simgear/scene/util/SGReaderWriterOptions.hxx index 798c85fe..2a4b983d 100644 --- a/simgear/scene/util/SGReaderWriterOptions.hxx +++ b/simgear/scene/util/SGReaderWriterOptions.hxx @@ -21,7 +21,6 @@ #define SGREADERWRITEROPTIONS_HXX 1 #include -#include #include #include @@ -93,26 +92,11 @@ public: void setInstantiateEffects(bool instantiateEffects) { _instantiateEffects = instantiateEffects; } - static SGReaderWriterOptions* copyOrCreate(const osgDB::Options* options) - { - if (!options) - options = osgDB::Registry::instance()->getOptions(); - if (!options) - return new SGReaderWriterOptions; - if (!dynamic_cast(options)) - return new SGReaderWriterOptions(*options); - return new SGReaderWriterOptions(*static_cast(options)); - } - - static SGReaderWriterOptions* fromPath(const std::string& path) - { - SGReaderWriterOptions* options = copyOrCreate(0); - options->setDatabasePath(path); - return options; - } + static SGReaderWriterOptions* copyOrCreate(const osgDB::Options* options); + static SGReaderWriterOptions* fromPath(const std::string& path); protected: - virtual ~SGReaderWriterOptions() {} + virtual ~SGReaderWriterOptions(); private: SGSharedPtr _propertyNode;