UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TShear2< T > Class Template Reference

#include <TransformCalculus2D.h>

Public Types

using FReal = T
 
using Vector2Type = UE::Math::TVector2< T >
 

Public Member Functions

 TShear2 ()
 
 TShear2 (T ShearX, T ShearY)
 
template<typename VType >
 TShear2 (const UE::Math::TVector2< VType > &InShear)
 
template<typename ArgType >
UE::Math::TVector2< ArgTypeTransformPoint (const UE::Math::TVector2< ArgType > &Point) const
 
template<typename ArgType >
UE::Math::TVector2< ArgTypeTransformVector (const UE::Math::TVector2< ArgType > &Vector) const
 
TMatrix2x2< T > Concatenate (const TShear2 &RHS) const
 
TMatrix2x2< T > Inverse () const
 
bool operator== (const TShear2 &Other) const
 
bool operator!= (const TShear2 &Other) const
 
const Vector2TypeGetVector () const
 

Static Public Member Functions

template<typename VType >
static TShear2 FromShearAngles (const UE::Math::TVector2< VType > &InShearAngles)
 

Detailed Description

template<typename T>
class TShear2< T >

Represents a 2D shear: [1 YY] [XX 1] XX represents a shear parallel to the X axis. YY represents a shear parallel to the Y axis.

Member Typedef Documentation

◆ FReal

template<typename T >
using TShear2< T >::FReal = T

◆ Vector2Type

template<typename T >
using TShear2< T >::Vector2Type = UE::Math::TVector2<T>

Constructor & Destructor Documentation

◆ TShear2() [1/3]

template<typename T >
TShear2< T >::TShear2 ( )
inline

Ctor. initialize to an identity.

◆ TShear2() [2/3]

template<typename T >
TShear2< T >::TShear2 ( ShearX,
ShearY 
)
inlineexplicit

Ctor. initialize from a set of shears parallel to the X and Y axis, respectively.

◆ TShear2() [3/3]

template<typename T >
template<typename VType >
TShear2< T >::TShear2 ( const UE::Math::TVector2< VType > &  InShear)
inlineexplicit

Ctor. initialize from a 2D vector representing a set of shears parallel to the X and Y axis, respectively.

Member Function Documentation

◆ Concatenate()

template<typename T >
TMatrix2x2< T > TShear2< T >::Concatenate ( const TShear2< T > &  RHS) const
inline

Concatenate two shears. The result is NOT a shear, but must be represented by a generalized 2x2 transform. Defer the implementation until we can declare a 2x2 matrix. [1 YYA] * [1 YYB] == [1+YYA*XXB YYB*YYA] [XXA 1] [XXB 1] [XXA+XXB XXA*XXB+1]

◆ FromShearAngles()

template<typename T >
template<typename VType >
static TShear2 TShear2< T >::FromShearAngles ( const UE::Math::TVector2< VType > &  InShearAngles)
inlinestatic

Generates a shear structure based on angles instead of slope.

Parameters
InShearAnglesThe angles of shear.
Returns
the sheare structure.

◆ GetVector()

template<typename T >
const Vector2Type & TShear2< T >::GetVector ( ) const
inline

Access to the underlying FVector2D that stores the scale.

◆ Inverse()

template<typename T >
TMatrix2x2< T > TShear2< T >::Inverse ( ) const
inline

Invert the shear. The result is NOT a shear, but must be represented by a generalized 2x2 transform. Defer the implementation until we can declare a 2x2 matrix. [1 YY]^-1 == 1/(1-YY*XX) * [1 -YY] [XX 1] [-XX 1]

◆ operator!=()

template<typename T >
bool TShear2< T >::operator!= ( const TShear2< T > &  Other) const
inline

Inequality.

◆ operator==()

template<typename T >
bool TShear2< T >::operator== ( const TShear2< T > &  Other) const
inline

Equality.

◆ TransformPoint()

template<typename T >
template<typename ArgType >
UE::Math::TVector2< ArgType > TShear2< T >::TransformPoint ( const UE::Math::TVector2< ArgType > &  Point) const
inline

Transform 2D Point [X Y] * [1 YY] == [X+Y*XX Y+X*YY] [XX 1]

◆ TransformVector()

template<typename T >
template<typename ArgType >
UE::Math::TVector2< ArgType > TShear2< T >::TransformVector ( const UE::Math::TVector2< ArgType > &  Vector) const
inline

Transform 2D Vector


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