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

Functions/Subroutines

logical pure function cg2_is_line_intersect_polygon (polygon, l0, l1)
 Return true if a line [l0, l1] intersect a convex polygon.
 
pure subroutine cg2_line_polygon_clipping (polygon, l0, l1, clipped_polygon)
 
pure subroutine cg2_line_polygon_boundary_intersection (p0, p1, polygon, s0, s1, i, intersection_found)
 Intersect a line segment with the polygon boundary.
 
pure subroutine cg2_split_polygon (polygon, p0, p1, i0, i1, polygon_left, polygon_right)
 Split a convex polygon {p(1),...,p(n)} in two polygons.
 
pure subroutine cg2_split_polygon_with_line (polygon, l0, l1, is_intersection, polygon_left, polygon_right)
 Split a convex polygon with a line.
 
pure subroutine cg2_brute_force_split_polygon_with_line (polygon, l0, l1, is_intersection, polygon_left, polygon_right)
 Split a polygon with a line using a brute force method.
 
pure subroutine cg2_optimized_split_polygon_with_line (polygon, l0, l1, is_intersection, polygon_left, polygon_right)
 Split a polygon with a line using an optimized algorithm.
 
pure subroutine cg2_minloc_line_point_signed_distance (polygon, p0, p1, pref, minimum_distance, minloc_distance)
 Locate the minimum location of the signed distance using Fibonacci search of periodic bimodal function.
 
pure subroutine cg2_maxloc_line_point_signed_distance (polygon, p0, p1, pref, maximum_distance, maxloc_distance)
 Locate the maximum location of the signed distance using Fibonacci search of periodic bimodal function.
 

Function/Subroutine Documentation

◆ cg2_line_polygon_boundary_intersection()

pure subroutine mod_cg2_line_polygon::cg2_line_polygon_boundary_intersection ( double precision, dimension(2), intent(in) p0,
double precision, dimension(2), intent(in) p1,
type(t_polygon), intent(in) polygon,
double precision, dimension(2), intent(out) s0,
double precision, dimension(2), intent(out) s1,
integer, intent(out) i,
logical, intent(out) intersection_found )

Intersect a line segment with the polygon boundary.

[s0, s1] will have the same orientation as [p0, p1]

◆ cg2_line_polygon_clipping()

pure subroutine mod_cg2_line_polygon::cg2_line_polygon_clipping ( type(t_polygon), intent(in) polygon,
double precision, dimension(2), intent(in) l0,
double precision, dimension(2), intent(in) l1,
type(t_polygon), intent(inout) clipped_polygon )