Why is FSphere giving an unrecognized type error?

I’m trying to use FSphere in a function library, but getting the all too familiar “Unrecognized type” error for FSphere, which has been a constant source of pain for our team when trying to use classes in the engine modules. Core is included in our build.cs’s public and private dependencies. FVector is works just fine, which is in the same module, correct? I’ve tried including Sphere.h manually, but still no luck. Is FSphere not exposed for some reason?

For reference, the function library header:

#pragma once

#include "Kismet/BlueprintFunctionLibrary.h"
//#include "Runtime/Core/Public/Math/Sphere.h"

#include "WppGameplayFunctionLibrary.generated.h"

UCLASS()
class UWppGameplayFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_UCLASS_BODY()

	UFUNCTION(BlueprintCallable, Category = "Field of View|Camera", meta = (Keywords = "camera field view sight"))
	static FVector GetPositionToSeeSphere(const FRotator& rotation, const float horizFov, const float vertFov, const FSphere& sphere, const float minDist = 600.0f, const float maxDist = 2000.0f); // <-- This line gives the error

	UFUNCTION(BlueprintCallable, Category = "Geometry|Math|Bounds", meta = (Keywords = "sphere merge bounds"))
	static FSphere MergeSpheres(const FSphere& sphere1, const FSphere& sphere2);
};
1 Like