Open 3D Engine MotionMatching Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
EMotionFX::MotionMatching::MinMaxScaler Class Reference

The min/max-scaler can be used to normalize the feature matrix, the query vector and other data. More...

#include <FeatureMatrixMinMaxScaler.h>

Inherits EMotionFX::MotionMatching::FeatureMatrixTransformer.

Public Member Functions

 AZ_RTTI (MinMaxScaler, "{95D5BBA7-6144-4219-82F0-34C2DAB7DD3E}", FeatureMatrixTransformer)
 
bool Fit (const FeatureMatrix &featureMatrix, const Settings &settings={}) override
 
float Transform (float value, FeatureMatrix::Index column) const override
 
AZ::Vector2 Transform (const AZ::Vector2 &value, FeatureMatrix::Index column) const override
 
AZ::Vector3 Transform (const AZ::Vector3 &value, FeatureMatrix::Index column) const override
 
void Transform (AZStd::span< float > data) const override
 
FeatureMatrix Transform (const FeatureMatrix &featureMatrix) const override
 
FeatureMatrix InverseTransform (const FeatureMatrix &featureMatrix) const override
 
AZ::Vector2 InverseTransform (const AZ::Vector2 &value, FeatureMatrix::Index column) const override
 
AZ::Vector3 InverseTransform (const AZ::Vector3 &value, FeatureMatrix::Index column) const override
 
float InverseTransform (float value, FeatureMatrix::Index column) const override
 Input: Already transformed data, Output: Inverse transformed data (should match data before transform)
 
const AZStd::vector< float > & GetMin () const
 
const AZStd::vector< float > & GetMax () const
 
void SaveMinMaxAsCsv (const char *filename, const AZStd::vector< AZStd::string > &columnNames={})
 
- Public Member Functions inherited from EMotionFX::MotionMatching::FeatureMatrixTransformer
 AZ_RTTI (FeatureMatrixTransformer, "{B19CDBB8-FA99-4CBD-86C1-640A3CC5988A}")
 
 AZ_CLASS_ALLOCATOR (FeatureMatrixTransformer, MotionMatchAllocator)
 
virtual bool Fit (const FeatureMatrix &featureMatrix, const Settings &settings)=0
 
virtual float Transform (float value, FeatureMatrix::Index column) const =0
 
virtual AZ::Vector2 Transform (const AZ::Vector2 &value, FeatureMatrix::Index column) const =0
 
virtual AZ::Vector3 Transform (const AZ::Vector3 &value, FeatureMatrix::Index column) const =0
 
virtual void Transform (AZStd::span< float > data) const =0
 
virtual FeatureMatrix Transform (const FeatureMatrix &in) const =0
 
virtual float InverseTransform (float value, FeatureMatrix::Index column) const =0
 Input: Already transformed data, Output: Inverse transformed data (should match data before transform)
 
virtual AZ::Vector2 InverseTransform (const AZ::Vector2 &value, FeatureMatrix::Index column) const =0
 
virtual AZ::Vector3 InverseTransform (const AZ::Vector3 &value, FeatureMatrix::Index column) const =0
 
virtual FeatureMatrix InverseTransform (const FeatureMatrix &in) const =0
 

Static Public Attributes

static constexpr float s_epsilon = AZ::Constants::FloatEpsilon
 

Detailed Description

The min/max-scaler can be used to normalize the feature matrix, the query vector and other data.

Member Function Documentation

◆ Fit()

bool EMotionFX::MotionMatching::MinMaxScaler::Fit ( const FeatureMatrix featureMatrix,
const Settings settings = {} 
)
overridevirtual

Prepare the transformer. This might e.g. run some statistical analysis and cache values that will be needed for actually transforming the data.

Implements EMotionFX::MotionMatching::FeatureMatrixTransformer.

◆ InverseTransform() [1/4]

AZ::Vector2 EMotionFX::MotionMatching::MinMaxScaler::InverseTransform ( const AZ::Vector2 &  value,
FeatureMatrix::Index  column 
) const
overridevirtual

◆ InverseTransform() [2/4]

AZ::Vector3 EMotionFX::MotionMatching::MinMaxScaler::InverseTransform ( const AZ::Vector3 &  value,
FeatureMatrix::Index  column 
) const
overridevirtual

◆ InverseTransform() [3/4]

FeatureMatrix EMotionFX::MotionMatching::MinMaxScaler::InverseTransform ( const FeatureMatrix featureMatrix) const
overridevirtual

◆ InverseTransform() [4/4]

float EMotionFX::MotionMatching::MinMaxScaler::InverseTransform ( float  value,
FeatureMatrix::Index  column 
) const
overridevirtual

Input: Already transformed data, Output: Inverse transformed data (should match data before transform)

Implements EMotionFX::MotionMatching::FeatureMatrixTransformer.

◆ Transform() [1/5]

void EMotionFX::MotionMatching::MinMaxScaler::Transform ( AZStd::span< float >  data) const
overridevirtual

◆ Transform() [2/5]

AZ::Vector2 EMotionFX::MotionMatching::MinMaxScaler::Transform ( const AZ::Vector2 &  value,
FeatureMatrix::Index  column 
) const
overridevirtual

◆ Transform() [3/5]

AZ::Vector3 EMotionFX::MotionMatching::MinMaxScaler::Transform ( const AZ::Vector3 &  value,
FeatureMatrix::Index  column 
) const
overridevirtual

◆ Transform() [4/5]

FeatureMatrix EMotionFX::MotionMatching::MinMaxScaler::Transform ( const FeatureMatrix featureMatrix) const
overridevirtual

◆ Transform() [5/5]

float EMotionFX::MotionMatching::MinMaxScaler::Transform ( float  value,
FeatureMatrix::Index  column 
) const
overridevirtual

Copy and transform the input data. Note: Use the version that can batch transform the most data. Expect significant performance losses when calling the granular versions on lots of data points.

Implements EMotionFX::MotionMatching::FeatureMatrixTransformer.


The documentation for this class was generated from the following file: