Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
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< ArgType > TransformPoint (const UE::Math::TVector2< ArgType > &Point) const
 
template<typename ArgType >
UE::Math::TVector2< ArgType > TransformVector (const UE::Math::TVector2< ArgType > &Vector) const
 
TMatrix2x2< TConcatenate (const TShear2 &RHS) const
 
TMatrix2x2< TInverse () 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)
 

Private Attributes

Vector2Type Shear
 

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.

Definition at line 193 of file TransformCalculus2D.h.

Member Typedef Documentation

◆ FReal

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

Definition at line 198 of file TransformCalculus2D.h.

◆ Vector2Type

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

Definition at line 199 of file TransformCalculus2D.h.

Constructor & Destructor Documentation

◆ TShear2() [1/3]

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

Ctor. initialize to an identity.

Definition at line 202 of file TransformCalculus2D.h.

◆ TShear2() [2/3]

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

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

Definition at line 204 of file TransformCalculus2D.h.

◆ 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.

Definition at line 207 of file TransformCalculus2D.h.

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]

Definition at line 595 of file TransformCalculus2D.h.

◆ 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.

Definition at line 215 of file TransformCalculus2D.h.

◆ GetVector()

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

Access to the underlying FVector2D that stores the scale.

Definition at line 273 of file TransformCalculus2D.h.

◆ 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]

Definition at line 607 of file TransformCalculus2D.h.

◆ operator!=()

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

Inequality.

Definition at line 267 of file TransformCalculus2D.h.

◆ operator==()

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

Equality.

Definition at line 261 of file TransformCalculus2D.h.

◆ 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]

Definition at line 232 of file TransformCalculus2D.h.

◆ 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

Definition at line 238 of file TransformCalculus2D.h.

Member Data Documentation

◆ Shear

template<typename T >
Vector2Type TShear2< T >::Shear
private

Underlying storage of the 2D shear.

Definition at line 277 of file TransformCalculus2D.h.


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