22 #ifndef __ND_SAVE_LOAD_SYSTEM_H__
23 #define __ND_SAVE_LOAD_SYSTEM_H__
25 #include "ndCoreStdafx.h"
28 #include "ndClassAlloc.h"
68 ,m_parentModelNode(
nullptr)
73 :m_assetPath(desc.m_assetPath)
75 ,m_bodyMap(desc.m_bodyMap)
76 ,m_modelMap(desc.m_modelMap)
77 ,m_shapeMap(desc.m_shapeMap)
78 ,m_jointMap(desc.m_jointMap)
79 ,m_parentModelNode(desc.m_parentModelNode)
83 const char* m_assetPath;
111 :m_assetPath(desc.m_assetPath)
112 ,m_assetName(desc.m_assetName)
113 ,m_rootNode(rootNode)
114 ,m_nodeNodeHash(desc.m_nodeNodeHash)
115 ,m_shapeNodeHash(desc.m_shapeNodeHash)
116 ,m_body0NodeHash(desc.m_body0NodeHash)
117 ,m_body1NodeHash(desc.m_body1NodeHash)
118 ,m_assetIndex(desc.m_assetIndex)
119 ,m_shapeMap(desc.m_shapeMap)
120 ,m_bodyMap(desc.m_bodyMap)
121 ,m_jointMap(desc.m_jointMap)
125 const char* m_assetPath;
126 const char* m_assetName;
128 ndInt32 m_nodeNodeHash;
129 ndInt32 m_shapeNodeHash;
130 ndInt32 m_body0NodeHash;
131 ndInt32 m_body1NodeHash;
132 mutable ndInt32 m_assetIndex;
142 virtual void* CreateClass(
const ndLoadDescriptor&)
150 D_CORE_API
void RegisterLoaderClass(
const char*
const className,
ndLoadSaveBase*
const loaderClass);
158 RegisterLoaderClass(className,
this);
167 #define D_CLASS_REFLECTION(Class) \
168 const virtual char* SubClassName() {return #Class;} \
169 static const char* ClassName() {return #Class;} \
170 static ndLoadSaveClass<Class> __classLoader__;
172 #define D_CLASS_REFLECTION_IMPLEMENT_LOADER(Class) \
173 ndLoadSaveClass<Class> Class::__classLoader__(#Class);
175 #define D_CLASS_REFLECTION_LOAD_NODE(castType,className,desc) \
176 (castType*)LoadClass(className, desc);