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

Method Deserialize

Source/Engine/Terrain/Terrain.cpp:745–855  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

743}
744
745void Terrain::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
746{
747 PROFILE_MEM(LevelTerrain);
748
749 // Base
750 Actor::Deserialize(stream, modifier);
751
752 auto member = stream.FindMember("LODBias");
753 if (member != stream.MemberEnd() && member->value.IsInt())
754 {
755 SetLODBias(member->value.GetInt());
756 }
757
758 member = stream.FindMember("ForcedLOD");
759 if (member != stream.MemberEnd() && member->value.IsInt())
760 {
761 SetForcedLOD(member->value.GetInt());
762 }
763
764 member = stream.FindMember("CollisionLOD");
765 if (member != stream.MemberEnd() && member->value.IsInt())
766 {
767 SetCollisionLOD(member->value.GetInt());
768 }
769
770 DESERIALIZE_MEMBER(LODDistribution, _lodDistribution);
771 DESERIALIZE_MEMBER(ScaleInLightmap, _scaleInLightmap);
772 DESERIALIZE_MEMBER(BoundsExtent, _boundsExtent);
773 DESERIALIZE_MEMBER(PhysicalMaterials, _physicalMaterials);
774 DESERIALIZE(Material);
775 DESERIALIZE(DrawModes);
776
777 member = stream.FindMember("LODCount");
778 if (member != stream.MemberEnd() && member->value.IsInt())
779 {
780 _lodCount = member->value.GetInt();
781 }
782
783 member = stream.FindMember("ChunkSize");
784 if (member != stream.MemberEnd() && member->value.IsInt())
785 {
786 _chunkSize = member->value.GetInt();
787 }
788
789 member = stream.FindMember("Patches");
790 if (member != stream.MemberEnd() && member->value.IsArray())
791 {
792 auto& patchesData = member->value;
793 const auto patchesCount = (int32)patchesData.Size();
794
795 // Update patches if collection size is different
796 if (patchesCount != _patches.Count())
797 {
798 _patches.ClearDelete();
799
800 for (int32 i = 0; i < patchesCount; i++)
801 {
802 auto patch = ::New<TerrainPatch>();

Callers 1

TestDeserializeMethod · 0.45

Calls 11

SetLODBiasFunction · 0.85
SetForcedLODFunction · 0.85
FindMemberMethod · 0.80
MemberEndMethod · 0.80
GetIntMethod · 0.80
DeserializeFunction · 0.50
SizeMethod · 0.45
CountMethod · 0.45
ClearDeleteMethod · 0.45
InitMethod · 0.45
AddMethod · 0.45

Tested by 1

TestDeserializeMethod · 0.36