UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRBFSolver Struct Reference

#include <RBFSolver.h>

Static Public Member Functions

static ANIMGRAPHRUNTIME_API bool ValidateTargets (const FRBFParams &Params, const TArray< FRBFTarget > &Targets, TArray< int > &InvalidTargets)
 
static ANIMGRAPHRUNTIME_API TSharedPtr< const FRBFSolverDataInitSolver (const FRBFParams &Params, const TArray< FRBFTarget > &Targets)
 
static ANIMGRAPHRUNTIME_API bool IsSolverDataValid (const FRBFSolverData &SolverData, const FRBFParams &Params, const TArray< FRBFTarget > &Targets)
 
static ANIMGRAPHRUNTIME_API void Solve (const FRBFSolverData &SolverData, const FRBFParams &Params, const TArray< FRBFTarget > &Targets, const FRBFEntry &Input, TArray< FRBFOutputWeight > &OutputWeights)
 
static ANIMGRAPHRUNTIME_API bool FindTargetNeighbourDistances (const FRBFParams &Params, const TArray< FRBFTarget > &Targets, TArray< float > &NeighbourDists)
 
static ANIMGRAPHRUNTIME_API float FindDistanceBetweenEntries (const FRBFEntry &A, const FRBFEntry &B, const FRBFParams &Params, ERBFDistanceMethod OverrideMethod=ERBFDistanceMethod::DefaultMethod)
 
static ANIMGRAPHRUNTIME_API float GetRadiusForTarget (const FRBFTarget &Target, const FRBFParams &Params)
 
static ANIMGRAPHRUNTIME_API float GetOptimalRadiusForTargets (const FRBFParams &Params, const TArray< FRBFTarget > &Targets)
 

Detailed Description

Library of Radial Basis Function solver functions

Member Function Documentation

◆ FindDistanceBetweenEntries()

float FRBFSolver::FindDistanceBetweenEntries ( const FRBFEntry A,
const FRBFEntry B,
const FRBFParams Params,
ERBFDistanceMethod  OverrideMethod = ERBFDistanceMethod::DefaultMethod 
)
static

Util to find distance between two entries, using provided params

◆ FindTargetNeighbourDistances()

bool FRBFSolver::FindTargetNeighbourDistances ( const FRBFParams Params,
const TArray< FRBFTarget > &  Targets,
TArray< float > &  NeighbourDists 
)
static

Util to find distance to nearest neighbour target for each target

◆ GetOptimalRadiusForTargets()

float FRBFSolver::GetOptimalRadiusForTargets ( const FRBFParams Params,
const TArray< FRBFTarget > &  Targets 
)
static

Compute the optimal radius for the given targets. Returns the radius

◆ GetRadiusForTarget()

float FRBFSolver::GetRadiusForTarget ( const FRBFTarget Target,
const FRBFParams Params 
)
static

Returns the radius for a given target

◆ InitSolver()

TSharedPtr< const FRBFSolverData > FRBFSolver::InitSolver ( const FRBFParams Params,
const TArray< FRBFTarget > &  Targets 
)
static

Given a set of targets and new input entry, give list of activated targets with weights

◆ IsSolverDataValid()

bool FRBFSolver::IsSolverDataValid ( const FRBFSolverData SolverData,
const FRBFParams Params,
const TArray< FRBFTarget > &  Targets 
)
static

◆ Solve()

void FRBFSolver::Solve ( const FRBFSolverData SolverData,
const FRBFParams Params,
const TArray< FRBFTarget > &  Targets,
const FRBFEntry Input,
TArray< FRBFOutputWeight > &  OutputWeights 
)
static

Given a set of targets and new input entry, give list of activated targets with weights

TotalWeight : (Params.bNormalizeWeightsBelowSumOfOne ? 1.f / TotalWeight : 1.f);

◆ ValidateTargets()

bool FRBFSolver::ValidateTargets ( const FRBFParams Params,
const TArray< FRBFTarget > &  Targets,
TArray< int > &  InvalidTargets 
)
static

Given a list of targets, verify which ones are valid for solving the RBF setup. This is mostly about removing identical targets which invalidates the interpolative solver. Returns true if all targets are valid.


The documentation for this struct was generated from the following files: