Blender  V2.93
Classes | Typedefs | Functions
geom_patch.h File Reference

Go to the source code of this file.

Classes

struct  PatchHandle
 

Typedefs

typedef CCL_NAMESPACE_BEGIN struct PatchHandle PatchHandle
 

Functions

ccl_device_inline int patch_map_resolve_quadrant (float median, float *u, float *v)
 
ccl_device_inline PatchHandle patch_map_find_patch (KernelGlobals *kg, int object, int patch, float u, float v)
 
ccl_device_inline void patch_eval_bspline_weights (float t, float *point, float *deriv)
 
ccl_device_inline void patch_eval_adjust_boundary_weights (uint bits, float *s, float *t)
 
ccl_device_inline int patch_eval_depth (uint patch_bits)
 
ccl_device_inline float patch_eval_param_fraction (uint patch_bits)
 
ccl_device_inline void patch_eval_normalize_coords (uint patch_bits, float *u, float *v)
 
ccl_device_inline int patch_eval_indices (KernelGlobals *kg, const PatchHandle *handle, int channel, int indices[PATCH_MAX_CONTROL_VERTS])
 
ccl_device_inline void patch_eval_basis (KernelGlobals *kg, const PatchHandle *handle, float u, float v, float weights[PATCH_MAX_CONTROL_VERTS], float weights_du[PATCH_MAX_CONTROL_VERTS], float weights_dv[PATCH_MAX_CONTROL_VERTS])
 
ccl_device_inline int patch_eval_control_verts (KernelGlobals *kg, int object, int patch, float u, float v, int channel, int indices[PATCH_MAX_CONTROL_VERTS], float weights[PATCH_MAX_CONTROL_VERTS], float weights_du[PATCH_MAX_CONTROL_VERTS], float weights_dv[PATCH_MAX_CONTROL_VERTS])
 
ccl_device float patch_eval_float (KernelGlobals *kg, const ShaderData *sd, int offset, int patch, float u, float v, int channel, float *du, float *dv)
 
ccl_device float2 patch_eval_float2 (KernelGlobals *kg, const ShaderData *sd, int offset, int patch, float u, float v, int channel, float2 *du, float2 *dv)
 
ccl_device float3 patch_eval_float3 (KernelGlobals *kg, const ShaderData *sd, int offset, int patch, float u, float v, int channel, float3 *du, float3 *dv)
 
ccl_device float4 patch_eval_float4 (KernelGlobals *kg, const ShaderData *sd, int offset, int patch, float u, float v, int channel, float4 *du, float4 *dv)
 
ccl_device float4 patch_eval_uchar4 (KernelGlobals *kg, const ShaderData *sd, int offset, int patch, float u, float v, int channel, float4 *du, float4 *dv)
 

Typedef Documentation

◆ PatchHandle

Function Documentation

◆ patch_eval_adjust_boundary_weights()

ccl_device_inline void patch_eval_adjust_boundary_weights ( uint  bits,
float s,
float t 
)

Definition at line 129 of file geom_patch.h.

References t.

Referenced by patch_eval_basis().

◆ patch_eval_basis()

ccl_device_inline void patch_eval_basis ( KernelGlobals *  kg,
const PatchHandle handle,
float  u,
float  v,
float  weights[PATCH_MAX_CONTROL_VERTS],
float  weights_du[PATCH_MAX_CONTROL_VERTS],
float  weights_dv[PATCH_MAX_CONTROL_VERTS] 
)

◆ patch_eval_bspline_weights()

ccl_device_inline void patch_eval_bspline_weights ( float  t,
float point,
float deriv 
)

Definition at line 109 of file geom_patch.h.

References t.

Referenced by patch_eval_basis().

◆ patch_eval_control_verts()

ccl_device_inline int patch_eval_control_verts ( KernelGlobals *  kg,
int  object,
int  patch,
float  u,
float  v,
int  channel,
int  indices[PATCH_MAX_CONTROL_VERTS],
float  weights[PATCH_MAX_CONTROL_VERTS],
float  weights_du[PATCH_MAX_CONTROL_VERTS],
float  weights_dv[PATCH_MAX_CONTROL_VERTS] 
)

◆ patch_eval_depth()

ccl_device_inline int patch_eval_depth ( uint  patch_bits)

Definition at line 158 of file geom_patch.h.

Referenced by patch_eval_basis(), and patch_eval_param_fraction().

◆ patch_eval_float()

ccl_device float patch_eval_float ( KernelGlobals *  kg,
const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
float du,
float dv 
)

◆ patch_eval_float2()

ccl_device float2 patch_eval_float2 ( KernelGlobals *  kg,
const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
float2 du,
float2 dv 
)

◆ patch_eval_float3()

ccl_device float3 patch_eval_float3 ( KernelGlobals *  kg,
const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
float3 du,
float3 dv 
)

◆ patch_eval_float4()

ccl_device float4 patch_eval_float4 ( KernelGlobals *  kg,
const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
float4 *  du,
float4 *  dv 
)

◆ patch_eval_indices()

ccl_device_inline int patch_eval_indices ( KernelGlobals *  kg,
const PatchHandle handle,
int  channel,
int  indices[PATCH_MAX_CONTROL_VERTS] 
)

◆ patch_eval_normalize_coords()

ccl_device_inline void patch_eval_normalize_coords ( uint  patch_bits,
float u,
float v 
)

Definition at line 176 of file geom_patch.h.

References float(), CCL_NAMESPACE_BEGIN::frac(), patch_eval_param_fraction(), and v.

Referenced by patch_eval_basis().

◆ patch_eval_param_fraction()

ccl_device_inline float patch_eval_param_fraction ( uint  patch_bits)

Definition at line 163 of file geom_patch.h.

References float(), and patch_eval_depth().

Referenced by patch_eval_normalize_coords().

◆ patch_eval_uchar4()

ccl_device float4 patch_eval_uchar4 ( KernelGlobals *  kg,
const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
float4 *  du,
float4 *  dv 
)

◆ patch_map_find_patch()

ccl_device_inline PatchHandle patch_map_find_patch ( KernelGlobals *  kg,
int  object,
int  patch,
float  u,
float  v 
)

◆ patch_map_resolve_quadrant()

ccl_device_inline int patch_map_resolve_quadrant ( float  median,
float u,
float v 
)

Definition at line 33 of file geom_patch.h.

References v.

Referenced by patch_map_find_patch().