Blender V5.0
projection.h File Reference

Go to the source code of this file.

Classes

struct  ProjectionTransform
struct  PerspectiveMotionTransform

Functions

CCL_NAMESPACE_BEGIN ccl_device float2 direction_to_spherical (const float3 dir)
ccl_device float3 spherical_to_direction (const float theta, const float phi)
ccl_device float3 spherical_cos_to_direction (const float cos_theta, const float phi)
ccl_device_inline float2 polar_to_cartesian (const float r, const float phi)
template<class T>
ccl_device_inline T to_global (const float2 p, const T X, const T Y)
template<class T>
ccl_device_inline T to_global (const float3 p, const T X, const T Y, const T Z)
template<class T>
ccl_device_inline float2 to_local (const T p, const T X, const T Y)
template<class T>
ccl_device_inline float3 to_local (const T p, const T X, const T Y, const T Z)
ccl_device_inline float3 disk_to_hemisphere (const float2 p)
CCL_NAMESPACE_END CCL_NAMESPACE_BEGIN ccl_device_inline float3 transform_perspective (const ccl_private ProjectionTransform *t, const float3 a)
ccl_device_inline float3 transform_perspective_direction (const ccl_private ProjectionTransform *t, const float3 a)
ccl_device_inline float3 transform_perspective_deriv (const ccl_private ProjectionTransform *t, const float3 a, const float3 dx, const float3 dy, ccl_private float3 &out_dx, ccl_private float3 &out_dy)
ccl_device_inline ProjectionTransform make_projection (const float a, const float b, const float c, const float d, const float e, const float f, const float g, const float h, const float i, const float j, const float k, const float l, const float m, const float n, const float o, const float p)
ccl_device_inline ProjectionTransform projection_identity ()
ccl_device_inline Transform projection_to_transform (const ProjectionTransform &a)
ccl_device_inline ProjectionTransform projection_transpose (const ProjectionTransform a)
ccl_device_inline ProjectionTransform projection_inverse (const ProjectionTransform tfm)
ccl_device_inline ProjectionTransform operator* (const ProjectionTransform a, const ProjectionTransform b)
ccl_device_inline ProjectionTransform operator* (const ProjectionTransform &a, const Transform &b)
ccl_device_inline ProjectionTransform operator* (const Transform &a, const ProjectionTransform &b)
ccl_device_inline void print_projection (const char *label, const ProjectionTransform &t)
ccl_device_inline ProjectionTransform projection_perspective (const float fov, const float n, float f)
ccl_device_inline ProjectionTransform projection_orthographic (const float znear, const float zfar)

Function Documentation

◆ direction_to_spherical()

◆ disk_to_hemisphere()

ccl_device_inline float3 disk_to_hemisphere ( const float2 p)

◆ make_projection()

ccl_device_inline ProjectionTransform make_projection ( const float a,
const float b,
const float c,
const float d,
const float e,
const float f,
const float g,
const float h,
const float i,
const float j,
const float k,
const float l,
const float m,
const float n,
const float o,
const float p )

◆ operator*() [1/3]

Definition at line 266 of file cycles/util/projection.h.

References b, and ccl_device_inline.

◆ operator*() [2/3]

◆ operator*() [3/3]

Definition at line 271 of file cycles/util/projection.h.

References b, and ccl_device_inline.

◆ polar_to_cartesian()

◆ print_projection()

◆ projection_identity()

◆ projection_inverse()

◆ projection_orthographic()

ccl_device_inline ProjectionTransform projection_orthographic ( const float znear,
const float zfar )

Definition at line 299 of file cycles/util/projection.h.

References ccl_device_inline, and transform_scale().

Referenced by Camera::update().

◆ projection_perspective()

ccl_device_inline ProjectionTransform projection_perspective ( const float fov,
const float n,
float f )

Definition at line 285 of file cycles/util/projection.h.

References ccl_device_inline, make_projection(), tanf, and transform_scale().

Referenced by Camera::update().

◆ projection_to_transform()

◆ projection_transpose()

◆ spherical_cos_to_direction()

ccl_device float3 spherical_cos_to_direction ( const float cos_theta,
const float phi )

◆ spherical_to_direction()

◆ to_global() [1/2]

◆ to_global() [2/2]

template<class T>
ccl_device_inline T to_global ( const float3 p,
const T X,
const T Y,
const T Z )

Definition at line 42 of file cycles/util/projection.h.

References ccl_device_inline, T, X, float3::x, Y, float3::y, Z, and float3::z.

◆ to_local() [1/2]

◆ to_local() [2/2]

template<class T>
ccl_device_inline float3 to_local ( const T p,
const T X,
const T Y,
const T Z )

Definition at line 54 of file cycles/util/projection.h.

References ccl_device_inline, dot(), make_float3(), T, X, Y, and Z.

◆ transform_perspective()

◆ transform_perspective_deriv()

◆ transform_perspective_direction()