0.6.0
Loading...
Searching...
No Matches
mod_shape_constructive_solid_geometry Module Reference

Data Types

type  t_shape_difference
 Difference of two shapes. More...
 
type  t_shape_intersection
 Intersection of two shapes. More...
 
type  t_shape_union
 Union of two shapes. More...
 

Functions/Subroutines

recursive subroutine initialize_shape_union (shape)
 Initialize the union.
 
recursive subroutine copy_shape_union (shape, copy)
 Copy the union.
 
logical pure recursive function shape_union_is_inside (shape, point)
 Check if a point lies inside the union.
 
recursive subroutine shape_union_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in an union.
 
pure recursive subroutine shape_union_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the union.
 
pure subroutine shape_union_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between an union of shapes and a ray.
 
recursive subroutine initialize_shape_intersection (shape)
 Initialize the intersection.
 
recursive subroutine copy_shape_intersection (shape, copy)
 Copy the intersection.
 
logical pure recursive function shape_intersection_is_inside (shape, point)
 Check if a point lies inside the intersection.
 
recursive subroutine shape_intersection_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in an intersection.
 
pure recursive subroutine shape_intersection_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the intersection.
 
pure subroutine shape_intersection_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between an intersection of shapes and a ray.
 
recursive subroutine initialize_shape_difference (shape)
 Initialize the difference.
 
recursive subroutine copy_shape_difference (shape, copy)
 Copy the difference.
 
logical pure recursive function shape_difference_is_inside (shape, point)
 Check if a point lies inside the difference.
 
recursive subroutine shape_difference_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a difference.
 
pure recursive subroutine shape_difference_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the difference.
 
pure subroutine shape_difference_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between a difference of shapes and a ray.
 

Function/Subroutine Documentation

◆ shape_difference_ray_trace()

pure subroutine mod_shape_constructive_solid_geometry::shape_difference_ray_trace ( class(t_shape_difference), intent(in) shape,
type(t_ray), intent(in) ray,
logical, intent(in) has_normal,
type(t_intersection_list), intent(inout) intersection_list )

Compute the intersection between a difference of shapes and a ray.

Parameters
[in]shapedifference shape
[in]rayray to intersect the difference
[in]has_normallist of intersections between the ray and the difference
[in,out]intersection_listlist of intersections between the ray and the difference

◆ shape_intersection_ray_trace()

pure subroutine mod_shape_constructive_solid_geometry::shape_intersection_ray_trace ( class(t_shape_intersection), intent(in) shape,
type(t_ray), intent(in) ray,
logical, intent(in) has_normal,
type(t_intersection_list), intent(inout) intersection_list )

Compute the intersection between an intersection of shapes and a ray.

Parameters
[in]shapeintersection shape
[in]rayray to intersect the intersection
[in]has_normallist of intersections between the ray and the intersection
[in,out]intersection_listlist of intersections between the ray and the intersection

◆ shape_union_ray_trace()

pure subroutine mod_shape_constructive_solid_geometry::shape_union_ray_trace ( class(t_shape_union), intent(in) shape,
type(t_ray), intent(in) ray,
logical, intent(in) has_normal,
type(t_intersection_list), intent(inout) intersection_list )

Compute the intersection between an union of shapes and a ray.

Parameters
[in]shapeunion shape
[in]rayray to intersect the union
[in]has_normallist of intersections between the ray and the union
[in,out]intersection_listlist of intersections between the ray and the union