Blender  V2.93
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
blender::float4x4 Struct Reference

#include <BLI_float4x4.hh>

Classes

struct  float3x3_ref
 

Public Types

using c_style_float4x4 = float[4][4]
 

Public Member Functions

 float4x4 ()=default
 
 float4x4 (const float *matrix)
 
 float4x4 (const float matrix[4][4])
 
 operator float * ()
 
 operator const float * () const
 
c_style_float4x4ptr ()
 
const c_style_float4x4ptr () const
 
float3 translation () const
 
float3 to_euler () const
 
float3 scale () const
 
float4x4 inverted () const
 
float4x4 inverted_affine () const
 
float4x4 transposed () const
 
float4x4 inverted_transposed_affine () const
 
float3x3_ref ref_3x3 () const
 
uint64_t hash () const
 

Static Public Member Functions

static float4x4 from_loc_eul_scale (const float3 location, const float3 rotation, const float3 scale)
 
static float4x4 identity ()
 
static float4x4 interpolate (const float4x4 &a, const float4x4 &b, float t)
 

Public Attributes

float values [4][4]
 

Friends

float4x4 operator* (const float4x4 &a, const float4x4 &b)
 
float3 operator* (const float4x4 &m, const float3 &v)
 
float3 operator* (const float4x4 &m, const float(*v)[3])
 

Detailed Description

Definition at line 24 of file BLI_float4x4.hh.

Member Typedef Documentation

◆ c_style_float4x4

Definition at line 65 of file BLI_float4x4.hh.

Constructor & Destructor Documentation

◆ float4x4() [1/3]

blender::float4x4::float4x4 ( )
default

◆ float4x4() [2/3]

blender::float4x4::float4x4 ( const float matrix)
inline

Definition at line 29 of file BLI_float4x4.hh.

References values.

◆ float4x4() [3/3]

blender::float4x4::float4x4 ( const float  matrix[4][4])
inline

Definition at line 34 of file BLI_float4x4.hh.

Member Function Documentation

◆ from_loc_eul_scale()

static float4x4 blender::float4x4::from_loc_eul_scale ( const float3  location,
const float3  rotation,
const float3  scale 
)
inlinestatic

◆ hash()

uint64_t blender::float4x4::hash ( ) const
inline

Definition at line 171 of file BLI_float4x4.hh.

References values.

◆ identity()

static float4x4 blender::float4x4::identity ( )
inlinestatic

◆ interpolate()

static float4x4 blender::float4x4::interpolate ( const float4x4 a,
const float4x4 b,
float  t 
)
inlinestatic

Definition at line 164 of file BLI_float4x4.hh.

References Freestyle::a, interp_m4_m4m4(), result, t, and values.

◆ inverted()

float4x4 blender::float4x4::inverted ( ) const
inline

Definition at line 119 of file BLI_float4x4.hh.

References invert_m4_m4(), result, and values.

Referenced by inverted_affine().

◆ inverted_affine()

float4x4 blender::float4x4::inverted_affine ( ) const
inline

Matrix inversion can be implemented more efficiently for affine matrices.

Definition at line 129 of file BLI_float4x4.hh.

References BLI_assert, inverted(), and values.

Referenced by inverted_transposed_affine().

◆ inverted_transposed_affine()

float4x4 blender::float4x4::inverted_transposed_affine ( ) const
inline

Definition at line 143 of file BLI_float4x4.hh.

References inverted_affine(), and transposed().

◆ operator const float *()

blender::float4x4::operator const float * ( ) const
inline

Definition at line 60 of file BLI_float4x4.hh.

References values.

◆ operator float *()

blender::float4x4::operator float * ( )
inline

Definition at line 55 of file BLI_float4x4.hh.

References values.

◆ ptr() [1/2]

c_style_float4x4& blender::float4x4::ptr ( )
inline

Definition at line 66 of file BLI_float4x4.hh.

References values.

◆ ptr() [2/2]

const c_style_float4x4& blender::float4x4::ptr ( ) const
inline

Definition at line 71 of file BLI_float4x4.hh.

References values.

◆ ref_3x3()

float3x3_ref blender::float4x4::ref_3x3 ( ) const
inline

Definition at line 159 of file BLI_float4x4.hh.

◆ scale()

float3 blender::float4x4::scale ( ) const
inline

Definition at line 112 of file BLI_float4x4.hh.

References mat4_to_size(), and values.

Referenced by from_loc_eul_scale().

◆ to_euler()

float3 blender::float4x4::to_euler ( ) const
inline

Definition at line 105 of file BLI_float4x4.hh.

References mat4_to_eul(), and values.

◆ translation()

float3 blender::float4x4::translation ( ) const
inline

Definition at line 99 of file BLI_float4x4.hh.

References values.

◆ transposed()

float4x4 blender::float4x4::transposed ( ) const
inline

Definition at line 136 of file BLI_float4x4.hh.

References result, transpose_m4_m4(), and values.

Referenced by inverted_transposed_affine().

Friends And Related Function Documentation

◆ operator* [1/3]

float4x4 operator* ( const float4x4 a,
const float4x4 b 
)
friend

Definition at line 76 of file BLI_float4x4.hh.

◆ operator* [2/3]

float3 operator* ( const float4x4 m,
const float(*)  v[3] 
)
friend

Definition at line 94 of file BLI_float4x4.hh.

◆ operator* [3/3]

float3 operator* ( const float4x4 m,
const float3 v 
)
friend

This also applies the translation on the vector. Use m.ref_3x3() * v if that is not intended.

Definition at line 87 of file BLI_float4x4.hh.

Member Data Documentation

◆ values

float blender::float4x4::values[4][4]

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