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

Data Types

type  mod_shape_basic::t_shape_circle
 Circle/sphere shape. More...
 
type  mod_shape_basic::t_shape_rectangle
 Rectangle/rectangular cuboid shape. More...
 
type  mod_shape_basic::t_shape_halfspace
 Half-space shape. More...
 
type  mod_shape_basic::t_shape_cylinder
 Cylinder shape (3D only) More...
 
type  mod_shape_basic::t_shape_torus
 Torus shape around Z-axis (3D only) More...
 
type  mod_shape_basic::t_shape_universe
 Represents the whole space. More...
 

Modules

module  mod_shape_basic
 

Enumerations

enum  {
  side_xmin = 1 , side_xmax , side_ymin , side_ymax ,
  side_zmin , side_zmax
}
 

Functions/Subroutines

subroutine mod_shape_basic::initialize_shape_circle (shape)
 Initialize the circle/sphere.
 
subroutine mod_shape_basic::copy_shape_circle (shape, copy)
 Copy the circle/sphere.
 
logical pure function mod_shape_basic::shape_circle_is_inside (shape, point)
 Check if a point lies inside the circle/sphere.
 
subroutine mod_shape_basic::shape_circle_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a circle/sphere.
 
pure subroutine mod_shape_basic::shape_circle_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the circle/sphere.
 
pure subroutine mod_shape_basic::shape_circle_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the circle/sphere and a ray.
 
subroutine mod_shape_basic::initialize_shape_rectangle (shape)
 Initialize the rectangle/rectangular cuboid.
 
subroutine mod_shape_basic::copy_shape_rectangle (shape, copy)
 Copy the rectangle.
 
logical pure function mod_shape_basic::shape_rectangle_is_inside (shape, point)
 Check if a point lies inside the rectangle/rectangular cuboid.
 
subroutine mod_shape_basic::shape_rectangle_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a rectrangle/rectangular cuboid.
 
pure subroutine mod_shape_basic::shape_rectangle_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the rectangle/rectangular cuboid.
 
pure subroutine mod_shape_basic::shape_rectangle_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the rectangle and a ray.
 
subroutine mod_shape_basic::initialize_shape_halfspace (shape)
 Initialize the half-space.
 
subroutine mod_shape_basic::copy_shape_halfspace (shape, copy)
 Copy the half-space.
 
logical pure function mod_shape_basic::shape_halfspace_is_inside (shape, point)
 Check if a point lies inside the half-space.
 
subroutine mod_shape_basic::shape_halfspace_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a half-space.
 
pure subroutine mod_shape_basic::shape_halfspace_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the half-space.
 
pure subroutine mod_shape_basic::shape_halfspace_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the half-space and a ray.
 
subroutine mod_shape_basic::initialize_shape_cylinder (shape)
 Initialize the cylinder.
 
subroutine mod_shape_basic::copy_shape_cylinder (shape, copy)
 Copy the cylinder.
 
logical pure function mod_shape_basic::shape_cylinder_is_inside (shape, point)
 Check if a point lies inside the cylinder (3D only)
 
subroutine mod_shape_basic::shape_cylinder_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a cylinder.
 
pure subroutine mod_shape_basic::shape_cylinder_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the cylinder.
 
pure subroutine mod_shape_basic::shape_cylinder_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the cylinder and a ray.
 
subroutine mod_shape_basic::initialize_shape_torus (shape)
 Initialize the torus.
 
subroutine mod_shape_basic::copy_shape_torus (shape, copy)
 Copy the torus.
 
logical pure function mod_shape_basic::shape_torus_is_inside (shape, point)
 Check if a point lies inside the torus (3D only)
 
subroutine mod_shape_basic::shape_torus_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a torus.
 
pure subroutine mod_shape_basic::shape_torus_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the torus.
 
pure subroutine mod_shape_basic::shape_torus_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the torus and a ray.
 
pure subroutine sort_roots (x)
 
subroutine mod_shape_basic::initialize_shape_universe (shape)
 Initialize the universe.
 
subroutine mod_shape_basic::copy_shape_universe (shape, copy)
 Copy the universe.
 
logical pure function mod_shape_basic::shape_universe_is_inside (shape, point)
 Check if a point lies inside the universe (always true)
 
subroutine mod_shape_basic::shape_universe_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in the universe (yes, they do!)
 
pure subroutine mod_shape_basic::shape_universe_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the universe.
 
pure subroutine mod_shape_basic::shape_universe_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the universe and a ray.
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
side_xmin 
side_xmax 
side_ymin 
side_ymax 
side_zmin 
side_zmax 

Function/Subroutine Documentation

◆ sort_roots()

pure subroutine shape_torus_ray_trace::sort_roots ( double precision, dimension(:), intent(inout) x)