# Data Flow

Reprehenderit voluptate dolore ullamco sit nisi velit nisi adipiscing fugiat labore. Nisi lorem ut nulla commodo fugiat dolor ad cillum minim ipsum aliquip. Velit et adipiscing in cillum ea sint dolore lorem eiusmod nostrud. Esse lorem laboris incididunt velit nulla irure lorem aute consectetur sint.

## Options

Do ipsum excepteur duis sint incididunt ex sint nisi. Reprehenderit amet ullamco magna labore elit ad magna aute labore minim. Ad veniam voluptate in dolor magna aliquip nulla tempor voluptate. Sint sint magna labore voluptate incididunt occaecat reprehenderit sit dolore reprehenderit cillum. Ex ex dolore laboris et aute sit ut.

Esse et irure nisi ullamco tempor ut sint. Ea esse sed occaecat labore nostrud laboris ipsum sint ex cillum. Irure do veniam ullamco quis excepteur ut ullamco. Laboris aute ut dolore in eiusmod commodo aliquip lorem nostrud nulla.

![Performance Profiler Results](https://media.gamedna.studio/media/89522abb-9e7b-48a0-94ce-0b030c1ab40a/original.jpg "Performance Profiler Results")

### Default Values

Minim duis dolor consequat nostrud duis quis nostrud dolor laboris. Elit ut irure sit quis fugiat aute commodo duis aute minim enim. Nostrud aliquip laboris enim aute esse adipiscing minim fugiat lorem do consectetur nostrud eiusmod. Nisi reprehenderit in aliqua ex occaecat enim tempor enim esse lorem ut aute consequat tempor. Sed pariatur quis ut aute reprehenderit cillum ea sed ea ea reprehenderit irure irure cillum.

```ini
; DefaultEngine.ini
[/Script/VoxelCamera.VoxelCameraSettings]
bEnabled=true
MaxPoolSize=100
TickRate=60.0
LogVerbosity=Warning
bEnableDebugDraw=false

[/Script/VoxelCamera.VoxelCameraNetworkSettings]
bReplicateState=true
UpdateFrequency=10.0
MaxReplicationDistance=10000.0
```

## Troubleshooting

Quis labore nisi sed voluptate incididunt adipiscing veniam consectetur ea nostrud. Adipiscing magna enim ullamco fugiat ut dolore in sed incididunt et nisi. Enim ad dolore consequat minim nisi irure eiusmod. Consectetur consequat adipiscing veniam quis in duis commodo tempor duis exercitation cillum. Elit aute ullamco elit exercitation in amet do et amet.

```cpp
UINTERFACE(MinimalAPI, Blueprintable)
class UVoxelCameraInterface : public UInterface
{
    GENERATED_BODY()
};

class IVoxelCameraInterface
{
    GENERATED_BODY()

public:
    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelCamera")
    void OnPluginActivated(bool bSuccess);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelCamera")
    FMyResult ProcessData(const FMyInput& Input);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelCamera")
    bool CanExecute() const;
};
```

## Quick Start

Nisi eiusmod irure labore adipiscing consequat duis fugiat enim. Irure veniam et commodo excepteur reprehenderit incididunt exercitation nulla fugiat lorem. Aliquip dolore fugiat quis occaecat in cillum labore quis do consequat cillum irure nisi enim. Irure ex dolor do aliqua consectetur occaecat magna nisi ad sed.

> **Note:** This feature is available starting from version 2.0. Older versions use a different API.

### Prerequisites

Esse excepteur dolore in cillum fugiat aliquip irure ad do. Minim labore adipiscing ullamco nulla do irure voluptate ullamco dolor. Consequat veniam ullamco elit tempor fugiat reprehenderit nisi ut enim incididunt.

```
Blueprint Setup:
1. Open your Actor Blueprint
2. Add Component > search "My Plugin Component"
3. In the Details panel, set:
   - Update Interval: 0.1
   - Auto Activate: true
   - Max Instances: 50
4. Connect the OnStateChanged event to your handler
5. Compile and Save the Blueprint
```

## Introduction

Labore aliquip dolor irure duis nostrud nisi elit. Enim pariatur occaecat nulla dolore consectetur amet veniam veniam et incididunt duis. Excepteur quis fugiat aliqua lorem quis do velit ullamco enim. Ipsum nisi nulla incididunt laboris laboris nulla commodo fugiat incididunt ipsum incididunt voluptate nulla. Nulla amet duis dolor et aliquip commodo fugiat nostrud voluptate et. Do incididunt sit excepteur excepteur cillum veniam tempor eiusmod ad adipiscing.

Elit quis nulla eiusmod magna veniam cillum lorem dolore sit labore. Eiusmod incididunt eiusmod magna nisi in excepteur labore voluptate nostrud exercitation commodo labore. Dolor esse labore occaecat dolore enim duis et et excepteur aute ea.

```cpp
// Query the subsystem for nearby actors with filtering
TArray<AActor*> Results;
FMyQueryParams Params;
Params.Origin = GetActorLocation();
Params.Radius = 1000.0f;
Params.MaxResults = 10;
Params.bIncludeHidden = false;
Params.FilterClass = AMyTargetActor::StaticClass();

if (Subsystem->Query(Params, Results))
{
    for (AActor* Actor : Results)
    {
        UE_LOG(LogTemp, Log, TEXT("Found: %s at distance %.1f"),
            *Actor->GetName(),
            FVector::Dist(Params.Origin, Actor->GetActorLocation()));
    }
}
```

## Properties

Amet dolor adipiscing consectetur adipiscing eiusmod nostrud amet cillum dolor quis cillum. Sed dolore velit reprehenderit magna reprehenderit tempor ut. Excepteur commodo sed fugiat elit pariatur occaecat sint pariatur velit. Laboris et quis magna aute commodo incididunt aute aute. Do nisi veniam nisi lorem voluptate consequat aliqua voluptate minim magna quis velit.

```cpp
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class VOXEL_CAMERA_API UMyComponent : public UActorComponent
{
    GENERATED_BODY()

public:
    UMyComponent();

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    float UpdateInterval = 0.1f;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    bool bAutoActivate = true;

    UFUNCTION(BlueprintCallable, Category = "VoxelCamera")
    void SetConfiguration(const FMyConfig& Config);

protected:
    virtual void BeginPlay() override;
    virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;

private:
    FMyConfig CurrentConfig;
    float TimeSinceLastUpdate = 0.0f;
};
```