package Ġcom . car lo spin an . introduction to android graphics . week 2 . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . view . View Ċ import Ġcom . car lo spin an . introduction to android graphics . common .* Ċ import Ġcom . car lo spin an . introduction to android graphics . common . objects . Cube Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠCar los ĠPi Ã± an Ċ Ġ*/ Ċ class ĠCube Canvas Timer View ( context : ĠContext ) Ġ: ĠView ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcube Ġ= ĠCube () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġangle Ġ= Ġ 4 5 F ĊĠĠĠĠĠĠĠ Ġval Ġtimer Ġ= ĠTimer () ĊĊĠĠĠĠĠĠĠ Ġval Ġtimer Task Ġ= Ġobject Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cube ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= Ġcube Vertices ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( Vector 3 ( 2 , Ġ 2 , Ġ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scale ( Vector 3 ( 4 0 , Ġ 4 0 , Ġ 4 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate 3 DX ( angle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate 3 DY ( 9 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate 3 DZ ( 2 5 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( Vector 3 ( 2 0 0 , Ġ 2 0 0 , Ġ 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġangle Ġ+= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġangle Ġ% = Ġ 3 6 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcube . update Matrix ( matrix ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtimer . schedule At Fixed Rate ( timer Task , Ġ 1 0 0 L , Ġ 1 0 0 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . dispatch Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġcube . draw ( canvas ) ĊĠĠĠ Ġ} Ċ Ċ }