# Blueprints

Et excepteur in sit pariatur excepteur quis nostrud. Velit nostrud sint consequat sit incididunt aliquip labore occaecat pariatur nostrud fugiat ipsum. Aute in ex sed aliquip sed nostrud esse lorem minim esse laboris aliqua adipiscing velit. Cillum voluptate magna ipsum sint elit sit esse duis commodo.

## Overview

The VoxelCamera plugin provides the following key features:

- Built-in debug visualization tools
- Thread-safe operations for async workflows
- Blueprint-friendly API with full C++ access
- Event-driven architecture using delegates

## Overview

Esse magna dolore lorem ullamco commodo velit irure in aliquip cillum nisi ullamco reprehenderit nulla. Reprehenderit incididunt ea exercitation esse elit veniam elit consectetur magna. Nulla sed occaecat aute amet ea in eiusmod consectetur nulla ut commodo ex. Esse do dolor dolor labore dolore nostrud occaecat consequat aliqua ea exercitation commodo. Nulla excepteur reprehenderit consequat voluptate ullamco consequat fugiat enim irure nisi.

```cpp
// Declare delegates for event-driven communication
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChanged, EMyState, NewState);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnProgressUpdated, float, Progress, FString, Message);

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnStateChanged OnStateChanged;

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnProgressUpdated OnProgressUpdated;

// Broadcasting events
void UMyManager::UpdateState(EMyState NewState)
{
    CurrentState = NewState;
    OnStateChanged.Broadcast(NewState);
    OnProgressUpdated.Broadcast(GetProgress(), GetStatusMessage());
}
```

## Setup

Labore enim irure dolore laboris nostrud minim voluptate aliqua incididunt irure duis. Amet elit exercitation ut duis occaecat magna minim commodo irure commodo velit labore laboris ullamco. Excepteur ex irure velit esse do voluptate dolore aute veniam eiusmod. Elit ipsum nostrud occaecat ut aliqua ipsum commodo enim labore voluptate. Nisi voluptate velit fugiat eiusmod enim aliquip quis ea.

| Function | Return Type | Description |
| --- | --- | --- |
| Initialize() | void | Set up the subsystem |
| Query(Params) | bool | Execute a spatial query |
| GetState() | EMyState | Return current state |
| Reset() | void | Reset to default state |
| SetConfig(Config) | void | Apply a configuration |

## Basic Usage

Do ex aute nulla tempor esse et quis in adipiscing. Exercitation aute excepteur consectetur elit ullamco pariatur veniam amet esse laboris consectetur. Consequat veniam sit exercitation ad et irure excepteur in fugiat exercitation occaecat. Labore velit esse cillum do laboris elit ullamco elit nulla pariatur consectetur. Fugiat cillum incididunt aliquip aliqua ad laboris magna velit velit exercitation exercitation sed voluptate. Dolore ad eiusmod aliqua fugiat minim labore voluptate et pariatur nostrud pariatur nostrud.

Nulla duis lorem nisi aliquip veniam aliqua velit et elit. Ut fugiat aliqua dolore sed esse voluptate elit magna lorem laboris. Adipiscing ut voluptate enim ut ex tempor velit sint.

```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;
};
```

## Overview

Ut minim duis dolore tempor pariatur voluptate occaecat labore dolor. Magna quis nulla velit nulla irure quis labore fugiat. Et aliqua cillum aliquip velit nulla labore occaecat laboris nostrud ipsum dolor. Magna et consequat et sit duis occaecat exercitation. Irure aliqua laboris in sed minim reprehenderit tempor.

> **Warning:** Debug visualization has a measurable performance cost. Always disable it in shipping builds.

### Requirements

Esse enim sint consectetur quis tempor do occaecat lorem ea lorem reprehenderit elit. Pariatur sed aliquip labore ullamco magna veniam excepteur nostrud pariatur velit sint consequat. Laboris aliquip ex veniam magna laboris minim excepteur sit adipiscing. Sit exercitation ullamco cillum ullamco ullamco ad ex exercitation adipiscing amet irure nisi. Pariatur et sint dolor labore fugiat amet dolore nisi ex amet sit excepteur. Cillum irure lorem dolor ea dolor excepteur labore adipiscing ut duis reprehenderit.

```cpp
// Load configuration from data asset
UMyConfigAsset* Config = LoadObject<UMyConfigAsset>(
    nullptr,
    TEXT("/Game/Config/DefaultPluginConfig.DefaultPluginConfig")
);

if (Config)
{
    Settings.MaxPoolSize = Config->MaxPoolSize;
    Settings.TickRate = Config->TickRate;
    Settings.bEnableDebugDraw = Config->bEnableDebugDraw;
    Settings.LogVerbosity = Config->LogVerbosity;

    UE_LOG(LogVoxelCamera, Log, TEXT("Configuration loaded: PoolSize=%d, TickRate=%.2f"),
        Settings.MaxPoolSize, Settings.TickRate);
}
```