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

Data Types

type  t_distance_list
 Distance list Store distances. Act as a z-buffer. More...
 
type  t_shape_surface_mesh
 Surface mesh shape. More...
 

Functions/Subroutines

pure subroutine reallocate_distance_list (z_buffer)
 
pure subroutine add_distance (z_buffer, distance, face)
 
subroutine initialize_shape_surface_mesh (shape)
 Initialize the surface mesh shape.
 
subroutine copy_shape_surface_mesh (shape, copy)
 Copy the surface mesh.
 
logical pure function shape_surface_mesh_is_inside (shape, point)
 Check if a point lies inside the surface mesh.
 
subroutine shape_surface_mesh_get_samples_inside (shape, i, j, k, n, n_samples, samples)
 Check if a given number of point lies in a surface mesh.
 
pure subroutine shape_surface_mesh_get_distance (shape, point, distance, direction)
 Compute the signed distance and the signed direction from a point to the surface mesh.
 
pure subroutine shape_surface_mesh_ray_trace (shape, ray, has_normal, intersection_list)
 Compute the intersection between a surface mesh and a ray.
 
pure subroutine filter_intersections (polyhedron, origin, list, filtered_list)
 
subroutine rasterize_surface_mesh (surface_mesh, n_samples)
 
pure subroutine filter_z_buffer (surface_mesh, n_samples)
 
pure subroutine filter_z_buffer_uv (surface_mesh, coords, u, v)
 
pure subroutine rasterization_compute_distance (surface_mesh, face, i, j, u, v, n_samples, coords)
 
integer pure function locate_cell (x, guess, coord)
 

Variables

double precision, parameter distance_epsilon = 1d3*epsilon(1d0)
 
integer, parameter buffer_size = 2
 

Function/Subroutine Documentation

◆ add_distance()

pure subroutine mod_shape_surface_mesh::add_distance ( type(t_distance_list), intent(inout) z_buffer,
double precision, intent(in) distance,
integer, intent(in) face )
private

◆ filter_intersections()

pure subroutine mod_shape_surface_mesh::filter_intersections ( type(t_polyhedron), intent(in) polyhedron,
double precision, dimension(3), intent(in) origin,
type(t_intersection_list), intent(in) list,
type(t_intersection_list), intent(inout) filtered_list )
private

◆ filter_z_buffer()

pure subroutine mod_shape_surface_mesh::filter_z_buffer ( type(t_shape_surface_mesh), intent(inout) surface_mesh,
integer, intent(in) n_samples )
private

◆ filter_z_buffer_uv()

pure subroutine mod_shape_surface_mesh::filter_z_buffer_uv ( type(t_shape_surface_mesh), intent(inout) surface_mesh,
double precision, dimension(2), intent(in) coords,
integer, intent(in) u,
integer, intent(in) v )
private

◆ locate_cell()

integer pure function mod_shape_surface_mesh::locate_cell ( double precision, intent(in) x,
integer, intent(in) guess,
double precision, dimension(:), intent(in) coord )
private

◆ rasterization_compute_distance()

pure subroutine mod_shape_surface_mesh::rasterization_compute_distance ( type(t_shape_surface_mesh), intent(inout) surface_mesh,
integer, intent(in) face,
integer, intent(in) i,
integer, intent(in) j,
integer, intent(in) u,
integer, intent(in) v,
integer, intent(in) n_samples,
double precision, dimension(2), intent(in) coords )
private

◆ rasterize_surface_mesh()

subroutine mod_shape_surface_mesh::rasterize_surface_mesh ( type(t_shape_surface_mesh), intent(inout) surface_mesh,
integer, intent(in) n_samples )
private

◆ reallocate_distance_list()

pure subroutine mod_shape_surface_mesh::reallocate_distance_list ( type(t_distance_list), intent(inout) z_buffer)

◆ shape_surface_mesh_ray_trace()

pure subroutine mod_shape_surface_mesh::shape_surface_mesh_ray_trace ( class(t_shape_surface_mesh), intent(in) shape,
type(t_ray), intent(in) ray,
logical, intent(in) has_normal,
type(t_intersection_list), intent(inout) intersection_list )
private

Compute the intersection between a surface mesh and a ray.

Parameters
[in]shapesurface mesh shape
[in]rayray to intersect the surface mesh
[in]has_normallist of intersections between the ray and the surface mesh
[in,out]intersection_listlist of intersections between the ray and the surface mesh

Variable Documentation

◆ buffer_size

integer, parameter mod_shape_surface_mesh::buffer_size = 2
private

◆ distance_epsilon

double precision, parameter mod_shape_surface_mesh::distance_epsilon = 1d3*epsilon(1d0)
private