/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġjet brains . datal ore . jetbrains . liv emap . search ing Ċ Ċ import Ġjet brains . datal ore . base . typed Geometry . Vec Ċ import Ġjet brains . datal ore . base . typed Geometry . explicit Vec Ċ import Ġjet brains . liv emap . Client Ċ import Ġjet brains . liv emap . core . ecs . E cs Entity Ċ import Ġjet brains . liv emap . search ing . Locator Helper Ċ import Ġjet brains . liv emap . search ing . SearchResult Ċ Ċ object ĠSearch TestHelper Ġ{ ĊĠĠĠ Ġconst Ġval ĠUN DEFINED _ SE CTOR Ġ= Ġ- 1 ĊĊĠĠĠ Ġprivate Ġfun Ġis Target Under Coord ( mouse Coord : ĠVec < Client >, Ġlocator Helper : ĠLoc ator Helper , Ġtarget : ĠE cs Entity ): ĠSearch Result ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocator Helper . search ( mouse Coord , Ġtarget ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Target Under Coord ( ĊĠĠĠĠĠĠĠ Ġmouse Coord : ĠVec < Client >, ĊĠĠĠĠĠĠĠ Ġlocator Helper : ĠLoc ator Helper , ĊĠĠĠĠĠĠĠ Ġtargets : ĠList < E cs Entity > ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtargets . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġis Target Under Coord ( mouse Coord , Ġlocator Helper , Ġtargets [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . index ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠUN DEFINED _ SE CTOR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpoint ( x : ĠInt , Ġy : ĠInt ): ĠVec < Client > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġexplicit Vec ( x . toDouble (), Ġy . toDouble ()) ĊĠĠĠ Ġ} Ċ }