package Ġme . anno . ecs . components . mesh . sdf . modifiers Ċ Ċ import Ġme . anno . ecs . annotations . Range Ċ import Ġme . anno . ecs . components . mesh . Type Value Ċ import Ġme . anno . ecs . components . mesh . sdf . SD F Component . Companion . append Uniform Ċ import Ġme . anno . ecs . components . mesh . sdf . SD F Component . Companion . append Vec Ċ import Ġme . anno . ecs . components . mesh . sdf . SD F Component . Companion . global Dynamic Ċ import Ġme . anno . ecs . components . mesh . sdf . SD F Group . Companion . s Max Cubic Ċ import Ġme . anno . ecs . components . mesh . sdf . SD F Group . Companion . smooth Min Cubic Ċ import Ġme . anno . ecs . components . mesh . sdf . Variable Counter Ċ import Ġme . anno . ecs . components . mesh . sdf . modifiers . SD FM irror . Companion . normalize 3 Ċ import Ġme . anno . ecs . pref ab . Prefab Save able Ċ import Ġme . anno . gpu . shader . GLSL Type Ċ import Ġme . anno . utils . types . AABB s . clear Ċ import Ġorg . j om l . AABB f Ċ import Ġorg . j om l . Plan ef Ċ import Ġorg . j om l . Vector 3 f Ċ import Ġorg . j om l . Vector 4 f Ċ Ċ class ĠS DF Half Space () Ġ: ĠDistance Mapper () Ġ{ ĊĊĠĠĠ Ġconstructor ( position : ĠVector 3 f ) Ġ: Ġthis ( position , Ġposition ) ĊĊĠĠĠ Ġconstructor ( position : ĠVector 3 f , Ġnormal : ĠVector 3 f ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġplane . set ( normal . x , Ġnormal . y , Ġnormal . z , Ġ- normal . dot ( position )) ĊĠĠĠĠĠĠĠ Ġplane . normalize 3 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Range ( 0 . 0 , Ġ 1 e 3 8 ) ĊĠĠĠ Ġvar Ġsmooth ness Ġ= Ġ 0 . 1 f ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic Smooth ness Ġ|| Ġglobal Dynamic ) Ġinvalidate Bounds () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġinvalidate Shader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdynamic Smooth ness Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! global Dynamic ) Ġinvalidate Shader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Setter Backing Field Assignment ") ĊĠĠĠ Ġvar Ġplane Ġ= ĠPlan ef ( 0 f , Ġ 1 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic Plane Ġ|| Ġglobal Dynamic ) Ġinvalidate Bounds () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġinvalidate Shader () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . set ( value . a , Ġvalue . b , Ġvalue . c , Ġvalue . d ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . normalize 3 () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdynamic Plane Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! global Dynamic ) Ġinvalidate Shader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Shader ( ĊĠĠĠĠĠĠĠ Ġbuilder : ĠStringBuilder , ĊĠĠĠĠĠĠĠ Ġpos Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġdst Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġnext Variable Id : ĠVariable Counter , ĊĠĠĠĠĠĠĠ Ġuniform s : ĠHashMap < String , ĠType Value >, ĊĠĠĠĠĠĠĠ Ġfunctions : ĠHashSet < String > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdynamic Plane Ġ= Ġdynamic Plane Ġ|| Ġglobal Dynamic ĊĠĠĠĠĠĠĠ Ġval Ġdynamic Smooth ness Ġ= Ġdynamic Smooth ness Ġ|| Ġglobal Dynamic ĊĠĠĠĠĠĠĠ Ġif Ġ( dynamic Smooth ness Ġ|| Ġsmooth ness Ġ> Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunctions . add ( smooth Min Cubic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" res "). append ( dst Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (". x = s Max Cubic 1 ( res "). append ( dst Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (". x , dot ( vec 4 ( pos "). append ( pos Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", 1 . 0 ), ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic Plane ) Ġbuilder . append Uniform ( uniform s , Ġplane ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbuilder . append Vec ( plane ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" ), ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic Smooth ness ) Ġbuilder . append Uniform ( uniform s , ĠGL SL Type . V 1 F ) Ġ{ Ġsmooth ness Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbuilder . append ( smooth ness ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" );\ n ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" res "). append ( dst Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (". x = max ( res "). append ( dst Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (". x , dot ( vec 4 ( pos "). append ( pos Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", 1 . 0 ), ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic Plane ) Ġbuilder . append Uniform ( uniform s , Ġplane ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbuilder . append Vec ( plane ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" )); \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply Transform ( bounds : ĠA ABB f ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġlike Ġmirror , Ġjust Ġwith Ġone Ġside ĊĠĠĠĠĠĠĠ Ġval Ġim x Ġ= Ġbounds . min X ĊĠĠĠĠĠĠĠ Ġval Ġim y Ġ= Ġbounds . min Y ĊĠĠĠĠĠĠĠ Ġval Ġim z Ġ= Ġbounds . min Z ĊĠĠĠĠĠĠĠ Ġval Ġi xx Ġ= Ġbounds . max X ĊĠĠĠĠĠĠĠ Ġval Ġi xy Ġ= Ġbounds . max Y ĊĠĠĠĠĠĠĠ Ġval Ġi xz Ġ= Ġbounds . max Z ĊĠĠĠĠĠĠĠ Ġbounds . clear () ĊĠĠĠĠĠĠĠ Ġval Ġnormal Ġ= Ġplane ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġif Ġ( i . and ( 1 ) Ġ== Ġ 0 ) Ġim x Ġelse Ġi xx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġif Ġ( i . and ( 2 ) Ġ== Ġ 0 ) Ġim y Ġelse Ġi xy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġz Ġ= Ġif Ġ( i . and ( 4 ) Ġ== Ġ 0 ) Ġim z Ġelse Ġi xz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdot Ġ= Ġnormal . a Ġ* Ġx Ġ+ Ġnormal . b Ġ* Ġy Ġ+ Ġnormal . c Ġ* Ġz Ġ+ Ġnormal . d ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dot Ġ> Ġ 0 f ) Ġ{// Ġif Ġon Ġwrong Ġside , Ġproject Ġpoints Ġonto Ġplane ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ-= Ġdot Ġ* Ġnormal . a ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġdot Ġ* Ġnormal . b ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz Ġ-= Ġdot Ġ* Ġnormal . c ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . union ( x , Ġy , Ġz ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalc Transform ( pos : ĠVector 4 f , Ġdistance : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġs Max Cubic ( distance , Ġplane . dot ( pos ), Ġsmooth ness ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclone (): ĠS DF Half Space Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclone Ġ= ĠS DF Half Space () ĊĠĠĠĠĠĠĠ Ġcopy ( clone ) ĊĠĠĠĠĠĠĠ Ġreturn Ġclone ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcopy ( clone : ĠPref ab Save able ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . copy ( clone ) ĊĠĠĠĠĠĠĠ Ġclone Ġas ĠS DF Half Space ĊĠĠĠĠĠĠĠ Ġclone . plane Ġ= Ġplane ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠclassName : ĠString Ġ= Ġ" SD F Half Space " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun ĠPlan ef . dot ( v : ĠVector 4 f ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġv . dot ( a , Ġb , Ġc , Ġ 0 f ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠPlan ef . dot ( v : ĠVector 3 f ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġv . dot ( a , Ġb , Ġc ) Ġ+ Ġd ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }