Minor imporvements

This commit is contained in:
Wojtek Figat
2026-03-30 10:14:25 +02:00
parent 039407b6ee
commit 408c6d96b1
3 changed files with 31 additions and 29 deletions

View File

@@ -61,7 +61,7 @@ void SceneObject::BreakPrefabLink()
String SceneObject::GetNamePath(Char separatorChar) const
{
Array<StringView> names;
Array<StringView, InlinedAllocation<8>> names;
const Actor* a = dynamic_cast<const Actor*>(this);
if (!a)
a = GetParent();

View File

@@ -73,6 +73,13 @@ void ChangeIds(rapidjson_flax::Value& obj, rapidjson_flax::Document& document, c
}
}
void JsonTools::MergeObjects(Value& target, Value& source, Value::AllocatorType& allocator)
{
ASSERT(target.IsObject() && source.IsObject());
for (auto itr = source.MemberBegin(); itr != source.MemberEnd(); ++itr)
target.AddMember(itr->name, itr->value, allocator);
}
void JsonTools::ChangeIds(Document& doc, const Dictionary<Guid, Guid>& mapping)
{
if (mapping.IsEmpty())
@@ -236,6 +243,14 @@ Plane JsonTools::GetPlane(const Value& value)
return result;
}
Rectangle JsonTools::GetRectangle(const Value& value)
{
return Rectangle(
GetVector2(value, "Location", Vector2::Zero),
GetVector2(value, "Size", Vector2::Zero)
);
}
BoundingSphere JsonTools::GetBoundingSphere(const Value& value)
{
BoundingSphere result;
@@ -367,4 +382,16 @@ CommonValue JsonTools::GetCommonValue(const Value& value)
}
return result;
}
bool JsonTools::GetGuidIfValid(Guid& result, const Value& node, const char* name)
{
auto member = node.FindMember(name);
if (member != node.MemberEnd())
{
result = GetGuid(member->value);
return result.IsValid();
}
return false;
}
PRAGMA_ENABLE_DEPRECATION_WARNINGS

View File

@@ -37,13 +37,7 @@ public:
MergeObjects(target, source, target.GetAllocator());
}
static void MergeObjects(Value& target, Value& source, Value::AllocatorType& allocator)
{
ASSERT(target.IsObject() && source.IsObject());
for (auto itr = source.MemberBegin(); itr != source.MemberEnd(); ++itr)
target.AddMember(itr->name, itr->value, allocator);
}
static void MergeObjects(Value& target, Value& source, Value::AllocatorType& allocator);
static void ChangeIds(Document& doc, const Dictionary<Guid, Guid, HeapAllocation>& mapping);
public:
@@ -77,11 +71,9 @@ public:
static Float2 GetFloat2(const Value& value);
static Float3 GetFloat3(const Value& value);
static Float4 GetFloat4(const Value& value);
static Double2 GetDouble2(const Value& value);
static Double3 GetDouble3(const Value& value);
static Double4 GetDouble4(const Value& value);
static Color GetColor(const Value& value);
static Quaternion GetQuaternion(const Value& value);
static Ray GetRay(const Value& value);
@@ -89,15 +81,7 @@ public:
static Transform GetTransform(const Value& value);
static void GetTransform(Transform& result, const Value& value);
static Plane GetPlane(const Value& value);
static Rectangle GetRectangle(const Value& value)
{
return Rectangle(
GetVector2(value, "Location", Vector2::Zero),
GetVector2(value, "Size", Vector2::Zero)
);
}
static Rectangle GetRectangle(const Value& value);
static BoundingSphere GetBoundingSphere(const Value& value);
static BoundingBox GetBoundingBox(const Value& value);
static Guid GetGuid(const Value& value);
@@ -179,16 +163,7 @@ public:
return member != node.MemberEnd() ? GetGuid(member->value) : Guid::Empty;
}
FORCE_INLINE static bool GetGuidIfValid(Guid& result, const Value& node, const char* name)
{
auto member = node.FindMember(name);
if (member != node.MemberEnd())
{
result = GetGuid(member->value);
return result.IsValid();
}
return false;
}
static bool GetGuidIfValid(Guid& result, const Value& node, const char* name);
public:
FORCE_INLINE static void GetBool(bool& result, const Value& node, const char* name)