5#ifndef __I_ATTRIBUTES_H_INCLUDED__
6#define __I_ATTRIBUTES_H_INCLUDED__
8#include "IReferenceCounted.h"
14#include "triangle3d.h"
15#include "position2d.h"
17#include "dimension2d.h"
19#include "quaternion.h"
21#include "triangle3d.h"
26#include "IXMLReader.h"
27#include "EAttributes.h"
85 virtual bool read(
io::IXMLReader* reader,
bool readCurrentElementOnly=
false,
const wchar_t* elementName=0) = 0;
91 virtual bool write(
io::IXMLWriter* writer,
bool writeXMLHeader=
false,
const wchar_t* elementName=0) = 0;
102 virtual void addUInt(
const c8* attributeName,
u32 value) = 0;
113 virtual u32 getAttributeAsUInt(
const c8* attributeName,
irr::u32 defaultNotFound = 0)
const = 0;
118 virtual u32 getAttributeAsUInt(
s32 index)
const = 0;
211 virtual void addString(
const c8* attributeName,
const wchar_t* value) = 0;
246 virtual void addBinary(
const c8* attributeName,
void* data,
s32 dataSizeInBytes) = 0;
303 virtual void addBool(
const c8* attributeName,
bool value) = 0;
328 virtual void addEnum(
const c8* attributeName,
const c8* enumValue,
const c8*
const* enumerationLiterals) = 0;
331 virtual void addEnum(
const c8* attributeName,
s32 enumValue,
const c8*
const* enumerationLiterals) = 0;
334 virtual void setAttribute(
const c8* attributeName,
const c8* enumValue,
const c8*
const* enumerationLiterals) = 0;
IReferenceCounted()
Constructor.
Definition IReferenceCounted.h:50
Self reallocating template array (like stl vector) with additional features.
Definition irrArray.h:23
Specifies a 2 dimensional size.
Definition dimension2d.h:21
Quaternion class for representing rotations.
Definition quaternion.h:27
Rectangle template.
Definition rect.h:27
Provides a generic interface for attributes and their values and the possiblity to serialize them.
Definition IAttributes.h:42
virtual void addEnum(const c8 *attributeName, s32 enumValue, const c8 *const *enumerationLiterals)=0
Adds an attribute as enum.
virtual void setAttribute(s32 index, bool value)=0
Sets an attribute as boolean value.
virtual core::vector2df getAttributeAsVector2d(const c8 *attributeName, const core::vector2df &defaultNotFound=core::vector2df(0, 0))=0
virtual void setAttribute(const c8 *attributeName, s32 value)=0
Sets an attribute as integer value.
virtual void setAttribute(const c8 *attributeName, const core::plane3df &v)=0
Sets an attribute as 3d plane.
virtual void addUserPointer(const c8 *attributeName, void *userPointer)=0
Adds an attribute as user pointner.
virtual void setAttribute(const c8 *attributeName, const core::line2df &v)=0
Sets an attribute as a 2d line.
virtual void addString(const c8 *attributeName, const c8 *value)=0
Adds an attribute as string.
virtual s32 getAttributeAsInt(const c8 *attributeName, irr::s32 defaultNotFound=0) const =0
virtual void setAttribute(s32 index, const core::aabbox3df &v)=0
Sets an attribute as axis aligned bounding box.
virtual void setAttribute(s32 index, const c8 *value)=0
virtual void addRect(const c8 *attributeName, const core::rect< s32 > &value)=0
Adds an attribute as rectangle.
virtual core::position2di getAttributeAsPosition2d(s32 index)=0
virtual void setAttribute(s32 index, const core::vector2df &v)=0
Sets an attribute as 2d vector.
virtual void setAttribute(const c8 *attributeName, bool value)=0
Sets an attribute as boolean value.
virtual void setAttribute(const c8 *attributeName, const core::aabbox3df &v)=0
Sets an attribute as axis aligned bounding box.
virtual void addLine2d(const c8 *attributeName, const core::line2df &v)=0
Adds an attribute as a 2d line.
virtual void setAttribute(s32 index, void *data, s32 dataSizeInBytes)=0
Sets an attribute as binary data.
virtual void setAttribute(const c8 *attributeName, void *data, s32 dataSizeInBytes)=0
Sets an attribute as binary data.
virtual core::vector3df getAttributeAsVector3d(const c8 *attributeName, const core::vector3df &defaultNotFound=core::vector3df(0, 0, 0))=0
virtual E_ATTRIBUTE_TYPE getAttributeType(s32 index)=0
virtual core::line3df getAttributeAsLine3d(const c8 *attributeName, const core::line3df &defaultNotFound=core::line3df(0, 0, 0, 0, 0, 0))=0
virtual void addColorf(const c8 *attributeName, video::SColorf value)=0
Adds an attribute as floating point color.
virtual void setAttribute(s32 index, video::ITexture *texture, const io::path &filename="")=0
Sets an attribute as texture reference.
virtual void addBool(const c8 *attributeName, bool value)=0
Adds an attribute as bool.
virtual video::SColorf getAttributeAsColorf(s32 index)=0
virtual void setAttribute(s32 index, const core::quaternion &v)=0
Sets an attribute as quaternion.
virtual core::array< core::stringw > getAttributeAsArray(s32 index)=0
virtual void setAttribute(const c8 *attributeName, video::SColorf color)=0
Sets a attribute as floating point color.
virtual void setAttribute(s32 index, const core::position2di &v)=0
Sets an attribute as 2d position.
virtual video::ITexture * getAttributeAsTexture(s32 index)=0
virtual void setAttribute(const c8 *attributeName, const core::vector3df &v)=0
Sets a attribute as 3d vector.
virtual core::aabbox3df getAttributeAsBox3d(s32 index)=0
virtual void addTexture(const c8 *attributeName, video::ITexture *texture, const io::path &filename="")=0
Adds an attribute as texture reference.
virtual void addPlane3d(const c8 *attributeName, const core::plane3df &v)=0
Adds an attribute as 3d plane.
virtual void setAttribute(s32 index, const core::plane3df &v)=0
Sets an attribute as 3d plane.
virtual void setAttribute(const c8 *attributeName, const core::vector2df &v)=0
Sets a attribute as 2d vector.
virtual void setAttribute(s32 index, const core::dimension2d< u32 > &v)=0
Sets an attribute as dimension2d.
virtual core::quaternion getAttributeAsQuaternion(const c8 *attributeName, const core::quaternion &defaultNotFound=core::quaternion(0, 1, 0, 0))=0
virtual void addLine3d(const c8 *attributeName, const core::line3df &v)=0
Adds an attribute as a 3d line.
virtual void setAttribute(const c8 *attributeName, const c8 *enumValue, const c8 *const *enumerationLiterals)=0
Sets an attribute as enumeration.
virtual core::dimension2d< u32 > getAttributeAsDimension2d(const c8 *attributeName, const core::dimension2d< u32 > &defaultNotFound=core::dimension2d< u32 >())=0
virtual void setAttribute(s32 index, const core::vector3df &v)=0
Sets an attribute as vector.
virtual const wchar_t * getAttributeTypeString(s32 index, const wchar_t *defaultNotFound=L"unknown")=0
virtual void addBox3d(const c8 *attributeName, const core::aabbox3df &v)=0
Adds an attribute as axis aligned bounding box.
virtual void setAttribute(const c8 *attributeName, const core::quaternion &v)=0
Sets an attribute as quaternion.
virtual void addDouble(const c8 *attributeName, f64 value)=0
Adds an attribute as double.
virtual void setAttribute(const c8 *attributeName, void *userPointer)=0
Sets an attribute as user pointer.
virtual bool write(io::IXMLWriter *writer, bool writeXMLHeader=false, const wchar_t *elementName=0)=0
virtual void addVector3d(const c8 *attributeName, const core::vector3df &value)=0
Adds an attribute as 3d vector.
virtual void setAttribute(s32 index, const core::line3df &v)=0
Sets an attribute as a 3d line.
virtual core::stringw getAttributeAsStringW(s32 index)=0
virtual core::stringc getAttributeAsString(const c8 *attributeName, const core::stringc &defaultNotFound=core::stringc())=0
virtual void setAttribute(const c8 *attributeName, const wchar_t *value)=0
virtual void setAttribute(s32 index, const core::triangle3df &v)=0
Sets an attribute as 3d triangle.
virtual void setAttribute(s32 index, const wchar_t *value)=0
virtual void setAttribute(s32 index, const core::rect< s32 > &v)=0
Sets an attribute as rectangle.
virtual s32 getAttributeAsInt(s32 index) const =0
virtual void addBinary(const c8 *attributeName, void *data, s32 dataSizeInBytes)=0
Adds an attribute as binary data.
virtual void addString(const c8 *attributeName, const wchar_t *value)=0
Adds an attribute as string.
virtual void addPosition2d(const c8 *attributeName, const core::position2di &value)=0
Adds an attribute as 2d position.
virtual void setAttribute(s32 index, f32 value)=0
Sets an attribute as float value.
virtual void addTriangle3d(const c8 *attributeName, const core::triangle3df &v)=0
Adds an attribute as 3d triangle.
virtual void getAttributeEnumerationLiteralsOfEnumeration(const c8 *attributeName, core::array< core::stringc > &outLiterals)=0
virtual const c8 * getAttributeName(s32 index)=0
virtual void addQuaternion(const c8 *attributeName, const core::quaternion &v)=0
Adds an attribute as quaternion.
virtual core::triangle3df getAttributeAsTriangle3d(s32 index)=0
virtual void addMatrix(const c8 *attributeName, const core::matrix4 &v)=0
Adds an attribute as matrix.
virtual s32 getAttributeAsEnumeration(const c8 *attributeName, const c8 *const *enumerationLiteralsToUse)=0
Gets an attribute as enumeration.
virtual u32 getAttributeCount() const =0
Returns amount of attributes in this collection of attributes.
virtual core::position2di getAttributeAsPosition2d(const c8 *attributeName, const core::position2di &defaultNotFound=core::position2di(0, 0))=0
virtual core::vector3df getAttributeAsVector3d(s32 index)=0
virtual core::vector2df getAttributeAsVector2d(s32 index)=0
virtual void setAttribute(s32 index, video::SColor color)=0
Sets an attribute as color.
virtual f64 getAttributeAsDouble(s32 index)=0
virtual core::dimension2d< u32 > getAttributeAsDimension2d(s32 index)=0
virtual void getAttributeAsString(const c8 *attributeName, c8 *target)=0
virtual void setAttribute(const c8 *attributeName, video::ITexture *texture, const io::path &filename="")=0
Sets an attribute as texture reference.
virtual void addFloat(const c8 *attributeName, f32 value)=0
Adds an attribute as float.
virtual bool read(io::IXMLReader *reader, bool readCurrentElementOnly=false, const wchar_t *elementName=0)=0
virtual s32 getAttributeAsEnumeration(s32 index, const c8 *const *enumerationLiteralsToUse)=0
Gets an attribute as enumeration.
virtual void setAttribute(s32 index, const c8 *enumValue, const c8 *const *enumerationLiterals)=0
Sets an attribute as enumeration.
virtual f64 getAttributeAsDouble(const c8 *attributeName, irr::f64 defaultNotFound=0.0)=0
virtual core::rect< s32 > getAttributeAsRect(const c8 *attributeName, const core::rect< s32 > &defaultNotFound=core::rect< s32 >())=0
virtual void setAttribute(const c8 *attributeName, const core::array< core::stringw > &value)=0
virtual void setAttribute(const c8 *attributeName, const core::triangle3df &v)=0
Sets an attribute as 3d trianle.
virtual void getAttributeAsStringW(const c8 *attributeName, wchar_t *target)=0
virtual core::stringc getAttributeAsString(s32 index)=0
virtual core::line2df getAttributeAsLine2d(const c8 *attributeName, const core::line2df &defaultNotFound=core::line2df(0, 0, 0, 0))=0
virtual void setAttribute(s32 index, f64 value)=0
Sets an attribute as float value.
virtual video::SColor getAttributeAsColor(const c8 *attributeName, const video::SColor &defaultNotFound=video::SColor(0))=0
virtual f32 getAttributeAsFloat(s32 index)=0
virtual void setAttribute(s32 index, video::SColorf color)=0
Sets an attribute as floating point color.
virtual video::ITexture * getAttributeAsTexture(const c8 *attributeName, video::ITexture *defaultNotFound=0)=0
virtual void setAttribute(const c8 *attributeName, const c8 *value)=0
virtual core::line2df getAttributeAsLine2d(s32 index)=0
virtual void setAttribute(const c8 *attributeName, f64 value)=0
Sets a attribute as double value.
virtual void setAttribute(s32 index, const core::array< core::stringw > &value)=0
Sets an attribute as an array of wide strings.
virtual const c8 * getAttributeAsEnumeration(s32 index)=0
virtual void setAttribute(s32 index, s32 value)=0
Sets an attribute as integer value.
virtual core::rect< s32 > getAttributeAsRect(s32 index)=0
virtual void setAttribute(s32 index, void *userPointer)=0
Sets an attribute as user pointer.
virtual core::matrix4 getAttributeAsMatrix(s32 index)=0
virtual core::plane3df getAttributeAsPlane3d(const c8 *attributeName, const core::plane3df &defaultNotFound=core::plane3df(0, 0, 0, 0, 1, 0))=0
virtual void clear()=0
Removes all attributes.
virtual core::line3df getAttributeAsLine3d(s32 index)=0
virtual void setAttribute(const c8 *attributeName, f32 value)=0
Sets a attribute as float value.
virtual void setAttribute(const c8 *attributeName, const core::position2di &v)=0
Sets a attribute as 2d position.
virtual core::array< core::stringw > getAttributeAsArray(const c8 *attributeName, const core::array< core::stringw > &defaultNotFound=core::array< core::stringw >())=0
virtual core::stringw getAttributeAsStringW(const c8 *attributeName, const core::stringw &defaultNotFound=core::stringw())=0
virtual void addDimension2d(const c8 *attributeName, const core::dimension2d< u32 > &value)=0
Adds an attribute as dimension2d.
virtual void addArray(const c8 *attributeName, const core::array< core::stringw > &value)=0
Adds an attribute as wide string array.
virtual s32 findAttribute(const c8 *attributeName) const =0
Returns attribute index from name, -1 if not found.
virtual core::aabbox3df getAttributeAsBox3d(const c8 *attributeName, const core::aabbox3df &defaultNotFound=core::aabbox3df(0, 0, 0, 0, 0, 0))=0
virtual void setAttribute(s32 index, const core::line2df &v)=0
Sets an attribute as a 2d line.
virtual void addColor(const c8 *attributeName, video::SColor value)=0
Adds an attribute as color.
virtual video::SColorf getAttributeAsColorf(const c8 *attributeName, const video::SColorf &defaultNotFound=video::SColorf(0))=0
virtual video::SColor getAttributeAsColor(s32 index)=0
virtual bool getAttributeAsBool(s32 index)=0
virtual bool getAttributeAsBool(const c8 *attributeName, bool defaultNotFound=false)=0
virtual void getAttributeAsBinaryData(const c8 *attributeName, void *outData, s32 maxSizeInBytes)=0
Gets an attribute as binary data.
virtual core::triangle3df getAttributeAsTriangle3d(const c8 *attributeName, const core::triangle3df &defaultNotFound=core::triangle3df(core::vector3df(0, 0, 0), core::vector3df(0, 0, 0), core::vector3df(0, 0, 0)))=0
virtual void setAttribute(const c8 *attributeName, const core::dimension2d< u32 > &v)=0
Sets an attribute as dimension2d.
virtual void setAttribute(const c8 *attributeName, const core::matrix4 &v)=0
Sets an attribute as matrix.
virtual const c8 * getAttributeAsEnumeration(const c8 *attributeName, const c8 *defaultNotFound=0)=0
virtual void getAttributeAsBinaryData(s32 index, void *outData, s32 maxSizeInBytes)=0
Gets an attribute as binary data.
virtual core::plane3df getAttributeAsPlane3d(s32 index)=0
virtual f32 getAttributeAsFloat(const c8 *attributeName, irr::f32 defaultNotFound=0.f)=0
virtual void setAttribute(s32 index, const core::matrix4 &v)=0
Sets an attribute as matrix.
virtual bool existsAttribute(const c8 *attributeName)=0
Returns if an attribute with a name exists.
virtual void getAttributeEnumerationLiteralsOfEnumeration(s32 index, core::array< core::stringc > &outLiterals)=0
virtual void setAttribute(const c8 *attributeName, const core::rect< s32 > &v)=0
Sets an attribute as rectangle.
virtual core::quaternion getAttributeAsQuaternion(s32 index)=0
virtual void addEnum(const c8 *attributeName, const c8 *enumValue, const c8 *const *enumerationLiterals)=0
Adds an attribute as enum.
virtual E_ATTRIBUTE_TYPE getAttributeType(const c8 *attributeName)=0
virtual void setAttribute(const c8 *attributeName, const core::line3df &v)=0
Sets an attribute as a 3d line.
virtual const wchar_t * getAttributeTypeString(const c8 *attributeName, const wchar_t *defaultNotFound=L"unknown")=0
virtual void addVector2d(const c8 *attributeName, const core::vector2df &value)=0
Adds an attribute as 2d vector.
virtual void * getAttributeAsUserPointer(const c8 *attributeName, void *defaultNotFound=0)=0
virtual core::matrix4 getAttributeAsMatrix(const c8 *attributeName, const core::matrix4 &defaultNotFound=core::matrix4())=0
virtual void addInt(const c8 *attributeName, s32 value)=0
Adds an attribute as integer.
virtual void * getAttributeAsUserPointer(s32 index)=0
virtual void setAttribute(const c8 *attributeName, video::SColor color)=0
Sets a attribute as color.
Interface providing methods for making it easier to write XML files.
Definition IXMLWriter.h:21
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
Class representing a 32 bit ARGB color.
Definition SColor.h:285
Class representing a color with four floats.
Definition SColor.h:542
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
Definition vector3d.h:445
triangle3d< f32 > triangle3df
Typedef for a f32 3d triangle.
Definition triangle3d.h:335
line2d< f32 > line2df
Typedef for an f32 line.
Definition line2d.h:266
vector2d< f32 > vector2df
Typedef for f32 2d vector.
Definition vector2d.h:323
vector2d< s32 > position2di
Definition position2d.h:24
line3d< f32 > line3df
Typedef for an f32 line.
Definition line3d.h:136
CMatrix4< f32 > matrix4
Typedef for f32 matrix.
Definition matrix4.h:2241
string< c8 > stringc
Typedef for character strings.
Definition irrString.h:1373
aabbox3d< f32 > aabbox3df
Typedef for a f32 3d bounding box.
Definition aabbox3d.h:351
plane3d< f32 > plane3df
Typedef for a f32 3d plane.
Definition plane3d.h:236
string< wchar_t > stringw
Typedef for wide character strings.
Definition irrString.h:1376
This namespace provides interfaces for input/output: Reading and writing files, accessing zip archive...
Definition EAttributes.h:11
E_ATTRIBUTE_TYPE
Types of attributes available for IAttributes.
Definition EAttributes.h:15
IIrrXMLReader< wchar_t, IReferenceCounted > IXMLReader
An xml reader for wide characters, derived from IReferenceCounted.
Definition IXMLReader.h:19
core::string< fschar_t > path
Type used for all file system related strings.
Definition path.h:17
The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done ...
Definition EDriverFeatures.h:11
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
float f32
32 bit floating point variable.
Definition irrTypes.h:104
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
double f64
64 bit floating point variable.
Definition irrTypes.h:108
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66