glue.cpp 87 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142
  1. /*
  2. Copyright (c) 2025 Bruce A Henderson
  3. Permission is hereby granted, free of charge, to any person obtaining a copy
  4. of this software and associated documentation files (the "Software"), to deal
  5. in the Software without restriction, including without limitation the rights
  6. to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. copies of the Software, and to permit persons to whom the Software is
  8. furnished to do so, subject to the following conditions:
  9. The above copyright notice and this permission notice shall be included in all
  10. copies or substantial portions of the Software.
  11. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  12. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  13. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  14. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  15. LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  16. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  17. SOFTWARE.
  18. */
  19. #include "implot.h"
  20. #include "brl.mod/blitz.mod/blitz.h"
  21. typedef signed char ImS8; // 8-bit signed integer
  22. typedef unsigned char ImU8; // 8-bit unsigned integer
  23. typedef signed short ImS16; // 16-bit signed integer
  24. typedef unsigned short ImU16; // 16-bit unsigned integer
  25. typedef signed int ImS32; // 32-bit signed integer == int
  26. typedef unsigned int ImU32; // 32-bit unsigned integer (often used to store packed colors)
  27. typedef signed long long ImS64; // 64-bit signed integer
  28. typedef unsigned long long ImU64; // 64-bit unsigned integer
  29. // begin extern "C" {
  30. extern "C" {
  31. void ImPlot_ShowDemoWindow(int * open) {
  32. bool op = *open;
  33. ImPlot::ShowDemoWindow(&op);
  34. *open = op;
  35. }
  36. ///////////////////////////////////////////////////////////
  37. ImPlotContext * ImPlot_CreateContext() {
  38. return ImPlot::CreateContext();
  39. }
  40. void ImPlot_DestroyContext(ImPlotContext * ctx) {
  41. ImPlot::DestroyContext(ctx);
  42. }
  43. void ImPlot_SetCurrentContext(ImPlotContext * ctx) {
  44. ImPlot::SetCurrentContext(ctx);
  45. }
  46. ImPlotContext * ImPlot_GetCurrentContext() {
  47. return ImPlot::GetCurrentContext();
  48. }
  49. ///////////////////////////////////////////////////////////
  50. typedef struct MaxVec2 {
  51. float x, y;
  52. } MaxVec2;
  53. typedef struct MaxVec4 {
  54. float x, y, z, w;
  55. } MaxVec4;
  56. typedef struct MaxPlotPoint {
  57. double x, y;
  58. } MaxPlotPoint;
  59. typedef struct MaxPlotRange {
  60. double min, max;
  61. } MaxPlotRange;
  62. typedef struct MaxPlotRect {
  63. MaxPlotRange x, y;
  64. } MaxPlotRect;
  65. static inline MaxVec2 ConvertFromCPP_MaxVec2(const ::ImVec2& src)
  66. {
  67. MaxVec2 dest;
  68. dest.x = src.x;
  69. dest.y = src.y;
  70. return dest;
  71. }
  72. static inline ::ImVec2 ConvertToCPP_MaxVec2(const MaxVec2& src)
  73. {
  74. ::ImVec2 dest;
  75. dest.x = src.x;
  76. dest.y = src.y;
  77. return dest;
  78. }
  79. static inline MaxVec4 ConvertFromCPP_MaxVec4(const ::ImVec4& src)
  80. {
  81. MaxVec4 dest;
  82. dest.x = src.x;
  83. dest.y = src.y;
  84. dest.z = src.z;
  85. dest.w = src.w;
  86. return dest;
  87. }
  88. static inline ::ImVec4 ConvertToCPP_MaxVec4(const MaxVec4& src)
  89. {
  90. ::ImVec4 dest;
  91. dest.x = src.x;
  92. dest.y = src.y;
  93. dest.z = src.z;
  94. dest.w = src.w;
  95. return dest;
  96. }
  97. static inline MaxPlotPoint ConvertFromCPP_MaxPlotPoint(const ImPlotPoint& src)
  98. {
  99. MaxPlotPoint dest;
  100. dest.x = src.x;
  101. dest.y = src.y;
  102. return dest;
  103. }
  104. static inline ::ImPlotPoint ConvertToCPP_MaxPlotPoint(const MaxPlotPoint& src)
  105. {
  106. ::ImPlotPoint dest;
  107. dest.x = src.x;
  108. dest.y = src.y;
  109. return dest;
  110. }
  111. static inline MaxPlotRange ConvertFromCPP_MaxPlotRange(const ImPlotRange& src)
  112. {
  113. MaxPlotRange dest;
  114. dest.min = src.Min;
  115. dest.max = src.Max;
  116. return dest;
  117. }
  118. static inline ::ImPlotRange ConvertToCPP_MaxPlotRange(const MaxPlotRange& src)
  119. {
  120. ::ImPlotRange dest;
  121. dest.Min = src.min;
  122. dest.Max = src.max;
  123. return dest;
  124. }
  125. static inline MaxPlotRect ConvertFromCPP_MaxPlotRect(const ImPlotRect& src)
  126. {
  127. MaxPlotRect dest;
  128. dest.x = ConvertFromCPP_MaxPlotRange(src.X);
  129. dest.y = ConvertFromCPP_MaxPlotRange(src.Y);
  130. return dest;
  131. }
  132. static inline ::ImPlotRect ConvertToCPP_MaxPlotRect(const MaxPlotRect& src)
  133. {
  134. ::ImPlotRect dest;
  135. dest.X = ConvertToCPP_MaxPlotRange(src.x);
  136. dest.Y = ConvertToCPP_MaxPlotRange(src.y);
  137. return dest;
  138. }
  139. ///////////////////////////////////////////////////////////
  140. int ImPlot_BeginPlotSize(BBString * title_id, MaxVec2 size, ImPlotFlags flags) {
  141. const char * v0 = (const char *)bbStringToUTF8String(title_id);
  142. int result = ImPlot::BeginPlot(v0, ConvertToCPP_MaxVec2(size), flags);
  143. bbMemFree((void*)v0);
  144. return result;
  145. }
  146. int ImPlot_BeginPlot(BBString * title_id, ImPlotFlags flags) {
  147. return ImPlot_BeginPlotSize(title_id, {-1, 0}, flags);
  148. }
  149. void ImPlot_EndPlot() {
  150. ImPlot::EndPlot();
  151. }
  152. ///////////////////////////////////////////////////////////
  153. int ImPlot_BeginSubplots(BBString * title_id, int rows, int cols, MaxVec2 size, ImPlotSubplotFlags flags, float * row_ratios, float * col_ratios) {
  154. const char * v0 = (const char *)bbStringToUTF8String(title_id);
  155. int result = ImPlot::BeginSubplots(v0, rows, cols, ConvertToCPP_MaxVec2(size), flags, row_ratios, col_ratios);
  156. bbMemFree((void*)v0);
  157. return result;
  158. }
  159. void ImPlot_EndSubplots() {
  160. ImPlot::EndSubplots();
  161. }
  162. ///////////////////////////////////////////////////////////
  163. void ImPlot_SetupAxis(ImAxis axis, BBString * label, ImPlotAxisFlags flags) {
  164. const char * v0;
  165. if ( label == &bbEmptyString ) {
  166. v0 = nullptr;
  167. } else {
  168. v0 = (const char *)bbStringToUTF8String(label);
  169. }
  170. ImPlot::SetupAxis(axis, v0, flags);
  171. bbMemFree((void*)v0);
  172. }
  173. void ImPlot_SetupAxisLimits(ImAxis axis, double v_min, double v_max, ImPlotCond cond) {
  174. ImPlot::SetupAxisLimits(axis, v_min, v_max, cond);
  175. }
  176. void ImPlot_SetupAxisLinks(ImAxis axis, double * link_min, double * link_max) {
  177. ImPlot::SetupAxisLinks(axis, link_min, link_max);
  178. }
  179. void ImPlot_SetupAxisFormat(ImAxis axis, BBString * fmt) {
  180. const char * v0;
  181. if ( fmt == &bbEmptyString ) {
  182. v0 = nullptr;
  183. } else {
  184. v0 = (const char *)bbStringToUTF8String(fmt);
  185. }
  186. ImPlot::SetupAxisFormat(axis, v0);
  187. bbMemFree((void*)v0);
  188. }
  189. ///////////////////////////////////////////////////////////
  190. // float
  191. void ImPlot_PlotLineFloat(BBString * label, float * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  192. const char * v0 = (const char *)bbStringToUTF8String(label);
  193. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  194. bbMemFree((void*)v0);
  195. }
  196. void ImPlot_PlotLineXYFloat(BBString * label, float * xs, float * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  197. const char * v0 = (const char *)bbStringToUTF8String(label);
  198. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  199. bbMemFree((void*)v0);
  200. }
  201. // double
  202. void ImPlot_PlotLineDouble(BBString * label, double * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  203. const char * v0 = (const char *)bbStringToUTF8String(label);
  204. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  205. bbMemFree((void*)v0);
  206. }
  207. void ImPlot_PlotLineXYDouble(BBString * label, double * xs, double * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  208. const char * v0 = (const char *)bbStringToUTF8String(label);
  209. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  210. bbMemFree((void*)v0);
  211. }
  212. // byte
  213. void ImPlot_PlotLineByte(BBString * label, ImU8 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  214. const char * v0 = (const char *)bbStringToUTF8String(label);
  215. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  216. bbMemFree((void*)v0);
  217. }
  218. void ImPlot_PlotLineXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  219. const char * v0 = (const char *)bbStringToUTF8String(label);
  220. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  221. bbMemFree((void*)v0);
  222. }
  223. // short
  224. void ImPlot_PlotLineShort(BBString * label, ImU16 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  225. const char * v0 = (const char *)bbStringToUTF8String(label);
  226. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  227. bbMemFree((void*)v0);
  228. }
  229. void ImPlot_PlotLineXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  230. const char * v0 = (const char *)bbStringToUTF8String(label);
  231. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  232. bbMemFree((void*)v0);
  233. }
  234. // int
  235. void ImPlot_PlotLineInt(BBString * label, ImS32 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  236. const char * v0 = (const char *)bbStringToUTF8String(label);
  237. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  238. bbMemFree((void*)v0);
  239. }
  240. void ImPlot_PlotLineXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  241. const char * v0 = (const char *)bbStringToUTF8String(label);
  242. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  243. bbMemFree((void*)v0);
  244. }
  245. // long
  246. void ImPlot_PlotLineLong(BBString * label, ImS64 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  247. const char * v0 = (const char *)bbStringToUTF8String(label);
  248. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  249. bbMemFree((void*)v0);
  250. }
  251. void ImPlot_PlotLineXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  252. const char * v0 = (const char *)bbStringToUTF8String(label);
  253. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  254. bbMemFree((void*)v0);
  255. }
  256. // uint
  257. void ImPlot_PlotLineUInt(BBString * label, ImU32 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  258. const char * v0 = (const char *)bbStringToUTF8String(label);
  259. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  260. bbMemFree((void*)v0);
  261. }
  262. void ImPlot_PlotLineXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  263. const char * v0 = (const char *)bbStringToUTF8String(label);
  264. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  265. bbMemFree((void*)v0);
  266. }
  267. // ulong
  268. void ImPlot_PlotLineULong(BBString * label, ImU64 * values, int count, double xscale, ImPlotLineFlags flags, int offset, int stride) {
  269. const char * v0 = (const char *)bbStringToUTF8String(label);
  270. ImPlot::PlotLine(v0, values, count, xscale, flags, offset, stride);
  271. bbMemFree((void*)v0);
  272. }
  273. void ImPlot_PlotLineXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, ImPlotLineFlags flags, int offset, int stride) {
  274. const char * v0 = (const char *)bbStringToUTF8String(label);
  275. ImPlot::PlotLine(v0, xs, ys, count, flags, offset, stride);
  276. bbMemFree((void*)v0);
  277. }
  278. ///////////////////////////////////////////////////////////
  279. // float
  280. void ImPlot_PlotScatterFloat(BBString * label, float * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  281. const char * v0 = (const char *)bbStringToUTF8String(label);
  282. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  283. bbMemFree((void*)v0);
  284. }
  285. void ImPlot_PlotScatterXYFloat(BBString * label, float * xs, float * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  286. const char * v0 = (const char *)bbStringToUTF8String(label);
  287. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  288. bbMemFree((void*)v0);
  289. }
  290. // double
  291. void ImPlot_PlotScatterDouble(BBString * label, double * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  292. const char * v0 = (const char *)bbStringToUTF8String(label);
  293. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  294. bbMemFree((void*)v0);
  295. }
  296. void ImPlot_PlotScatterXYDouble(BBString * label, double * xs, double * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  297. const char * v0 = (const char *)bbStringToUTF8String(label);
  298. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  299. bbMemFree((void*)v0);
  300. }
  301. // byte
  302. void ImPlot_PlotScatterByte(BBString * label, ImU8 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  303. const char * v0 = (const char *)bbStringToUTF8String(label);
  304. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  305. bbMemFree((void*)v0);
  306. }
  307. void ImPlot_PlotScatterXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  308. const char * v0 = (const char *)bbStringToUTF8String(label);
  309. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  310. bbMemFree((void*)v0);
  311. }
  312. // short
  313. void ImPlot_PlotScatterShort(BBString * label, ImU16 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  314. const char * v0 = (const char *)bbStringToUTF8String(label);
  315. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  316. bbMemFree((void*)v0);
  317. }
  318. void ImPlot_PlotScatterXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  319. const char * v0 = (const char *)bbStringToUTF8String(label);
  320. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  321. bbMemFree((void*)v0);
  322. }
  323. // int
  324. void ImPlot_PlotScatterInt(BBString * label, ImS32 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  325. const char * v0 = (const char *)bbStringToUTF8String(label);
  326. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  327. bbMemFree((void*)v0);
  328. }
  329. void ImPlot_PlotScatterXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  330. const char * v0 = (const char *)bbStringToUTF8String(label);
  331. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  332. bbMemFree((void*)v0);
  333. }
  334. // long
  335. void ImPlot_PlotScatterLong(BBString * label, ImS64 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  336. const char * v0 = (const char *)bbStringToUTF8String(label);
  337. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  338. bbMemFree((void*)v0);
  339. }
  340. void ImPlot_PlotScatterXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  341. const char * v0 = (const char *)bbStringToUTF8String(label);
  342. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  343. bbMemFree((void*)v0);
  344. }
  345. // uint
  346. void ImPlot_PlotScatterUInt(BBString * label, ImU32 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  347. const char * v0 = (const char *)bbStringToUTF8String(label);
  348. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  349. bbMemFree((void*)v0);
  350. }
  351. void ImPlot_PlotScatterXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  352. const char * v0 = (const char *)bbStringToUTF8String(label);
  353. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  354. bbMemFree((void*)v0);
  355. }
  356. // ulong
  357. void ImPlot_PlotScatterULong(BBString * label, ImU64 * values, int count, double xscale, double xstart, ImPlotScatterFlags flags, int offset, int stride) {
  358. const char * v0 = (const char *)bbStringToUTF8String(label);
  359. ImPlot::PlotScatter(v0, values, count, xscale, xstart, flags, offset, stride);
  360. bbMemFree((void*)v0);
  361. }
  362. void ImPlot_PlotScatterXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, ImPlotScatterFlags flags, int offset, int stride) {
  363. const char * v0 = (const char *)bbStringToUTF8String(label);
  364. ImPlot::PlotScatter(v0, xs, ys, count, flags, offset, stride);
  365. bbMemFree((void*)v0);
  366. }
  367. ///////////////////////////////////////////////////////////
  368. // float
  369. void ImPlot_PlotStairsFloat(BBString * label, float * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  370. const char * v0 = (const char *)bbStringToUTF8String(label);
  371. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  372. bbMemFree((void*)v0);
  373. }
  374. void ImPlot_PlotStairsXYFloat(BBString * label, float * xs, float * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  375. const char * v0 = (const char *)bbStringToUTF8String(label);
  376. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  377. bbMemFree((void*)v0);
  378. }
  379. // double
  380. void ImPlot_PlotStairsDouble(BBString * label, double * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  381. const char * v0 = (const char *)bbStringToUTF8String(label);
  382. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  383. bbMemFree((void*)v0);
  384. }
  385. void ImPlot_PlotStairsXYDouble(BBString * label, double * xs, double * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  386. const char * v0 = (const char *)bbStringToUTF8String(label);
  387. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  388. bbMemFree((void*)v0);
  389. }
  390. // byte
  391. void ImPlot_PlotStairsByte(BBString * label, ImU8 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  392. const char * v0 = (const char *)bbStringToUTF8String(label);
  393. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  394. bbMemFree((void*)v0);
  395. }
  396. void ImPlot_PlotStairsXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  397. const char * v0 = (const char *)bbStringToUTF8String(label);
  398. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  399. bbMemFree((void*)v0);
  400. }
  401. // short
  402. void ImPlot_PlotStairsShort(BBString * label, ImU16 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  403. const char * v0 = (const char *)bbStringToUTF8String(label);
  404. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  405. bbMemFree((void*)v0);
  406. }
  407. void ImPlot_PlotStairsXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  408. const char * v0 = (const char *)bbStringToUTF8String(label);
  409. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  410. bbMemFree((void*)v0);
  411. }
  412. // int
  413. void ImPlot_PlotStairsInt(BBString * label, ImS32 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  414. const char * v0 = (const char *)bbStringToUTF8String(label);
  415. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  416. bbMemFree((void*)v0);
  417. }
  418. void ImPlot_PlotStairsXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  419. const char * v0 = (const char *)bbStringToUTF8String(label);
  420. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  421. bbMemFree((void*)v0);
  422. }
  423. // long
  424. void ImPlot_PlotStairsLong(BBString * label, ImS64 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  425. const char * v0 = (const char *)bbStringToUTF8String(label);
  426. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  427. bbMemFree((void*)v0);
  428. }
  429. void ImPlot_PlotStairsXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  430. const char * v0 = (const char *)bbStringToUTF8String(label);
  431. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  432. bbMemFree((void*)v0);
  433. }
  434. // uint
  435. void ImPlot_PlotStairsUInt(BBString * label, ImU32 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  436. const char * v0 = (const char *)bbStringToUTF8String(label);
  437. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  438. bbMemFree((void*)v0);
  439. }
  440. void ImPlot_PlotStairsXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  441. const char * v0 = (const char *)bbStringToUTF8String(label);
  442. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  443. bbMemFree((void*)v0);
  444. }
  445. // ulong
  446. void ImPlot_PlotStairsULong(BBString * label, ImU64 * values, int count, double xscale, double xstart, ImPlotStairsFlags flags, int offset, int stride) {
  447. const char * v0 = (const char *)bbStringToUTF8String(label);
  448. ImPlot::PlotStairs(v0, values, count, xscale, xstart, flags, offset, stride);
  449. bbMemFree((void*)v0);
  450. }
  451. void ImPlot_PlotStairsXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, ImPlotStairsFlags flags, int offset, int stride) {
  452. const char * v0 = (const char *)bbStringToUTF8String(label);
  453. ImPlot::PlotStairs(v0, xs, ys, count, flags, offset, stride);
  454. bbMemFree((void*)v0);
  455. }
  456. ///////////////////////////////////////////////////////////
  457. // float
  458. void ImPlot_PlotShadedFloat(BBString * label, float * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  459. const char * v0 = (const char *)bbStringToUTF8String(label);
  460. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  461. bbMemFree((void*)v0);
  462. }
  463. void ImPlot_PlotShadedXYFloat(BBString * label, float * xs, float * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  464. const char * v0 = (const char *)bbStringToUTF8String(label);
  465. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  466. bbMemFree((void*)v0);
  467. }
  468. void ImPlot_PlotShadedXYYFloat(BBString * label, float * xs, float * ys1, float * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  469. const char * v0 = (const char *)bbStringToUTF8String(label);
  470. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  471. bbMemFree((void*)v0);
  472. }
  473. // double
  474. void ImPlot_PlotShadedDouble(BBString * label, double * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  475. const char * v0 = (const char *)bbStringToUTF8String(label);
  476. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  477. bbMemFree((void*)v0);
  478. }
  479. void ImPlot_PlotShadedXYDouble(BBString * label, double * xs, double * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  480. const char * v0 = (const char *)bbStringToUTF8String(label);
  481. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  482. bbMemFree((void*)v0);
  483. }
  484. void ImPlot_PlotShadedXYYDouble(BBString * label, double * xs, double * ys1, double * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  485. const char * v0 = (const char *)bbStringToUTF8String(label);
  486. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  487. bbMemFree((void*)v0);
  488. }
  489. // byte
  490. void ImPlot_PlotShadedByte(BBString * label, ImU8 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  491. const char * v0 = (const char *)bbStringToUTF8String(label);
  492. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  493. bbMemFree((void*)v0);
  494. }
  495. void ImPlot_PlotShadedXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  496. const char * v0 = (const char *)bbStringToUTF8String(label);
  497. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  498. bbMemFree((void*)v0);
  499. }
  500. void ImPlot_PlotShadedXYYByte(BBString * label, ImU8 * xs, ImU8 * ys1, ImU8 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  501. const char * v0 = (const char *)bbStringToUTF8String(label);
  502. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  503. bbMemFree((void*)v0);
  504. }
  505. // short
  506. void ImPlot_PlotShadedShort(BBString * label, ImU16 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  507. const char * v0 = (const char *)bbStringToUTF8String(label);
  508. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  509. bbMemFree((void*)v0);
  510. }
  511. void ImPlot_PlotShadedXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  512. const char * v0 = (const char *)bbStringToUTF8String(label);
  513. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  514. bbMemFree((void*)v0);
  515. }
  516. void ImPlot_PlotShadedXYYShort(BBString * label, ImU16 * xs, ImU16 * ys1, ImU16 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  517. const char * v0 = (const char *)bbStringToUTF8String(label);
  518. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  519. bbMemFree((void*)v0);
  520. }
  521. // int
  522. void ImPlot_PlotShadedInt(BBString * label, ImS32 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  523. const char * v0 = (const char *)bbStringToUTF8String(label);
  524. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  525. bbMemFree((void*)v0);
  526. }
  527. void ImPlot_PlotShadedXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  528. const char * v0 = (const char *)bbStringToUTF8String(label);
  529. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  530. bbMemFree((void*)v0);
  531. }
  532. void ImPlot_PlotShadedXYYInt(BBString * label, ImS32 * xs, ImS32 * ys1, ImS32 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  533. const char * v0 = (const char *)bbStringToUTF8String(label);
  534. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  535. bbMemFree((void*)v0);
  536. }
  537. // long
  538. void ImPlot_PlotShadedLong(BBString * label, ImS64 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  539. const char * v0 = (const char *)bbStringToUTF8String(label);
  540. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  541. bbMemFree((void*)v0);
  542. }
  543. void ImPlot_PlotShadedXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  544. const char * v0 = (const char *)bbStringToUTF8String(label);
  545. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  546. bbMemFree((void*)v0);
  547. }
  548. void ImPlot_PlotShadedXYYLong(BBString * label, ImS64 * xs, ImS64 * ys1, ImS64 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  549. const char * v0 = (const char *)bbStringToUTF8String(label);
  550. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  551. bbMemFree((void*)v0);
  552. }
  553. // uint
  554. void ImPlot_PlotShadedUInt(BBString * label, ImU32 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  555. const char * v0 = (const char *)bbStringToUTF8String(label);
  556. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  557. bbMemFree((void*)v0);
  558. }
  559. void ImPlot_PlotShadedXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  560. const char * v0 = (const char *)bbStringToUTF8String(label);
  561. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  562. bbMemFree((void*)v0);
  563. }
  564. void ImPlot_PlotShadedXYYUInt(BBString * label, ImU32 * xs, ImU32 * ys1, ImU32 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  565. const char * v0 = (const char *)bbStringToUTF8String(label);
  566. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  567. bbMemFree((void*)v0);
  568. }
  569. // ulong
  570. void ImPlot_PlotShadedULong(BBString * label, ImU64 * values, int count, double yref, double xscale, double xstart, ImPlotShadedFlags flags, int offset, int stride) {
  571. const char * v0 = (const char *)bbStringToUTF8String(label);
  572. ImPlot::PlotShaded(v0, values, count, yref, xscale, xstart, flags, offset, stride);
  573. bbMemFree((void*)v0);
  574. }
  575. void ImPlot_PlotShadedXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, double yref, ImPlotShadedFlags flags, int offset, int stride) {
  576. const char * v0 = (const char *)bbStringToUTF8String(label);
  577. ImPlot::PlotShaded(v0, xs, ys, count, yref, flags, offset, stride);
  578. bbMemFree((void*)v0);
  579. }
  580. void ImPlot_PlotShadedXYYULong(BBString * label, ImU64 * xs, ImU64 * ys1, ImU64 * ys2, int count, ImPlotShadedFlags flags, int offset, int stride) {
  581. const char * v0 = (const char *)bbStringToUTF8String(label);
  582. ImPlot::PlotShaded(v0, xs, ys1, ys2, count, flags, offset, stride);
  583. bbMemFree((void*)v0);
  584. }
  585. ///////////////////////////////////////////////////////////
  586. // float
  587. void ImPlot_PlotBarsFloat(BBString * label, float * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  588. const char * v0 = (const char *)bbStringToUTF8String(label);
  589. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  590. bbMemFree((void*)v0);
  591. }
  592. void ImPlot_PlotBarsXYFloat(BBString * label, float * xs, float * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  593. const char * v0 = (const char *)bbStringToUTF8String(label);
  594. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  595. bbMemFree((void*)v0);
  596. }
  597. // double
  598. void ImPlot_PlotBarsDouble(BBString * label, double * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  599. const char * v0 = (const char *)bbStringToUTF8String(label);
  600. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  601. bbMemFree((void*)v0);
  602. }
  603. void ImPlot_PlotBarsXYDouble(BBString * label, double * xs, double * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  604. const char * v0 = (const char *)bbStringToUTF8String(label);
  605. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  606. bbMemFree((void*)v0);
  607. }
  608. // byte
  609. void ImPlot_PlotBarsByte(BBString * label, ImU8 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  610. const char * v0 = (const char *)bbStringToUTF8String(label);
  611. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  612. bbMemFree((void*)v0);
  613. }
  614. void ImPlot_PlotBarsXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  615. const char * v0 = (const char *)bbStringToUTF8String(label);
  616. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  617. bbMemFree((void*)v0);
  618. }
  619. // short
  620. void ImPlot_PlotBarsShort(BBString * label, ImU16 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  621. const char * v0 = (const char *)bbStringToUTF8String(label);
  622. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  623. bbMemFree((void*)v0);
  624. }
  625. void ImPlot_PlotBarsXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  626. const char * v0 = (const char *)bbStringToUTF8String(label);
  627. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  628. bbMemFree((void*)v0);
  629. }
  630. // int
  631. void ImPlot_PlotBarsInt(BBString * label, ImS32 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  632. const char * v0 = (const char *)bbStringToUTF8String(label);
  633. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  634. bbMemFree((void*)v0);
  635. }
  636. void ImPlot_PlotBarsXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  637. const char * v0 = (const char *)bbStringToUTF8String(label);
  638. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  639. bbMemFree((void*)v0);
  640. }
  641. // long
  642. void ImPlot_PlotBarsLong(BBString * label, ImS64 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  643. const char * v0 = (const char *)bbStringToUTF8String(label);
  644. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  645. bbMemFree((void*)v0);
  646. }
  647. void ImPlot_PlotBarsXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  648. const char * v0 = (const char *)bbStringToUTF8String(label);
  649. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  650. bbMemFree((void*)v0);
  651. }
  652. // uint
  653. void ImPlot_PlotBarsUInt(BBString * label, ImU32 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  654. const char * v0 = (const char *)bbStringToUTF8String(label);
  655. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  656. bbMemFree((void*)v0);
  657. }
  658. void ImPlot_PlotBarsXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  659. const char * v0 = (const char *)bbStringToUTF8String(label);
  660. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  661. bbMemFree((void*)v0);
  662. }
  663. // ulong
  664. void ImPlot_PlotBarsULong(BBString * label, ImU64 * values, int count, double bar_size, double shift, ImPlotBarsFlags flags, int offset, int stride) {
  665. const char * v0 = (const char *)bbStringToUTF8String(label);
  666. ImPlot::PlotBars(v0, values, count, bar_size, shift, flags, offset, stride);
  667. bbMemFree((void*)v0);
  668. }
  669. void ImPlot_PlotBarsXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, double bar_size, ImPlotBarsFlags flags, int offset, int stride) {
  670. const char * v0 = (const char *)bbStringToUTF8String(label);
  671. ImPlot::PlotBars(v0, xs, ys, count, bar_size, flags, offset, stride);
  672. bbMemFree((void*)v0);
  673. }
  674. ///////////////////////////////////////////////////////////
  675. char** bmx_bbStringArrayToUTF8StringArray(BBArray * arr) {
  676. int count = arr->scales[0];
  677. BBString **s=(BBString**)BBARRAYDATA( arr,arr->dims );
  678. char ** utf8_arr = (char **)bbMemAlloc(count * sizeof(char *));
  679. for (int i = 0; i < count; i++) {
  680. utf8_arr[i] = (char *)bbStringToUTF8String(s[i]);
  681. }
  682. return utf8_arr;
  683. }
  684. // float
  685. void ImPlot_PlotBarGroupsFloat(BBArray * label_ids, float * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  686. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  687. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  688. for (int i = 0; i < label_ids->scales[0]; i++) {
  689. bbMemFree((void*)v0[i]);
  690. }
  691. bbMemFree((void*)v0);
  692. }
  693. // double
  694. void ImPlot_PlotBarGroupsDouble(BBArray * label_ids, double * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  695. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  696. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  697. for (int i = 0; i < label_ids->scales[0]; i++) {
  698. bbMemFree((void*)v0[i]);
  699. }
  700. bbMemFree((void*)v0);
  701. }
  702. // byte
  703. void ImPlot_PlotBarGroupsByte(BBArray * label_ids, ImU8 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  704. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  705. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  706. for (int i = 0; i < label_ids->scales[0]; i++) {
  707. bbMemFree((void*)v0[i]);
  708. }
  709. bbMemFree((void*)v0);
  710. }
  711. // short
  712. void ImPlot_PlotBarGroupsShort(BBArray * label_ids, ImU16 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  713. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  714. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  715. for (int i = 0; i < label_ids->scales[0]; i++) {
  716. bbMemFree((void*)v0[i]);
  717. }
  718. bbMemFree((void*)v0);
  719. }
  720. // int
  721. void ImPlot_PlotBarGroupsInt(BBArray * label_ids, ImS32 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  722. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  723. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  724. for (int i = 0; i < label_ids->scales[0]; i++) {
  725. bbMemFree((void*)v0[i]);
  726. }
  727. bbMemFree((void*)v0);
  728. }
  729. // long
  730. void ImPlot_PlotBarGroupsLong(BBArray * label_ids, ImS64 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  731. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  732. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  733. for (int i = 0; i < label_ids->scales[0]; i++) {
  734. bbMemFree((void*)v0[i]);
  735. }
  736. bbMemFree((void*)v0);
  737. }
  738. // uint
  739. void ImPlot_PlotBarGroupsUInt(BBArray * label_ids, ImU32 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  740. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  741. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  742. for (int i = 0; i < label_ids->scales[0]; i++) {
  743. bbMemFree((void*)v0[i]);
  744. }
  745. bbMemFree((void*)v0);
  746. }
  747. // ulong
  748. void ImPlot_PlotBarGroupsULong(BBArray * label_ids, ImU64 * values, int item_count, int group_count, double group_size, double shift, ImPlotBarGroupsFlags flags) {
  749. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  750. ImPlot::PlotBarGroups(v0, values, item_count, group_count, group_size, shift, flags);
  751. for (int i = 0; i < label_ids->scales[0]; i++) {
  752. bbMemFree((void*)v0[i]);
  753. }
  754. bbMemFree((void*)v0);
  755. }
  756. ///////////////////////////////////////////////////////////
  757. // float
  758. void ImPlot_PlotErrorBarsFloat(BBString * label, float * xs, float * ys, float * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  759. const char * v0 = (const char *)bbStringToUTF8String(label);
  760. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  761. bbMemFree((void*)v0);
  762. }
  763. void ImPlot_PlotErrorBarsNPFloat(BBString * label, float * xs, float * ys, float * neg, float * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  764. const char * v0 = (const char *)bbStringToUTF8String(label);
  765. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  766. bbMemFree((void*)v0);
  767. }
  768. // double
  769. void ImPlot_PlotErrorBarsDouble(BBString * label, double * xs, double * ys, double * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  770. const char * v0 = (const char *)bbStringToUTF8String(label);
  771. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  772. bbMemFree((void*)v0);
  773. }
  774. void ImPlot_PlotErrorBarsNPDouble(BBString * label, double * xs, double * ys, double * neg, double * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  775. const char * v0 = (const char *)bbStringToUTF8String(label);
  776. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  777. bbMemFree((void*)v0);
  778. }
  779. // byte
  780. void ImPlot_PlotErrorBarsByte(BBString * label, ImU8 * xs, ImU8 * ys, ImU8 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  781. const char * v0 = (const char *)bbStringToUTF8String(label);
  782. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  783. bbMemFree((void*)v0);
  784. }
  785. void ImPlot_PlotErrorBarsNPByte(BBString * label, ImU8 * xs, ImU8 * ys, ImU8 * neg, ImU8 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  786. const char * v0 = (const char *)bbStringToUTF8String(label);
  787. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  788. bbMemFree((void*)v0);
  789. }
  790. // short
  791. void ImPlot_PlotErrorBarsShort(BBString * label, ImU16 * xs, ImU16 * ys, ImU16 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  792. const char * v0 = (const char *)bbStringToUTF8String(label);
  793. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  794. bbMemFree((void*)v0);
  795. }
  796. void ImPlot_PlotErrorBarsNPShort(BBString * label, ImU16 * xs, ImU16 * ys, ImU16 * neg, ImU16 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  797. const char * v0 = (const char *)bbStringToUTF8String(label);
  798. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  799. bbMemFree((void*)v0);
  800. }
  801. // int
  802. void ImPlot_PlotErrorBarsInt(BBString * label, ImS32 * xs, ImS32 * ys, ImS32 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  803. const char * v0 = (const char *)bbStringToUTF8String(label);
  804. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  805. bbMemFree((void*)v0);
  806. }
  807. void ImPlot_PlotErrorBarsNPInt(BBString * label, ImS32 * xs, ImS32 * ys, ImS32 * neg, ImS32 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  808. const char * v0 = (const char *)bbStringToUTF8String(label);
  809. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  810. bbMemFree((void*)v0);
  811. }
  812. // long
  813. void ImPlot_PlotErrorBarsLong(BBString * label, ImS64 * xs, ImS64 * ys, ImS64 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  814. const char * v0 = (const char *)bbStringToUTF8String(label);
  815. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  816. bbMemFree((void*)v0);
  817. }
  818. void ImPlot_PlotErrorBarsNPLong(BBString * label, ImS64 * xs, ImS64 * ys, ImS64 * neg, ImS64 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  819. const char * v0 = (const char *)bbStringToUTF8String(label);
  820. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  821. bbMemFree((void*)v0);
  822. }
  823. // uint
  824. void ImPlot_PlotErrorBarsUInt(BBString * label, ImU32 * xs, ImU32 * ys, ImU32 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  825. const char * v0 = (const char *)bbStringToUTF8String(label);
  826. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  827. bbMemFree((void*)v0);
  828. }
  829. void ImPlot_PlotErrorBarsNPUInt(BBString * label, ImU32 * xs, ImU32 * ys, ImU32 * neg, ImU32 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  830. const char * v0 = (const char *)bbStringToUTF8String(label);
  831. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  832. bbMemFree((void*)v0);
  833. }
  834. // ulong
  835. void ImPlot_PlotErrorBarsULong(BBString * label, ImU64 * xs, ImU64 * ys, ImU64 * err, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  836. const char * v0 = (const char *)bbStringToUTF8String(label);
  837. ImPlot::PlotErrorBars(v0, xs, ys, err, count, flags, offset, stride);
  838. bbMemFree((void*)v0);
  839. }
  840. void ImPlot_PlotErrorBarsNPULong(BBString * label, ImU64 * xs, ImU64 * ys, ImU64 * neg, ImU64 * pos, int count, ImPlotErrorBarsFlags flags, int offset, int stride) {
  841. const char * v0 = (const char *)bbStringToUTF8String(label);
  842. ImPlot::PlotErrorBars(v0, xs, ys, neg, pos, count, flags, offset, stride);
  843. bbMemFree((void*)v0);
  844. }
  845. ///////////////////////////////////////////////////////////
  846. // float
  847. void ImPlot_PlotStemsFloat(BBString * label, float * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  848. const char * v0 = (const char *)bbStringToUTF8String(label);
  849. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  850. bbMemFree((void*)v0);
  851. }
  852. void ImPlot_PlotStemsXYFloat(BBString * label, float * xs, float * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  853. const char * v0 = (const char *)bbStringToUTF8String(label);
  854. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  855. bbMemFree((void*)v0);
  856. }
  857. // double
  858. void ImPlot_PlotStemsDouble(BBString * label, double * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  859. const char * v0 = (const char *)bbStringToUTF8String(label);
  860. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  861. bbMemFree((void*)v0);
  862. }
  863. void ImPlot_PlotStemsXYDouble(BBString * label, double * xs, double * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  864. const char * v0 = (const char *)bbStringToUTF8String(label);
  865. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  866. bbMemFree((void*)v0);
  867. }
  868. // byte
  869. void ImPlot_PlotStemsByte(BBString * label, ImU8 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  870. const char * v0 = (const char *)bbStringToUTF8String(label);
  871. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  872. bbMemFree((void*)v0);
  873. }
  874. void ImPlot_PlotStemsXYByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  875. const char * v0 = (const char *)bbStringToUTF8String(label);
  876. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  877. bbMemFree((void*)v0);
  878. }
  879. // short
  880. void ImPlot_PlotStemsShort(BBString * label, ImU16 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  881. const char * v0 = (const char *)bbStringToUTF8String(label);
  882. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  883. bbMemFree((void*)v0);
  884. }
  885. void ImPlot_PlotStemsXYShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  886. const char * v0 = (const char *)bbStringToUTF8String(label);
  887. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  888. bbMemFree((void*)v0);
  889. }
  890. // int
  891. void ImPlot_PlotStemsInt(BBString * label, ImS32 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  892. const char * v0 = (const char *)bbStringToUTF8String(label);
  893. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  894. bbMemFree((void*)v0);
  895. }
  896. void ImPlot_PlotStemsXYInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  897. const char * v0 = (const char *)bbStringToUTF8String(label);
  898. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  899. bbMemFree((void*)v0);
  900. }
  901. // long
  902. void ImPlot_PlotStemsLong(BBString * label, ImS64 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  903. const char * v0 = (const char *)bbStringToUTF8String(label);
  904. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  905. bbMemFree((void*)v0);
  906. }
  907. void ImPlot_PlotStemsXYLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  908. const char * v0 = (const char *)bbStringToUTF8String(label);
  909. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  910. bbMemFree((void*)v0);
  911. }
  912. // uint
  913. void ImPlot_PlotStemsUInt(BBString * label, ImU32 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  914. const char * v0 = (const char *)bbStringToUTF8String(label);
  915. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  916. bbMemFree((void*)v0);
  917. }
  918. void ImPlot_PlotStemsXYUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  919. const char * v0 = (const char *)bbStringToUTF8String(label);
  920. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  921. bbMemFree((void*)v0);
  922. }
  923. // ulong
  924. void ImPlot_PlotStemsULong(BBString * label, ImU64 * values, int count, double ref, double xscale, double xstart, ImPlotStemsFlags flags, int offset, int stride) {
  925. const char * v0 = (const char *)bbStringToUTF8String(label);
  926. ImPlot::PlotStems(v0, values, count, ref, xscale, xstart, flags, offset, stride);
  927. bbMemFree((void*)v0);
  928. }
  929. void ImPlot_PlotStemsXYULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, double ref, ImPlotStemsFlags flags, int offset, int stride) {
  930. const char * v0 = (const char *)bbStringToUTF8String(label);
  931. ImPlot::PlotStems(v0, xs, ys, count, ref, flags, offset, stride);
  932. bbMemFree((void*)v0);
  933. }
  934. ///////////////////////////////////////////////////////////
  935. // float
  936. void ImPlot_PlotInfLinesFloat(BBString * label, float * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  937. const char * v0 = (const char *)bbStringToUTF8String(label);
  938. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  939. bbMemFree((void*)v0);
  940. }
  941. // double
  942. void ImPlot_PlotInfLinesDouble(BBString * label, double * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  943. const char * v0 = (const char *)bbStringToUTF8String(label);
  944. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  945. bbMemFree((void*)v0);
  946. }
  947. // byte
  948. void ImPlot_PlotInfLinesByte(BBString * label, ImU8 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  949. const char * v0 = (const char *)bbStringToUTF8String(label);
  950. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  951. bbMemFree((void*)v0);
  952. }
  953. // short
  954. void ImPlot_PlotInfLinesShort(BBString * label, ImU16 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  955. const char * v0 = (const char *)bbStringToUTF8String(label);
  956. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  957. bbMemFree((void*)v0);
  958. }
  959. // int
  960. void ImPlot_PlotInfLinesInt(BBString * label, ImS32 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  961. const char * v0 = (const char *)bbStringToUTF8String(label);
  962. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  963. bbMemFree((void*)v0);
  964. }
  965. // long
  966. void ImPlot_PlotInfLinesLong(BBString * label, ImS64 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  967. const char * v0 = (const char *)bbStringToUTF8String(label);
  968. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  969. bbMemFree((void*)v0);
  970. }
  971. // uint
  972. void ImPlot_PlotInfLinesUInt(BBString * label, ImU32 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  973. const char * v0 = (const char *)bbStringToUTF8String(label);
  974. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  975. bbMemFree((void*)v0);
  976. }
  977. // ulong
  978. void ImPlot_PlotInfLinesULong(BBString * label, ImU64 * values, int count, ImPlotInfLinesFlags flags, int offset, int stride) {
  979. const char * v0 = (const char *)bbStringToUTF8String(label);
  980. ImPlot::PlotInfLines(v0, values, count, flags, offset, stride);
  981. bbMemFree((void*)v0);
  982. }
  983. ///////////////////////////////////////////////////////////
  984. // float
  985. void ImPlot_PlotPieChartFloat(BBArray * label_ids, float * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  986. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  987. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  988. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  989. for (int i = 0; i < label_ids->scales[0]; i++) {
  990. bbMemFree((void*)v0[i]);
  991. }
  992. bbMemFree((void*)v0);
  993. bbMemFree((void*)v1);
  994. }
  995. // double
  996. void ImPlot_PlotPieChartDouble(BBArray * label_ids, double * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  997. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  998. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  999. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1000. for (int i = 0; i < label_ids->scales[0]; i++) {
  1001. bbMemFree((void*)v0[i]);
  1002. }
  1003. bbMemFree((void*)v0);
  1004. bbMemFree((void*)v1);
  1005. }
  1006. // byte
  1007. void ImPlot_PlotPieChartByte(BBArray * label_ids, ImU8 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1008. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1009. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1010. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1011. for (int i = 0; i < label_ids->scales[0]; i++) {
  1012. bbMemFree((void*)v0[i]);
  1013. }
  1014. bbMemFree((void*)v0);
  1015. bbMemFree((void*)v1);
  1016. }
  1017. // short
  1018. void ImPlot_PlotPieChartShort(BBArray * label_ids, ImU16 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1019. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1020. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1021. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1022. for (int i = 0; i < label_ids->scales[0]; i++) {
  1023. bbMemFree((void*)v0[i]);
  1024. }
  1025. bbMemFree((void*)v0);
  1026. bbMemFree((void*)v1);
  1027. }
  1028. // int
  1029. void ImPlot_PlotPieChartInt(BBArray * label_ids, ImS32 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1030. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1031. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1032. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1033. for (int i = 0; i < label_ids->scales[0]; i++) {
  1034. bbMemFree((void*)v0[i]);
  1035. }
  1036. bbMemFree((void*)v0);
  1037. bbMemFree((void*)v1);
  1038. }
  1039. // long
  1040. void ImPlot_PlotPieChartLong(BBArray * label_ids, ImS64 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1041. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1042. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1043. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1044. for (int i = 0; i < label_ids->scales[0]; i++) {
  1045. bbMemFree((void*)v0[i]);
  1046. }
  1047. bbMemFree((void*)v0);
  1048. bbMemFree((void*)v1);
  1049. }
  1050. // uint
  1051. void ImPlot_PlotPieChartUInt(BBArray * label_ids, ImU32 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1052. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1053. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1054. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1055. for (int i = 0; i < label_ids->scales[0]; i++) {
  1056. bbMemFree((void*)v0[i]);
  1057. }
  1058. bbMemFree((void*)v0);
  1059. bbMemFree((void*)v1);
  1060. }
  1061. // ulong
  1062. void ImPlot_PlotPieChartULong(BBArray * label_ids, ImU64 * values, int count, double x, double y, double radius, BBString * label_fmt, double angle0, ImPlotPieChartFlags flags) {
  1063. char ** v0 = bmx_bbStringArrayToUTF8StringArray(label_ids);
  1064. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1065. ImPlot::PlotPieChart(v0, values, count, x, y, radius, v1, angle0, flags);
  1066. for (int i = 0; i < label_ids->scales[0]; i++) {
  1067. bbMemFree((void*)v0[i]);
  1068. }
  1069. bbMemFree((void*)v0);
  1070. bbMemFree((void*)v1);
  1071. }
  1072. ///////////////////////////////////////////////////////////
  1073. // float
  1074. void ImPlot_PlotHeatmapFloat(BBString * label, float * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1075. const char * v0 = (const char *)bbStringToUTF8String(label);
  1076. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1077. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1078. bbMemFree((void*)v0);
  1079. bbMemFree((void*)v1);
  1080. }
  1081. // double
  1082. void ImPlot_PlotHeatmapDouble(BBString * label, double * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1083. const char * v0 = (const char *)bbStringToUTF8String(label);
  1084. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1085. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1086. bbMemFree((void*)v0);
  1087. bbMemFree((void*)v1);
  1088. }
  1089. // byte
  1090. void ImPlot_PlotHeatmapByte(BBString * label, ImU8 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1091. const char * v0 = (const char *)bbStringToUTF8String(label);
  1092. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1093. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1094. bbMemFree((void*)v0);
  1095. bbMemFree((void*)v1);
  1096. }
  1097. // short
  1098. void ImPlot_PlotHeatmapShort(BBString * label, ImU16 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1099. const char * v0 = (const char *)bbStringToUTF8String(label);
  1100. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1101. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1102. bbMemFree((void*)v0);
  1103. bbMemFree((void*)v1);
  1104. }
  1105. // int
  1106. void ImPlot_PlotHeatmapInt(BBString * label, ImS32 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1107. const char * v0 = (const char *)bbStringToUTF8String(label);
  1108. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1109. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1110. bbMemFree((void*)v0);
  1111. bbMemFree((void*)v1);
  1112. }
  1113. // long
  1114. void ImPlot_PlotHeatmapLong(BBString * label, ImS64 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1115. const char * v0 = (const char *)bbStringToUTF8String(label);
  1116. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1117. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1118. bbMemFree((void*)v0);
  1119. bbMemFree((void*)v1);
  1120. }
  1121. // uint
  1122. void ImPlot_PlotHeatmapUInt(BBString * label, ImU32 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1123. const char * v0 = (const char *)bbStringToUTF8String(label);
  1124. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1125. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1126. bbMemFree((void*)v0);
  1127. bbMemFree((void*)v1);
  1128. }
  1129. // ulong
  1130. void ImPlot_PlotHeatmapULong(BBString * label, ImU64 * values, int rows, int cols, double scale_min, double scale_max, BBString * label_fmt, MaxPlotPoint & bounds_min, MaxPlotPoint & bounds_max, ImPlotHeatmapFlags flags) {
  1131. const char * v0 = (const char *)bbStringToUTF8String(label);
  1132. const char * v1 = label_fmt == &bbEmptyString ? nullptr : (const char *)bbStringToUTF8String(label_fmt);
  1133. ImPlot::PlotHeatmap(v0, values, rows, cols, scale_min, scale_max, v1, ConvertToCPP_MaxPlotPoint(bounds_min), ConvertToCPP_MaxPlotPoint(bounds_max), flags);
  1134. bbMemFree((void*)v0);
  1135. bbMemFree((void*)v1);
  1136. }
  1137. ///////////////////////////////////////////////////////////
  1138. // float
  1139. double ImPlot_PlotHistogramFloat(BBString * label, float * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1140. const char * v0 = (const char *)bbStringToUTF8String(label);
  1141. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1142. bbMemFree((void*)v0);
  1143. return result;
  1144. }
  1145. // double
  1146. double ImPlot_PlotHistogramDouble(BBString * label, double * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1147. const char * v0 = (const char *)bbStringToUTF8String(label);
  1148. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1149. bbMemFree((void*)v0);
  1150. return result;
  1151. }
  1152. // byte
  1153. double ImPlot_PlotHistogramByte(BBString * label, ImU8 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1154. const char * v0 = (const char *)bbStringToUTF8String(label);
  1155. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1156. bbMemFree((void*)v0);
  1157. return result;
  1158. }
  1159. // short
  1160. double ImPlot_PlotHistogramShort(BBString * label, ImU16 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1161. const char * v0 = (const char *)bbStringToUTF8String(label);
  1162. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1163. bbMemFree((void*)v0);
  1164. return result;
  1165. }
  1166. // int
  1167. double ImPlot_PlotHistogramInt(BBString * label, ImS32 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1168. const char * v0 = (const char *)bbStringToUTF8String(label);
  1169. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1170. bbMemFree((void*)v0);
  1171. return result;
  1172. }
  1173. // long
  1174. double ImPlot_PlotHistogramLong(BBString * label, ImS64 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1175. const char * v0 = (const char *)bbStringToUTF8String(label);
  1176. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1177. bbMemFree((void*)v0);
  1178. return result;
  1179. }
  1180. // uint
  1181. double ImPlot_PlotHistogramUInt(BBString * label, ImU32 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1182. const char * v0 = (const char *)bbStringToUTF8String(label);
  1183. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1184. bbMemFree((void*)v0);
  1185. return result;
  1186. }
  1187. // ulong
  1188. double ImPlot_PlotHistogramULong(BBString * label, ImU64 * values, int count, int bins, double bar_scale, MaxPlotRange range, ImPlotHistogramFlags flags) {
  1189. const char * v0 = (const char *)bbStringToUTF8String(label);
  1190. double result = ImPlot::PlotHistogram(v0, values, count, bins, bar_scale, ConvertToCPP_MaxPlotRange(range), flags);
  1191. bbMemFree((void*)v0);
  1192. return result;
  1193. }
  1194. ///////////////////////////////////////////////////////////
  1195. // float
  1196. double ImPlot_PlotHistogram2DFloat(BBString * label, float * xs, float * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1197. const char * v0 = (const char *)bbStringToUTF8String(label);
  1198. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1199. bbMemFree((void*)v0);
  1200. return result;
  1201. }
  1202. // double
  1203. double ImPlot_PlotHistogram2DDouble(BBString * label, double * xs, double * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1204. const char * v0 = (const char *)bbStringToUTF8String(label);
  1205. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1206. bbMemFree((void*)v0);
  1207. return result;
  1208. }
  1209. // byte
  1210. double ImPlot_PlotHistogram2DByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1211. const char * v0 = (const char *)bbStringToUTF8String(label);
  1212. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1213. bbMemFree((void*)v0);
  1214. return result;
  1215. }
  1216. // short
  1217. double ImPlot_PlotHistogram2DShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1218. const char * v0 = (const char *)bbStringToUTF8String(label);
  1219. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1220. bbMemFree((void*)v0);
  1221. return result;
  1222. }
  1223. // int
  1224. double ImPlot_PlotHistogram2DInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1225. const char * v0 = (const char *)bbStringToUTF8String(label);
  1226. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1227. bbMemFree((void*)v0);
  1228. return result;
  1229. }
  1230. // long
  1231. double ImPlot_PlotHistogram2DLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1232. const char * v0 = (const char *)bbStringToUTF8String(label);
  1233. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1234. bbMemFree((void*)v0);
  1235. return result;
  1236. }
  1237. // uint
  1238. double ImPlot_PlotHistogram2DUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1239. const char * v0 = (const char *)bbStringToUTF8String(label);
  1240. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1241. bbMemFree((void*)v0);
  1242. return result;
  1243. }
  1244. // ulong
  1245. double ImPlot_PlotHistogram2DULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, int x_bins, int y_bins, MaxPlotRect range, ImPlotHistogramFlags flags) {
  1246. const char * v0 = (const char *)bbStringToUTF8String(label);
  1247. double result = ImPlot::PlotHistogram2D(v0, xs, ys, count, x_bins, y_bins, ConvertToCPP_MaxPlotRect(range), flags);
  1248. bbMemFree((void*)v0);
  1249. return result;
  1250. }
  1251. ///////////////////////////////////////////////////////////
  1252. // float
  1253. void ImPlot_PlotDigitalFloat(BBString * label, float * xs, float * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1254. const char * v0 = (const char *)bbStringToUTF8String(label);
  1255. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1256. bbMemFree((void*)v0);
  1257. }
  1258. // double
  1259. void ImPlot_PlotDigitalDouble(BBString * label, double * xs, double * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1260. const char * v0 = (const char *)bbStringToUTF8String(label);
  1261. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1262. bbMemFree((void*)v0);
  1263. }
  1264. // byte
  1265. void ImPlot_PlotDigitalByte(BBString * label, ImU8 * xs, ImU8 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1266. const char * v0 = (const char *)bbStringToUTF8String(label);
  1267. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1268. bbMemFree((void*)v0);
  1269. }
  1270. // short
  1271. void ImPlot_PlotDigitalShort(BBString * label, ImU16 * xs, ImU16 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1272. const char * v0 = (const char *)bbStringToUTF8String(label);
  1273. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1274. bbMemFree((void*)v0);
  1275. }
  1276. // int
  1277. void ImPlot_PlotDigitalInt(BBString * label, ImS32 * xs, ImS32 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1278. const char * v0 = (const char *)bbStringToUTF8String(label);
  1279. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1280. bbMemFree((void*)v0);
  1281. }
  1282. // long
  1283. void ImPlot_PlotDigitalLong(BBString * label, ImS64 * xs, ImS64 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1284. const char * v0 = (const char *)bbStringToUTF8String(label);
  1285. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1286. bbMemFree((void*)v0);
  1287. }
  1288. // uint
  1289. void ImPlot_PlotDigitalUInt(BBString * label, ImU32 * xs, ImU32 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1290. const char * v0 = (const char *)bbStringToUTF8String(label);
  1291. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1292. bbMemFree((void*)v0);
  1293. }
  1294. // ulong
  1295. void ImPlot_PlotDigitalULong(BBString * label, ImU64 * xs, ImU64 * ys, int count, ImPlotDigitalFlags flags, int offset, int stride) {
  1296. const char * v0 = (const char *)bbStringToUTF8String(label);
  1297. ImPlot::PlotDigital(v0, xs, ys, count, flags, offset, stride);
  1298. bbMemFree((void*)v0);
  1299. }
  1300. ///////////////////////////////////////////////////////////
  1301. void ImPlot_PlotText(BBString * text, double x, double y, MaxVec2 pix_offset, ImPlotTextFlags flags) {
  1302. const char * v0 = (const char *)bbStringToUTF8String(text);
  1303. ImPlot::PlotText(v0, x, y, ConvertToCPP_MaxVec2(pix_offset), flags);
  1304. bbMemFree((void*)v0);
  1305. }
  1306. void ImPlot_PlotDummy(BBString * label, ImPlotDummyFlags flags) {
  1307. const char * v0 = (const char *)bbStringToUTF8String(label);
  1308. ImPlot::PlotDummy(v0, flags);
  1309. bbMemFree((void*)v0);
  1310. }
  1311. ///////////////////////////////////////////////////////////
  1312. int ImPlot_DragPoint(int id, double * x, double * y, MaxVec4 col, float size, ImPlotDragToolFlags flags, int * out_clicked, int * out_hovered, int * held) {
  1313. bool oc;
  1314. bool oh;
  1315. bool h;
  1316. int res = ImPlot::DragPoint(id, x, y, ConvertToCPP_MaxVec4(col), size, flags, &oc, &oh, &h);
  1317. if (out_clicked) *out_clicked = oc;
  1318. if (out_hovered) *out_hovered = oh;
  1319. if (held) *held = h;
  1320. return res;
  1321. }
  1322. int ImPlot_DragLineX(int id, double * x, MaxVec4 col, float thickness, ImPlotDragToolFlags flags, int * out_clicked, int * out_hovered, int * held) {
  1323. bool oc;
  1324. bool oh;
  1325. bool h;
  1326. int res = ImPlot::DragLineX(id, x, ConvertToCPP_MaxVec4(col), thickness, flags, &oc, &oh, &h);
  1327. if (out_clicked) *out_clicked = oc;
  1328. if (out_hovered) *out_hovered = oh;
  1329. if (held) *held = h;
  1330. return res;
  1331. }
  1332. int ImPlot_DragLineY(int id, double * y, MaxVec4 col, float thickness, ImPlotDragToolFlags flags, int * out_clicked, int * out_hovered, int * held) {
  1333. bool oc;
  1334. bool oh;
  1335. bool h;
  1336. int res = ImPlot::DragLineY(id, y, ConvertToCPP_MaxVec4(col), thickness, flags, &oc, &oh, &h);
  1337. if (out_clicked) *out_clicked = oc;
  1338. if (out_hovered) *out_hovered = oh;
  1339. if (held) *held = h;
  1340. return res;
  1341. }
  1342. int ImPlot_DragRect(int id, double * x1, double * y1, double * x2, double * y2, MaxVec4 col, ImPlotDragToolFlags flags, int * out_clicked, int * out_hovered, int * held) {
  1343. bool oc;
  1344. bool oh;
  1345. bool h;
  1346. int res = ImPlot::DragRect(id, x1, y1, x2, y2, ConvertToCPP_MaxVec4(col), flags, &oc, &oh, &h);
  1347. if (out_clicked) *out_clicked = oc;
  1348. if (out_hovered) *out_hovered = oh;
  1349. if (held) *held = h;
  1350. return res;
  1351. }
  1352. void ImPlot_Annotation(double x, double y, MaxVec4 col, MaxVec2 pix_offset, int clamp, int round) {
  1353. ImPlot::Annotation(x, y, ConvertToCPP_MaxVec4(col), ConvertToCPP_MaxVec2(pix_offset), clamp, round);
  1354. }
  1355. void ImPlot_AnnotationFmt(double x, double y, MaxVec4 col, MaxVec2 pix_offset, int clamp, BBString * fmt) {
  1356. const char * v0 = (const char *)bbStringToUTF8String(fmt);
  1357. ImPlot::Annotation(x, y, ConvertToCPP_MaxVec4(col), ConvertToCPP_MaxVec2(pix_offset), clamp, v0);
  1358. bbMemFree((void*)v0);
  1359. }
  1360. void ImPlot_TagX(double x, MaxVec4 col, int round) {
  1361. ImPlot::TagX(x, ConvertToCPP_MaxVec4(col), round);
  1362. }
  1363. void ImPlot_TagXFmt(double x, MaxVec4 col, BBString * fmt) {
  1364. const char * v0 = (const char *)bbStringToUTF8String(fmt);
  1365. ImPlot::TagX(x, ConvertToCPP_MaxVec4(col), v0);
  1366. bbMemFree((void*)v0);
  1367. }
  1368. void ImPlot_TagY(double y, MaxVec4 col, int round) {
  1369. ImPlot::TagY(y, ConvertToCPP_MaxVec4(col), round);
  1370. }
  1371. void ImPlot_TagYFmt(double y, MaxVec4 col, BBString * fmt) {
  1372. const char * v0 = (const char *)bbStringToUTF8String(fmt);
  1373. ImPlot::TagY(y, ConvertToCPP_MaxVec4(col), v0);
  1374. bbMemFree((void*)v0);
  1375. }
  1376. ///////////////////////////////////////////////////////////
  1377. void ImPlot_SetAxis(ImAxis axis) {
  1378. ImPlot::SetAxis(axis);
  1379. }
  1380. void ImPlot_SetAxes(ImAxis x_axis, ImAxis y_axis) {
  1381. ImPlot::SetAxes(x_axis, y_axis);
  1382. }
  1383. MaxPlotPoint ImPlot_PixelsToPlot(MaxVec2 pix, ImAxis x_axis, ImAxis y_axis) {
  1384. return ConvertFromCPP_MaxPlotPoint(ImPlot::PixelsToPlot(ConvertToCPP_MaxVec2(pix), x_axis, y_axis));
  1385. }
  1386. MaxPlotPoint ImPlot_PixelsToPlotXY(float x, float y, ImAxis x_axis, ImAxis y_axis) {
  1387. return ConvertFromCPP_MaxPlotPoint(ImPlot::PixelsToPlot(x, y, x_axis, y_axis));
  1388. }
  1389. MaxVec2 ImPlot_PlotToPixels(MaxPlotPoint plt, ImAxis x_axis, ImAxis y_axis) {
  1390. return ConvertFromCPP_MaxVec2(ImPlot::PlotToPixels(ConvertToCPP_MaxPlotPoint(plt), x_axis, y_axis));
  1391. }
  1392. MaxVec2 ImPlot_PlotToPixelsXY(double x, double y, ImAxis x_axis, ImAxis y_axis) {
  1393. return ConvertFromCPP_MaxVec2(ImPlot::PlotToPixels(x, y, x_axis, y_axis));
  1394. }
  1395. MaxVec2 ImPlot_GetPlotPos() {
  1396. return ConvertFromCPP_MaxVec2(ImPlot::GetPlotPos());
  1397. }
  1398. MaxVec2 ImPlot_GetPlotSize() {
  1399. return ConvertFromCPP_MaxVec2(ImPlot::GetPlotSize());
  1400. }
  1401. MaxPlotPoint ImPlot_GetPlotMousePos(ImAxis x_axis, ImAxis y_axis) {
  1402. return ConvertFromCPP_MaxPlotPoint(ImPlot::GetPlotMousePos(x_axis, y_axis));
  1403. }
  1404. MaxPlotRect ImPlot_GetPlotLimits(ImAxis x_axis, ImAxis y_axis) {
  1405. return ConvertFromCPP_MaxPlotRect(ImPlot::GetPlotLimits(x_axis, y_axis));
  1406. }
  1407. int ImPlot_IsPlotHovered() {
  1408. return ImPlot::IsPlotHovered();
  1409. }
  1410. int ImPlot_IsAxisHovered(ImAxis axis) {
  1411. return ImPlot::IsAxisHovered(axis);
  1412. }
  1413. int ImPlot_IsSubplotsHovered() {
  1414. return ImPlot::IsSubplotsHovered();
  1415. }
  1416. int ImPlot_IsPlotSelected() {
  1417. return ImPlot::IsPlotSelected();
  1418. }
  1419. MaxPlotRect ImPlot_GetPlotSelection(ImAxis x_axis, ImAxis y_axis) {
  1420. return ConvertFromCPP_MaxPlotRect(ImPlot::GetPlotSelection(x_axis, y_axis));
  1421. }
  1422. void ImPlot_CancelPlotSelection() {
  1423. ImPlot::CancelPlotSelection();
  1424. }
  1425. void ImPlot_HideNextItem(int hidden, ImPlotCond cond) {
  1426. ImPlot::HideNextItem(hidden, cond);
  1427. }
  1428. int ImPlot_BeginAlignedPlots(BBString * group_id, int vertical) {
  1429. const char * v0 = (const char *)bbStringToUTF8String(group_id);
  1430. int result = ImPlot::BeginAlignedPlots(v0, vertical);
  1431. bbMemFree((void*)v0);
  1432. return result;
  1433. }
  1434. void ImPlot_EndAlignedPlots() {
  1435. ImPlot::EndAlignedPlots();
  1436. }
  1437. int ImPlot_BeginLegendPopup(BBString * label_id, int mouse_button) {
  1438. const char * v0 = (const char *)bbStringToUTF8String(label_id);
  1439. int result = ImPlot::BeginLegendPopup(v0, mouse_button);
  1440. bbMemFree((void*)v0);
  1441. return result;
  1442. }
  1443. void ImPlot_EndLegendPopup() {
  1444. ImPlot::EndLegendPopup();
  1445. }
  1446. int ImPlot_IsLegendEntryHovered(BBString * label_id) {
  1447. const char * v0 = (const char *)bbStringToUTF8String(label_id);
  1448. int result = ImPlot::IsLegendEntryHovered(v0);
  1449. bbMemFree((void*)v0);
  1450. return result;
  1451. }
  1452. int ImPlot_BeginDragDropTargetPlot() {
  1453. return ImPlot::BeginDragDropTargetPlot();
  1454. }
  1455. int ImPlot_BeginDragDropTargetAxis(ImAxis axis) {
  1456. return ImPlot::BeginDragDropTargetAxis(axis);
  1457. }
  1458. int ImPlot_BeginDragDropTargetLegend() {
  1459. return ImPlot::BeginDragDropTargetLegend();
  1460. }
  1461. void ImPlot_EndDragDropTarget() {
  1462. ImPlot::EndDragDropTarget();
  1463. }
  1464. int ImPlot_BeginDragDropSourcePlot(int flags) {
  1465. return ImPlot::BeginDragDropSourcePlot(flags);
  1466. }
  1467. int ImPlot_BeginDragDropSourceAxis(ImAxis axis, int flags) {
  1468. return ImPlot::BeginDragDropSourceAxis(axis, flags);
  1469. }
  1470. int ImPlot_BeginDragDropSourceItem(BBString * label_id, int flags) {
  1471. const char * v0 = (const char *)bbStringToUTF8String(label_id);
  1472. int result = ImPlot::BeginDragDropSourceItem(v0, flags);
  1473. bbMemFree((void*)v0);
  1474. return result;
  1475. }
  1476. void ImPlot_EndDragDropSource() {
  1477. ImPlot::EndDragDropSource();
  1478. }
  1479. ///////////////////////////////////////////////////////////
  1480. ImPlotStyle * bmx_implot_style_create() {
  1481. return new ImPlotStyle();
  1482. }
  1483. void bmx_implot_style_delete(ImPlotStyle * style) {
  1484. delete style;
  1485. }
  1486. float bmx_implot_style_get_line_weight(ImPlotStyle * style) {
  1487. return style->LineWeight;
  1488. }
  1489. void bmx_implot_style_set_line_weight(ImPlotStyle * style, float line_weight) {
  1490. style->LineWeight = line_weight;
  1491. }
  1492. int bmx_implot_style_get_marker(ImPlotStyle * style) {
  1493. return style->Marker;
  1494. }
  1495. void bmx_implot_style_set_marker(ImPlotStyle * style, int marker) {
  1496. style->Marker = marker;
  1497. }
  1498. float bmx_implot_style_get_marker_size(ImPlotStyle * style) {
  1499. return style->MarkerSize;
  1500. }
  1501. void bmx_implot_style_set_marker_size(ImPlotStyle * style, float marker_size) {
  1502. style->MarkerSize = marker_size;
  1503. }
  1504. float bmx_implot_style_get_marker_weight(ImPlotStyle * style) {
  1505. return style->MarkerWeight;
  1506. }
  1507. void bmx_implot_style_set_marker_weight(ImPlotStyle * style, float marker_weight) {
  1508. style->MarkerWeight = marker_weight;
  1509. }
  1510. float bmx_implot_style_get_fill_alpha(ImPlotStyle * style) {
  1511. return style->FillAlpha;
  1512. }
  1513. void bmx_implot_style_set_fill_alpha(ImPlotStyle * style, float fill_alpha) {
  1514. style->FillAlpha = fill_alpha;
  1515. }
  1516. float bmx_implot_style_get_error_bar_size(ImPlotStyle * style) {
  1517. return style->ErrorBarSize;
  1518. }
  1519. void bmx_implot_style_set_error_bar_size(ImPlotStyle * style, float error_bar_size) {
  1520. style->ErrorBarSize = error_bar_size;
  1521. }
  1522. void bmx_implot_style_set_error_bar_weight(ImPlotStyle * style, float error_bar_weight) {
  1523. style->ErrorBarWeight = error_bar_weight;
  1524. }
  1525. float bmx_implot_style_get_error_bar_weight(ImPlotStyle * style) {
  1526. return style->ErrorBarWeight;
  1527. }
  1528. void bmx_implot_style_set_digital_bit_height(ImPlotStyle * style, float digital_bit_height) {
  1529. style->DigitalBitHeight = digital_bit_height;
  1530. }
  1531. float bmx_implot_style_get_digital_bit_height(ImPlotStyle * style) {
  1532. return style->DigitalBitHeight;
  1533. }
  1534. void bmx_implot_style_set_digital_bit_gap(ImPlotStyle * style, float digital_bit_gap) {
  1535. style->DigitalBitGap = digital_bit_gap;
  1536. }
  1537. float bmx_implot_style_get_digital_bit_gap(ImPlotStyle * style) {
  1538. return style->DigitalBitGap;
  1539. }
  1540. float bmx_implot_style_get_plot_border_size(ImPlotStyle * style) {
  1541. return style->PlotBorderSize;
  1542. }
  1543. void bmx_implot_style_set_plot_border_size(ImPlotStyle * style, float plot_border_size) {
  1544. style->PlotBorderSize = plot_border_size;
  1545. }
  1546. float bmx_implot_style_get_minor_alpha(ImPlotStyle * style) {
  1547. return style->MinorAlpha;
  1548. }
  1549. void bmx_implot_style_set_minor_alpha(ImPlotStyle * style, float minor_alpha) {
  1550. style->MinorAlpha = minor_alpha;
  1551. }
  1552. MaxVec2 bmx_implot_style_get_major_tick_len(ImPlotStyle * style) {
  1553. return ConvertFromCPP_MaxVec2(style->MajorTickLen);
  1554. }
  1555. void bmx_implot_style_set_major_tick_len(ImPlotStyle * style, MaxVec2 major_tick_len) {
  1556. style->MajorTickLen = ConvertToCPP_MaxVec2(major_tick_len);
  1557. }
  1558. MaxVec2 bmx_implot_style_get_minor_tick_len(ImPlotStyle * style) {
  1559. return ConvertFromCPP_MaxVec2(style->MinorTickLen);
  1560. }
  1561. void bmx_implot_style_set_minor_tick_len(ImPlotStyle * style, MaxVec2 minor_tick_len) {
  1562. style->MinorTickLen = ConvertToCPP_MaxVec2(minor_tick_len);
  1563. }
  1564. MaxVec2 bmx_implot_style_get_major_tick_size(ImPlotStyle * style) {
  1565. return ConvertFromCPP_MaxVec2(style->MajorTickSize);
  1566. }
  1567. void bmx_implot_style_set_major_tick_size(ImPlotStyle * style, MaxVec2 major_tick_size) {
  1568. style->MajorTickSize = ConvertToCPP_MaxVec2(major_tick_size);
  1569. }
  1570. MaxVec2 bmx_implot_style_get_minor_tick_size(ImPlotStyle * style) {
  1571. return ConvertFromCPP_MaxVec2(style->MinorTickSize);
  1572. }
  1573. void bmx_implot_style_set_minor_tick_size(ImPlotStyle * style, MaxVec2 minor_tick_size) {
  1574. style->MinorTickSize = ConvertToCPP_MaxVec2(minor_tick_size);
  1575. }
  1576. MaxVec2 bmx_implot_style_get_major_grid_size(ImPlotStyle * style) {
  1577. return ConvertFromCPP_MaxVec2(style->MajorGridSize);
  1578. }
  1579. void bmx_implot_style_set_major_grid_size(ImPlotStyle * style, MaxVec2 major_grid_size) {
  1580. style->MajorGridSize = ConvertToCPP_MaxVec2(major_grid_size);
  1581. }
  1582. MaxVec2 bmx_implot_style_get_minor_grid_size(ImPlotStyle * style) {
  1583. return ConvertFromCPP_MaxVec2(style->MinorGridSize);
  1584. }
  1585. void bmx_implot_style_set_minor_grid_size(ImPlotStyle * style, MaxVec2 minor_grid_size) {
  1586. style->MinorGridSize = ConvertToCPP_MaxVec2(minor_grid_size);
  1587. }
  1588. MaxVec2 bmx_implot_style_get_plot_padding(ImPlotStyle * style) {
  1589. return ConvertFromCPP_MaxVec2(style->PlotPadding);
  1590. }
  1591. void bmx_implot_style_set_plot_padding(ImPlotStyle * style, MaxVec2 plot_padding) {
  1592. style->PlotPadding = ConvertToCPP_MaxVec2(plot_padding);
  1593. }
  1594. MaxVec2 bmx_implot_style_get_label_padding(ImPlotStyle * style) {
  1595. return ConvertFromCPP_MaxVec2(style->LabelPadding);
  1596. }
  1597. void bmx_implot_style_set_label_padding(ImPlotStyle * style, MaxVec2 label_padding) {
  1598. style->LabelPadding = ConvertToCPP_MaxVec2(label_padding);
  1599. }
  1600. MaxVec2 bmx_implot_style_get_legend_padding(ImPlotStyle * style) {
  1601. return ConvertFromCPP_MaxVec2(style->LegendPadding);
  1602. }
  1603. void bmx_implot_style_set_legend_padding(ImPlotStyle * style, MaxVec2 legend_padding) {
  1604. style->LegendPadding = ConvertToCPP_MaxVec2(legend_padding);
  1605. }
  1606. MaxVec2 bmx_implot_style_get_legend_inner_padding(ImPlotStyle * style) {
  1607. return ConvertFromCPP_MaxVec2(style->LegendInnerPadding);
  1608. }
  1609. void bmx_implot_style_set_legend_inner_padding(ImPlotStyle * style, MaxVec2 legend_inner_padding) {
  1610. style->LegendInnerPadding = ConvertToCPP_MaxVec2(legend_inner_padding);
  1611. }
  1612. MaxVec2 bmx_implot_style_get_legend_spacing(ImPlotStyle * style) {
  1613. return ConvertFromCPP_MaxVec2(style->LegendSpacing);
  1614. }
  1615. void bmx_implot_style_set_legend_spacing(ImPlotStyle * style, MaxVec2 legend_spacing) {
  1616. style->LegendSpacing = ConvertToCPP_MaxVec2(legend_spacing);
  1617. }
  1618. MaxVec2 bmx_implot_style_get_mouse_pos_padding(ImPlotStyle * style) {
  1619. return ConvertFromCPP_MaxVec2(style->MousePosPadding);
  1620. }
  1621. void bmx_implot_style_set_mouse_pos_padding(ImPlotStyle * style, MaxVec2 mouse_pos_padding) {
  1622. style->MousePosPadding = ConvertToCPP_MaxVec2(mouse_pos_padding);
  1623. }
  1624. MaxVec2 bmx_implot_style_get_annotation_padding(ImPlotStyle * style) {
  1625. return ConvertFromCPP_MaxVec2(style->AnnotationPadding);
  1626. }
  1627. void bmx_implot_style_set_annotation_padding(ImPlotStyle * style, MaxVec2 annotation_padding) {
  1628. style->AnnotationPadding = ConvertToCPP_MaxVec2(annotation_padding);
  1629. }
  1630. MaxVec2 bmx_implot_style_get_fit_padding(ImPlotStyle * style) {
  1631. return ConvertFromCPP_MaxVec2(style->FitPadding);
  1632. }
  1633. void bmx_implot_style_set_fit_padding(ImPlotStyle * style, MaxVec2 fit_padding) {
  1634. style->FitPadding = ConvertToCPP_MaxVec2(fit_padding);
  1635. }
  1636. MaxVec2 bmx_implot_style_get_plot_default_size(ImPlotStyle * style) {
  1637. return ConvertFromCPP_MaxVec2(style->PlotDefaultSize);
  1638. }
  1639. void bmx_implot_style_set_plot_default_size(ImPlotStyle * style, MaxVec2 plot_default_size) {
  1640. style->PlotDefaultSize = ConvertToCPP_MaxVec2(plot_default_size);
  1641. }
  1642. MaxVec2 bmx_implot_style_get_plot_min_size(ImPlotStyle * style) {
  1643. return ConvertFromCPP_MaxVec2(style->PlotMinSize);
  1644. }
  1645. void bmx_implot_style_set_plot_min_size(ImPlotStyle * style, MaxVec2 plot_min_size) {
  1646. style->PlotMinSize = ConvertToCPP_MaxVec2(plot_min_size);
  1647. }
  1648. MaxVec4 bmx_implot_style_get_color(ImPlotStyle * style, int index) {
  1649. return ConvertFromCPP_MaxVec4(style->Colors[index]);
  1650. }
  1651. void bmx_implot_style_set_color(ImPlotStyle * style, int index, MaxVec4 color) {
  1652. style->Colors[index] = ConvertToCPP_MaxVec4(color);
  1653. }
  1654. int bmx_implot_style_get_colormap(ImPlotStyle * style) {
  1655. return style->Colormap;
  1656. }
  1657. void bmx_implot_style_set_colormap(ImPlotStyle * style, int colormap) {
  1658. style->Colormap = colormap;
  1659. }
  1660. int bmx_implot_style_get_use_local_time(ImPlotStyle * style) {
  1661. return style->UseLocalTime;
  1662. }
  1663. void bmx_implot_style_set_use_local_time(ImPlotStyle * style, int use_local_time) {
  1664. style->UseLocalTime = use_local_time;
  1665. }
  1666. int bmx_implot_style_get_use_iso_8601(ImPlotStyle * style) {
  1667. return style->UseISO8601;
  1668. }
  1669. void bmx_implot_style_set_use_iso_8601(ImPlotStyle * style, int use_iso_8601) {
  1670. style->UseISO8601 = use_iso_8601;
  1671. }
  1672. int bmx_implot_style_get_use_24_hour_clock(ImPlotStyle * style) {
  1673. return style->Use24HourClock;
  1674. }
  1675. void bmx_implot_style_set_use_24_hour_clock(ImPlotStyle * style, int use_24_hour_clock) {
  1676. style->Use24HourClock = use_24_hour_clock;
  1677. }
  1678. ///////////////////////////////////////////////////////////
  1679. ImPlotStyle * ImPlot_GetStyle() {
  1680. return &ImPlot::GetStyle();
  1681. }
  1682. void ImPlot_StyleColorsAuto(ImPlotStyle * dst) {
  1683. ImPlot::StyleColorsAuto(dst);
  1684. }
  1685. void ImPlot_StyleColorsClassic(ImPlotStyle * dst) {
  1686. ImPlot::StyleColorsClassic(dst);
  1687. }
  1688. void ImPlot_StyleColorsDark(ImPlotStyle * dst) {
  1689. ImPlot::StyleColorsDark(dst);
  1690. }
  1691. void ImPlot_StyleColorsLight(ImPlotStyle * dst) {
  1692. ImPlot::StyleColorsLight(dst);
  1693. }
  1694. // IMPLOT_API void PushStyleColor(ImPlotCol idx, ImU32 col);
  1695. void ImPlot_PushStyleColor(ImPlotCol idx, unsigned int col) {
  1696. ImPlot::PushStyleColor(idx, col);
  1697. }
  1698. void ImPlot_PushStyleColorVec4(ImPlotCol idx, MaxVec4 col) {
  1699. ImPlot::PushStyleColor(idx, ConvertToCPP_MaxVec4(col));
  1700. }
  1701. void ImPlot_PopStyleColor(int count) {
  1702. ImPlot::PopStyleColor(count);
  1703. }
  1704. void ImPlot_PushStyleVar(ImPlotStyleVar idx, float val) {
  1705. ImPlot::PushStyleVar(idx, val);
  1706. }
  1707. void ImPlot_PushStyleVarInt(ImPlotStyleVar idx, int val) {
  1708. ImPlot::PushStyleVar(idx, val);
  1709. }
  1710. void ImPlot_PushStyleVarVec2(ImPlotStyleVar idx, MaxVec2 val) {
  1711. ImPlot::PushStyleVar(idx, ConvertToCPP_MaxVec2(val));
  1712. }
  1713. void ImPlot_PopStyleVar(int count) {
  1714. ImPlot::PopStyleVar(count);
  1715. }
  1716. void ImPlot_SetNextLineStyle(MaxVec4 col, float weight) {
  1717. ImPlot::SetNextLineStyle(ConvertToCPP_MaxVec4(col), weight);
  1718. }
  1719. void ImPlot_SetNextFillStyle(MaxVec4 col, float alpha_mod) {
  1720. ImPlot::SetNextFillStyle(ConvertToCPP_MaxVec4(col), alpha_mod);
  1721. }
  1722. void ImPlot_SetNextMarkerStyle(int marker, float size, MaxVec4 fill, float weight, MaxVec4 outline) {
  1723. ImPlot::SetNextMarkerStyle(marker, size, ConvertToCPP_MaxVec4(fill), weight, ConvertToCPP_MaxVec4(outline));
  1724. }
  1725. void ImPlot_SetNextErrorBarStyle(MaxVec4 col, float size, float weight) {
  1726. ImPlot::SetNextErrorBarStyle(ConvertToCPP_MaxVec4(col), size, weight);
  1727. }
  1728. MaxVec4 ImPlot_GetLastItemColor() {
  1729. return ConvertFromCPP_MaxVec4(ImPlot::GetLastItemColor());
  1730. }
  1731. BBString * ImPlot_GetStyleColorName(ImPlotCol idx) {
  1732. const char * name = ImPlot::GetStyleColorName(idx);
  1733. BBString * result = bbStringFromUTF8String((unsigned char*)name);
  1734. return result;
  1735. }
  1736. BBString * ImPlot_GetMarkerName(ImPlotMarker idx) {
  1737. const char * name = ImPlot::GetMarkerName(idx);
  1738. BBString * result = bbStringFromUTF8String((unsigned char*)name);
  1739. return result;
  1740. }
  1741. ///////////////////////////////////////////////////////////
  1742. int ImPlot_ShowStyleSelector(BBString * label) {
  1743. const char * v0 = (const char *)bbStringToUTF8String(label);
  1744. int result = ImPlot::ShowStyleSelector(v0);
  1745. bbMemFree((void*)v0);
  1746. return result;
  1747. }
  1748. int ImPlot_ShowColormapSelector(BBString * label) {
  1749. const char * v0 = (const char *)bbStringToUTF8String(label);
  1750. int result = ImPlot::ShowColormapSelector(v0);
  1751. bbMemFree((void*)v0);
  1752. return result;
  1753. }
  1754. int ImPlot_ShowInputMapSelector(BBString * label) {
  1755. const char * v0 = (const char *)bbStringToUTF8String(label);
  1756. int result = ImPlot::ShowInputMapSelector(v0);
  1757. bbMemFree((void*)v0);
  1758. return result;
  1759. }
  1760. void ImPlot_ShowStyleEditor(ImPlotStyle * ref) {
  1761. ImPlot::ShowStyleEditor(ref);
  1762. }
  1763. void ImPlot_ShowUserGuide() {
  1764. ImPlot::ShowUserGuide();
  1765. }
  1766. void ImPlot_ShowMetricsWindow(int * p_popen) {
  1767. bool op = *p_popen;
  1768. ImPlot::ShowMetricsWindow(&op);
  1769. *p_popen = op;
  1770. }
  1771. // end extern "C"
  1772. }