| Irrlicht 3D Engine |

IMesh.h
Go to the documentation of this file.

    00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
    00002 // This file is part of the "Irrlicht Engine".
    00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
    00004
    00005 #ifndef __I_MESH_H_INCLUDED__
    00006 #define __I_MESH_H_INCLUDED__
    00007
    00008 #include "IReferenceCounted.h"
    00009 #include "SMaterial.h"
    00010 #include "EHardwareBufferFlags.h"
    00011
    00012 namespace irr
    00013 {
    00014 namespace scene
    00015 {
    00016     class IMeshBuffer;
    00017
    00019
    00023     class IMesh : public virtual IReferenceCounted
    00024     {
    00025     public:
    00026
    00028
    00029         virtual u32 getMeshBufferCount() const = 0;
    00030
    00032
    00036         virtual IMeshBuffer* getMeshBuffer(u32 nr) const = 0;
    00037
    00039
    00042         virtual IMeshBuffer* getMeshBuffer( const video::SMaterial &material) const = 0;
    00043
    00045
    00046         virtual const core::aabbox3d<f32>& getBoundingBox() const = 0;
    00047
    00049
    00050         virtual void setBoundingBox( const core::aabbox3df& box) = 0;
    00051
    00053
    00055         virtual void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue) = 0;
    00056
    00058
    00062         virtual void setHardwareMappingHint(E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX) = 0;
    00063
    00065
    00068         virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX) = 0;
    00069     };
    00070
    00071 } // end namespace scene
    00072 } // end namespace irr
    00073
    00074 #endif
    00075