0.6.0
Loading...
Searching...
No Matches
type_shape::t_shape Type Referenceabstract

Abstract definition of a shape type. More...

+ Inheritance diagram for type_shape::t_shape:

Public Member Functions

procedure(abs_initialize_shape), deferred initialize (shape)
 Initialize the shape.
 
procedure(abs_copy_shape), deferred copy (shape, copy)
 Copy the shape.
 
procedure(abs_shape_is_inside), deferred is_inside (shape, point)
 Check if a point lies inside the shape.
 
procedure(abs_shape_get_samples_inside), deferred get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a shape.
 
procedure(abs_shape_get_distance), deferred get_distance (shape, point, distance, direction)
 Compute the distance and the direction from a point to the shape.
 
procedure(abs_shape_ray_trace), deferred ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between the shape and a ray.
 

Public Attributes

integer dimension = 2
 Dimension of the shape.
 
type(t_cg_transformationtransformation
 Transformation matrix.
 
logical is_reversed = .false.
 Swap interior/exterior sides of the shape.
 

Detailed Description

Abstract definition of a shape type.

Member Function/Subroutine Documentation

◆ copy()

procedure(abs_copy_shape), deferred type_shape::t_shape::copy ( class(t_shape), intent(in) shape,
class(t_shape), allocatable copy )
pure virtual

Copy the shape.

◆ get_distance()

procedure(abs_shape_get_distance), deferred type_shape::t_shape::get_distance ( class(t_shape), intent(in) shape,
double precision, dimension(3), intent(in) point,
double precision, intent(out) distance,
double precision, dimension(3), intent(out) direction )
pure virtual

Compute the distance and the direction from a point to the shape.

◆ get_samples_inside()

procedure(abs_shape_get_samples_inside), deferred type_shape::t_shape::get_samples_inside ( class(t_shape), 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 )
pure virtual

Check if a given number of point lies in a shape.

◆ initialize()

procedure(abs_initialize_shape), deferred type_shape::t_shape::initialize ( class(t_shape), intent(inout) shape)
pure virtual

Initialize the shape.

◆ is_inside()

procedure(abs_shape_is_inside), deferred type_shape::t_shape::is_inside ( class(t_shape), intent(in) shape,
double precision, dimension(3), intent(in) point )
pure virtual

Check if a point lies inside the shape.

◆ ray_trace()

procedure(abs_shape_ray_trace), deferred type_shape::t_shape::ray_trace ( class(t_shape), intent(in) shape,
type(t_ray), intent(in) ray,
logical, intent(in) has_normal,
type(t_intersection_list), intent(inout) intersection_list )
pure virtual

Compute the intersection between the shape and a ray.

Member Data Documentation

◆ dimension

integer type_shape::t_shape::dimension = 2

Dimension of the shape.

◆ is_reversed

logical type_shape::t_shape::is_reversed = .false.

Swap interior/exterior sides of the shape.

◆ transformation

type(t_cg_transformation) type_shape::t_shape::transformation

Transformation matrix.


The documentation for this type was generated from the following file: