0.6.0
Loading...
Searching...
No Matches
ray_tracing.f90 File Reference

Data Types

type  mod_ray_tracing::t_ray
 Definition of a ray. More...
 
type  mod_ray_tracing::t_intersection
 Definition of an intersection. More...
 
type  mod_ray_tracing::t_intersection_list
 Sorted list of intersections. More...
 

Modules

module  mod_ray_tracing
 

Functions/Subroutines

pure type(t_ray) function mod_ray_tracing::rt_ray_partial_initialization (origin, direction)
 Initialize a ray from origin and direction only.
 
pure subroutine mod_ray_tracing::rt_get_transformed_ray (ray, transformation, transformed_ray)
 Get a transformed ray in the object frame.
 
pure subroutine mod_ray_tracing::rt_intersection_apply_transformation (intersection, transformation, ray, has_normal)
 Apply transformation to the intersection and compute the distance.
 
pure type(t_intersection) function mod_ray_tracing::rt_intersection_partial_initialization (point, distance)
 Initialize an interface from point and distance only.
 
pure type(t_intersection) function mod_ray_tracing::rt_intersection_partial_initialization_no_tag (point, distance, normal)
 Initialize an interface from point and distance only.
 
pure subroutine mod_ray_tracing::rt_intersection_list_clear (intersection_list)
 Clear the intersection list.
 
pure subroutine mod_ray_tracing::rt_intersection_list_push (intersection_list, intersection)
 Add an intersection to the list.
 
logical pure function, public mod_ray_tracing::rt_does_ray_hit_aligned_axis_bounding_box (ray, corner)
 Test the intersection of a ray and an aligned-axis bounding-box (AABB).
 
pure subroutine, public mod_ray_tracing::rt_transform_aligned_axis_bounding_box (corner, transformation)
 Transform an aligned-axis bounding-box (AABB).
 
pure subroutine, public mod_ray_tracing::rt_intersection_list_union (list1, list2, is_inside1, is_inside2, union)
 Generate the union of two lists of ray intersections.
 
pure subroutine, public mod_ray_tracing::rt_intersection_list_difference (list1, list2, is_inside1, is_inside2, difference)
 Generate the difference of two lists of ray intersections.
 

Variables

double precision, parameter, public mod_ray_tracing::rt_epsilon = epsilon(RT_EPSILON)
 Shortest distance between two successive intersections.