12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // 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 IRR_I_Q3_LEVEL_MESH_H_INCLUDED
- #define IRR_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
|