// macro version of static function if performance is very very very critical and you want to ensure function will be inlined. #define SET_WORLD_TRANSFORM_FAST(InComp, InTransform) \ InComp->SetComponentToWorld(InTransform); \ InComp->UpdateBounds(); \ \ InComp->MarkRenderTransformDirty(); \ for (auto Component : InComp->GetAttachChildren()) \ { \ InTransform = Component->GetRelativeTransform() * InTransform; \ \ SetWorldTransformFastPathWithOverlaps(Component, InTransform); \ } // macro version of static function if performance is very very very critical and you want to ensure function will be inlined. #define SET_WORLD_TRANSFORM_FAST_WITH_OVERLAPS(InComp, InTransform) \ InComp->SetComponentToWorld(InTransform); \ InComp->UpdateBounds(); \ \ InComp->BodyInstance.SetBodyTransform(InTransform, ETeleportType::None); \ InComp->BodyInstance.UpdateBodyScale(InTransform.GetScale3D()); \ \ InComp->MarkRenderTransformDirty(); \ for (auto Component : InComp->GetAttachChildren()) \ { \ InTransform = Component->GetRelativeTransform() * InTransform; \ \ SetWorldTransformFastPathWithOverlaps(Component, InTransform); \ }