package Ġtop . k ik t . flutter _ image _ editor . core Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Path Ċ import Ġandroid . graphics . Rect F Ċ import Ġtop . k ik t . flutter _ image _ editor . option . draw .* Ċ Ċ fun ĠBitmap . draw ( option : ĠDraw Option ): ĠBitmap Ġ{ ĊĠ Ġval Ġnew Bitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , Ġconfig ) ĊĠ Ġval Ġcanvas Ġ= ĠCanvas ( new Bitmap ) ĊĠ Ġcanvas . draw Bitmap ( this , Ġ 0 F , Ġ 0 F , Ġnull ) ĊĊĠ Ġfor Ġ( draw Part Ġin Ġoption . draw Part ) Ġ{ ĊĠĠĠ Ġwhen Ġ( draw Part ) Ġ{ ĊĠĠĠĠĠ Ġis ĠLine Draw Part Ġ-> Ġdraw Line ( canvas , Ġdraw Part ) ĊĠĠĠĠĠ Ġis ĠRect Draw Part Ġ-> Ġdraw Rect ( canvas , Ġdraw Part ) ĊĠĠĠĠĠ Ġis ĠO val Draw Part Ġ-> Ġdraw O val ( canvas , Ġdraw Part ) ĊĠĠĠĠĠ Ġis ĠPoints Draw Part Ġ-> Ġdraw Points ( canvas , Ġdraw Part ) ĊĠĠĠĠĠ Ġis ĠPath Draw Part Ġ-> Ġdraw Path ( canvas , Ġdraw Part ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġreturn Ġnew Bitmap Ċ } Ċ Ċ fun Ġdraw Path ( canvas : ĠCanvas , Ġdraw Part : ĠPath Draw Part ) Ġ{ ĊĠ Ġval Ġpath Ġ= ĠPath () ĊĠ Ġval Ġclose Ġ= Ġdraw Part . auto Close ĊĠ Ġfor Ġ( p Ġin Ġdraw Part . paths ) Ġ{ ĊĠĠĠ Ġwhen Ġ( p ) Ġ{ ĊĠĠĠĠĠ Ġis ĠMove Path Part Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġpath . moveTo ( p . offset . x . toFloat (), Ġp . offset . y . toFloat ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠLine To Path Part Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġpath . lineTo ( p . offset . x . toFloat (), Ġp . offset . y . toFloat ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠArc To Path Part Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect F Ġ= ĠRect F ( p . rect ) ĊĠĠĠĠĠĠĠ Ġpath . arc To ( rect F , Ġp . start . toFloat (), Ġp . sweep . toFloat (), Ġp . use Center ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠBe zier Path Part Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( p . kind Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpath . quad To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 1 . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 1 . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . target . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . target . y . toFloat () ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( p . kind Ġ== Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpath . cubic To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 1 . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 1 . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 2 !!. x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . control 2 . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . target . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . target . y . toFloat () ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġif Ġ( close ) Ġ{ ĊĠĠĠ Ġpath . close () ĊĠ Ġ} ĊĊĠ Ġcanvas . draw Path ( path , Ġdraw Part . get Paint ()) Ċ } Ċ Ċ fun Ġdraw Points ( canvas : ĠCanvas , Ġdraw Part : ĠPoints Draw Part ) Ġ{ ĊĠ Ġval Ġpoints Ġ= Ġdraw Part . offsets ĊĠ Ġval Ġpaint Ġ= Ġdraw Part . get Paint () ĊĠ Ġfor Ġ( point Ġin Ġpoints ) Ġ{ ĊĠĠĠ Ġcanvas . draw Point ( point . x . toFloat (), Ġpoint . y . toFloat (), Ġpaint ) ĊĠ Ġ} Ċ } Ċ Ċ fun Ġdraw O val ( canvas : ĠCanvas , Ġdraw Part : ĠO val Draw Part ) Ġ{ ĊĠ Ġval Ġrect Ġ= ĠRect F ( draw Part . rect ) ĊĠ Ġcanvas . draw O val ( rect , Ġdraw Part . get Paint ()) Ċ } Ċ Ċ fun Ġdraw Rect ( canvas : ĠCanvas , Ġdraw Part : ĠRect Draw Part ) Ġ{ ĊĠ Ġcanvas . draw Rect ( draw Part . rect , Ġdraw Part . get Paint ()) Ċ } Ċ Ċ private Ġfun Ġdraw Line ( canvas : ĠCanvas , Ġdraw Part : ĠLine Draw Part ) Ġ{ ĊĠ Ġval Ġpaint Ġ= Ġdraw Part . get Paint () ĊĠ Ġcanvas . draw Line ( ĊĠĠĠĠĠĠĠĠĠ Ġdraw Part . start . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠ Ġdraw Part . start . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠ Ġdraw Part . end . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠ Ġdraw Part . end . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠ Ġ) Ċ } Ċ