/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 1 ĠE no ve a Ġ( fab ien . me ur isse @ en ove a . net ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġdil iv ia . s 2 . index . point Ċ Ċ import Ġdil iv ia . s 2 . region . S 2 Cap Ċ import Ġdil iv ia . s 2 . region . S 2 Loop Ċ Ċ // ĠGenerates Ġpoints Ġthat Ġare Ġregular ly Ġsp aced Ġalong Ġa Ġcircle . Ġ ĠPoints Ġalong Ġa Ċ // Ġcircle Ġare Ġnearly Ġthe Ġworst Ġcase Ġfor Ġdistance Ġcalculations , Ġsince Ġmany Ċ // Ġpoints Ġare Ġnearly Ġe quid istant Ġfrom Ġany Ġquery Ġpoint Ġthat Ġis Ġnot Ġimmediately Ċ // Ġadjacent Ġto Ġthe Ġcircle . Ċ class ĠCircle Point Index Factory Ġ: ĠPoint Index Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġadd Points ( index Cap : ĠS 2 Cap , Ġnum Points : ĠInt , Ġindex : ĠS 2 Point Index < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloop Ġ= ĠS 2 Loop . make Regular Loop ( index Cap . center , Ġindex Cap . radius (), Ġnum Points ) ĊĠĠĠĠĠĠĠ Ġloop . vertices (). forEach Indexed Ġ{ Ġi , Ġpoint Ġ-> Ġindex . add ( point , Ġi ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ