// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "LRRenderUtilLibrary.generated.h" class USceneCaptureComponent2D; class UTextureRenderTarget2D; class UStaticMeshComponent; /** * Utility library for capturing and rendering objects in the Lucky Robots system */ UCLASS(BlueprintType, Blueprintable) class LUCKYWORLDV2_API ULRRenderUtilLibrary : public UBlueprintFunctionLibrary { GENERATED_BODY() public: /** * Captures a static mesh component to a render target texture * @param MeshComp The static mesh component to capture * @param ImageSize The size of the output image * @param WorldContextObject The world context * @param CaptureSource The type of data to capture (default is BaseColor) * @return The rendered texture */ UFUNCTION(BlueprintCallable, Category = "Lucky Robots|Render Utilities") static UTextureRenderTarget2D* CaptureMeshToRenderTarget( UStaticMeshComponent* MeshComp, const FVector2D& ImageSize, UObject* WorldContextObject, TEnumAsByte CaptureSource = ESceneCaptureSource::SCS_BaseColor); /** * Sets up a scene capture component to focus on a specific mesh * @param SceneCapture The scene capture component to set up * @param MeshComp The static mesh component to focus on * @param CaptureSource The type of data to capture (default is BaseColor) */ UFUNCTION(BlueprintCallable, Category = "Lucky Robots|Render Utilities") static void SetupSceneCaptureForMesh( USceneCaptureComponent2D* SceneCapture, UStaticMeshComponent* MeshComp, TEnumAsByte CaptureSource = ESceneCaptureSource::SCS_BaseColor); /** * Captures the current view of a scene capture component to its render target * @param SceneCapture The scene capture component to trigger * @return Success status */ UFUNCTION(BlueprintCallable, Category = "Lucky Robots|Render Utilities") static bool CaptureSceneNow(USceneCaptureComponent2D* SceneCapture); };