|
| recursive subroutine | mod_shape_constructive_solid_geometry::initialize_shape_union (shape) |
| | Initialize the union.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::copy_shape_union (shape, copy) |
| | Copy the union.
|
| |
| logical pure recursive function | mod_shape_constructive_solid_geometry::shape_union_is_inside (shape, point) |
| | Check if a point lies inside the union.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::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 | mod_shape_constructive_solid_geometry::shape_union_get_distance (shape, point, distance, direction) |
| | Compute the signed distance and the signed direction from a point to the union.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::initialize_shape_intersection (shape) |
| | Initialize the intersection.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::copy_shape_intersection (shape, copy) |
| | Copy the intersection.
|
| |
| logical pure recursive function | mod_shape_constructive_solid_geometry::shape_intersection_is_inside (shape, point) |
| | Check if a point lies inside the intersection.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::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 | mod_shape_constructive_solid_geometry::shape_intersection_get_distance (shape, point, distance, direction) |
| | Compute the signed distance and the signed direction from a point to the intersection.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::initialize_shape_difference (shape) |
| | Initialize the difference.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::copy_shape_difference (shape, copy) |
| | Copy the difference.
|
| |
| logical pure recursive function | mod_shape_constructive_solid_geometry::shape_difference_is_inside (shape, point) |
| | Check if a point lies inside the difference.
|
| |
| recursive subroutine | mod_shape_constructive_solid_geometry::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 | mod_shape_constructive_solid_geometry::shape_difference_get_distance (shape, point, distance, direction) |
| | Compute the signed distance and the signed direction from a point to the difference.
|
| |
| recursive subroutine mod_shape_constructive_solid_geometry::shape_difference_get_samples_inside |
( |
class(t_shape_difference), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a difference.
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
| [in,out] | shape | difference shape |
| [in] | i,j,k | coordinates of the cell |
| [in] | n | value to put where the sample is inside the difference |
| [in] | n_samples | sampling level (see description) |
| [in,out] | samples | array of the (2*n_sammples+1)^d samples |
| recursive subroutine mod_shape_constructive_solid_geometry::shape_intersection_get_samples_inside |
( |
class(t_shape_intersection), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in an intersection.
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
| [in,out] | shape | intersection shape |
| [in] | i,j,k | coordinates of the cell |
| [in] | n | value to put where the sample is inside the intersection |
| [in] | n_samples | sampling level (see description) |
| [in,out] | samples | array of the (2*n_sammples+1)^d samples |
| recursive subroutine mod_shape_constructive_solid_geometry::shape_union_get_samples_inside |
( |
class(t_shape_union), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in an union.
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
| [in,out] | shape | union shape |
| [in] | i,j,k | coordinates of the cell |
| [in] | n | value to put where the sample is inside the union |
| [in] | n_samples | sampling level (see description) |
| [in,out] | samples | array of the (2*n_sammples+1)^d samples |