/* Ċ Ġ* ĠCopyright ĠL WJ GL . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms : Ġhttps :// www . lwjgl . org / license Ċ Ġ*/ Ċ package Ġpar . templates Ċ Ċ import Ġorg . lwjgl . generator .* Ċ import Ġpar .* Ċ Ċ val Ġpar _ stream lines Ġ= Ġ" Par Stream lines ". native Class ( Module . PAR , Ġprefix Ġ= Ġ" par sl _", Ġprefix Constant Ġ= Ġ" PAR SL _ ") Ġ{ ĊĠĠĠ Ġnative Directive ( ĊĠĠĠĠĠĠĠ Ġ""" # include Ġ" lwjgl _ malloc . h " Ċ # define ĠPAR _ M ALLOC ( T , ĠN ) Ġ(( T *) Ġorg _ lwjgl _ malloc ( N Ġ* Ġsizeof ( T ))) Ċ # define ĠPAR _ CAL LOC ( T , ĠN ) Ġ(( T *) Ġorg _ lwjgl _ calloc ( N , Ġsizeof ( T ))) Ċ # define ĠPAR _ RE ALLOC ( T , ĠBU F , ĠN ) Ġ(( T *) Ġorg _ lwjgl _ realloc ( BUF , Ġsizeof ( T ) Ġ* ĠN )) Ċ # define ĠPAR _ FREE ( BUF ) Ġorg _ lwjgl _ free ( BUF ) Ċ DISABLE _ WARNING S () Ċ # define ĠPAR _ STRE AML IN ES _ IMPLEMENT ATION Ċ # include Ġ" par _ stream lines . h " Ċ ENABLE _ WARNING S () """) ĊĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠBind ings Ġto Ġ${ url (" https :// github . com / p ride out / par / blob / master / par _ stream lines . h ", Ġ" par _ stream lines . h ")}, Ġa Ġsingle - file , Ġzero - dependency , ĠC 9 9 Ġlibrary ĊĠĠĠĠĠĠĠ Ġthat Ġcan Ġtri ang ulate Ġwide Ġlines Ġand Ġcurves . ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Config ures Ġhow Ġthe Ġlibrary Ġassigns ĠUV Ġcoordinates .", ĊĊĠĠĠĠĠĠĠ Ġ" PAR _ U _ MODE _ NORMAL IZED _ DISTANCE ". enum (" This Ġis Ġthe Ġdefault ."), ĊĠĠĠĠĠĠĠ Ġ" PAR _ U _ MODE _ DISTANCE ". enum (" Non - normalized Ġdistance Ġalong Ġthe Ġcurve ."), ĊĠĠĠĠĠĠĠ Ġ" PAR _ U _ MODE _ SEGMENT _ INDEX ". enum (" Starts Ġat Ġzero Ġfor Ġeach Ġcurve , Ġcounts Ġup ."), ĊĠĠĠĠĠĠĠ Ġ" PAR _ U _ MODE _ SEGMENT _ FR ACTION ". enum (" 0 . 0 , Ġ 1 . 0 Ġ/ ĠCOUNT , Ġ 2 . 0 Ġ/ ĠCOUNT , Ġetc ...") ĊĠĠĠ Ġ). no Prefix () ĊĊĠĠĠ ĠInt Constant (" Enable s Ġ 4 Ġindices Ġper Ġtriangle ", Ġ" FLAG _ WI RE FRAME " .." 1 Ġ<< Ġ 0 ") ĊĠĠĠ ĠInt Constant (" Pop ulates Ġ{@ code Ġmesh . annotations }", Ġ" FLAG _ AN NOT ATIONS " .." 1 Ġ<< Ġ 1 ") ĊĠĠĠ ĠInt Constant (" Pop ulates Ġ{@ code Ġmesh . lengths }", Ġ" FLAG _ SP INE _ LENGTH S " .." 1 Ġ<< Ġ 2 ") ĊĠĠĠ ĠInt Constant (" Pop ulates Ġ{@ code Ġmesh . random _ offsets }", Ġ" FLAG _ RANDOM _ OFFSET S " .." 1 Ġ<< Ġ 3 ") ĊĠĠĠ ĠInt Constant (" Draw s Ġcontrol Ġpoints ", Ġ" FLAG _ CUR VE _ GU IP AR SL _ FLAG _ DES " .." 1 Ġ<< Ġ 4 ") ĊĊĠĠĠ Ġpar sl _ context . p ( ĊĠĠĠĠĠĠĠ Ġ" create _ context ", ĊĠĠĠĠĠĠĠ Ġ"", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ config (" config ", Ġ"") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" destroy _ context ", ĊĠĠĠĠĠĠĠ Ġ"", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ context . p (" ctx ", Ġ"") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġpar sl _ mesh . p ( ĊĠĠĠĠĠĠĠ Ġ" mesh _ from _ lines ", ĊĠĠĠĠĠĠĠ Ġ" Low - level Ġfunction Ġthat Ġgenerates Ġtwo Ġtriangles Ġfor Ġeach Ġline Ġsegment .", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ context . p (" ctx ", Ġ""), ĊĠĠĠĠĠĠĠ Ġpar sl _ sp ine _ list (" sp ines ", Ġ"") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġpar sl _ mesh . p ( ĊĠĠĠĠĠĠĠ Ġ" mesh _ from _ stream lines ", ĊĠĠĠĠĠĠĠ Ġ" High - level Ġfunction Ġthat Ġcan Ġbe Ġused Ġto Ġvisualize Ġa Ġvector Ġfield .", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ context . p (" context ", Ġ""), ĊĠĠĠĠĠĠĠ Ġpar sl _ ad ve ction _ callback (" adv ect ", Ġ""), ĊĠĠĠĠĠĠĠ Ġuint 3 2 _ t (" first _ tick ", Ġ""), ĊĠĠĠĠĠĠĠ Ġuint 3 2 _ t (" num _ ticks ", Ġ""), ĊĠĠĠĠĠĠĠ Ġopaque _ p (" userdata ", Ġ"") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġpar sl _ mesh . p ( ĊĠĠĠĠĠĠĠ Ġ" mesh _ from _ cur ves _ cubic ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠHigh - level Ġfunction Ġthat Ġtes sell ates Ġa Ġseries Ġof Ġcurves Ġinto Ġtriangles , Ġwhere Ġeach Ġsp ine Ġis Ġa Ġseries Ġof Ġchained Ġcubic ĠB Ã© zier Ġcurves . ĊĊĠĠĠĠĠĠĠ ĠThe Ġfirst Ġcurve Ġof Ġeach Ġsp ine Ġis Ġdefined Ġby Ġan Ġendpoint , Ġfollowed Ġby Ġtwo Ġcontrol Ġpoints , Ġfollowed Ġby Ġan Ġendpoint . ĠEvery Ġsubsequent Ġcurve Ġin Ġthe Ġsp ine ĊĠĠĠĠĠĠĠ Ġis Ġdefined Ġby Ġa Ġsingle Ġcontrol Ġpoint Ġfollowed Ġby Ġan Ġendpoint . ĠOnly Ġone Ġcontrol Ġpoint Ġis Ġrequired Ġbecause Ġthe Ġfirst Ġcontrol Ġpoint Ġis Ġcomputed Ġvia ĊĠĠĠĠĠĠĠ Ġreflection Ġover Ġthe Ġendpoint . ĊĊĠĠĠĠĠĠĠ ĠThe Ġnumber Ġof Ġvertices Ġin Ġeach Ġsp ine Ġshould Ġbe Ġ{@ code Ġ 4 +( n - 1 )* 2 } Ġwhere Ġ{@ code Ġn } Ġis Ġthe Ġnumber Ġof Ġpiece wise Ġcurves . ĊĊĠĠĠĠĠĠĠ ĠEach Ġsp ine Ġis Ġequivalent Ġto Ġan ĠSVG Ġpath Ġthat Ġlooks Ġlike Ġ{@ code ĠM ĠC ĠS ĠS ĠS }. ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ context . p (" context ", Ġ""), ĊĠĠĠĠĠĠĠ Ġpar sl _ sp ine _ list (" sp ines ", Ġ"") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġpar sl _ mesh . p ( ĊĠĠĠĠĠĠĠ Ġ" mesh _ from _ cur ves _ quadr atic ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠHigh - level Ġfunction Ġthat Ġtes sell ates Ġa Ġseries Ġof Ġcurves Ġinto Ġtriangles , Ġwhere Ġeach Ġsp ine Ġis Ġa Ġseries Ġof Ġchained Ġquadr atic ĠB Ã© zier Ġcurves . ĊĊĠĠĠĠĠĠĠ ĠThe Ġfirst Ġcurve Ġof Ġeach Ġsp ine Ġis Ġdefined Ġby Ġan Ġendpoint , Ġfollowed Ġby Ġone Ġcontrol Ġpoint , Ġfollowed Ġby Ġan Ġendpoint . ĠEvery Ġsubsequent Ġcurve Ġin Ġthe Ġsp ine Ġis ĊĠĠĠĠĠĠĠ Ġdefined Ġby Ġa Ġsingle Ġcontrol Ġpoint Ġfollowed Ġby Ġan Ġendpoint . ĊĊĠĠĠĠĠĠĠ ĠThe Ġnumber Ġof Ġvertices Ġin Ġeach Ġsp ine Ġshould Ġbe Ġ{@ code Ġ 3 +( n - 1 )* 2 } Ġwhere Ġ{@ code Ġn } Ġis Ġthe Ġnumber Ġof Ġpiece wise Ġcurves . ĊĊĠĠĠĠĠĠĠ ĠEach Ġsp ine Ġis Ġequivalent Ġto Ġan ĠSVG Ġpath Ġthat Ġlooks Ġlike Ġ{@ code ĠM ĠQ ĠM ĠQ ĠM ĠQ }. ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ Ġpar sl _ context . p (" context ", Ġ""), ĊĠĠĠĠĠĠĠ Ġpar sl _ sp ine _ list (" sp ines ", Ġ"") ĊĠĠĠ Ġ) Ċ }