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

IMeshBuffer.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2008 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 
00013 namespace irr
00014 {
00015 namespace scene
00016 {
00017 
00019         enum E_PRIMITIVE_TYPE
00020         {
00022                 EPT_POINTS=0,
00023 
00025                 EPT_LINE_STRIP,
00026 
00028                 EPT_LINE_LOOP,
00029 
00031                 EPT_LINES,
00032 
00035                 EPT_TRIANGLE_STRIP,
00036 
00039                 EPT_TRIANGLE_FAN,
00040 
00042                 EPT_TRIANGLES,
00043 
00045                 EPT_QUAD_STRIP,
00046 
00048                 EPT_QUADS,
00049 
00051                 EPT_POLYGON,
00052 
00054                 EPT_POINT_SPRITES
00055         };
00056 
00057 
00058 
00060 
00061         class IMeshBuffer : public virtual IReferenceCounted
00062         {
00063         public:
00064 
00066                 virtual ~IMeshBuffer() { }
00067 
00069 
00070                 virtual video::SMaterial& getMaterial() = 0;
00071 
00073 
00074                 virtual const video::SMaterial& getMaterial() const = 0;
00075 
00077 
00078                 virtual video::E_VERTEX_TYPE getVertexType() const = 0;
00079 
00081 
00083                 virtual const void* getVertices() const = 0;
00084 
00086 
00088                 virtual void* getVertices() = 0;
00089 
00091 
00092                 virtual u32 getVertexCount() const = 0;
00093 
00095 
00096                 virtual const u16* getIndices() const = 0;
00097 
00099 
00100                 virtual u16* getIndices() = 0;
00101 
00103 
00104                 virtual u32 getIndexCount() const = 0;
00105 
00107 
00108                 virtual const core::aabbox3df& getBoundingBox() const = 0;
00109 
00111 
00113                 virtual void setBoundingBox(const core::aabbox3df& box) = 0;
00114 
00116                 virtual void recalculateBoundingBox() = 0;
00117 
00119 
00124                 virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) = 0;
00125 
00127 
00129                 virtual void append(const IMeshBuffer* const other) = 0;
00130         };
00131 
00132 } // end namespace scene
00133 } // end namespace irr
00134 
00135 #endif
00136 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Jun 1 07:59:07 2008 by Doxygen (1.4.2)