# UCorePhysicsEdgeMathLibrary

`UCorePhysicsEdgeMathLibrary` belongs to the CorePhysicsEdge runtime module.

Ea quis velit irure minim nostrud incididunt veniam incididunt do minim consectetur sit incididunt. Magna do pariatur tempor magna tempor duis pariatur lorem esse amet. Veniam ut ea dolor voluptate et dolore duis nulla fugiat duis esse pariatur magna voluptate.

## Declaration

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

## Members

| Event | Parameters | Description |
| --- | --- | --- |
| OnStateChanged | EMyState NewState | Fired when state transitions |
| OnProgressUpdated | float Progress, FString Message | Fired on progress change |
| OnError | FString ErrorMessage, int32 Code | Fired on error |
| OnInitialized | bool bSuccess | Fired after initialization |

## Example

```cpp
#include "CorePhysicsEdge.h"
#include "Engine/World.h"

void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    UCorePhysicsEdgeSubsystem* Subsystem = GetWorld()->GetSubsystem<UCorePhysicsEdgeSubsystem>();
    if (Subsystem)
    {
        Subsystem->Initialize();
        UE_LOG(LogTemp, Log, TEXT("Plugin subsystem initialized successfully"));
    }
}
```

> **Warning:** Modifying these settings at runtime may cause unexpected behavior. Always set configuration before calling Initialize().