For blueprint variables I can choose a lot of types. But how can I choose other types than the native ones (int, float etc) and UObjects (class or reference etc).
For example: I have a plugin where I can access PointClouds using the Point Cloud Library (PCL). So I use the pcl´s pointcloud type for some algorithms.
Now the idea is to have a shared pointer so I can access the type within a blueprint (and assign it to a variable eg).
My first attempt was to encapsulate the pointer within a USTRUCT, but that does not compile:
USTRUCT()
struct FPointCloudPointer {
GENERATED_BODY()
pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr cloud; // pcl shared pointer
};
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class POINTCLOUDRENDEREREDITOR_API UPointCloudGeneratorComponent : public UActorComponent
{
GENERATED_BODY()
public:
...
UFUNCTION(BlueprintCallable, Category = "PCL")
FPointCloudPointer GetPointCloud();
....
}
Any suggestions please?