⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ogreiploptions.h

📁 使用stl技术,(还没看,是听说的)
💻 H
字号:
/***************************************************************************
	OgreIPLOptions.h  

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser 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, or go to
http://www.gnu.org/copyleft/lesser.txt.

***************************************************************************/

#ifndef __IPLOPTIONS_H__
#define __IPLOPTIONS_H__

#include <OgrePrerequisites.h>
#include <OgreString.h>
#include <OgreSingleton.h>

#include <OgreVector3.h>
#include <OgreColourValue.h>

namespace Ogre
{

/**
  * A simple class for encapsulating parameters passed in when initializing a LandScapeRenderable
  */

class IPLOptions : public Singleton< IPLOptions >
{
public:
	IPLOptions( void );

	~IPLOptions( void );

	void load( const String& filename );

	bool setOption( const String& strKey, const void* pValue );

	bool getOption( const String& strKey, void* pDestValue );

	bool hasOption( const String& strKey );

	bool getOptionValues( const String& strKey, std::list<SDDataChunk>& refValueList );

	bool getOptionKeys( std::list<String>& refKeys );

	String landscape_filename;			// File name for the data 2D
	String landscape_extension;			// Extension for the data 2D

	String mData2DFormat;				// Format for the Data 2D file
	String mTextureFormat;				// Format for the Texture file

	String mMapTextureName;				// File name for the texture
	String mMapTextureExt;				// Extension for the texture

	String mDetailTextureName;			// File name for the detail texture
	String mDetailTextureExt;			// Extension for the detail texture
	float mPatchDetailRepeat;			// Number of times we want the detail texture to repeat

	int PageSize;						// size of the page.
	int mTileLOD;						// Initial value for LOD
	int mPatchLOD;						// 2^mPatchLOD gives the size of the Patch within a Tile
	int world_height;					// world page height, from 0 to height
	int world_width;					// world page width, from 0 to width
	int virtual_window_width;			// window width in pages looking into virtual world
	int virtual_window_height;			// window height in pages looking into virtual world

	Vector3 scale;

	float cameraThreshold;				// If the last camera position is >= the the scene is trasverse again.
	float visibilityRadiusSquared;		// radius of pages that are visible through camera 
	
	bool lit;
	bool colored;
	bool mPreloadCache;

	int maxValue;						//Compression range for the TC height field
	int minValue;

	ColourValue matColor[4];
	Real matHeight[1];

	/** Override standard Singleton retrieval.
		@remarks
			Why do we do this? Well, it's because the Singleton implementation is in a .h file,
			which means it gets compiled into anybody who includes it. This is needed for the Singleton
			template to work, but we actually only want it compiled into the implementation of the
			class based on the Singleton, not all of them. If we don't change this, we get link errors
			when trying to use the Singleton-based class from an outside dll.
		@par
			This method just delegates to the template version anyway, but the implementation stays in this
			single compilation unit, preventing link errors.
	*/
	static IPLOptions& getSingleton( void );
    static IPLOptions* getSingletonPtr( void );

private:

	ColourValue _getAvgColor(const String tex);

};

}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -