aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8.1/include/IQ3LevelMesh.h
blob: 62feffc692938b3e896da0efd87e1dc85dca18b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (C) 2002-2012 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h

#ifndef __I_Q3_LEVEL_MESH_H_INCLUDED__
#define __I_Q3_LEVEL_MESH_H_INCLUDED__

#include "IAnimatedMesh.h"
#include "IQ3Shader.h"

namespace irr
{
namespace scene
{
	//! Interface for a Mesh which can be loaded directly from a Quake3 .bsp-file.
	/** The Mesh tries to load all textures of the map.*/
	class IQ3LevelMesh : public IAnimatedMesh
	{
	public:

		//! loads the shader definition from file
		/** \param filename Name of the shaderfile, defaults to /scripts if fileNameIsValid is false.
		\param fileNameIsValid Specifies whether the filename is valid in the current situation. */
		virtual const quake3::IShader* getShader( const c8* filename, bool fileNameIsValid=true ) = 0;

		//! returns a already loaded Shader
		virtual const quake3::IShader* getShader(u32 index) const = 0;

		//! get's an interface to the entities
		virtual quake3::tQ3EntityList& getEntityList() = 0;

		//! returns the requested brush entity
		/** \param num The number from the model key of the entity.

		Use this interface if you parse the entities yourself.*/
		virtual IMesh* getBrushEntityMesh(s32 num) const = 0;

		//! returns the requested brush entity
		virtual IMesh* getBrushEntityMesh(quake3::IEntity &ent) const = 0;
	};

} // end namespace scene
} // end namespace irr

#endif