// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Core/Types.h" #include "Math/Boundary.h" #include "Utils/IndexOfCoordinateFinder.h" namespace UE::CADKernel { namespace Utils { template inline void TSharedPtrArrayConversion(const TArray>& Source, TArray>& Destination) { Destination.Reserve(Destination.Num() + Source.Num()); for (const TSharedPtr& SourceItem : Source) { Destination.Add(StaticCastSharedPtr(SourceItem)); } } template inline void TSharedPtrArrayConversionChecked(const TArray>& Source, TArray>& Destination) { Destination.Reserve(Destination.Num() + Source.Num()); for (const TSharedPtr& SourceItem : Source) { TSharedPtr ConvertedPtr = StaticCastSharedPtr(SourceItem); if (!ConvertedPtr.IsValid()) { continue; } Destination.Add(ConvertedPtr); } } }; }