package Ġclub . sk 1 er . element a . constraints Ċ Ċ import Ġclub . sk 1 er . element a . UI Component Ċ import Ġclub . sk 1 er . element a . constraints . resolution . Constraint Visitor Ċ Ċ class ĠAdd itive Constraint ( ĊĠĠĠ Ġval Ġconstraint 1 : ĠSuper Constraint < Float >, ĊĠĠĠ Ġval Ġconstraint 2 : ĠSuper Constraint < Float > Ċ ) Ġ: ĠMaster Constraint Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġcached Value Ġ= Ġ 0 f ĊĠĠĠ Ġoverride Ġvar Ġre calculate Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġvar Ġconstr ain To : ĠUI Component ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġanimation Frame () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . animation Frame () ĊĠĠĠĠĠĠĠ Ġconstraint 1 . animation Frame () ĊĠĠĠĠĠĠĠ Ġconstraint 2 . animation Frame () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget X Position Impl ( component : ĠUI Component ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( constraint 1 Ġas ĠX Constraint ). getX Position ( component ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constraint 2 Ġas ĠX Constraint ). getX Position ( component ) Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constr ain To Ġ?: Ġcomponent . parent ). get Left () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Y Position Impl ( component : ĠUI Component ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( constraint 1 Ġas ĠY Constraint ). getY Position ( component ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constraint 2 Ġas ĠY Constraint ). getY Position ( component ) Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constr ain To Ġ?: Ġcomponent . parent ). get Top () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Width Impl ( component : ĠUI Component ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( constraint 1 Ġas ĠWidth Constraint ). getWidth ( component ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constraint 2 Ġas ĠWidth Constraint ). getWidth ( component ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Height Impl ( component : ĠUI Component ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( constraint 1 Ġas ĠHeight Constraint ). getHeight ( component ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constraint 2 Ġas ĠHeight Constraint ). getHeight ( component ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Radius Impl ( component : ĠUI Component ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( constraint 1 Ġas ĠRadius Constraint ). get Radius ( component ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( constraint 2 Ġas ĠRadius Constraint ). get Radius ( component ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto ( component : ĠUI Component ): ĠSuper Constraint < Float > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Constraint . to ( UI Component ) Ġis Ġnot Ġavailable Ġin Ġthis Ġcontext , Ġplease Ġapply Ġthis Ġto Ġthe Ġcomponents Ġbefore hand .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Impl ( visitor : ĠConstraint Visitor , Ġtype : ĠConstraint Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconstraint 1 . visit ( visitor , Ġtype , Ġset New Constraint Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġconstraint 2 . visit ( visitor , Ġtype , Ġset New Constraint Ġ= Ġfalse ) ĊĠĠĠ Ġ} Ċ }