/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠAnd rei ĠHe ide lb acher Ġ< and rei . he ide lb acher @ gmail . com > Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . a he ide lb acher . algo venture . core . vision Ċ Ċ import Ġcom . a he ide lb acher . alg ost orm . systems . geometry 2 d . Point Ċ import Ġcom . a he ide lb acher . alg ost orm . systems . geometry 2 d . Circle Ċ Ċ /** Ċ Ġ* ĠA Ġfield Ġof Ġvision Ġin Ġthe Ġshape Ġof Ġa Ġcircle Ġcentered Ġon Ġa Ġsource Ġpoint , Ċ Ġ* Ġknowing Ġwhether Ġa Ġcell Ġis Ġ[ blocked ] Ġor Ġnot . Ċ Ġ*/ Ċ data Ġclass ĠField Of Vision ( val Ġfield : ĠCircle , Ġval Ġblocked : Ġ( Point ) Ġ-> ĠBoolean ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġwhether Ġthe Ġgiven Ġ[ point ] Ġis Ġvisible Ġfrom Ġthe Ġsource Ġor Ġnot . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpoint Ġthe Ġpoint Ġwhich Ġshould Ġbe Ġchecked Ġfor Ġvisibility ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġgiven Ġpoint Ġis Ġvisible , Ġ` false ` Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġcontains ( point : ĠPoint ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcenter Ġ= ĠPoint ( field . x , Ġfield . y ) ĊĠĠĠĠĠĠĠ Ġreturn Ġpoint Ġin Ġfield Ġ&& ĠLine Of S ight ( center , Ġpoint ). line . none Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ!= Ġcenter Ġ&& Ġit Ġ!= Ġpoint Ġ&& Ġblocked ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ