MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / CloneObject

Function CloneObject

Source/Engine/ContentImporters/ImportModel.cpp:203–228  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

201}
202
203void CloneObject(rapidjson_flax::StringBuffer& buffer, SceneObject* src, SceneObject* dst, bool stripName = false)
204{
205 // Serialize source
206 buffer.Clear();
207 CompactJsonWriter writer(buffer);
208 writer.StartObject();
209 const void* defaultInstance = src->GetType().GetDefaultInstance();
210 src->Serialize(writer, defaultInstance);
211 writer.EndObject();
212
213 // Parse json
214 rapidjson_flax::Document document;
215 document.Parse(buffer.GetString(), buffer.GetSize());
216
217 // Strip unwanted data
218 document.RemoveMember("ID");
219 document.RemoveMember("ParentID");
220 document.RemoveMember("PrefabID");
221 document.RemoveMember("PrefabObjectID");
222 if (stripName)
223 document.RemoveMember("Name");
224
225 // Deserialize destination
226 auto modifier = Cache::ISerializeModifier.Get();
227 dst->Deserialize(document, &*modifier);
228}
229
230CreateAssetResult ImportModel::Import(CreateAssetContext& context)
231{

Callers 1

CreatePrefabMethod · 0.85

Calls 12

RemoveMemberMethod · 0.80
ClearMethod · 0.45
StartObjectMethod · 0.45
GetDefaultInstanceMethod · 0.45
GetTypeMethod · 0.45
SerializeMethod · 0.45
EndObjectMethod · 0.45
ParseMethod · 0.45
GetStringMethod · 0.45
GetSizeMethod · 0.45
GetMethod · 0.45
DeserializeMethod · 0.45

Tested by

no test coverage detected