// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "VectorTypes.h" #include "LineTypes.h" #include "CircleTypes.h" THIRD_PARTY_INCLUDES_START #include "ThirdParty/GTEngine/Mathematics/GteVector2.h" #include "ThirdParty/GTEngine/Mathematics/GteVector3.h" #include "ThirdParty/GTEngine/Mathematics/GteLine.h" #include "ThirdParty/GTEngine/Mathematics/GteCircle3.h" THIRD_PARTY_INCLUDES_END namespace UE { namespace Geometry { template gte::Vector2 Convert(const UE::Math::TVector2& Vec) { return gte::Vector2({ Vec.X, Vec.Y}); } template UE::Math::TVector2 Convert(const gte::Vector2& Vec) { return UE::Math::TVector2(Vec[0], Vec[1]); } template gte::Vector3 Convert(const UE::Math::TVector& Vec) { return gte::Vector3({ Vec.X, Vec.Y, Vec.Z }); } template UE::Math::TVector Convert(const gte::Vector3& Vec) { return UE::Math::TVector(Vec[0], Vec[1], Vec[2]); } template gte::Line3 Convert(const TLine3& Line) { return gte::Line3(Convert(Line.Origin), Convert(Line.Direction)); } template gte::Circle3 Convert(const TCircle3& Circle) { return gte::Circle3( Convert(Circle.Frame.Origin), Convert(Circle.GetNormal()), Circle.Radius); } } // end namespace UE::Geometry } // end namespace UE