Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
CDynamicMeshBuffer.h
Go to the documentation of this file.
1 // Copyright (C) 2008-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __C_DYNAMIC_MESHBUFFER_H_INCLUDED__
6 #define __C_DYNAMIC_MESHBUFFER_H_INCLUDED__
7 
8 #include "IDynamicMeshBuffer.h"
9 
10 #include "CVertexBuffer.h"
11 #include "CIndexBuffer.h"
12 
13 namespace irr
14 {
15 namespace scene
16 {
17 
19  {
20  public:
23  {
24  VertexBuffer=new CVertexBuffer(vertexType);
25  IndexBuffer=new CIndexBuffer(indexType);
26  }
27 
30  {
31  if (VertexBuffer)
32  VertexBuffer->drop();
33  if (IndexBuffer)
34  IndexBuffer->drop();
35  }
36 
37  virtual IVertexBuffer& getVertexBuffer() const
38  {
39  return *VertexBuffer;
40  }
41 
42  virtual IIndexBuffer& getIndexBuffer() const
43  {
44  return *IndexBuffer;
45  }
46 
47  virtual void setVertexBuffer(IVertexBuffer *newVertexBuffer)
48  {
49  if (newVertexBuffer)
50  newVertexBuffer->grab();
51  if (VertexBuffer)
52  VertexBuffer->drop();
53 
54  VertexBuffer=newVertexBuffer;
55  }
56 
57  virtual void setIndexBuffer(IIndexBuffer *newIndexBuffer)
58  {
59  if (newIndexBuffer)
60  newIndexBuffer->grab();
61  if (IndexBuffer)
62  IndexBuffer->drop();
63 
64  IndexBuffer=newIndexBuffer;
65  }
66 
68  virtual const video::SMaterial& getMaterial() const
69  {
70  return Material;
71  }
72 
75  {
76  return Material;
77  }
78 
80  virtual const core::aabbox3d<f32>& getBoundingBox() const
81  {
82  return BoundingBox;
83  }
84 
86  virtual void setBoundingBox( const core::aabbox3df& box)
87  {
88  BoundingBox = box;
89  }
90 
92  virtual void recalculateBoundingBox()
93  {
94  if (!getVertexBuffer().size())
95  BoundingBox.reset(0,0,0);
96  else
97  {
99  for (u32 i=1; i<getVertexBuffer().size(); ++i)
101  }
102  }
103 
106  private:
107  IVertexBuffer *VertexBuffer;
108  IIndexBuffer *IndexBuffer;
109  };
110 
111 
112 } // end namespace scene
113 } // end namespace irr
114 
115 #endif
116 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Mon May 6 2013 17:41:01 by Doxygen (1.8.3.1)