Navigation
API > API/Plugins > API/Plugins/PoseSearch
A search index for animation poses. The structure of the search index is determined by its UPoseSearchSchema. May represent a single animation (see UPoseSearchSequenceMetaData) or a collection (see UPoseSearchDatabase).
| Name | FSearchIndex |
| Type | struct |
| Header File | /Engine/Plugins/Animation/PoseSearch/Source/Runtime/Public/PoseSearch/PoseSearchIndex.h |
| Include Path | #include "PoseSearch/PoseSearchIndex.h" |
Syntax
struct FSearchIndex : public UE::PoseSearch::FSearchIndexBase
Inheritance Hierarchy
- FSearchIndexBase → FSearchIndex
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FSearchIndex
(
FSearchIndex&& Other |
PoseSearch/PoseSearchIndex.h | ||
FSearchIndex
(
const FSearchIndex& Other |
PoseSearch/PoseSearchIndex.h | ||
FSearchIndex () |
PoseSearch/PoseSearchIndex.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FSearchIndex() |
PoseSearch/PoseSearchIndex.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| DeviationEditorOnly | TAlignedArray< float > | PoseSearch/PoseSearchIndex.h | ||
| KDTree | FKDTree | PoseSearch/PoseSearchIndex.h | ||
| Mean | TAlignedArray< float > | PoseSearch/PoseSearchIndex.h | ||
| PCAExplainedVariance | float | PoseSearch/PoseSearchIndex.h | ||
| PCAExplainedVarianceEditorOnly | float | PoseSearch/PoseSearchIndex.h | ||
| PCAProjectionMatrix | TAlignedArray< float > | PoseSearch/PoseSearchIndex.h | ||
| PCAValues | TAlignedArray< float > | Array containing the data of FSearchIndexBase::Values encoded in PCA space. | PoseSearch/PoseSearchIndex.h | |
| PCAValuesVectorToPoseIndexes | FSparsePoseMultiMap< int32 > | PoseSearch/PoseSearchIndex.h | ||
| VPTree | FVPTree | PoseSearch/PoseSearchIndex.h | ||
| WeightsSqrt | TAlignedArray< float > | We store weights square roots to reduce numerical errors when CompareFeatureVectors ((VA - VB) * VW).square().sum() instead of ((VA - VB).square() * VW).sum() since (VA - VB).square() could lead to big numbers, and VW being multiplied by the variance of the dataset | PoseSearch/PoseSearchIndex.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPoseSearchCost CompareAlignedPoses
(
int32 PoseIdx, |
PoseSearch/PoseSearchIndex.h | ||
FPoseSearchCost ComparePoses
(
int32 PoseIdx, |
PoseSearch/PoseSearchIndex.h | ||
int32 GetNumberOfPrincipalComponents() |
PoseSearch/PoseSearchIndex.h | ||
int32 GetNumDimensions() |
PoseSearch/PoseSearchIndex.h | ||
int32 GetNumPCAValuesVectors
(
int32 DataCardinality |
PoseSearch/PoseSearchIndex.h | ||
TConstArrayView< float > GetPCAPoseValues
(
int32 PCAValuesVectorIdx |
Since PCAValues (as well as Values can be pruned out from duplicate data, we lose the 1:1 mapping between PoseIdx and PCAValuesVectorIdx that in the case of GetPoseValuesSafe it's stored in PoseMetadata[PoseIdx].GetValueOffset(), but missing for the PCAValues, so this API input is NOT a PoseIdx mapping between PoseIdx to PCAValuesVectorIdx can be reconstructed by inverting the PCAValuesVectorToPoseIndexes via GetPoseToPCAValuesVectorIndexes | PoseSearch/PoseSearchIndex.h | |
int32 GetPCAValueIndex
(
int32 PoseIdx |
Returns the PCAValueIndex from the pose index. the method is very slow. consider calling GetPoseToPCAValuesVectorIndexes to cache ALL the PCAValueIndex from the pose index mapping | PoseSearch/PoseSearchIndex.h | |
void GetPoseToPCAValuesVectorIndexes
(
TArray< uint32 >& PoseToPCAValuesVectorIndexes |
Returns the inverse mapping of PCAValuesVectorToPoseIndexes | PoseSearch/PoseSearchIndex.h | |
TConstArrayView< float > GetPoseValues
(
int32 PoseIdx |
PoseSearch/PoseSearchIndex.h | ||
TConstArrayView< float > GetPoseValuesSafe
(
int32 PoseIdx, |
PoseSearch/PoseSearchIndex.h | ||
TArray< float > GetPoseValuesSafe
(
int32 PoseIdx |
PoseSearch/PoseSearchIndex.h | ||
TConstArrayView< float > GetReconstructedPoseValues
(
int32 PoseIdx, |
PoseSearch/PoseSearchIndex.h | ||
TConstArrayView< float > PCAProject
(
TConstArrayView< float > PoseValues, |
PoseSearch/PoseSearchIndex.h | ||
void PruneDuplicatePCAValues
(
float SimilarityThreshold, |
PoseSearch/PoseSearchIndex.h | ||
void PrunePCAValuesFromBlockTransitionPoses
(
int32 NumberOfPrincipalComponents |
PoseSearch/PoseSearchIndex.h | ||
void Reset() |
PoseSearch/PoseSearchIndex.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FSearchIndex & operator=
(
FSearchIndex&& Other |
PoseSearch/PoseSearchIndex.h | ||
FSearchIndex & operator=
(
const FSearchIndex& Other |
PoseSearch/PoseSearchIndex.h | ||
bool operator==
(
const FSearchIndex& Other |
PoseSearch/PoseSearchIndex.h |