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

Data Types

type  mod_cg3_flood_polyhedron::t_chained_polygon_item
 Single item of the structure that track the state of the current algorithm. This structure contains a polygon stored as a list of point and edges. It also embbed information about neighbor edge, neighbor face, and if the current point is a point of the polyhedron. More...
 
type  mod_cg3_flood_polyhedron::t_chained_polygon
 Structure to track the state of the current algorithm. It stores the status of the cap polygon. More...
 

Modules

module  mod_cg3_flood_polyhedron
 

Functions/Subroutines

pure subroutine, public mod_cg3_flood_polyhedron::cg3_flood_polyhedron (polyhedron, normal, volume, polyhedron_full, polyhedron_empty, polygon)
 Flood algorithm based on Diot & Francois 2016 publication.
 
pure subroutine, public mod_cg3_flood_polyhedron::cg3_flood_polyhedron_centroid (polyhedron, normal, volume, centroid_full, polygon)
 
pure subroutine mod_cg3_flood_polyhedron::cg3_chained_polygon_add_point (polygon, point, point_id, edge, face)
 Add a point to the chained polygon.
 
pure subroutine mod_cg3_flood_polyhedron::cg3_reset_chained_polygon (polygon)
 Reset a chained polygon.
 
pure subroutine mod_cg3_flood_polyhedron::cg3_move_alloc_chained_polygon (polygon1, polygon2)
 move_alloc of a chained_polygon. Avoid unnecessary copies.
 
pure subroutine mod_cg3_flood_polyhedron::cg3_create_edge_set (polyhedron, point_to_edge, item, inv_n_group, group_max)
 Create and order the set of edges passing through a point.
 
pure recursive subroutine mod_cg3_flood_polyhedron::cg3_quicksort_n_distance (n_distance, n_point, p, r)
 Quick sort algorithm for the distance along the n-axis.
 
pure subroutine mod_cg3_flood_polyhedron::cg3_partition (n_distance, n_point, p, r, partition)
 Partition function for the quick sort algorithm.
 
pure integer function mod_cg3_flood_polyhedron::cg3_polyhedron_find_common_edge (polyhedron, point_to_edge, p1, p2)
 Find an edge common to two points. Return 0 if no edge is found.
 
pure integer function mod_cg3_flood_polyhedron::cg3_polyhedron_find_common_face_3_points (polyhedron, point_to_edge, p1, p2, p3)
 Find a face common to three points. Return 0 if no face is found.
 
pure integer function mod_cg3_flood_polyhedron::cg3_polyhedron_find_common_face_2_edges (polyhedron, e1, e2)
 Find a face common to two edges. Return 0 if no face is found.
 
pure integer function mod_cg3_flood_polyhedron::cg3_polyhedron_find_common_face_edge_point (polyhedron, point_to_edge, e, p)
 Find a face common to an edge and a point. Return 0 if no face is found.
 
pure integer function mod_cg3_flood_polyhedron::cg3_polyhedron_find_common_face_2_points_up (polyhedron, point_to_edge, p1, p2, inv_n_group, max_group)
 Find a face common to two points such that the face goes up. Return 0 if no face is found. Note that this algorithm requires inv_n_group to avoid real number comparison.