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

Data Types

type  t_octree
 Definition of a sparse octree. More...
 
type  t_octree_node
 Definition of an octree node. More...
 
interface  unalloc
 

Functions/Subroutines

pure subroutine cg3_finalize_octree (octree)
 Finalization routine for an octree.
 
pure subroutine, public cg3_create_octree_from_polyhedron (octree, polyhedron)
 Create an octree from a polyhedron.
 
logical pure function, public cg3_is_point_inside_octree (octree, point)
 Determine if a point lies inside the octree.
 
pure subroutine, public cg3_octree_direction_intersection (octree, origin, direction, nb_objects, object_list)
 Intersection of an octree with a directional ray.
 
pure subroutine, public cg3_octree_ray_intersection (octree, ray, nb_objects, object_list)
 Intersection of an octree with a ray.
 
pure subroutine, public cg3_octree_get_closest_objects (octree, point, nb_objects, object_list)
 Find the closest objects to a given point.
 
subroutine, public cg3_octree_write_vtk_file (octree, filename)
 Write the sparse octree to a VTK file.
 
pure recursive subroutine distribute_faces_in_childs (octree, node, polyhedron, depth)
 
logical pure function face_in_bounding_box (polyhedron, face, corner_min, corner_max)
 
logical pure function is_point_in_bounding_box (node, point)
 
pure recursive subroutine octree_node_direction_intersection (node, origin, direction, is_intersected)
 
pure recursive subroutine octree_node_ray_intersection (node, ray, is_intersected)
 
pure subroutine octree_node_get_maximal_distance (node, point, distance)
 
pure recursive subroutine octree_node_get_minimal_search_distance (node, point, distance)
 
logical pure function does_octree_node_intersect_sphere (node, center, radius)
 
recursive pure subroutine octree_node_get_objects_in_search_distance (node, point, distance, is_close_enough)
 
pure recursive subroutine octree_node_count_points_and_faces (node, nb_points, nb_faces)
 
recursive subroutine octree_write_points (node, tree_unit)
 
recursive subroutine octree_write_faces (node, tree_unit, offset)
 

Function/Subroutine Documentation

◆ distribute_faces_in_childs()

pure recursive subroutine mod_cg3_octree::distribute_faces_in_childs ( type(t_octree), intent(inout) octree,
type(t_octree_node), intent(inout) node,
type(t_polyhedron), intent(in) polyhedron,
integer, intent(in) depth )
private

◆ does_octree_node_intersect_sphere()

logical pure function mod_cg3_octree::does_octree_node_intersect_sphere ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) center,
double precision, intent(in) radius )
private

◆ face_in_bounding_box()

logical pure function mod_cg3_octree::face_in_bounding_box ( type(t_polyhedron), intent(in) polyhedron,
integer, intent(in) face,
double precision, dimension(3), intent(in) corner_min,
double precision, dimension(3), intent(in) corner_max )
private

◆ is_point_in_bounding_box()

logical pure function mod_cg3_octree::is_point_in_bounding_box ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) point )
private

◆ octree_node_count_points_and_faces()

pure recursive subroutine mod_cg3_octree::octree_node_count_points_and_faces ( type(t_octree_node), intent(in) node,
integer, intent(inout) nb_points,
integer, intent(inout) nb_faces )
private

◆ octree_node_direction_intersection()

pure recursive subroutine mod_cg3_octree::octree_node_direction_intersection ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) origin,
integer, intent(in) direction,
logical, dimension(:), intent(inout) is_intersected )
private

◆ octree_node_get_maximal_distance()

pure subroutine mod_cg3_octree::octree_node_get_maximal_distance ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) point,
double precision, intent(out) distance )
private

◆ octree_node_get_minimal_search_distance()

pure recursive subroutine mod_cg3_octree::octree_node_get_minimal_search_distance ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) point,
double precision, intent(inout) distance )
private

◆ octree_node_get_objects_in_search_distance()

recursive pure subroutine mod_cg3_octree::octree_node_get_objects_in_search_distance ( type(t_octree_node), intent(in) node,
double precision, dimension(3), intent(in) point,
double precision, intent(in) distance,
logical, dimension(:), intent(inout) is_close_enough )
private

◆ octree_node_ray_intersection()

pure recursive subroutine mod_cg3_octree::octree_node_ray_intersection ( type(t_octree_node), intent(in) node,
type(t_ray), intent(in) ray,
logical, dimension(:), intent(inout) is_intersected )
private

◆ octree_write_faces()

recursive subroutine mod_cg3_octree::octree_write_faces ( type(t_octree_node), intent(in) node,
integer, intent(in) tree_unit,
integer, intent(inout) offset )
private

◆ octree_write_points()

recursive subroutine mod_cg3_octree::octree_write_points ( type(t_octree_node), intent(in) node,
integer, intent(in) tree_unit )
private