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

Data Types

type  t_incidence_graph
 

Functions/Subroutines

pure subroutine, public cg3_polyhedron_clipping (polyhedron, clip_polyhedron, clipped_polyhedron, is_empty, is_clipped)
 Clip a convex polyhedron with a convex polyhedron.
 
pure subroutine, public cg3_plane_polyhedron_clipping (polyhedron, normal, origin, clipped_polyhedron, is_empty, is_cut)
 Clip a convex polyhedron with a plane (half-space) using Sugihara's algorithm.
 
pure subroutine partition_polyhedron (polyhedron, normal, origin, partition, clipped_polyhedron)
 Reconstruct the part of the polyhedron that belongs to the half-space.
 
pure subroutine edge_plane_intersection (polyhedron, p1, p2, normal, origin, end_id, intersection_point)
 Compute the intersection of a plane and an edge.
 
pure subroutine combinatorial_partition (graph, partition)
 Partition the vertex-graph of a polyhedron with the Sugihara's algorithm.
 
pure recursive subroutine depth_first_search_partition (graph, partition, is_visited, new_partition, inside_flag, i)
 
logical pure function is_connected (graph, sub_graph, inside_flag)
 
pure recursive subroutine depth_first_search (graph, sub_graph, is_visited, inside_flag, i)
 

Function/Subroutine Documentation

◆ combinatorial_partition()

pure subroutine mod_cg3_clip_polyhedron::combinatorial_partition ( type(t_incidence_graph), intent(in) graph,
logical, dimension(:), intent(inout) partition )
private

Partition the vertex-graph of a polyhedron with the Sugihara's algorithm.

◆ depth_first_search()

pure recursive subroutine mod_cg3_clip_polyhedron::depth_first_search ( type(t_incidence_graph), intent(in) graph,
logical, dimension(:), intent(in) sub_graph,
logical, dimension(:), intent(inout) is_visited,
logical, intent(in) inside_flag,
integer, intent(in) i )
private

◆ depth_first_search_partition()

pure recursive subroutine mod_cg3_clip_polyhedron::depth_first_search_partition ( type(t_incidence_graph), intent(in) graph,
logical, dimension(:), intent(in) partition,
logical, dimension(:), intent(inout) is_visited,
logical, dimension(:), intent(inout) new_partition,
logical, intent(in) inside_flag,
integer, intent(in) i )
private

◆ edge_plane_intersection()

pure subroutine mod_cg3_clip_polyhedron::edge_plane_intersection ( type(t_polyhedron), intent(in) polyhedron,
integer, intent(in) p1,
integer, intent(in) p2,
double precision, dimension(3), intent(in) normal,
double precision, dimension(3), intent(in) origin,
integer, intent(out) end_id,
double precision, dimension(3), intent(out) intersection_point )
private

Compute the intersection of a plane and an edge.

◆ is_connected()

logical pure function mod_cg3_clip_polyhedron::is_connected ( type(t_incidence_graph), intent(in) graph,
logical, dimension(:), intent(in) sub_graph,
logical, intent(in) inside_flag )
private