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... | |
Functions/Subroutines | |
pure type(t_ray) function | mod_ray_tracing::rt_ray_partial_initialization (origin, direction) |
Initialize a ray from origin and direction only. | |
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. | |
Ray-tracing tools
logical pure function, public mod_ray_tracing::rt_does_ray_hit_aligned_axis_bounding_box | ( | type(t_ray), intent(in) | ray, |
double precision, dimension(3,2), intent(in) | corner ) |
Test the intersection of a ray and an aligned-axis bounding-box (AABB).
Reference:
The corner(:,1)
contains the minimal coordinates and corner(:,2)
contains the maximal coordinates.
[in] | ray | Ray. |
[in] | corner | Corners of the AABB. |
pure subroutine, public mod_ray_tracing::rt_intersection_list_difference | ( | type(t_intersection_list), intent(in) | list1, |
type(t_intersection_list), intent(in) | list2, | ||
logical, intent(in) | is_inside1, | ||
logical, intent(in) | is_inside2, | ||
type(t_intersection_list), intent(out) | difference ) |
Generate the difference of two lists of ray intersections.
[in] | list1,list2 | Lists of ray intersections. |
[in] | is_inside1,is_inside2 | Is the origin of the ray inside or outside? |
[out] | difference | Difference of list1 and list2 . |
pure subroutine, public mod_ray_tracing::rt_intersection_list_union | ( | type(t_intersection_list), intent(in) | list1, |
type(t_intersection_list), intent(in) | list2, | ||
logical, intent(in) | is_inside1, | ||
logical, intent(in) | is_inside2, | ||
type(t_intersection_list), intent(out) | union ) |
Generate the union of two lists of ray intersections.
[in] | list1,list2 | Lists of ray intersection. |
[in] | is_inside1,is_inside2 | Is the origin of the ray inside or outside? |
[out] | union | Union of list1 and list2 . |
pure type(t_ray) function mod_ray_tracing::rt_ray_partial_initialization | ( | double precision, dimension(3), intent(in) | origin, |
double precision, dimension(3), intent(in) | direction ) |
Initialize a ray from origin and direction only.
[in] | origin | Origin of the ray |
[in] | direction | Direction of the ray |
pure subroutine, public mod_ray_tracing::rt_transform_aligned_axis_bounding_box | ( | double precision, dimension(3,2), intent(inout) | corner, |
type(t_cg_transformation), intent(in) | transformation ) |
Transform an aligned-axis bounding-box (AABB).
[in,out] | corner | Corners of the AABB. |
[in] | transformation | Tranformation applied to the AABB. |