#ifndef __I_SCENE_NODE_H_INCLUDED__\r
#define __I_SCENE_NODE_H_INCLUDED__\r
\r
-#include "IAttributeExchangingObject.h"\r
+#include "IReferenceCounted.h"\r
#include "ESceneNodeTypes.h"\r
#include "ECullingTypes.h"\r
#include "EDebugSceneTypes.h"\r
example easily possible to attach a light to a moving car, or to place\r
a walking character on a moving platform on a moving ship.\r
*/\r
- class ISceneNode : virtual public io::IAttributeExchangingObject\r
+ class ISceneNode : virtual public IReferenceCounted\r
{\r
public:\r
\r
return ESNT_UNKNOWN;\r
}\r
\r
-\r
- //! Writes attributes of the scene node.\r
- /** Implement this to expose the attributes of your scene node\r
- for scripting languages, editors, debuggers or xml\r
- serialization purposes.\r
- \param out The attribute container to write into.\r
- \param options Additional options which might influence the\r
- serialization. */\r
- virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const _IRR_OVERRIDE_\r
- {\r
- if (!out)\r
- return;\r
- out->addString("Name", Name.c_str());\r
- out->addInt("Id", ID );\r
-\r
- out->addVector3d("Position", getPosition() );\r
- out->addVector3d("Rotation", getRotation() );\r
- out->addVector3d("Scale", getScale() );\r
-\r
- out->addBool("Visible", IsVisible );\r
- out->addInt("AutomaticCulling", AutomaticCullingState);\r
- out->addInt("DebugDataVisible", DebugDataVisible );\r
- out->addBool("IsDebugObject", IsDebugObject );\r
- }\r
-\r
-\r
- //! Reads attributes of the scene node.\r
- /** Implement this to set the attributes of your scene node for\r
- scripting languages, editors, debuggers or xml deserialization\r
- purposes.\r
- \param in The attribute container to read from.\r
- \param options Additional options which might influence the\r
- deserialization. */\r
- virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) _IRR_OVERRIDE_\r
- {\r
- if (!in)\r
- return;\r
- Name = in->getAttributeAsString("Name", Name);\r
- ID = in->getAttributeAsInt("Id", ID);\r
-\r
- setPosition(in->getAttributeAsVector3d("Position", RelativeTranslation));\r
- setRotation(in->getAttributeAsVector3d("Rotation", RelativeRotation));\r
- setScale(in->getAttributeAsVector3d("Scale", RelativeScale));\r
-\r
- IsVisible = in->getAttributeAsBool("Visible", IsVisible);\r
- if (in->existsAttribute("AutomaticCulling"))\r
- {\r
- s32 tmpState = in->getAttributeAsEnumeration("AutomaticCulling",\r
- scene::AutomaticCullingNames);\r
- if (tmpState != -1)\r
- AutomaticCullingState = (u32)tmpState;\r
- else\r
- AutomaticCullingState = in->getAttributeAsInt("AutomaticCulling");\r
- }\r
-\r
- DebugDataVisible = in->getAttributeAsInt("DebugDataVisible", DebugDataVisible);\r
- IsDebugObject = in->getAttributeAsBool("IsDebugObject", IsDebugObject);\r
-\r
- updateAbsolutePosition();\r
- }\r
-\r
//! Creates a clone of this scene node and its children.\r
/** \param newParent An optional new parent.\r
\param newManager An optional new scene manager.\r