Blender  V3.3
Functions
math_intersect.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device bool ray_sphere_intersect (float3 ray_P, float3 ray_D, float ray_tmin, float ray_tmax, float3 sphere_P, float sphere_radius, ccl_private float3 *isect_P, ccl_private float *isect_t)
 
ccl_device bool ray_aligned_disk_intersect (float3 ray_P, float3 ray_D, float ray_tmin, float ray_tmax, float3 disk_P, float disk_radius, ccl_private float3 *isect_P, ccl_private float *isect_t)
 
ccl_device bool ray_disk_intersect (float3 ray_P, float3 ray_D, float ray_tmin, float ray_tmax, float3 disk_P, float3 disk_N, float disk_radius, ccl_private float3 *isect_P, ccl_private float *isect_t)
 
ccl_device_forceinline float ray_triangle_rcp (const float x)
 
ccl_device_inline float ray_triangle_dot (const float3 a, const float3 b)
 
ccl_device_inline float3 ray_triangle_cross (const float3 a, const float3 b)
 
ccl_device_forceinline bool ray_triangle_intersect (const float3 ray_P, const float3 ray_D, const float ray_tmin, const float ray_tmax, const float3 tri_a, const float3 tri_b, const float3 tri_c, ccl_private float *isect_u, ccl_private float *isect_v, ccl_private float *isect_t)
 
ccl_device_forceinline bool ray_triangle_intersect_self (const float3 ray_P, const float3 ray_D, const float3 tri_a, const float3 tri_b, const float3 tri_c)
 
ccl_device bool ray_quad_intersect (float3 ray_P, float3 ray_D, float ray_tmin, float ray_tmax, float3 quad_P, float3 quad_u, float3 quad_v, float3 quad_n, ccl_private float3 *isect_P, ccl_private float *isect_t, ccl_private float *isect_u, ccl_private float *isect_v, bool ellipse)
 

Function Documentation

◆ ray_aligned_disk_intersect()

ccl_device bool ray_aligned_disk_intersect ( float3  ray_P,
float3  ray_D,
float  ray_tmin,
float  ray_tmax,
float3  disk_P,
float  disk_radius,
ccl_private float3 isect_P,
ccl_private float isect_t 
)

Definition at line 46 of file math_intersect.h.

References blender::math::dot(), len_squared(), normalize_len(), P(), t, and UNLIKELY.

◆ ray_disk_intersect()

ccl_device bool ray_disk_intersect ( float3  ray_P,
float3  ray_D,
float  ray_tmin,
float  ray_tmax,
float3  disk_P,
float3  disk_N,
float  disk_radius,
ccl_private float3 isect_P,
ccl_private float isect_t 
)

Definition at line 77 of file math_intersect.h.

References blender::math::dot(), P(), sqr(), T, and t.

Referenced by lights_intersect().

◆ ray_quad_intersect()

ccl_device bool ray_quad_intersect ( float3  ray_P,
float3  ray_D,
float  ray_tmin,
float  ray_tmax,
float3  quad_P,
float3  quad_u,
float3  quad_v,
float3  quad_n,
ccl_private float3 isect_P,
ccl_private float isect_t,
ccl_private float isect_u,
ccl_private float isect_v,
bool  ellipse 
)

Definition at line 252 of file math_intersect.h.

References blender::math::dot(), NULL, t, and v.

Referenced by lights_intersect().

◆ ray_sphere_intersect()

CCL_NAMESPACE_BEGIN ccl_device bool ray_sphere_intersect ( float3  ray_P,
float3  ray_D,
float  ray_tmin,
float  ray_tmax,
float3  sphere_P,
float  sphere_radius,
ccl_private float3 isect_P,
ccl_private float isect_t 
)

Definition at line 11 of file math_intersect.h.

References blender::math::dot(), sqrtf, and t.

◆ ray_triangle_cross()

ccl_device_inline float3 ray_triangle_cross ( const float3  a,
const float3  b 
)

◆ ray_triangle_dot()

ccl_device_inline float ray_triangle_dot ( const float3  a,
const float3  b 
)

Definition at line 133 of file math_intersect.h.

References Freestyle::a, usdtokens::b(), and madd().

Referenced by ray_triangle_intersect(), and ray_triangle_intersect_self().

◆ ray_triangle_intersect()

ccl_device_forceinline bool ray_triangle_intersect ( const float3  ray_P,
const float3  ray_D,
const float  ray_tmin,
const float  ray_tmax,
const float3  tri_a,
const float3  tri_b,
const float3  tri_c,
ccl_private float isect_u,
ccl_private float isect_v,
ccl_private float isect_t 
)

◆ ray_triangle_intersect_self()

ccl_device_forceinline bool ray_triangle_intersect_self ( const float3  ray_P,
const float3  ray_D,
const float3  tri_a,
const float3  tri_b,
const float3  tri_c 
)

Definition at line 214 of file math_intersect.h.

References eps, fabsf, max, min, ray_triangle_cross(), ray_triangle_dot(), V, v1, and v2.

Referenced by integrate_surface_ray_offset().

◆ ray_triangle_rcp()

ccl_device_forceinline float ray_triangle_rcp ( const float  x)

Definition at line 109 of file math_intersect.h.

References Freestyle::a, r, and x.

Referenced by ray_triangle_intersect().