2
// C++ Interface: TerrainLayerDefinitionManager
7
// Author: Erik Hjortsberg <erik.hjortsberg@gmail.com>, (C) 2007
9
// This program is free software; you can redistribute it and/or modify
10
// it under the terms of the GNU General Public License as published by
11
// the Free Software Foundation; either version 2 of the License, or
12
// (at your option) any later version.
14
// This program is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
// GNU General Public License for more details.
19
// You should have received a copy of the GNU General Public License
20
// along with this program; if not, write to the Free Software
21
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//
23
#ifndef EMBEROGRE_TERRAINTERRAINLAYERDEFINITIONMANAGER_H
24
#define EMBEROGRE_TERRAINTERRAINLAYERDEFINITIONMANAGER_H
26
#include "components/ogre/EmberOgrePrerequisites.h"
28
#include <OgreResourceManager.h>
29
#include "framework/Singleton.h"
35
class TerrainLayerDefinition;
37
@author Erik Hjortsberg <erik.hjortsberg@gmail.com>
39
class TerrainLayerDefinitionManager : public Ogre::ResourceManager, public Ember::Singleton<TerrainLayerDefinitionManager>
42
typedef std::vector<TerrainLayerDefinition*> DefinitionStore;
43
TerrainLayerDefinitionManager();
45
virtual ~TerrainLayerDefinitionManager();
47
virtual void parseScript(Ogre::DataStreamPtr &stream, const Ogre::String &groupName);
50
Adds a definition to the manager. This definition will be deleted by the manager upon destruction.
51
@param definition A valid definition.
53
void addDefinition(TerrainLayerDefinition* definition);
55
const DefinitionStore& getDefinitions() const;
57
TerrainLayerDefinition* getDefinitionForArea(unsigned int areaIndex);
58
TerrainLayerDefinition* getDefinitionForShader(const std::string& shaderType);
61
DefinitionStore mDefinitions;
63
Ogre::Resource* createImpl(const Ogre::String& name, Ogre::ResourceHandle handle,
64
const Ogre::String& group, bool isManual, Ogre::ManualResourceLoader* loader,
65
const Ogre::NameValuePairList* createParams);