| 201 | } |
| 202 | |
| 203 | void 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 | |
| 230 | CreateAssetResult ImportModel::Import(CreateAssetContext& context) |
| 231 | { |
no test coverage detected