package Ġdev . em ort al . ray fast . demo Ċ Ċ import Ġdev . em ort al . ray fast . area . area 3 d . Area 3 d Rect angular Prism Ċ import Ġdev . em ort al . ray fast . util . Point Ċ Ċ /** Ċ Ġ* ĠAn Ġexample Ġusage Ġof Ġan Ġentity Ġwith Ġa Ġbounding Ġbox . Ċ Ġ* Ċ Ġ* ĠAs Ġthe Ġentity Ġposition Ġchanges Ġwhile Ġthe Ġbounding Ġbox Ġstays Ġthe Ġsame , Ġthis Ġcan Ġbe Ġused Ġfor Ġmultiple Ġray casts Ċ Ġ* Ġcon sec ut ively Ġwith Ġno Ġoverhead . Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġan Ġideal Ġsituation Ġfor Ġray fast . Ċ Ġ*/ Ċ abstract Ġclass ĠExample Ray cast Entity Ġ{ ĊĠĠĠ Ġabstract Ġval Ġbounding Box : ĠBounding Box ? ĊĠĠĠ Ġabstract Ġval Ġx : ĠDouble ĊĠĠĠ Ġabstract Ġval Ġy : ĠDouble ĊĠĠĠ Ġabstract Ġval Ġz : ĠDouble ĊĊĠĠĠ Ġinner Ġclass ĠBounding Box ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġexample Ray cast Entity : ĠExample Ray cast Entity , ĊĠĠĠĠĠĠĠ Ġwidth : ĠDouble , ĊĠĠĠĠĠĠĠ Ġheight : ĠDouble , ĊĠĠĠĠĠĠĠ Ġdepth : ĠDouble ĊĠĠĠ Ġ) Ġ: ĠArea 3 d Rect angular Prism Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhalf Width : ĠDouble Ġ= Ġwidth Ġ/ Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhalf Height : ĠDouble Ġ= Ġheight Ġ/ Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhalf Depth : ĠDouble Ġ= Ġdepth Ġ/ Ġ 2 . 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠCoordinates ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġmin : ĠPoint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠPoint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . x Ġ- Ġhalf Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . y Ġ- Ġhalf Height , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . z Ġ- Ġhalf Depth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġmax : ĠPoint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠPoint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . x Ġ+ Ġhalf Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . y Ġ+ Ġhalf Height , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexample Ray cast Entity . z Ġ+ Ġhalf Depth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ }