aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h')
-rw-r--r--src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h b/src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h
new file mode 100644
index 0000000..5b13cdb
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/include/IAttributeExchangingObject.h
@@ -0,0 +1,71 @@
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_EXCHANGING_OBJECT_H_INCLUDED__
6#define __I_ATTRIBUTE_EXCHANGING_OBJECT_H_INCLUDED__
7
8#include "IReferenceCounted.h"
9
10
11namespace irr
12{
13
14namespace io
15{
16
17class IAttributes;
18
19//! Enumeration flags passed through SAttributeReadWriteOptions to the IAttributeExchangingObject object
20enum E_ATTRIBUTE_READ_WRITE_FLAGS
21{
22 //! Serialization/Deserializion is done for an xml file
23 EARWF_FOR_FILE = 0x00000001,
24
25 //! Serialization/Deserializion is done for an editor property box
26 EARWF_FOR_EDITOR = 0x00000002,
27
28 //! When writing filenames, relative paths should be used
29 EARWF_USE_RELATIVE_PATHS = 0x00000004
30};
31
32
33//! struct holding data describing options
34struct SAttributeReadWriteOptions
35{
36 //! Constructor
37 SAttributeReadWriteOptions()
38 : Flags(0), Filename(0)
39 {
40 }
41
42 //! Combination of E_ATTRIBUTE_READ_WRITE_FLAGS or other, custom ones
43 s32 Flags;
44
45 //! Optional filename
46 const fschar_t* Filename;
47};
48
49
50//! An object which is able to serialize and deserialize its attributes into an attributes object
51class IAttributeExchangingObject : virtual public IReferenceCounted
52{
53public:
54
55 //! Writes attributes of the object.
56 /** Implement this to expose the attributes of your scene node animator for
57 scripting languages, editors, debuggers or xml serialization purposes. */
58 virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
59
60 //! Reads attributes of the object.
61 /** Implement this to set the attributes of your scene node animator for
62 scripting languages, editors, debuggers or xml deserialization purposes. */
63 virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) {}
64
65};
66
67} // end namespace io
68} // end namespace irr
69
70#endif
71