Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

# IMeshBuffer.h

Go to the documentation of this file.

    00001 // Copyright (C) 2002-2009 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_BUFFER_H_INCLUDED__
    00006 #define __I_MESH_BUFFER_H_INCLUDED__
    00007
    00008 #include "IReferenceCounted.h"
    00009 #include "SMaterial.h"
    00010 #include "aabbox3d.h"
    00011 #include "S3DVertex.h"
    00012 #include "SVertexIndex.h"
    00013 #include "EHardwareBufferFlags.h"
    00014 #include "EPrimitiveTypes.h"
    00015
    00016 namespace irr
    00017 {
    00018 namespace scene
    00019 {
    00021
    00039         class IMeshBuffer : public virtual IReferenceCounted
    00040         {
    00041         public:
    00042
    00044
    00045                 virtual video::SMaterial& getMaterial() = 0;
    00046
    00048
    00049                 virtual const video::SMaterial& getMaterial() const = 0;
    00050
    00052
    00053                 virtual video::E_VERTEX_TYPE getVertexType() const = 0;
    00054
    00056
    00058                 virtual const void* getVertices() const = 0;
    00059
    00061
    00063                 virtual void* getVertices() = 0;
    00064
    00066
    00067                 virtual u32 getVertexCount() const = 0;
    00068
    00070
    00071                 virtual video::E_INDEX_TYPE getIndexType() const =0;
    00072
    00074
    00075                 virtual const u16* getIndices() const = 0;
    00076
    00078
    00079                 virtual u16* getIndices() = 0;
    00080
    00082
    00083                 virtual u32 getIndexCount() const = 0;
    00084
    00086
    00087                 virtual const core::aabbox3df& getBoundingBox() const = 0;
    00088
    00090
    00092                 virtual void setBoundingBox(const core::aabbox3df& box) = 0;
    00093
    00095                 virtual void recalculateBoundingBox() = 0;
    00096
    00098                 virtual const core::vector3df& getPosition(u32 i) const = 0;
    00099
    00101                 virtual core::vector3df& getPosition(u32 i) = 0;
    00102
    00104                 virtual const core::vector3df& getNormal(u32 i) const = 0;
    00105
    00107                 virtual core::vector3df& getNormal(u32 i) = 0;
    00108
    00110                 virtual const core::vector2df& getTCoords(u32 i) const = 0;
    00111
    00113                 virtual core::vector2df& getTCoords(u32 i) = 0;
    00114
    00116
    00121                 virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) = 0;
    00122
    00124
    00126                 virtual void append(const IMeshBuffer* const other) = 0;
    00127
    00129                 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const = 0;
    00130
    00132                 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const = 0;
    00133
    00135                 virtual void setHardwareMappingHint( E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX ) = 0;
    00136
    00138                 virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX) = 0;
    00139
    00141
    00142                 virtual u32 getChangedID_Vertex() const = 0;
    00143
    00145
    00146                 virtual u32 getChangedID_Index() const = 0;
    00147         };
    00148
    00149 } // end namespace scene
    00150 } // end namespace irr
    00151
    00152 #endif
    00153
    00154

| The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Feb 14 13:06:57 2010 by Doxygen (1.6.2)