1 // Copyright (C) 2002-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 __I_ATTRIBUTE_H_INCLUDED__
6 #define __I_ATTRIBUTE_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 "dimension2d.h"
18 #include "matrix4.h"
19 #include "quaternion.h"
20 #include "plane3d.h"
21 #include "triangle3d.h"
22 #include "line2d.h"
23 #include "line3d.h"
24 #include "irrString.h"
25 #include "irrArray.h"
26 #include "EAttributes.h"
27 
28 
29 namespace irr
30 {
31 namespace io
32 {
33 
34 class IAttribute : public virtual IReferenceCounted
35 {
36 public:
37 
~IAttribute()38 	virtual ~IAttribute() {};
39 
getInt()40 	virtual s32 getInt()				{ return 0; }
getFloat()41 	virtual f32 getFloat()				{ return 0; }
getColorf()42 	virtual video::SColorf getColorf()		{ return video::SColorf(1.0f,1.0f,1.0f,1.0f); }
getColor()43 	virtual video::SColor getColor()		{ return video::SColor(255,255,255,255); }
getString()44 	virtual core::stringc getString()		{ return core::stringc(getStringW().c_str()); }
getStringW()45 	virtual core::stringw getStringW()		{ return core::stringw(); }
getArray()46 	virtual core::array<core::stringw> getArray()	{ return core::array<core::stringw>(); };
getBool()47 	virtual bool getBool()				{ return false; }
getBinary(void * outdata,s32 maxLength)48 	virtual void getBinary(void* outdata, s32 maxLength) {};
getVector()49 	virtual core::vector3df getVector()		{ return core::vector3df(); }
getPosition()50 	virtual core::position2di getPosition()	{ return core::position2di(); }
getRect()51 	virtual core::rect<s32> getRect()		{ return core::rect<s32>(); }
getQuaternion()52 	virtual core::quaternion getQuaternion(){ return core::quaternion(); }
getMatrix()53 	virtual core::matrix4 getMatrix()		{ return core::matrix4(); }
getTriangle()54 	virtual core::triangle3df getTriangle()		{ return core::triangle3df(); }
getVector2d()55 	virtual core::vector2df getVector2d()		{ return core::vector2df(); }
getVector2di()56 	virtual core::vector2di getVector2di()		{ return core::vector2di(); }
getLine2d()57 	virtual core::line2df getLine2d()		{ return core::line2df(); }
getLine2di()58 	virtual core::line2di getLine2di()		{ return core::line2di(); }
getLine3d()59 	virtual core::line3df getLine3d()		{ return core::line3df(); }
getLine3di()60 	virtual core::line3di getLine3di()		{ return core::line3di(); }
getDimension2d()61 	virtual core::dimension2du getDimension2d()	{ return core::dimension2du(); }
getBBox()62 	virtual core::aabbox3d<f32> getBBox()		{ return core::aabbox3d<f32>(); }
getPlane()63 	virtual core::plane3df getPlane()		{ return core::plane3df(); }
64 
getTexture()65 	virtual video::ITexture* getTexture()		{ return 0; }
getEnum()66 	virtual const char* getEnum()			{ return 0; }
getUserPointer()67 	virtual void* getUserPointer()			{ return 0; }
68 
setInt(s32 intValue)69 	virtual void setInt(s32 intValue)		{};
setFloat(f32 floatValue)70 	virtual void setFloat(f32 floatValue)		{};
setString(const char * text)71 	virtual void setString(const char* text)	{};
setString(const wchar_t * text)72 	virtual void setString(const wchar_t* text){ setString(core::stringc(text).c_str()); };
setArray(const core::array<core::stringw> & arr)73 	virtual void setArray(const core::array<core::stringw>& arr )	{};
setColor(video::SColorf color)74 	virtual void setColor(video::SColorf color)	{};
setColor(video::SColor color)75 	virtual void setColor(video::SColor color)	{};
setBool(bool boolValue)76 	virtual void setBool(bool boolValue)		{};
setBinary(void * data,s32 maxLenght)77 	virtual void setBinary(void* data, s32 maxLenght) {};
setVector(core::vector3df v)78 	virtual void setVector(core::vector3df v)	{};
setPosition(core::position2di v)79 	virtual void setPosition(core::position2di v)	{};
setRect(core::rect<s32> v)80 	virtual void setRect(core::rect<s32> v)		{};
setQuaternion(core::quaternion v)81 	virtual void setQuaternion(core::quaternion v) {};
setMatrix(core::matrix4 v)82 	virtual void setMatrix(core::matrix4 v) {};
setTriangle(core::triangle3df v)83 	virtual void setTriangle(core::triangle3df v) {};
setVector2d(core::vector2df v)84 	virtual void setVector2d(core::vector2df v) {};
setVector2d(core::vector2di v)85 	virtual void setVector2d(core::vector2di v) {};
setLine2d(core::line2df v)86 	virtual void setLine2d(core::line2df v) {};
setLine2d(core::line2di v)87 	virtual void setLine2d(core::line2di v) {};
setLine3d(core::line3df v)88 	virtual void setLine3d(core::line3df v) {};
setLine3d(core::line3di v)89 	virtual void setLine3d(core::line3di v) {};
setDimension2d(core::dimension2du v)90 	virtual void setDimension2d(core::dimension2du v) {};
setBBox(core::aabbox3d<f32> v)91 	virtual void setBBox(core::aabbox3d<f32> v) {};
setPlane(core::plane3df v)92 	virtual void setPlane(core::plane3df v) {};
setUserPointer(void * v)93 	virtual void setUserPointer(void* v)	{};
94 
setEnum(const char * enumValue,const char * const * enumerationLiterals)95 	virtual void setEnum(const char* enumValue, const char* const* enumerationLiterals) {};
setTexture(video::ITexture *,const path & filename)96 	virtual void setTexture(video::ITexture*, const path& filename)	{};
97 
98 	core::stringc Name;
99 
100 	virtual E_ATTRIBUTE_TYPE getType() const = 0;
101 	virtual const wchar_t* getTypeString() const = 0;
102 };
103 
104 } // end namespace io
105 } // end namespace irr
106 
107 #endif
108