Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IAttributes.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 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 __I_ATTRIBUTES_H_INCLUDED__
6 #define __I_ATTRIBUTES_H_INCLUDED__
7 
8 #include "IReferenceCounted.h"
9 #include "SColor.h"
10 #include "vector3d.h"
11 #include "vector2d.h"
12 #include "line2d.h"
13 #include "line3d.h"
14 #include "triangle3d.h"
15 #include "position2d.h"
16 #include "rect.h"
17 #include "matrix4.h"
18 #include "quaternion.h"
19 #include "plane3d.h"
20 #include "triangle3d.h"
21 #include "line2d.h"
22 #include "line3d.h"
23 #include "irrString.h"
24 #include "irrArray.h"
25 #include "IXMLReader.h"
26 #include "EAttributes.h"
27 
28 namespace irr
29 {
30 namespace video
31 {
32  class ITexture;
33 } // end namespace video
34 namespace io
35 {
36  class IXMLWriter;
37 
39 class IAttributes : public virtual IReferenceCounted
40 {
41 public:
42 
44  virtual u32 getAttributeCount() const = 0;
45 
48  virtual const c8* getAttributeName(s32 index) = 0;
49 
52  virtual E_ATTRIBUTE_TYPE getAttributeType(const c8* attributeName) = 0;
53 
56  virtual E_ATTRIBUTE_TYPE getAttributeType(s32 index) = 0;
57 
60  virtual const wchar_t* getAttributeTypeString(const c8* attributeName) = 0;
61 
64  virtual const wchar_t* getAttributeTypeString(s32 index) = 0;
65 
67  virtual bool existsAttribute(const c8* attributeName) = 0;
68 
70  virtual s32 findAttribute(const c8* attributeName) = 0;
71 
73  virtual void clear() = 0;
74 
81  virtual bool read(io::IXMLReader* reader, bool readCurrentElementOnly=false, const wchar_t* elementName=0) = 0;
82 
87  virtual bool write(io::IXMLWriter* writer, bool writeXMLHeader=false, const wchar_t* elementName=0) = 0;
88 
89 
90  /*
91 
92  Integer Attribute
93 
94  */
95 
97  virtual void addInt(const c8* attributeName, s32 value) = 0;
98 
100  virtual void setAttribute(const c8* attributeName, s32 value) = 0;
101 
105  virtual s32 getAttributeAsInt(const c8* attributeName) = 0;
106 
109  virtual s32 getAttributeAsInt(s32 index) = 0;
110 
112  virtual void setAttribute(s32 index, s32 value) = 0;
113 
114  /*
115 
116  Float Attribute
117 
118  */
119 
121  virtual void addFloat(const c8* attributeName, f32 value) = 0;
122 
124  virtual void setAttribute(const c8* attributeName, f32 value) = 0;
125 
129  virtual f32 getAttributeAsFloat(const c8* attributeName) = 0;
130 
133  virtual f32 getAttributeAsFloat(s32 index) = 0;
134 
136  virtual void setAttribute(s32 index, f32 value) = 0;
137 
138  /*
139 
140  String Attribute
141 
142  */
143 
145  virtual void addString(const c8* attributeName, const c8* value) = 0;
146 
150  virtual void setAttribute(const c8* attributeName, const c8* value) = 0;
151 
156  virtual core::stringc getAttributeAsString(const c8* attributeName) = 0;
157 
161  virtual void getAttributeAsString(const c8* attributeName, c8* target) = 0;
162 
165  virtual core::stringc getAttributeAsString(s32 index) = 0;
166 
170  virtual void setAttribute(s32 index, const c8* value) = 0;
171 
172  // wide strings
173 
175  virtual void addString(const c8* attributeName, const wchar_t* value) = 0;
176 
180  virtual void setAttribute(const c8* attributeName, const wchar_t* value) = 0;
181 
186  virtual core::stringw getAttributeAsStringW(const c8* attributeName) = 0;
187 
191  virtual void getAttributeAsStringW(const c8* attributeName, wchar_t* target) = 0;
192 
195  virtual core::stringw getAttributeAsStringW(s32 index) = 0;
196 
200  virtual void setAttribute(s32 index, const wchar_t* value) = 0;
201 
202  /*
203 
204  Binary Data Attribute
205 
206  */
207 
209  virtual void addBinary(const c8* attributeName, void* data, s32 dataSizeInBytes) = 0;
210 
212  virtual void setAttribute(const c8* attributeName, void* data, s32 dataSizeInBytes ) = 0;
213 
215 
219  virtual void getAttributeAsBinaryData(const c8* attributeName, void* outData, s32 maxSizeInBytes) = 0;
220 
222 
226  virtual void getAttributeAsBinaryData(s32 index, void* outData, s32 maxSizeInBytes) = 0;
227 
229  virtual void setAttribute(s32 index, void* data, s32 dataSizeInBytes ) = 0;
230 
231 
232  /*
233  Array Attribute
234  */
235 
237  virtual void addArray(const c8* attributeName, const core::array<core::stringw>& value) = 0;
238 
242  virtual void setAttribute(const c8* attributeName, const core::array<core::stringw>& value) = 0;
243 
248  virtual core::array<core::stringw> getAttributeAsArray(const c8* attributeName) = 0;
249 
253 
255  virtual void setAttribute(s32 index, const core::array<core::stringw>& value) = 0;
256 
257 
258  /*
259 
260  Bool Attribute
261 
262  */
263 
265  virtual void addBool(const c8* attributeName, bool value) = 0;
266 
268  virtual void setAttribute(const c8* attributeName, bool value) = 0;
269 
273  virtual bool getAttributeAsBool(const c8* attributeName) = 0;
274 
277  virtual bool getAttributeAsBool(s32 index) = 0;
278 
280  virtual void setAttribute(s32 index, bool value) = 0;
281 
282  /*
283 
284  Enumeration Attribute
285 
286  */
287 
289  virtual void addEnum(const c8* attributeName, const c8* enumValue, const c8* const* enumerationLiterals) = 0;
290 
292  virtual void addEnum(const c8* attributeName, s32 enumValue, const c8* const* enumerationLiterals) = 0;
293 
295  virtual void setAttribute(const c8* attributeName, const c8* enumValue, const c8* const* enumerationLiterals) = 0;
296 
300  virtual const c8* getAttributeAsEnumeration(const c8* attributeName) = 0;
301 
303 
310  virtual s32 getAttributeAsEnumeration(const c8* attributeName, const c8* const* enumerationLiteralsToUse) = 0;
311 
313 
320  virtual s32 getAttributeAsEnumeration(s32 index, const c8* const* enumerationLiteralsToUse) = 0;
321 
324  virtual const c8* getAttributeAsEnumeration(s32 index) = 0;
325 
329  virtual void getAttributeEnumerationLiteralsOfEnumeration(const c8* attributeName, core::array<core::stringc>& outLiterals) = 0;
330 
335 
337  virtual void setAttribute(s32 index, const c8* enumValue, const c8* const* enumerationLiterals) = 0;
338 
339 
340  /*
341 
342  SColor Attribute
343 
344  */
345 
347  virtual void addColor(const c8* attributeName, video::SColor value) = 0;
348 
349 
351  virtual void setAttribute(const c8* attributeName, video::SColor color) = 0;
352 
356  virtual video::SColor getAttributeAsColor(const c8* attributeName) = 0;
357 
360  virtual video::SColor getAttributeAsColor(s32 index) = 0;
361 
363  virtual void setAttribute(s32 index, video::SColor color) = 0;
364 
365  /*
366 
367  SColorf Attribute
368 
369  */
370 
372  virtual void addColorf(const c8* attributeName, video::SColorf value) = 0;
373 
375  virtual void setAttribute(const c8* attributeName, video::SColorf color) = 0;
376 
380  virtual video::SColorf getAttributeAsColorf(const c8* attributeName) = 0;
381 
384  virtual video::SColorf getAttributeAsColorf(s32 index) = 0;
385 
387  virtual void setAttribute(s32 index, video::SColorf color) = 0;
388 
389 
390  /*
391 
392  Vector3d Attribute
393 
394  */
395 
397  virtual void addVector3d(const c8* attributeName, core::vector3df value) = 0;
398 
400  virtual void setAttribute(const c8* attributeName, core::vector3df v) = 0;
401 
405  virtual core::vector3df getAttributeAsVector3d(const c8* attributeName) = 0;
406 
409  virtual core::vector3df getAttributeAsVector3d(s32 index) = 0;
410 
412  virtual void setAttribute(s32 index, core::vector3df v) = 0;
413 
414  /*
415 
416  Position2d Attribute
417 
418  */
419 
421  virtual void addPosition2d(const c8* attributeName, core::position2di value) = 0;
422 
424  virtual void setAttribute(const c8* attributeName, core::position2di v) = 0;
425 
429  virtual core::position2di getAttributeAsPosition2d(const c8* attributeName) = 0;
430 
434 
436  virtual void setAttribute(s32 index, core::position2di v) = 0;
437 
438  /*
439 
440  Rectangle Attribute
441 
442  */
443 
445  virtual void addRect(const c8* attributeName, core::rect<s32> value) = 0;
446 
448  virtual void setAttribute(const c8* attributeName, core::rect<s32> v) = 0;
449 
453  virtual core::rect<s32> getAttributeAsRect(const c8* attributeName) = 0;
454 
457  virtual core::rect<s32> getAttributeAsRect(s32 index) = 0;
458 
460  virtual void setAttribute(s32 index, core::rect<s32> v) = 0;
461 
462 
463  /*
464  matrix attribute
465  */
466 
468  virtual void addMatrix(const c8* attributeName, const core::matrix4& v) = 0;
469 
471  virtual void setAttribute(const c8* attributeName, const core::matrix4& v) = 0;
472 
476  virtual core::matrix4 getAttributeAsMatrix(const c8* attributeName) = 0;
477 
480  virtual core::matrix4 getAttributeAsMatrix(s32 index) = 0;
481 
483  virtual void setAttribute(s32 index, const core::matrix4& v) = 0;
484 
485  /*
486  quaternion attribute
487 
488  */
489 
491  virtual void addQuaternion(const c8* attributeName, core::quaternion v) = 0;
492 
494  virtual void setAttribute(const c8* attributeName, core::quaternion v) = 0;
495 
499  virtual core::quaternion getAttributeAsQuaternion(const c8* attributeName) = 0;
500 
503  virtual core::quaternion getAttributeAsQuaternion(s32 index) = 0;
504 
506  virtual void setAttribute(s32 index, core::quaternion v) = 0;
507 
508  /*
509 
510  3d bounding box
511 
512  */
513 
515  virtual void addBox3d(const c8* attributeName, core::aabbox3df v) = 0;
516 
518  virtual void setAttribute(const c8* attributeName, core::aabbox3df v) = 0;
519 
523  virtual core::aabbox3df getAttributeAsBox3d(const c8* attributeName) = 0;
524 
527  virtual core::aabbox3df getAttributeAsBox3d(s32 index) = 0;
528 
530  virtual void setAttribute(s32 index, core::aabbox3df v) = 0;
531 
532  /*
533 
534  plane
535 
536  */
537 
539  virtual void addPlane3d(const c8* attributeName, core::plane3df v) = 0;
540 
542  virtual void setAttribute(const c8* attributeName, core::plane3df v) = 0;
543 
547  virtual core::plane3df getAttributeAsPlane3d(const c8* attributeName) = 0;
548 
551  virtual core::plane3df getAttributeAsPlane3d(s32 index) = 0;
552 
554  virtual void setAttribute(s32 index, core::plane3df v) = 0;
555 
556 
557  /*
558 
559  3d triangle
560 
561  */
562 
564  virtual void addTriangle3d(const c8* attributeName, core::triangle3df v) = 0;
565 
567  virtual void setAttribute(const c8* attributeName, core::triangle3df v) = 0;
568 
572  virtual core::triangle3df getAttributeAsTriangle3d(const c8* attributeName) = 0;
573 
577 
579  virtual void setAttribute(s32 index, core::triangle3df v) = 0;
580 
581 
582  /*
583 
584  line 2d
585 
586  */
587 
589  virtual void addLine2d(const c8* attributeName, core::line2df v) = 0;
590 
592  virtual void setAttribute(const c8* attributeName, core::line2df v) = 0;
593 
597  virtual core::line2df getAttributeAsLine2d(const c8* attributeName) = 0;
598 
601  virtual core::line2df getAttributeAsLine2d(s32 index) = 0;
602 
604  virtual void setAttribute(s32 index, core::line2df v) = 0;
605 
606 
607  /*
608 
609  line 3d
610 
611  */
612 
614  virtual void addLine3d(const c8* attributeName, core::line3df v) = 0;
615 
617  virtual void setAttribute(const c8* attributeName, core::line3df v) = 0;
618 
622  virtual core::line3df getAttributeAsLine3d(const c8* attributeName) = 0;
623 
626  virtual core::line3df getAttributeAsLine3d(s32 index) = 0;
627 
629  virtual void setAttribute(s32 index, core::line3df v) = 0;
630 
631 
632  /*
633 
634  Texture Attribute
635 
636  */
637 
639  virtual void addTexture(const c8* attributeName, video::ITexture* texture) = 0;
640 
642  virtual void setAttribute(const c8* attributeName, video::ITexture* texture ) = 0;
643 
646  virtual video::ITexture* getAttributeAsTexture(const c8* attributeName) = 0;
647 
650  virtual video::ITexture* getAttributeAsTexture(s32 index) = 0;
651 
653  virtual void setAttribute(s32 index, video::ITexture* texture) = 0;
654 
655 
656  /*
657 
658  User Pointer Attribute
659 
660  */
661 
663  virtual void addUserPointer(const c8* attributeName, void* userPointer) = 0;
664 
666  virtual void setAttribute(const c8* attributeName, void* userPointer) = 0;
667 
670  virtual void* getAttributeAsUserPointer(const c8* attributeName) = 0;
671 
674  virtual void* getAttributeAsUserPointer(s32 index) = 0;
675 
677  virtual void setAttribute(s32 index, void* userPointer) = 0;
678 
679 };
680 
681 } // end namespace io
682 } // end namespace irr
683 
684 #endif
685 
686 
687 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Tue Jun 5 2012 17:57:11 by Doxygen (1.8.1)