13 #include "GameFramework/Actor.h"
14 #include "NVObjectMaskManager.generated.h"
18 enum class ENVActorMaskNameType : uint8
23 UseActorInstanceName = 0,
39 NVObjectClassMaskType_MAX UMETA(Hidden)
54 enum class ENVIdAssignmentType : uint8
64 NVActorMaskIdType_MAX UMETA(Hidden)
68 DECLARE_LOG_CATEGORY_EXTERN(LogNVObjectMaskManager, Log, All)
71 UCLASS(NotBlueprintable, Abstract, DefaultToInstanced, editinlinenew, ClassGroup = (NVIDIA))
79 virtual void ScanActors(UWorld* World);
81 void Init(ENVActorMaskNameType NewMaskNameType, ENVIdAssignmentType NewIdAssignmentType);
84 static FString GetActorMaskName(ENVActorMaskNameType MaskNameType,
const AActor* CheckActor);
85 static void ApplyStencilMaskToActor(AActor* CheckActor, uint8 MaskId);
86 static void ApplyVertexColorMaskToActor(AActor* CheckActor, uint32 MaskId);
88 FString GetActorMaskName(
const AActor* CheckActor)
const;
89 bool ShouldCheckActorMask(
const AActor* CheckActor)
const;
92 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ActorMask)
93 ENVActorMaskNameType ActorMaskNameType;
96 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = ActorMask)
97 ENVIdAssignmentType SegmentationIdAssignmentType;
100 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = ActorMask)
105 TArray<FString> AllMaskNames;
108 TArray<AActor*> AllMaskActors;
113 UCLASS(Blueprintable, DefaultToInstanced, editinlinenew, ClassGroup = (NVIDIA))
121 void ScanActors(UWorld* World)
override;
123 uint8 GetMaskId(
const FString& MaskName)
const;
124 uint8 GetMaskId(
const AActor* CheckActor)
const;
129 TMap<FString, uint8> MaskNameIdMap;
134 UCLASS(Blueprintable, DefaultToInstanced, editinlinenew, ClassGroup = (NVIDIA))
142 void ScanActors(UWorld* World)
override;
144 uint32 GetMaskId(
const FString& MaskName)
const;
145 uint32 GetMaskId(
const AActor* CheckActor)
const;
149 TMap<FString, uint32> MaskNameIdMap;
151 static const uint32 MaxVertexColorID;
154 USTRUCT(Blueprintable)
160 FNVObjectSegmentation_Instance();
162 uint32 GetInstanceId(
const AActor* CheckActor)
const;
163 void Init(UObject* OwnerObject);
164 void ScanActors(UWorld* World);
169 UPROPERTY(EditAnywhere, Category =
"Segmentation")
170 ENVIdAssignmentType SegmentationIdAssignmentType;
180 enum class ENVActorClassSegmentationType : uint8
184 UseActorMeshName = 0,
194 ENVActorClassSegmentationType_MAX UMETA(Hidden)
198 USTRUCT(Blueprintable)
204 FNVObjectSegmentation_Class();
206 uint8 GetInstanceId(
const AActor* CheckActor)
const;
207 void Init(UObject* OwnerObject);
208 void ScanActors(UWorld* World);
213 UPROPERTY(EditAnywhere, Category =
"Segmentation")
214 ENVActorClassSegmentationType ClassSegmentationType;
216 UPROPERTY(EditAnywhere, Category = "Segmentation")
217 ENVIdAssignmentType SegmentationIdAssignmentType;
UNVObjectMaskMananger_VertexColor scan actors in the scene, assign them an ID using VertexColor (32bi...
Mask base class: scan actors in the scene, assign them an ID based on mask type.
UNVObjectMaskMananger_Stencil scan actors in the scene, assign them an ID using StencilMask NOTE: Mas...