OWL
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
owl::common::LinearSpace2< T > Struct Template Reference

2D Linear Transform (2x2 Matrix) More...

#include <LinearSpace.h>

Public Types

using vector_t = T
 
using scalar_t = typename T::scalar_t
 

Public Member Functions

 LinearSpace2 ()=default
 
__both__ LinearSpace2 (const LinearSpace2 &other)
 
__both__ LinearSpace2operator= (const LinearSpace2 &other)
 
template<typename L1 >
__both__ LinearSpace2 (const LinearSpace2< L1 > &s)
 
__both__ LinearSpace2 (const vector_t &vx, const vector_t &vy)
 
__both__ LinearSpace2 (const scalar_t &m00, const scalar_t &m01, const scalar_t &m10, const scalar_t &m11)
 
__both__ const scalar_t det () const
 
__both__ const LinearSpace2 adjoint () const
 
__both__ const LinearSpace2 inverse () const
 
__both__ const LinearSpace2 transposed () const
 
const vector_t row0 () const
 
const vector_t row1 () const
 
__both__ LinearSpace2 (ZeroTy)
 Constants.
 
__both__ LinearSpace2 (OneTy)
 
LinearSpace2 orthogonal () const
 

Static Public Member Functions

static LinearSpace2 scale (const vector_t &s)
 
static LinearSpace2 rotate (const scalar_t &r)
 

Public Attributes

vector_t vx
 
vector_t vy
 

Detailed Description

template<typename T>
struct owl::common::LinearSpace2< T >

2D Linear Transform (2x2 Matrix)

Constructor & Destructor Documentation

◆ LinearSpace2() [1/3]

template<typename T >
owl::common::LinearSpace2< T >::LinearSpace2 ( )
inlinedefault

default matrix constructor

◆ LinearSpace2() [2/3]

template<typename T >
__both__ owl::common::LinearSpace2< T >::LinearSpace2 ( const vector_t &  vx,
const vector_t &  vy 
)
inline

matrix construction from column vectors

◆ LinearSpace2() [3/3]

template<typename T >
__both__ owl::common::LinearSpace2< T >::LinearSpace2 ( const scalar_t &  m00,
const scalar_t &  m01,
const scalar_t &  m10,
const scalar_t &  m11 
)
inline

matrix construction from row mayor data

Member Function Documentation

◆ adjoint()

template<typename T >
__both__ const LinearSpace2 owl::common::LinearSpace2< T >::adjoint ( ) const
inline

compute adjoint matrix

◆ det()

template<typename T >
__both__ const scalar_t owl::common::LinearSpace2< T >::det ( ) const
inline

compute the determinant of the matrix

◆ inverse()

template<typename T >
__both__ const LinearSpace2 owl::common::LinearSpace2< T >::inverse ( ) const
inline

compute inverse matrix

◆ orthogonal()

template<typename T >
LinearSpace2 owl::common::LinearSpace2< T >::orthogonal ( ) const
inline

return closest orthogonal matrix (i.e. a general rotation including reflection)

◆ rotate()

template<typename T >
static LinearSpace2 owl::common::LinearSpace2< T >::rotate ( const scalar_t &  r)
inlinestatic

return matrix for rotation

◆ row0()

template<typename T >
const vector_t owl::common::LinearSpace2< T >::row0 ( ) const
inline

returns first row of matrix

◆ row1()

template<typename T >
const vector_t owl::common::LinearSpace2< T >::row1 ( ) const
inline

returns second row of matrix

◆ scale()

template<typename T >
static LinearSpace2 owl::common::LinearSpace2< T >::scale ( const vector_t &  s)
inlinestatic

return matrix for scaling

◆ transposed()

template<typename T >
__both__ const LinearSpace2 owl::common::LinearSpace2< T >::transposed ( ) const
inline

compute transposed matrix

Member Data Documentation

◆ vx

template<typename T >
vector_t owl::common::LinearSpace2< T >::vx

the column vectors of the matrix


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