package Ġde . u ul m . se . co uched it . jt se xt ensions . overlay ĊĊ Ċ /* Ċ Ġ* ĠOriginal Ġcode Ġfrom ĠJ TS ĠTest ĠBuilder , Ġconverted Ġto ĠKotlin : Ċ Ġ* Ġhttps :// github . com / location tech / jts / blob / master / modules / app / src / main / java / org / location tech / jt st est / function / Polygon Overlay Functions . java Ċ Ġ* Ċ Ġ* ĠOR IGIN AL ĠLICENSE ĠBE LOW Ċ Ġ* ĠĊ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 ĠV iv id ĠSolutions . Ċ Ġ* Ċ Ġ* ĠAll Ġrights Ġreserved . ĠThis Ġprogram Ġand Ġthe Ġaccompanying Ġmaterials Ċ Ġ* Ġare Ġmade Ġavailable Ġunder Ġthe Ġterms Ġof Ġthe ĠEclipse ĠPublic ĠLicense Ġv 1 . 0 Ċ Ġ* Ġand ĠEclipse ĠDistribution ĠLicense Ġv . Ġ 1 . 0 Ġwhich Ġaccomp anies Ġthis Ġdistribution . Ċ Ġ* ĠThe ĠEclipse ĠPublic ĠLicense Ġis Ġavailable Ġat Ġhttp :// www . eclipse . org / legal / e pl - v 1 0 . html Ċ Ġ* Ġand Ġthe ĠEclipse ĠDistribution ĠLicense Ġis Ġavailable Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . eclipse . org / org / documents / ed l - v 1 0 . php . Ċ Ġ*/ Ċ Ċ import Ġorg . location tech . jts . geom . Geometry Ċ import Ġorg . location tech . jts . geom . Geometry Factory Ċ import Ġorg . location tech . jts . geom . Precision Model Ċ import Ġorg . location tech . jts . geom . util . Linear Component Extract er Ċ import Ġorg . location tech . jts . nod ing . snap round . Geometry N oder Ċ import Ġorg . location tech . jts . operation . polygon ize . Polygon izer ĊĊ Ċ object ĠPolygon Overlay Functions Ġ{ ĊĠĠĠ Ġfun Ġoverlay Snap Rounded ( g 1 : ĠGeometry , Ġg 2 : ĠGeometry ?, Ġprecision T ol : ĠDouble ): ĠGeometry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Ġ= ĠPrecision Model ( precision T ol ) ĊĠĠĠĠĠĠĠ Ġval Ġgeom Fact Ġ= Ġg 1 . factory ĊĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠLinear Component Extract er . get Lines ( g 1 ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġsecond Ġinput 's Ġlin ew ork , Ġif Ġany ĊĠĠĠĠĠĠĠ Ġif Ġ( g 2 Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinear Component Extract er . get Lines ( g 2 , Ġlines ) ĊĠĠĠĠĠĠĠ Ġval Ġnode d Lin ew ork Ġ= ĠGeometry N oder ( pm ). node ( lines ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġunion Ġthe Ġnode d Ġlin ew ork Ġto Ġremove Ġduplicates ĊĠĠĠĠĠĠĠ Ġval Ġnode d Ded up ed Lin ew ork Ġ= Ġgeom Fact . build Geometry ( node d Lin ew ork ). union () ĊĊĠĠĠĠĠĠĠ Ġ// Ġpolygon ize Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġval Ġpolygon izer Ġ= ĠPolygon izer () ĊĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġall ĠLine Strings Ġcontained Ġin Ġthe Ġsub - ge ometries Ġof Ġthe Ġgiven Ġlin ew ork Ġto Ġthe Ġpolygon izer . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġpolygon izer . add ( node d Ded up ed Lin ew ork ) ĊĠĠĠĠĠĠĠ Ġval Ġpol ys Ġ= Ġpolygon izer . get Poly gons () ĊĊĠĠĠĠĠĠĠ Ġ// Ġconvert Ġto Ġcollection Ġfor Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpoly Array Ġ= ĠGeometry Factory . to Polygon Array ( pol ys ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgeom Fact . create Geometry Collection ( poly Array ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ