// Copyright PICO Technology Co., Ltd. All rights reserved. // This plugin incorporates portions of the UnrealĀ® Engine. UnrealĀ® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere. // Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "ProceduralMeshComponent.h" #include "PXR_MRTypes.h" #include "PXR_SpatialMeshComponent.generated.h" UCLASS(hidecategories = (Object, LOD), meta = (BlueprintSpawnableComponent), ClassGroup = Rendering) class UPICOSpatialMeshComponent : public UProceduralMeshComponent { GENERATED_BODY() public: UPICOSpatialMeshComponent(const FObjectInitializer& ObjectInitializer); UFUNCTION(BlueprintPure, Category = "PICO XR Toolkit") EPICOSemanticLabel GetSemanticByIndex(int32 Index); void AddIndexToSemanticLabel(int32 Index,EPICOSemanticLabel SceneLabel); void SetUpdateTime(uint64 Time); int64 GetUpdateTime() const; TArray GetCachedIndices() { return CachedIndices; }; bool IsEqualWithCached(TArray& Indices); void SetCachedIndices(const TArray& Indices) {CachedIndices = Indices; }; protected: TMap IndexToAnchorSceneLabelMap; //Index ->SceneLabel uint64 LastUpdateTime = 0; TArray CachedIndices; };