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