From fb650dbd52fb0b33e9a0ac59903e76229a38e811 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Sat, 30 Nov 2024 14:01:01 +0800 Subject: [PATCH] allow null parent to setParent --- .../native/src/c_api/TTransformManager.cpp | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/thermion_dart/native/src/c_api/TTransformManager.cpp b/thermion_dart/native/src/c_api/TTransformManager.cpp index f8b862d5..9dee162c 100644 --- a/thermion_dart/native/src/c_api/TTransformManager.cpp +++ b/thermion_dart/native/src/c_api/TTransformManager.cpp @@ -81,20 +81,30 @@ extern "C" const auto child = Entity::import(childId); const auto parent = Entity::import(parentId); - const auto &parentInstance = tm->getInstance(parent); + const auto &childInstance = tm->getInstance(child); + if (!childInstance.isValid()) + { + Log("Child instance is not valid"); + return; + } + + if(parent.isNull()) { + Log("Unparenting child instance"); + tm->setParent(childInstance, TransformManager::Instance()); + return; + } + + const auto &parentInstance = tm->getInstance(parent); + if (!parentInstance.isValid()) { Log("Parent instance is not valid"); return; } - if (!childInstance.isValid()) - { - Log("Child instance is not valid"); - return; - } + if (preserveScaling) {