Blender  V3.3
Classes | Macros | Typedefs | Functions
intern/cycles/util/transform.h File Reference
#include <string.h>
#include "util/math.h"
#include "util/types.h"
#include "util/system.h"
#include "util/transform_inverse.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_NAMESPACE_END CCL_NAMESPACE_BEGIN ccl_device_inline float3 transform_point (ccl_private const Transform *t, const float3 a)
 
ccl_device_inline float3 transform_direction (ccl_private const Transform *t, const float3 a)
 
ccl_device_inline float3 transform_direction_transposed (ccl_private 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 bool transform_equal_threshold (const Transform &A, const Transform &B, const float threshold)
 
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_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)
 
void transform_inverse_cpu_sse41 (const Transform &tfm, Transform &itfm)
 
void transform_inverse_cpu_avx2 (const Transform &tfm, Transform &itfm)
 
ccl_device_inline Transform transform_inverse (const Transform tfm)
 
ccl_device_inline void transform_compose (ccl_private Transform *tfm, ccl_private const DecomposedTransform *decomp)
 
ccl_device void transform_motion_array_interpolate (ccl_private Transform *tfm, ccl_global const DecomposedTransform *motion, uint numsteps, float time)
 
ccl_device_inline bool transform_isfinite_safe (ccl_private Transform *tfm)
 
ccl_device_inline bool transform_decomposed_isfinite_safe (ccl_private 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 522 of file intern/cycles/util/transform.h.

◆ transform_direction_transposed_auto

#define transform_direction_transposed_auto   transform_direction_transposed

Definition at line 523 of file intern/cycles/util/transform.h.

◆ transform_point_auto

#define transform_point_auto   transform_point

Definition at line 521 of file intern/cycles/util/transform.h.

Typedef Documentation

◆ DecomposedTransform

◆ Transform

Function Documentation

◆ euler_to_transform()

ccl_device_inline Transform euler_to_transform ( const float3  euler)

Definition at line 164 of file intern/cycles/util/transform.h.

References cosf, sinf, sx, sy, 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 293 of file intern/cycles/util/transform.h.

References A, and B.

◆ operator*()

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

◆ operator==() [1/2]

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

Definition at line 507 of file intern/cycles/util/transform.h.

References A, and B.

◆ operator==() [2/2]

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

Definition at line 288 of file intern/cycles/util/transform.h.

References A, and B.

◆ print_transform()

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

Definition at line 223 of file intern/cycles/util/transform.h.

References label, print_float4(), and t.

◆ quat_interpolate()

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

◆ transform_clear_scale()

ccl_device_inline Transform transform_clear_scale ( const Transform tfm)

◆ transform_compose()

ccl_device_inline void transform_compose ( ccl_private Transform tfm,
ccl_private const DecomposedTransform decomp 
)

◆ transform_decomposed_isfinite_safe()

ccl_device_inline bool transform_decomposed_isfinite_safe ( ccl_private DecomposedTransform decomp)

Definition at line 497 of file intern/cycles/util/transform.h.

References isfinite_safe().

Referenced by TEST().

◆ transform_direction()

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

◆ transform_direction_transposed()

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

◆ transform_empty()

ccl_device_inline Transform transform_empty ( )

Definition at line 369 of file intern/cycles/util/transform.h.

References make_transform().

Referenced by Object::update_motion().

◆ transform_equal_threshold()

ccl_device_inline bool transform_equal_threshold ( const Transform A,
const Transform B,
const float  threshold 
)

Definition at line 298 of file intern/cycles/util/transform.h.

References A, B, fabsf, threshold, x, and y.

Referenced by ShaderManager::init_xyz_transforms().

◆ 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()

ccl_device_inline Transform transform_inverse ( const Transform  tfm)

◆ transform_inverse_cpu_avx2()

void transform_inverse_cpu_avx2 ( const Transform tfm,
Transform itfm 
)

Definition at line 8 of file transform_avx2.cpp.

References transform_inverse_impl().

Referenced by transform_inverse().

◆ transform_inverse_cpu_sse41()

void transform_inverse_cpu_sse41 ( const Transform tfm,
Transform itfm 
)

Definition at line 8 of file transform_sse41.cpp.

References transform_inverse_impl().

Referenced by transform_inverse().

◆ transform_isfinite_safe()

ccl_device_inline bool transform_isfinite_safe ( ccl_private Transform tfm)

Definition at line 492 of file intern/cycles/util/transform.h.

References isfinite_safe().

◆ transform_motion_array_interpolate()

ccl_device void transform_motion_array_interpolate ( ccl_private Transform tfm,
ccl_global const 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)

◆ transform_point()

◆ 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 246 of file intern/cycles/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 318 of file intern/cycles/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 118 of file 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 236 of file intern/cycles/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 202 of file intern/cycles/util/transform.h.

References zero_float4().

Referenced by SocketType::zero_default_value().