Blender V5.0
triangle.h File Reference

Go to the source code of this file.

Functions

template<typename T>
CCL_NAMESPACE_BEGIN ccl_device_inline T triangle_interpolate (const float u, const float v, const T f0, const T f1, const T f2)
ccl_device_inline float3 triangle_normal (KernelGlobals kg, ccl_private ShaderData *sd)
ccl_device_inline void triangle_point_normal (KernelGlobals kg, const int object, const int prim, const float u, const float v, ccl_private float3 *P, ccl_private float3 *Ng, ccl_private int *shader)
ccl_device_inline void triangle_vertices (KernelGlobals kg, const int prim, float3 P[3])
ccl_device_inline void triangle_vertices_and_normals (KernelGlobals kg, const int prim, float3 P[3], float3 N[3])
ccl_device_inline float3 triangle_smooth_normal (KernelGlobals kg, const float3 Ng, const int prim, const float u, float v)
ccl_device_inline float3 triangle_smooth_normal (KernelGlobals kg, const float3 Ng, const int prim, const float u, float v, const differential du, const differential dv, ccl_private float3 &N_x, ccl_private float3 &N_y)
ccl_device_inline float3 triangle_smooth_normal_unnormalized (KernelGlobals kg, const ccl_private ShaderData *sd, const float3 Ng, const int prim, const float u, float v)
ccl_device_inline void triangle_dPdudv (KernelGlobals kg, const int prim, ccl_private float3 *dPdu, ccl_private float3 *dPdv)
template<typename T>
ccl_device_inline T triangle_attribute_dfdx (const ccl_private differential &du, const ccl_private differential &dv, const ccl_private T &f0, const ccl_private T &f1, const ccl_private T &f2)
template<typename T>
ccl_device_inline T triangle_attribute_dfdy (const ccl_private differential &du, const ccl_private differential &dv, const ccl_private T &f0, const ccl_private T &f1, const ccl_private T &f2)
template<typename T>
ccl_device dual< Ttriangle_attribute (KernelGlobals kg, const ccl_private ShaderData *sd, const AttributeDescriptor desc, const bool dx=false, const bool dy=false)

Function Documentation

◆ triangle_attribute()

◆ triangle_attribute_dfdx()

template<typename T>
ccl_device_inline T triangle_attribute_dfdx ( const ccl_private differential & du,
const ccl_private differential & dv,
const ccl_private T & f0,
const ccl_private T & f1,
const ccl_private T & f2 )

Definition at line 202 of file geom/triangle.h.

References ccl_device_inline, ccl_private, and T.

Referenced by triangle_attribute().

◆ triangle_attribute_dfdy()

template<typename T>
ccl_device_inline T triangle_attribute_dfdy ( const ccl_private differential & du,
const ccl_private differential & dv,
const ccl_private T & f0,
const ccl_private T & f1,
const ccl_private T & f2 )

Definition at line 213 of file geom/triangle.h.

References ccl_device_inline, ccl_private, and T.

Referenced by triangle_attribute().

◆ triangle_dPdudv()

◆ triangle_interpolate()

template<typename T>
CCL_NAMESPACE_BEGIN ccl_device_inline T triangle_interpolate ( const float u,
const float v,
const T f0,
const T f1,
const T f2 )

Definition at line 24 of file geom/triangle.h.

References T, and v.

Referenced by motion_triangle_smooth_normal(), and triangle_smooth_normal().

◆ triangle_normal()

◆ triangle_point_normal()

ccl_device_inline void triangle_point_normal ( KernelGlobals kg,
const int object,
const int prim,
const float u,
const float v,
ccl_private float3 * P,
ccl_private float3 * Ng,
ccl_private int * shader )

◆ triangle_smooth_normal() [1/2]

◆ triangle_smooth_normal() [2/2]

ccl_device_inline float3 triangle_smooth_normal ( KernelGlobals kg,
const float3 Ng,
const int prim,
const float u,
float v,
const differential du,
const differential dv,
ccl_private float3 & N_x,
ccl_private float3 & N_y )

◆ triangle_smooth_normal_unnormalized()

◆ triangle_vertices()

◆ triangle_vertices_and_normals()

ccl_device_inline void triangle_vertices_and_normals ( KernelGlobals kg,
const int prim,
float3 P[3],
float3 N[3] )