Retour
Version Originale

./aip/1.8aipmod/include/IAttributeExchangingObject.h :


// Copyright (C) 2002-2011 Nikolaus Gebhardt

// This file is part of the "Irrlicht Engine".

// For conditions of distribution and use, see copyright notice in irrlicht.h


#ifndef __I_ATTRIBUTE_EXCHANGING_OBJECT_H_INCLUDED__
#define __I_ATTRIBUTE_EXCHANGING_OBJECT_H_INCLUDED__

#include "IReferenceCounted.h"


namespace irr
{

namespace io
{

class IAttributes;

//! Enumeration flags passed through SAttributeReadWriteOptions to the IAttributeExchangingObject object

enum E_ATTRIBUTE_READ_WRITE_FLAGS
{
	//! Serialization/Deserializion is done for an xml file

	EARWF_FOR_FILE = 0x00000001,

	//! Serialization/Deserializion is done for an editor property box

	EARWF_FOR_EDITOR = 0x00000002,

	//! When writing filenames, relative paths should be used

	EARWF_USE_RELATIVE_PATHS = 0x00000004
};


//! struct holding data describing options

struct SAttributeReadWriteOptions
{
	//! Constructor

	SAttributeReadWriteOptions()
		: Flags(0), Filename(0)
	{
	}

	//! Combination of E_ATTRIBUTE_READ_WRITE_FLAGS or other, custom ones

	s32 Flags;

	//! Optional filename

	const c8* Filename;
};


//! An object which is able to serialize and deserialize its attributes into an attributes object

class IAttributeExchangingObject : virtual public IReferenceCounted
{
public:

	//! Writes attributes of the object.

	/** Implement this to expose the attributes of your scene node animator for
	scripting languages, editors, debuggers or xml serialization purposes. */
	virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}

	//! Reads attributes of the object.

	/** Implement this to set the attributes of your scene node animator for
	scripting languages, editors, debuggers or xml deserialization purposes. */
	virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) {}

};

} // end namespace io

} // end namespace irr


#endif

Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
34 invités en ligne
Aucun membre connecté
RSS Feed