Blender  V2.93
Classes | Macros | Typedefs | Functions
util_transform.h File Reference
#include <string.h>
#include "util/util_math.h"
#include "util/util_types.h"

Go to the source code of this file.

Classes

struct  Transform
 
struct  DecomposedTransform
 

Macros

#define transform_point_auto   transform_point
 
#define transform_direction_auto   transform_direction
 
#define transform_direction_transposed_auto   transform_direction_transposed
 

Typedefs

typedef CCL_NAMESPACE_BEGIN struct Transform Transform
 
typedef struct DecomposedTransform DecomposedTransform
 

Functions

ccl_device_inline float3 transform_point (const Transform *t, const float3 a)
 
ccl_device_inline float3 transform_direction (const Transform *t, const float3 a)
 
ccl_device_inline float3 transform_direction_transposed (const Transform *t, const float3 a)
 
ccl_device_inline Transform make_transform (float a, float b, float c, float d, float e, float f, float g, float h, float i, float j, float k, float l)
 
ccl_device_inline Transform euler_to_transform (const float3 euler)
 
ccl_device_inline Transform make_transform_frame (float3 N)
 
ccl_device_inline Transform transform_zero ()
 
ccl_device_inline Transform operator* (const Transform a, const Transform b)
 
ccl_device_inline void print_transform (const char *label, const Transform &t)
 
ccl_device_inline Transform transform_translate (float3 t)
 
ccl_device_inline Transform transform_translate (float x, float y, float z)
 
ccl_device_inline Transform transform_scale (float3 s)
 
ccl_device_inline Transform transform_scale (float x, float y, float z)
 
ccl_device_inline Transform transform_rotate (float angle, float3 axis)
 
ccl_device_inline Transform transform_euler (float3 euler)
 
ccl_device_inline Transform transform_identity ()
 
ccl_device_inline bool operator== (const Transform &A, const Transform &B)
 
ccl_device_inline bool operator!= (const Transform &A, const Transform &B)
 
ccl_device_inline float3 transform_get_column (const Transform *t, int column)
 
ccl_device_inline void transform_set_column (Transform *t, int column, float3 value)
 
Transform transform_inverse (const Transform &a)
 
Transform transform_transposed_inverse (const Transform &a)
 
ccl_device_inline bool transform_uniform_scale (const Transform &tfm, float &scale)
 
ccl_device_inline bool transform_negative_scale (const Transform &tfm)
 
ccl_device_inline Transform transform_clear_scale (const Transform &tfm)
 
ccl_device_inline Transform transform_empty ()
 
ccl_device_inline float4 quat_interpolate (float4 q1, float4 q2, float t)
 
ccl_device_inline Transform transform_quick_inverse (Transform M)
 
ccl_device_inline void transform_compose (Transform *tfm, const DecomposedTransform *decomp)
 
ccl_device void transform_motion_array_interpolate (Transform *tfm, const ccl_global DecomposedTransform *motion, uint numsteps, float time)
 
ccl_device_inline bool transform_isfinite_safe (Transform *tfm)
 
ccl_device_inline bool transform_decomposed_isfinite_safe (DecomposedTransform *decomp)
 
ccl_device_inline bool operator== (const DecomposedTransform &A, const DecomposedTransform &B)
 
float4 transform_to_quat (const Transform &tfm)
 
void transform_motion_decompose (DecomposedTransform *decomp, const Transform *motion, size_t size)
 
Transform transform_from_viewplane (BoundBox2D &viewplane)
 

Macro Definition Documentation

◆ transform_direction_auto

#define transform_direction_auto   transform_direction

Definition at line 528 of file util_transform.h.

◆ transform_direction_transposed_auto

#define transform_direction_transposed_auto   transform_direction_transposed

Definition at line 529 of file util_transform.h.

◆ transform_point_auto

#define transform_point_auto   transform_point

Definition at line 527 of file util_transform.h.

Typedef Documentation

◆ DecomposedTransform

◆ Transform

Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Transform

Definition at line 205 of file NOD_static_types.h.

Function Documentation

◆ euler_to_transform()

ccl_device_inline Transform euler_to_transform ( const float3  euler)

Definition at line 151 of file util_transform.h.

References cosf, sinf, t, float3::x, float3::y, and float3::z.

Referenced by svm_mapping(), and svm_node_vector_rotate().

◆ make_transform()

ccl_device_inline Transform make_transform ( float  a,
float  b,
float  c,
float  d,
float  e,
float  f,
float  g,
float  h,
float  i,
float  j,
float  k,
float  l 
)

◆ make_transform_frame()

ccl_device_inline Transform make_transform_frame ( float3  N)

◆ operator!=()

ccl_device_inline bool operator!= ( const Transform A,
const Transform B 
)

Definition at line 280 of file util_transform.h.

References A, and B.

◆ operator*()

ccl_device_inline Transform operator* ( const Transform  a,
const Transform  b 
)

Definition at line 195 of file util_transform.h.

References Freestyle::a, dot(), make_float4, t, Transform::x, Transform::y, and Transform::z.

◆ operator==() [1/2]

ccl_device_inline bool operator== ( const DecomposedTransform A,
const DecomposedTransform B 
)

Definition at line 490 of file util_transform.h.

References A, and B.

◆ operator==() [2/2]

ccl_device_inline bool operator== ( const Transform A,
const Transform B 
)

Definition at line 275 of file util_transform.h.

References A, and B.

◆ print_transform()

ccl_device_inline void print_transform ( const char *  label,
const Transform t 
)

Definition at line 210 of file util_transform.h.

References label, print_float4(), and t.

◆ quat_interpolate()

ccl_device_inline float4 quat_interpolate ( float4  q1,
float4  q2,
float  t 
)

Definition at line 351 of file util_transform.h.

References acosf, clamp(), cosf, dot(), normalize(), q1, sinf, and t.

Referenced by transform_motion_array_interpolate().

◆ transform_clear_scale()

ccl_device_inline Transform transform_clear_scale ( const Transform tfm)

◆ transform_compose()

ccl_device_inline void transform_compose ( Transform tfm,
const DecomposedTransform decomp 
)

◆ transform_decomposed_isfinite_safe()

ccl_device_inline bool transform_decomposed_isfinite_safe ( DecomposedTransform decomp)

◆ transform_direction()

ccl_device_inline float3 transform_direction ( const Transform t,
const float3  a 
)

◆ transform_direction_transposed()

ccl_device_inline float3 transform_direction_transposed ( const Transform t,
const float3  a 
)

◆ transform_empty()

ccl_device_inline Transform transform_empty ( )

Definition at line 342 of file util_transform.h.

References make_transform().

Referenced by Object::update_motion().

◆ transform_euler()

ccl_device_inline Transform transform_euler ( float3  euler)

◆ transform_from_viewplane()

Transform transform_from_viewplane ( BoundBox2D viewplane)

◆ transform_get_column()

ccl_device_inline float3 transform_get_column ( const Transform t,
int  column 
)

◆ transform_identity()

ccl_device_inline Transform transform_identity ( )

◆ transform_inverse()

Transform transform_inverse ( const Transform a)

◆ transform_isfinite_safe()

ccl_device_inline bool transform_isfinite_safe ( Transform tfm)

Definition at line 475 of file util_transform.h.

References isfinite4_safe(), Transform::x, Transform::y, and Transform::z.

◆ transform_motion_array_interpolate()

ccl_device void transform_motion_array_interpolate ( Transform tfm,
const ccl_global DecomposedTransform motion,
uint  numsteps,
float  time 
)

◆ transform_motion_decompose()

void transform_motion_decompose ( DecomposedTransform decomp,
const Transform motion,
size_t  size 
)

◆ transform_negative_scale()

ccl_device_inline bool transform_negative_scale ( const Transform tfm)

Definition at line 322 of file util_transform.h.

References cross(), dot(), and transform_get_column().

Referenced by Object::apply_transform(), and transform_decompose().

◆ transform_point()

ccl_device_inline float3 transform_point ( const Transform t,
const float3  a 
)

◆ transform_quick_inverse()

ccl_device_inline Transform transform_quick_inverse ( Transform  M)

Definition at line 377 of file util_transform.h.

References M, make_float3, make_float4, R, T, float3::x, float3::y, and float3::z.

Referenced by ObtainCacheParticleData().

◆ transform_rotate()

ccl_device_inline Transform transform_rotate ( float  angle,
float3  axis 
)

◆ transform_scale() [1/2]

ccl_device_inline Transform transform_scale ( float  x,
float  y,
float  z 
)

Definition at line 233 of file util_transform.h.

References make_float3, transform_scale(), x, y, and z.

◆ transform_scale() [2/2]

ccl_device_inline Transform transform_scale ( float3  s)

◆ transform_set_column()

ccl_device_inline void transform_set_column ( Transform t,
int  column,
float3  value 
)

Definition at line 290 of file util_transform.h.

References t, float3::x, float3::y, and float3::z.

Referenced by transform_clear_scale(), and transform_decompose().

◆ transform_to_quat()

float4 transform_to_quat ( const Transform tfm)

Definition at line 173 of file util_transform.cpp.

References double(), float(), sqrt(), and w().

Referenced by transform_decompose().

◆ transform_translate() [1/2]

ccl_device_inline Transform transform_translate ( float  x,
float  y,
float  z 
)

Definition at line 223 of file util_transform.h.

References make_float3, transform_translate(), x, y, and z.

◆ transform_translate() [2/2]

ccl_device_inline Transform transform_translate ( float3  t)

◆ transform_transposed_inverse()

Transform transform_transposed_inverse ( const Transform a)

◆ transform_uniform_scale()

ccl_device_inline bool transform_uniform_scale ( const Transform tfm,
float scale 
)

◆ transform_zero()

ccl_device_inline Transform transform_zero ( )

Definition at line 189 of file util_transform.h.

References zero_float4().

Referenced by SocketType::zero_default_value().