package Ġcom . jz bro ok s . v go . core . util . math Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isFalse Ċ import Ġassert k . assertions . isNull Ċ import Ġassert k . assertions . isTrue Ċ import Ġcom . jz bro ok s . v go . core . graphic . command . Command Variant Ċ import Ġcom . jz bro ok s . v go . core . graphic . command . Cubic Bezier Curve Ċ import Ġcom . jz bro ok s . v go . core . graphic . command . Smooth Cubic Bezier Curve Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ Ċ class ĠCur ves Tests Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnon Relative Curve Ġ= ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠ ĠCommand Variant . AB SOL UTE , ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point (- 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmulti Parameter Curve Ġ= ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point (- 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point (- 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġnon - relative Ġinterpolation Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Relative Curve . interpolate ( 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġmultiple Ġcurve Ġparameter Ġinterpolation Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Parameter Curve . interpolate ( 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġnon - relative Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Relative Curve . is Convex () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġmultiple Ġcurve Ġparameters Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Parameter Curve . is Convex () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġnon - relative Ġshortcut Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnon Relative Curve Ġ= ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . AB SOL UTE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Relative Curve . is Convex () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ensure Ġmultiple Ġshortcut Ġcurve Ġparameters Ġthrows `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmut li Parameter Curve Ġ= ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmut li Parameter Curve . is Convex () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Curve Ġfits Ġto Ġcircle `( data : ĠFit Circle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcircle Ġ= Ġdata . curve . fit Circle ( 0 . 0 1 f ) ĊĠĠĠĠĠĠĠ ĠassertThat ( circle ). isEqualTo ( data . expected Circle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Shortcut Ġcurve Ġdoes Ġnot Ġfit Ġto Ġcircle `( curve : ĠSm ooth Cubic Bezier Curve ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcircle Ġ= Ġcurve . fit Circle ( 0 . 0 1 f ) ĊĠĠĠĠĠĠĠ ĠassertThat ( circle ). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Point Ġalong Ġa Ġcurve Ġis Ġcomputed Ġcorrectly `( data : ĠParameter ized Curve ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġdata . curve . interpolate ( data . t ) ĊĠĠĠĠĠĠĠ ĠassertThat ( point ). isEqualTo ( data . expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Point Ġalong Ġa Ġshortcut Ġcurve Ġis Ġcomputed Ġcorrectly `( data : ĠShort cut Parameterized Curve ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġdata . curve . interpolate ( data . t ) ĊĠĠĠĠĠĠĠ ĠassertThat ( point ). isEqualTo ( data . expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Convex Ġcurves Ġare Ġconvex `( curve : ĠC ubic Bezier Curve ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( curve . is Convex ()). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Con c ave Ġcurves Ġare Ġnot Ġconvex `( curve : ĠC ubic Bezier Curve ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( curve . is Convex ()). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Convex Ġshortcut Ġcurves Ġare Ġconvex `( curve : ĠSm ooth Cubic Bezier Curve ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( curve . is Convex ()). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Method Source ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Con c ave Ġshortcut Ġcurves Ġare Ġnot Ġconvex `( curve : ĠSm ooth Cubic Bezier Curve ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( curve . is Convex ()). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠFit Circle ( val Ġcurve : ĠC ubic Bezier Curve , Ġval Ġexpected Circle : ĠCircle ) ĊĠĠĠ Ġdata Ġclass ĠShort cut Fit Circle ( val Ġcurve : ĠSm ooth Cubic Bezier Curve , Ġval Ġexpected Circle : ĠCircle ?) ĊĊĠĠĠ Ġdata Ġclass ĠParameter ized Curve ( val Ġcurve : ĠC ubic Bezier Curve , Ġval Ġt : ĠFloat , Ġval Ġexpected : ĠPoint ) ĊĠĠĠ Ġdata Ġclass ĠShort cut Parameterized Curve ( val Ġcurve : ĠSm ooth Cubic Bezier Curve , Ġval Ġt : ĠFloat , Ġval Ġexpected : ĠPoint ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Curve Ġfits Ġto Ġcircle ` (): ĠList < Fit Circle > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFit Circle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point ( 2 . 7 6 1 f , Ġ 0 f ), ĠPoint ( 5 f , Ġ 2 . 2 3 9 f ), ĠPoint ( 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle ( Point (- 0 . 0 0 0 5 4 2 5 2 2 5 f , Ġ 5 . 0 0 0 5 4 3 6 f ), Ġ 5 . 0 0 0 5 4 3 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Shortcut Ġcurve Ġdoes Ġnot Ġfit Ġto Ġcircle ` (): ĠList < Smooth Cubic Bezier Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point ( 5 f , Ġ 2 . 2 3 9 f ), ĠPoint ( 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Point Ġalong Ġa Ġcurve Ġis Ġcomputed Ġcorrectly ` (): ĠList < Parameterized Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter ized Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point (- 5 . 2 f , Ġ- 1 f ), ĠPoint (- 5 . 1 f , Ġ 1 4 f ), ĠPoint ( 1 2 . 4 f , Ġ 1 1 . 1 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 5 4 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint (- 1 . 8 8 2 2 4 5 3 f , Ġ 7 . 0 3 8 7 7 0 7 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Point Ġalong Ġa Ġshortcut Ġcurve Ġis Ġcomputed Ġcorrectly ` (): ĠList < Shortcut Parameterized Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShort cut Parameterized Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point (- 5 . 1 f , Ġ 1 4 f ), ĠPoint ( 1 2 . 4 f , Ġ 1 1 . 1 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 5 4 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint (- 0 . 0 9 9 7 2 6 9 1 5 f , Ġ 7 . 3 8 1 5 6 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Convex Ġcurves Ġare Ġconvex ` (): ĠList < Cubic Bezier Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point (- 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point ( 1 . 5 f , Ġ 0 . 5 f ), ĠPoint ( 3 . 5 f , Ġ 2 f ), ĠPoint ( 4 f , Ġ 4 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Con c ave Ġcurves Ġare Ġnot Ġconvex ` (): ĠList < Cubic Bezier Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point ( 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f ), ĠPoint (- 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ubic Bezier Curve . Parameter ( Point ( 1 0 9 f , Ġ 8 f ), ĠPoint ( 1 1 3 f , Ġ 1 2 f ), ĠPoint ( 1 2 0 f , Ġ 1 0 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Convex Ġshortcut Ġcurves Ġare Ġconvex ` (): ĠList < Smooth Cubic Bezier Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point ( 5 f , Ġ 2 . 2 5 f ), ĠPoint ( 5 f , Ġ 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point ( 1 . 5 f , Ġ 0 . 5 f ), ĠPoint ( 3 . 5 f , Ġ 2 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point ( 1 0 9 f , Ġ 8 f ), ĠPoint ( 1 1 3 f , Ġ 1 2 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ` Con c ave Ġshortcut Ġcurves Ġare Ġnot Ġconvex ` (): ĠList < Smooth Cubic Bezier Curve > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Variant . REL ATIVE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSm ooth Cubic Bezier Curve . Parameter ( Point ( 2 . 5 f , Ġ 0 f ), ĠPoint (- 5 f , Ġ 2 . 2 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ