package Ġorg . hex works . mix ite . core . api Ċ Ċ import Ġorg . hex works . cob alt . datat ypes . Maybe Ċ import Ġorg . hex works . mix ite . core . api . contract . S atellite Data Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa ĠHex agon . Ċ Ġ* Ġ* Please Ġnote * Ġthat Ġall Ġcoordinates Ġare Ġrelative Ġto Ġthe Ġ[ Hex ag onal Grid ] Ġcontaining Ġthis Ġ[ Hex agon ]. Ċ Ġ*/ Ċ interface ĠHex agon < T Ġ: ĠS atellite Data > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġan Ġunique Ġ[ String ] Ġrepresenting Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġid : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġlist Ġcontaining Ġthe Ġ[ Point ] s Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġpoints : ĠList < Point > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġan Ġarray Ġof Ġthe Ġvertices Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġvertices : ĠList < Double > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġrectangle Ġdefining Ġthe Ġ** external ** Ġboundary Ġbox Ġof Ġthis Ġ[ Hex agon ] ĊĠĠĠĠ Ġ* Ġ( a Ġrectangle Ġthat Ġhits Ġthe Ġ 2 Ġpoint y Ġcorners Ġand Ġthe Ġ 2 Ġflat Ġsides ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġexternal BoundingBox : ĠRectangle ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġrectangle Ġdefining Ġthe Ġ** internal ** Ġboundary Ġbox Ġof Ġthis Ġ[ Hex agon ] ĊĠĠĠĠ Ġ* Ġ( the Ġbiggest Ġrectangle Ġthat Ġhits Ġthe Ġoutline Ġof Ġthe Ġ[ Hex agon ] Ġexactly Ġ 4 Ġtimes ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġinternal BoundingBox : ĠRectangle ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġ[ Cube Coordinate ] Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcube Coordinate : ĠCube Coordinate ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthis Ġ[ Hex agon ]' s Ġ** x ** Ġ( cube ) Ġcoordinate Ġon Ġthe Ġ[ Hex ag onal Grid ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġgrid X : ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthis Ġ[ Hex agon ]' s Ġ** y ** Ġcoordinate Ġon Ġthe Ġ[ Hex ag onal Grid ]. ĊĠĠĠĠ Ġ* ĠThe ĠY Ġcoordinate Ġis Ġnot Ġpresent Ġin Ġthe Ġcube Ġmodel Ġbut Ġit Ġis Ġin Ġthe Ġcube Ġmodel . ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġjust Ġfor Ġconvenience . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġgrid Y : ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthis Ġ[ Hex agon ]' s Ġ** z ** Ġ( cube ) Ġcoordinate Ġon Ġthe Ġ[ Hex ag onal Grid ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġgrid Z : ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġcenter Ġ( pixel ) Ġ[ Point ] Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcenter : ĠPoint ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġcenter Ġ** x ** Ġ( pixel ) Ġcoordinate Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Deprecated (" use Ġcenter ") ĊĠĠĠ Ġval Ġcenter X : ĠDouble ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġcenter Ġ** y ** Ġ( pixel ) Ġcoordinate Ġof Ġthis Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġcenter Ġy ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Deprecated (" use Ġcenter ") ĊĠĠĠ Ġval Ġcenter Y : ĠDouble ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthis Ġ[ Hex agon ]' s Ġs atellite Ġdata . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġs atellite Data : ĠMaybe < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġused Ġto Ġadd Ġarbitrary Ġs atellite Ġdata Ġto Ġa Ġ[ Hex agon ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset S atellite Data ( data : ĠT ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClear s Ġthe Ġs atellite Ġdata Ġof Ġthis ĠHex agon . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear S atellite Data () Ċ Ċ } Ċ