1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __I_Q3_LEVEL_MESH_H_INCLUDED__
\r
6 #define __I_Q3_LEVEL_MESH_H_INCLUDED__
\r
8 #include "IAnimatedMesh.h"
\r
9 #include "IQ3Shader.h"
\r
15 //! Interface for a Mesh which can be loaded directly from a Quake3 .bsp-file.
\r
16 /** The Mesh tries to load all textures of the map.*/
\r
17 class IQ3LevelMesh : public IAnimatedMesh
\r
21 //! loads the shader definition from file
\r
22 /** \param filename Name of the shaderfile, defaults to /scripts if fileNameIsValid is false.
\r
23 \param fileNameIsValid Specifies whether the filename is valid in the current situation. */
\r
24 virtual const quake3::IShader* getShader( const c8* filename, bool fileNameIsValid=true ) = 0;
\r
26 //! returns a already loaded Shader
\r
27 virtual const quake3::IShader* getShader(u32 index) const = 0;
\r
29 //! get's an interface to the entities
\r
30 virtual quake3::tQ3EntityList& getEntityList() = 0;
\r
32 //! returns the requested brush entity
\r
33 /** \param num The number from the model key of the entity.
\r
35 Use this interface if you parse the entities yourself.*/
\r
36 virtual IMesh* getBrushEntityMesh(s32 num) const = 0;
\r
38 //! returns the requested brush entity
\r
39 virtual IMesh* getBrushEntityMesh(quake3::IEntity &ent) const = 0;
\r
42 } // end namespace scene
\r
43 } // end namespace irr
\r