aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/include/SSkinMeshBuffer.h
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 18:54:10 +1000
committerDavid Walter Seikel2013-01-13 18:54:10 +1000
commit959831f4ef5a3e797f576c3de08cd65032c997ad (patch)
treee7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/include/SSkinMeshBuffer.h
parentAdd info about changes to Irrlicht. (diff)
downloadSledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to '')
-rw-r--r--libraries/irrlicht-1.8/include/SSkinMeshBuffer.h808
1 files changed, 404 insertions, 404 deletions
diff --git a/libraries/irrlicht-1.8/include/SSkinMeshBuffer.h b/libraries/irrlicht-1.8/include/SSkinMeshBuffer.h
index 4582b80..d47de19 100644
--- a/libraries/irrlicht-1.8/include/SSkinMeshBuffer.h
+++ b/libraries/irrlicht-1.8/include/SSkinMeshBuffer.h
@@ -1,404 +1,404 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt 1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine". 2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h 3// For conditions of distribution and use, see copyright notice in irrlicht.h
4 4
5#ifndef __I_SKIN_MESH_BUFFER_H_INCLUDED__ 5#ifndef __I_SKIN_MESH_BUFFER_H_INCLUDED__
6#define __I_SKIN_MESH_BUFFER_H_INCLUDED__ 6#define __I_SKIN_MESH_BUFFER_H_INCLUDED__
7 7
8#include "IMeshBuffer.h" 8#include "IMeshBuffer.h"
9#include "S3DVertex.h" 9#include "S3DVertex.h"
10 10
11 11
12namespace irr 12namespace irr
13{ 13{
14namespace scene 14namespace scene
15{ 15{
16 16
17 17
18//! A mesh buffer able to choose between S3DVertex2TCoords, S3DVertex and S3DVertexTangents at runtime 18//! A mesh buffer able to choose between S3DVertex2TCoords, S3DVertex and S3DVertexTangents at runtime
19struct SSkinMeshBuffer : public IMeshBuffer 19struct SSkinMeshBuffer : public IMeshBuffer
20{ 20{
21 //! Default constructor 21 //! Default constructor
22 SSkinMeshBuffer(video::E_VERTEX_TYPE vt=video::EVT_STANDARD) : 22 SSkinMeshBuffer(video::E_VERTEX_TYPE vt=video::EVT_STANDARD) :
23 ChangedID_Vertex(1), ChangedID_Index(1), VertexType(vt), 23 ChangedID_Vertex(1), ChangedID_Index(1), VertexType(vt),
24 MappingHint_Vertex(EHM_NEVER), MappingHint_Index(EHM_NEVER), 24 MappingHint_Vertex(EHM_NEVER), MappingHint_Index(EHM_NEVER),
25 BoundingBoxNeedsRecalculated(true) 25 BoundingBoxNeedsRecalculated(true)
26 { 26 {
27 #ifdef _DEBUG 27 #ifdef _DEBUG
28 setDebugName("SSkinMeshBuffer"); 28 setDebugName("SSkinMeshBuffer");
29 #endif 29 #endif
30 } 30 }
31 31
32 //! Get Material of this buffer. 32 //! Get Material of this buffer.
33 virtual const video::SMaterial& getMaterial() const 33 virtual const video::SMaterial& getMaterial() const
34 { 34 {
35 return Material; 35 return Material;
36 } 36 }
37 37
38 //! Get Material of this buffer. 38 //! Get Material of this buffer.
39 virtual video::SMaterial& getMaterial() 39 virtual video::SMaterial& getMaterial()
40 { 40 {
41 return Material; 41 return Material;
42 } 42 }
43 43
44 //! Get standard vertex at given index 44 //! Get standard vertex at given index
45 virtual video::S3DVertex *getVertex(u32 index) 45 virtual video::S3DVertex *getVertex(u32 index)
46 { 46 {
47 switch (VertexType) 47 switch (VertexType)
48 { 48 {
49 case video::EVT_2TCOORDS: 49 case video::EVT_2TCOORDS:
50 return (video::S3DVertex*)&Vertices_2TCoords[index]; 50 return (video::S3DVertex*)&Vertices_2TCoords[index];
51 case video::EVT_TANGENTS: 51 case video::EVT_TANGENTS:
52 return (video::S3DVertex*)&Vertices_Tangents[index]; 52 return (video::S3DVertex*)&Vertices_Tangents[index];
53 default: 53 default:
54 return &Vertices_Standard[index]; 54 return &Vertices_Standard[index];
55 } 55 }
56 } 56 }
57 57
58 //! Get pointer to vertex array 58 //! Get pointer to vertex array
59 virtual const void* getVertices() const 59 virtual const void* getVertices() const
60 { 60 {
61 switch (VertexType) 61 switch (VertexType)
62 { 62 {
63 case video::EVT_2TCOORDS: 63 case video::EVT_2TCOORDS:
64 return Vertices_2TCoords.const_pointer(); 64 return Vertices_2TCoords.const_pointer();
65 case video::EVT_TANGENTS: 65 case video::EVT_TANGENTS:
66 return Vertices_Tangents.const_pointer(); 66 return Vertices_Tangents.const_pointer();
67 default: 67 default:
68 return Vertices_Standard.const_pointer(); 68 return Vertices_Standard.const_pointer();
69 } 69 }
70 } 70 }
71 71
72 //! Get pointer to vertex array 72 //! Get pointer to vertex array
73 virtual void* getVertices() 73 virtual void* getVertices()
74 { 74 {
75 switch (VertexType) 75 switch (VertexType)
76 { 76 {
77 case video::EVT_2TCOORDS: 77 case video::EVT_2TCOORDS:
78 return Vertices_2TCoords.pointer(); 78 return Vertices_2TCoords.pointer();
79 case video::EVT_TANGENTS: 79 case video::EVT_TANGENTS:
80 return Vertices_Tangents.pointer(); 80 return Vertices_Tangents.pointer();
81 default: 81 default:
82 return Vertices_Standard.pointer(); 82 return Vertices_Standard.pointer();
83 } 83 }
84 } 84 }
85 85
86 //! Get vertex count 86 //! Get vertex count
87 virtual u32 getVertexCount() const 87 virtual u32 getVertexCount() const
88 { 88 {
89 switch (VertexType) 89 switch (VertexType)
90 { 90 {
91 case video::EVT_2TCOORDS: 91 case video::EVT_2TCOORDS:
92 return Vertices_2TCoords.size(); 92 return Vertices_2TCoords.size();
93 case video::EVT_TANGENTS: 93 case video::EVT_TANGENTS:
94 return Vertices_Tangents.size(); 94 return Vertices_Tangents.size();
95 default: 95 default:
96 return Vertices_Standard.size(); 96 return Vertices_Standard.size();
97 } 97 }
98 } 98 }
99 99
100 //! Get type of index data which is stored in this meshbuffer. 100 //! Get type of index data which is stored in this meshbuffer.
101 /** \return Index type of this buffer. */ 101 /** \return Index type of this buffer. */
102 virtual video::E_INDEX_TYPE getIndexType() const 102 virtual video::E_INDEX_TYPE getIndexType() const
103 { 103 {
104 return video::EIT_16BIT; 104 return video::EIT_16BIT;
105 } 105 }
106 106
107 //! Get pointer to index array 107 //! Get pointer to index array
108 virtual const u16* getIndices() const 108 virtual const u16* getIndices() const
109 { 109 {
110 return Indices.const_pointer(); 110 return Indices.const_pointer();
111 } 111 }
112 112
113 //! Get pointer to index array 113 //! Get pointer to index array
114 virtual u16* getIndices() 114 virtual u16* getIndices()
115 { 115 {
116 return Indices.pointer(); 116 return Indices.pointer();
117 } 117 }
118 118
119 //! Get index count 119 //! Get index count
120 virtual u32 getIndexCount() const 120 virtual u32 getIndexCount() const
121 { 121 {
122 return Indices.size(); 122 return Indices.size();
123 } 123 }
124 124
125 //! Get bounding box 125 //! Get bounding box
126 virtual const core::aabbox3d<f32>& getBoundingBox() const 126 virtual const core::aabbox3d<f32>& getBoundingBox() const
127 { 127 {
128 return BoundingBox; 128 return BoundingBox;
129 } 129 }
130 130
131 //! Set bounding box 131 //! Set bounding box
132 virtual void setBoundingBox( const core::aabbox3df& box) 132 virtual void setBoundingBox( const core::aabbox3df& box)
133 { 133 {
134 BoundingBox = box; 134 BoundingBox = box;
135 } 135 }
136 136
137 //! Recalculate bounding box 137 //! Recalculate bounding box
138 virtual void recalculateBoundingBox() 138 virtual void recalculateBoundingBox()
139 { 139 {
140 if(!BoundingBoxNeedsRecalculated) 140 if(!BoundingBoxNeedsRecalculated)
141 return; 141 return;
142 142
143 BoundingBoxNeedsRecalculated = false; 143 BoundingBoxNeedsRecalculated = false;
144 144
145 switch (VertexType) 145 switch (VertexType)
146 { 146 {
147 case video::EVT_STANDARD: 147 case video::EVT_STANDARD:
148 { 148 {
149 if (Vertices_Standard.empty()) 149 if (Vertices_Standard.empty())
150 BoundingBox.reset(0,0,0); 150 BoundingBox.reset(0,0,0);
151 else 151 else
152 { 152 {
153 BoundingBox.reset(Vertices_Standard[0].Pos); 153 BoundingBox.reset(Vertices_Standard[0].Pos);
154 for (u32 i=1; i<Vertices_Standard.size(); ++i) 154 for (u32 i=1; i<Vertices_Standard.size(); ++i)
155 BoundingBox.addInternalPoint(Vertices_Standard[i].Pos); 155 BoundingBox.addInternalPoint(Vertices_Standard[i].Pos);
156 } 156 }
157 break; 157 break;
158 } 158 }
159 case video::EVT_2TCOORDS: 159 case video::EVT_2TCOORDS:
160 { 160 {
161 if (Vertices_2TCoords.empty()) 161 if (Vertices_2TCoords.empty())
162 BoundingBox.reset(0,0,0); 162 BoundingBox.reset(0,0,0);
163 else 163 else
164 { 164 {
165 BoundingBox.reset(Vertices_2TCoords[0].Pos); 165 BoundingBox.reset(Vertices_2TCoords[0].Pos);
166 for (u32 i=1; i<Vertices_2TCoords.size(); ++i) 166 for (u32 i=1; i<Vertices_2TCoords.size(); ++i)
167 BoundingBox.addInternalPoint(Vertices_2TCoords[i].Pos); 167 BoundingBox.addInternalPoint(Vertices_2TCoords[i].Pos);
168 } 168 }
169 break; 169 break;
170 } 170 }
171 case video::EVT_TANGENTS: 171 case video::EVT_TANGENTS:
172 { 172 {
173 if (Vertices_Tangents.empty()) 173 if (Vertices_Tangents.empty())
174 BoundingBox.reset(0,0,0); 174 BoundingBox.reset(0,0,0);
175 else 175 else
176 { 176 {
177 BoundingBox.reset(Vertices_Tangents[0].Pos); 177 BoundingBox.reset(Vertices_Tangents[0].Pos);
178 for (u32 i=1; i<Vertices_Tangents.size(); ++i) 178 for (u32 i=1; i<Vertices_Tangents.size(); ++i)
179 BoundingBox.addInternalPoint(Vertices_Tangents[i].Pos); 179 BoundingBox.addInternalPoint(Vertices_Tangents[i].Pos);
180 } 180 }
181 break; 181 break;
182 } 182 }
183 } 183 }
184 } 184 }
185 185
186 //! Get vertex type 186 //! Get vertex type
187 virtual video::E_VERTEX_TYPE getVertexType() const 187 virtual video::E_VERTEX_TYPE getVertexType() const
188 { 188 {
189 return VertexType; 189 return VertexType;
190 } 190 }
191 191
192 //! Convert to 2tcoords vertex type 192 //! Convert to 2tcoords vertex type
193 virtual void convertTo2TCoords() 193 virtual void convertTo2TCoords()
194 { 194 {
195 if (VertexType==video::EVT_STANDARD) 195 if (VertexType==video::EVT_STANDARD)
196 { 196 {
197 for(u32 n=0;n<Vertices_Standard.size();++n) 197 for(u32 n=0;n<Vertices_Standard.size();++n)
198 { 198 {
199 video::S3DVertex2TCoords Vertex; 199 video::S3DVertex2TCoords Vertex;
200 Vertex.Color=Vertices_Standard[n].Color; 200 Vertex.Color=Vertices_Standard[n].Color;
201 Vertex.Pos=Vertices_Standard[n].Pos; 201 Vertex.Pos=Vertices_Standard[n].Pos;
202 Vertex.Normal=Vertices_Standard[n].Normal; 202 Vertex.Normal=Vertices_Standard[n].Normal;
203 Vertex.TCoords=Vertices_Standard[n].TCoords; 203 Vertex.TCoords=Vertices_Standard[n].TCoords;
204 Vertices_2TCoords.push_back(Vertex); 204 Vertices_2TCoords.push_back(Vertex);
205 } 205 }
206 Vertices_Standard.clear(); 206 Vertices_Standard.clear();
207 VertexType=video::EVT_2TCOORDS; 207 VertexType=video::EVT_2TCOORDS;
208 } 208 }
209 } 209 }
210 210
211 //! Convert to tangents vertex type 211 //! Convert to tangents vertex type
212 virtual void convertToTangents() 212 virtual void convertToTangents()
213 { 213 {
214 if (VertexType==video::EVT_STANDARD) 214 if (VertexType==video::EVT_STANDARD)
215 { 215 {
216 for(u32 n=0;n<Vertices_Standard.size();++n) 216 for(u32 n=0;n<Vertices_Standard.size();++n)
217 { 217 {
218 video::S3DVertexTangents Vertex; 218 video::S3DVertexTangents Vertex;
219 Vertex.Color=Vertices_Standard[n].Color; 219 Vertex.Color=Vertices_Standard[n].Color;
220 Vertex.Pos=Vertices_Standard[n].Pos; 220 Vertex.Pos=Vertices_Standard[n].Pos;
221 Vertex.Normal=Vertices_Standard[n].Normal; 221 Vertex.Normal=Vertices_Standard[n].Normal;
222 Vertex.TCoords=Vertices_Standard[n].TCoords; 222 Vertex.TCoords=Vertices_Standard[n].TCoords;
223 Vertices_Tangents.push_back(Vertex); 223 Vertices_Tangents.push_back(Vertex);
224 } 224 }
225 Vertices_Standard.clear(); 225 Vertices_Standard.clear();
226 VertexType=video::EVT_TANGENTS; 226 VertexType=video::EVT_TANGENTS;
227 } 227 }
228 else if (VertexType==video::EVT_2TCOORDS) 228 else if (VertexType==video::EVT_2TCOORDS)
229 { 229 {
230 for(u32 n=0;n<Vertices_2TCoords.size();++n) 230 for(u32 n=0;n<Vertices_2TCoords.size();++n)
231 { 231 {
232 video::S3DVertexTangents Vertex; 232 video::S3DVertexTangents Vertex;
233 Vertex.Color=Vertices_2TCoords[n].Color; 233 Vertex.Color=Vertices_2TCoords[n].Color;
234 Vertex.Pos=Vertices_2TCoords[n].Pos; 234 Vertex.Pos=Vertices_2TCoords[n].Pos;
235 Vertex.Normal=Vertices_2TCoords[n].Normal; 235 Vertex.Normal=Vertices_2TCoords[n].Normal;
236 Vertex.TCoords=Vertices_2TCoords[n].TCoords; 236 Vertex.TCoords=Vertices_2TCoords[n].TCoords;
237 Vertices_Tangents.push_back(Vertex); 237 Vertices_Tangents.push_back(Vertex);
238 } 238 }
239 Vertices_2TCoords.clear(); 239 Vertices_2TCoords.clear();
240 VertexType=video::EVT_TANGENTS; 240 VertexType=video::EVT_TANGENTS;
241 } 241 }
242 } 242 }
243 243
244 //! returns position of vertex i 244 //! returns position of vertex i
245 virtual const core::vector3df& getPosition(u32 i) const 245 virtual const core::vector3df& getPosition(u32 i) const
246 { 246 {
247 switch (VertexType) 247 switch (VertexType)
248 { 248 {
249 case video::EVT_2TCOORDS: 249 case video::EVT_2TCOORDS:
250 return Vertices_2TCoords[i].Pos; 250 return Vertices_2TCoords[i].Pos;
251 case video::EVT_TANGENTS: 251 case video::EVT_TANGENTS:
252 return Vertices_Tangents[i].Pos; 252 return Vertices_Tangents[i].Pos;
253 default: 253 default:
254 return Vertices_Standard[i].Pos; 254 return Vertices_Standard[i].Pos;
255 } 255 }
256 } 256 }
257 257
258 //! returns position of vertex i 258 //! returns position of vertex i
259 virtual core::vector3df& getPosition(u32 i) 259 virtual core::vector3df& getPosition(u32 i)
260 { 260 {
261 switch (VertexType) 261 switch (VertexType)
262 { 262 {
263 case video::EVT_2TCOORDS: 263 case video::EVT_2TCOORDS:
264 return Vertices_2TCoords[i].Pos; 264 return Vertices_2TCoords[i].Pos;
265 case video::EVT_TANGENTS: 265 case video::EVT_TANGENTS:
266 return Vertices_Tangents[i].Pos; 266 return Vertices_Tangents[i].Pos;
267 default: 267 default:
268 return Vertices_Standard[i].Pos; 268 return Vertices_Standard[i].Pos;
269 } 269 }
270 } 270 }
271 271
272 //! returns normal of vertex i 272 //! returns normal of vertex i
273 virtual const core::vector3df& getNormal(u32 i) const 273 virtual const core::vector3df& getNormal(u32 i) const
274 { 274 {
275 switch (VertexType) 275 switch (VertexType)
276 { 276 {
277 case video::EVT_2TCOORDS: 277 case video::EVT_2TCOORDS:
278 return Vertices_2TCoords[i].Normal; 278 return Vertices_2TCoords[i].Normal;
279 case video::EVT_TANGENTS: 279 case video::EVT_TANGENTS:
280 return Vertices_Tangents[i].Normal; 280 return Vertices_Tangents[i].Normal;
281 default: 281 default:
282 return Vertices_Standard[i].Normal; 282 return Vertices_Standard[i].Normal;
283 } 283 }
284 } 284 }
285 285
286 //! returns normal of vertex i 286 //! returns normal of vertex i
287 virtual core::vector3df& getNormal(u32 i) 287 virtual core::vector3df& getNormal(u32 i)
288 { 288 {
289 switch (VertexType) 289 switch (VertexType)
290 { 290 {
291 case video::EVT_2TCOORDS: 291 case video::EVT_2TCOORDS:
292 return Vertices_2TCoords[i].Normal; 292 return Vertices_2TCoords[i].Normal;
293 case video::EVT_TANGENTS: 293 case video::EVT_TANGENTS:
294 return Vertices_Tangents[i].Normal; 294 return Vertices_Tangents[i].Normal;
295 default: 295 default:
296 return Vertices_Standard[i].Normal; 296 return Vertices_Standard[i].Normal;
297 } 297 }
298 } 298 }
299 299
300 //! returns texture coords of vertex i 300 //! returns texture coords of vertex i
301 virtual const core::vector2df& getTCoords(u32 i) const 301 virtual const core::vector2df& getTCoords(u32 i) const
302 { 302 {
303 switch (VertexType) 303 switch (VertexType)
304 { 304 {
305 case video::EVT_2TCOORDS: 305 case video::EVT_2TCOORDS:
306 return Vertices_2TCoords[i].TCoords; 306 return Vertices_2TCoords[i].TCoords;
307 case video::EVT_TANGENTS: 307 case video::EVT_TANGENTS:
308 return Vertices_Tangents[i].TCoords; 308 return Vertices_Tangents[i].TCoords;
309 default: 309 default:
310 return Vertices_Standard[i].TCoords; 310 return Vertices_Standard[i].TCoords;
311 } 311 }
312 } 312 }
313 313
314 //! returns texture coords of vertex i 314 //! returns texture coords of vertex i
315 virtual core::vector2df& getTCoords(u32 i) 315 virtual core::vector2df& getTCoords(u32 i)
316 { 316 {
317 switch (VertexType) 317 switch (VertexType)
318 { 318 {
319 case video::EVT_2TCOORDS: 319 case video::EVT_2TCOORDS:
320 return Vertices_2TCoords[i].TCoords; 320 return Vertices_2TCoords[i].TCoords;
321 case video::EVT_TANGENTS: 321 case video::EVT_TANGENTS:
322 return Vertices_Tangents[i].TCoords; 322 return Vertices_Tangents[i].TCoords;
323 default: 323 default:
324 return Vertices_Standard[i].TCoords; 324 return Vertices_Standard[i].TCoords;
325 } 325 }
326 } 326 }
327 327
328 //! append the vertices and indices to the current buffer 328 //! append the vertices and indices to the current buffer
329 virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) {} 329 virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) {}
330 330
331 //! append the meshbuffer to the current buffer 331 //! append the meshbuffer to the current buffer
332 virtual void append(const IMeshBuffer* const other) {} 332 virtual void append(const IMeshBuffer* const other) {}
333 333
334 //! get the current hardware mapping hint for vertex buffers 334 //! get the current hardware mapping hint for vertex buffers
335 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const 335 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const
336 { 336 {
337 return MappingHint_Vertex; 337 return MappingHint_Vertex;
338 } 338 }
339 339
340 //! get the current hardware mapping hint for index buffers 340 //! get the current hardware mapping hint for index buffers
341 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const 341 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const
342 { 342 {
343 return MappingHint_Index; 343 return MappingHint_Index;
344 } 344 }
345 345
346 //! set the hardware mapping hint, for driver 346 //! set the hardware mapping hint, for driver
347 virtual void setHardwareMappingHint( E_HARDWARE_MAPPING NewMappingHint, E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX ) 347 virtual void setHardwareMappingHint( E_HARDWARE_MAPPING NewMappingHint, E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX )
348 { 348 {
349 if (Buffer==EBT_VERTEX) 349 if (Buffer==EBT_VERTEX)
350 MappingHint_Vertex=NewMappingHint; 350 MappingHint_Vertex=NewMappingHint;
351 else if (Buffer==EBT_INDEX) 351 else if (Buffer==EBT_INDEX)
352 MappingHint_Index=NewMappingHint; 352 MappingHint_Index=NewMappingHint;
353 else if (Buffer==EBT_VERTEX_AND_INDEX) 353 else if (Buffer==EBT_VERTEX_AND_INDEX)
354 { 354 {
355 MappingHint_Vertex=NewMappingHint; 355 MappingHint_Vertex=NewMappingHint;
356 MappingHint_Index=NewMappingHint; 356 MappingHint_Index=NewMappingHint;
357 } 357 }
358 } 358 }
359 359
360 //! flags the mesh as changed, reloads hardware buffers 360 //! flags the mesh as changed, reloads hardware buffers
361 virtual void setDirty(E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX) 361 virtual void setDirty(E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX)
362 { 362 {
363 if (Buffer==EBT_VERTEX_AND_INDEX || Buffer==EBT_VERTEX) 363 if (Buffer==EBT_VERTEX_AND_INDEX || Buffer==EBT_VERTEX)
364 ++ChangedID_Vertex; 364 ++ChangedID_Vertex;
365 if (Buffer==EBT_VERTEX_AND_INDEX || Buffer==EBT_INDEX) 365 if (Buffer==EBT_VERTEX_AND_INDEX || Buffer==EBT_INDEX)
366 ++ChangedID_Index; 366 ++ChangedID_Index;
367 } 367 }
368 368
369 virtual u32 getChangedID_Vertex() const {return ChangedID_Vertex;} 369 virtual u32 getChangedID_Vertex() const {return ChangedID_Vertex;}
370 370
371 virtual u32 getChangedID_Index() const {return ChangedID_Index;} 371 virtual u32 getChangedID_Index() const {return ChangedID_Index;}
372 372
373 //! Call this after changing the positions of any vertex. 373 //! Call this after changing the positions of any vertex.
374 void boundingBoxNeedsRecalculated(void) { BoundingBoxNeedsRecalculated = true; } 374 void boundingBoxNeedsRecalculated(void) { BoundingBoxNeedsRecalculated = true; }
375 375
376 core::array<video::S3DVertexTangents> Vertices_Tangents; 376 core::array<video::S3DVertexTangents> Vertices_Tangents;
377 core::array<video::S3DVertex2TCoords> Vertices_2TCoords; 377 core::array<video::S3DVertex2TCoords> Vertices_2TCoords;
378 core::array<video::S3DVertex> Vertices_Standard; 378 core::array<video::S3DVertex> Vertices_Standard;
379 core::array<u16> Indices; 379 core::array<u16> Indices;
380 380
381 u32 ChangedID_Vertex; 381 u32 ChangedID_Vertex;
382 u32 ChangedID_Index; 382 u32 ChangedID_Index;
383 383
384 //ISkinnedMesh::SJoint *AttachedJoint; 384 //ISkinnedMesh::SJoint *AttachedJoint;
385 core::matrix4 Transformation; 385 core::matrix4 Transformation;
386 386
387 video::SMaterial Material; 387 video::SMaterial Material;
388 video::E_VERTEX_TYPE VertexType; 388 video::E_VERTEX_TYPE VertexType;
389 389
390 core::aabbox3d<f32> BoundingBox; 390 core::aabbox3d<f32> BoundingBox;
391 391
392 // hardware mapping hint 392 // hardware mapping hint
393 E_HARDWARE_MAPPING MappingHint_Vertex:3; 393 E_HARDWARE_MAPPING MappingHint_Vertex:3;
394 E_HARDWARE_MAPPING MappingHint_Index:3; 394 E_HARDWARE_MAPPING MappingHint_Index:3;
395 395
396 bool BoundingBoxNeedsRecalculated:1; 396 bool BoundingBoxNeedsRecalculated:1;
397}; 397};
398 398
399 399
400} // end namespace scene 400} // end namespace scene
401} // end namespace irr 401} // end namespace irr
402 402
403#endif 403#endif
404 404