-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcimplot3d.h
More file actions
586 lines (573 loc) · 31.4 KB
/
cimplot3d.h
File metadata and controls
586 lines (573 loc) · 31.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimplot3d
//based on implot3d.h file version 0.4 from https://github.com/brenocq/implot3d
#ifndef CIMPLOT3D_INCLUDED
#define CIMPLOT3D_INCLUDED
#include "cimgui.h"
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImPlot3DContext ImPlot3DContext;
typedef struct ImPlot3DStyle_c ImPlot3DStyle_c;
typedef struct ImPlot3DPoint_c ImPlot3DPoint_c;
typedef struct ImPlot3DRay ImPlot3DRay;
typedef struct ImPlot3DPlane ImPlot3DPlane;
typedef struct ImPlot3DBox ImPlot3DBox;
typedef struct ImPlot3DRange ImPlot3DRange;
typedef struct ImPlot3DQuat_c ImPlot3DQuat_c;
struct ImPlot3DContext;
struct ImPlot3DStyle_c;
struct ImPlot3DPoint_c;
struct ImPlot3DRay;
struct ImPlot3DPlane;
struct ImPlot3DBox;
struct ImPlot3DRange;
struct ImPlot3DQuat_c;
typedef int ImPlot3DCond;
typedef int ImPlot3DCol;
typedef int ImPlot3DStyleVar;
typedef int ImPlot3DMarker;
typedef int ImPlot3DLocation;
typedef int ImAxis3D;
typedef int ImPlane3D;
typedef int ImPlot3DScale;
typedef int ImPlot3DColormap;
typedef int ImPlot3DProp;
typedef int ImPlot3DFlags;
typedef int ImPlot3DItemFlags;
typedef int ImPlot3DScatterFlags;
typedef int ImPlot3DLineFlags;
typedef int ImPlot3DTriangleFlags;
typedef int ImPlot3DQuadFlags;
typedef int ImPlot3DSurfaceFlags;
typedef int ImPlot3DMeshFlags;
typedef int ImPlot3DImageFlags;
typedef int ImPlot3DDummyFlags;
typedef int ImPlot3DLegendFlags;
typedef int ImPlot3DAxisFlags;
typedef enum {
ImPlot3DProp_LineColor,
ImPlot3DProp_LineColors,
ImPlot3DProp_LineWeight,
ImPlot3DProp_FillColor,
ImPlot3DProp_FillColors,
ImPlot3DProp_FillAlpha,
ImPlot3DProp_Marker,
ImPlot3DProp_MarkerSize,
ImPlot3DProp_MarkerSizes,
ImPlot3DProp_MarkerLineColor,
ImPlot3DProp_MarkerLineColors,
ImPlot3DProp_MarkerFillColor,
ImPlot3DProp_MarkerFillColors,
ImPlot3DProp_Offset,
ImPlot3DProp_Stride,
ImPlot3DProp_Flags
}ImPlot3DProp_;
typedef enum {
ImPlot3DFlags_None = 0,
ImPlot3DFlags_NoTitle = 1 << 0,
ImPlot3DFlags_NoLegend = 1 << 1,
ImPlot3DFlags_NoMouseText = 1 << 2,
ImPlot3DFlags_NoClip = 1 << 3,
ImPlot3DFlags_NoMenus = 1 << 4,
ImPlot3DFlags_Equal = 1 << 5,
ImPlot3DFlags_NoRotate = 1 << 6,
ImPlot3DFlags_NoPan = 1 << 7,
ImPlot3DFlags_NoZoom = 1 << 8,
ImPlot3DFlags_NoInputs = 1 << 9,
ImPlot3DFlags_CanvasOnly = ImPlot3DFlags_NoTitle | ImPlot3DFlags_NoLegend | ImPlot3DFlags_NoMouseText,
}ImPlot3DFlags_;
typedef enum {
ImPlot3DCond_None = ImGuiCond_None,
ImPlot3DCond_Always = ImGuiCond_Always,
ImPlot3DCond_Once = ImGuiCond_Once,
}ImPlot3DCond_;
typedef enum {
ImPlot3DCol_TitleText,
ImPlot3DCol_InlayText,
ImPlot3DCol_FrameBg,
ImPlot3DCol_PlotBg,
ImPlot3DCol_PlotBorder,
ImPlot3DCol_LegendBg,
ImPlot3DCol_LegendBorder,
ImPlot3DCol_LegendText,
ImPlot3DCol_AxisText,
ImPlot3DCol_AxisGrid,
ImPlot3DCol_AxisTick,
ImPlot3DCol_AxisBg,
ImPlot3DCol_AxisBgHovered,
ImPlot3DCol_AxisBgActive,
ImPlot3DCol_COUNT,
}ImPlot3DCol_;
typedef enum {
ImPlot3DStyleVar_LineWeight,
ImPlot3DStyleVar_Marker,
ImPlot3DStyleVar_MarkerSize,
ImPlot3DStyleVar_FillAlpha,
ImPlot3DStyleVar_PlotDefaultSize,
ImPlot3DStyleVar_PlotMinSize,
ImPlot3DStyleVar_PlotPadding,
ImPlot3DStyleVar_LabelPadding,
ImPlot3DStyleVar_ViewScaleFactor,
ImPlot3DStyleVar_LegendPadding,
ImPlot3DStyleVar_LegendInnerPadding,
ImPlot3DStyleVar_LegendSpacing,
ImPlot3DStyleVar_COUNT
}ImPlot3DStyleVar_;
typedef enum {
ImPlot3DMarker_None = -2,
ImPlot3DMarker_Auto = -1,
ImPlot3DMarker_Circle,
ImPlot3DMarker_Square,
ImPlot3DMarker_Diamond,
ImPlot3DMarker_Up,
ImPlot3DMarker_Down,
ImPlot3DMarker_Left,
ImPlot3DMarker_Right,
ImPlot3DMarker_Cross,
ImPlot3DMarker_Plus,
ImPlot3DMarker_Asterisk,
ImPlot3DMarker_COUNT
}ImPlot3DMarker_;
typedef enum {
ImPlot3DItemFlags_None = 0,
ImPlot3DItemFlags_NoLegend = 1 << 0,
ImPlot3DItemFlags_NoFit = 1 << 1,
}ImPlot3DItemFlags_;
typedef enum {
ImPlot3DScatterFlags_None = 0,
ImPlot3DScatterFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DScatterFlags_NoFit = ImPlot3DItemFlags_NoFit,
}ImPlot3DScatterFlags_;
typedef enum {
ImPlot3DLineFlags_None = 0,
ImPlot3DLineFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DLineFlags_NoFit = ImPlot3DItemFlags_NoFit,
ImPlot3DLineFlags_Segments = 1 << 10,
ImPlot3DLineFlags_Loop = 1 << 11,
ImPlot3DLineFlags_SkipNaN = 1 << 12,
}ImPlot3DLineFlags_;
typedef enum {
ImPlot3DTriangleFlags_None = 0,
ImPlot3DTriangleFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DTriangleFlags_NoFit = ImPlot3DItemFlags_NoFit,
ImPlot3DTriangleFlags_NoLines = 1 << 10,
ImPlot3DTriangleFlags_NoFill = 1 << 11,
ImPlot3DTriangleFlags_NoMarkers = 1 << 12,
}ImPlot3DTriangleFlags_;
typedef enum {
ImPlot3DQuadFlags_None = 0,
ImPlot3DQuadFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DQuadFlags_NoFit = ImPlot3DItemFlags_NoFit,
ImPlot3DQuadFlags_NoLines = 1 << 10,
ImPlot3DQuadFlags_NoFill = 1 << 11,
ImPlot3DQuadFlags_NoMarkers = 1 << 12,
}ImPlot3DQuadFlags_;
typedef enum {
ImPlot3DSurfaceFlags_None = 0,
ImPlot3DSurfaceFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DSurfaceFlags_NoFit = ImPlot3DItemFlags_NoFit,
ImPlot3DSurfaceFlags_NoLines = 1 << 10,
ImPlot3DSurfaceFlags_NoFill = 1 << 11,
ImPlot3DSurfaceFlags_NoMarkers = 1 << 12,
}ImPlot3DSurfaceFlags_;
typedef enum {
ImPlot3DMeshFlags_None = 0,
ImPlot3DMeshFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DMeshFlags_NoFit = ImPlot3DItemFlags_NoFit,
ImPlot3DMeshFlags_NoLines = 1 << 10,
ImPlot3DMeshFlags_NoFill = 1 << 11,
ImPlot3DMeshFlags_NoMarkers = 1 << 12,
}ImPlot3DMeshFlags_;
typedef enum {
ImPlot3DImageFlags_None = 0,
ImPlot3DImageFlags_NoLegend = ImPlot3DItemFlags_NoLegend,
ImPlot3DImageFlags_NoFit = ImPlot3DItemFlags_NoFit,
}ImPlot3DImageFlags_;
typedef enum {
ImPlot3DDummyFlags_None = 0
}ImPlot3DDummyFlags_;
typedef enum {
ImPlot3DLegendFlags_None = 0,
ImPlot3DLegendFlags_NoButtons = 1 << 0,
ImPlot3DLegendFlags_NoHighlightItem = 1 << 1,
ImPlot3DLegendFlags_Horizontal = 1 << 2,
}ImPlot3DLegendFlags_;
typedef enum {
ImPlot3DLocation_Center = 0,
ImPlot3DLocation_North = 1 << 0,
ImPlot3DLocation_South = 1 << 1,
ImPlot3DLocation_West = 1 << 2,
ImPlot3DLocation_East = 1 << 3,
ImPlot3DLocation_NorthWest = ImPlot3DLocation_North | ImPlot3DLocation_West,
ImPlot3DLocation_NorthEast = ImPlot3DLocation_North | ImPlot3DLocation_East,
ImPlot3DLocation_SouthWest = ImPlot3DLocation_South | ImPlot3DLocation_West,
ImPlot3DLocation_SouthEast = ImPlot3DLocation_South | ImPlot3DLocation_East
}ImPlot3DLocation_;
typedef enum {
ImPlot3DAxisFlags_None = 0,
ImPlot3DAxisFlags_NoLabel = 1 << 0,
ImPlot3DAxisFlags_NoGridLines = 1 << 1,
ImPlot3DAxisFlags_NoTickMarks = 1 << 2,
ImPlot3DAxisFlags_NoTickLabels = 1 << 3,
ImPlot3DAxisFlags_LockMin = 1 << 4,
ImPlot3DAxisFlags_LockMax = 1 << 5,
ImPlot3DAxisFlags_AutoFit = 1 << 6,
ImPlot3DAxisFlags_Invert = 1 << 7,
ImPlot3DAxisFlags_PanStretch = 1 << 8,
ImPlot3DAxisFlags_Lock = ImPlot3DAxisFlags_LockMin | ImPlot3DAxisFlags_LockMax,
ImPlot3DAxisFlags_NoDecorations = ImPlot3DAxisFlags_NoLabel | ImPlot3DAxisFlags_NoGridLines | ImPlot3DAxisFlags_NoTickLabels,
}ImPlot3DAxisFlags_;
typedef enum {
ImAxis3D_X = 0,
ImAxis3D_Y,
ImAxis3D_Z,
ImAxis3D_COUNT,
}ImAxis3D_;
typedef enum {
ImPlane3D_YZ = 0,
ImPlane3D_XZ,
ImPlane3D_XY,
ImPlane3D_COUNT,
}ImPlane3D_;
typedef enum {
ImPlot3DScale_Linear = 0,
ImPlot3DScale_Log10,
ImPlot3DScale_SymLog,
}ImPlot3DScale_;
typedef enum {
ImPlot3DColormap_Deep = 0,
ImPlot3DColormap_Dark = 1,
ImPlot3DColormap_Pastel = 2,
ImPlot3DColormap_Paired = 3,
ImPlot3DColormap_Viridis = 4,
ImPlot3DColormap_Plasma = 5,
ImPlot3DColormap_Hot = 6,
ImPlot3DColormap_Cool = 7,
ImPlot3DColormap_Pink = 8,
ImPlot3DColormap_Jet = 9,
ImPlot3DColormap_Twilight = 10,
ImPlot3DColormap_RdBu = 11,
ImPlot3DColormap_BrBG = 12,
ImPlot3DColormap_PiYG = 13,
ImPlot3DColormap_Spectral = 14,
ImPlot3DColormap_Greys = 15,
}ImPlot3DColormap_;
typedef struct ImPlot3DSpec_c ImPlot3DSpec_c;
struct ImPlot3DSpec_c
{
ImVec4_c LineColor;
ImU32* LineColors;
float LineWeight;
ImVec4_c FillColor;
ImU32* FillColors;
float FillAlpha;
ImPlot3DMarker Marker;
float MarkerSize;
float* MarkerSizes;
ImVec4_c MarkerLineColor;
ImU32* MarkerLineColors;
ImVec4_c MarkerFillColor;
ImU32* MarkerFillColors;
int Offset;
int Stride;
ImPlot3DItemFlags Flags;
};
typedef int (*ImPlot3DFormatter)(double value, char* buff, int size, void* user_data);
typedef double (*ImPlot3DTransform)(double value, void* user_data);
struct ImPlot3DPoint_c
{
double x, y, z;
};
struct ImPlot3DRay
{
ImPlot3DPoint_c Origin;
ImPlot3DPoint_c Direction;
};
struct ImPlot3DPlane
{
ImPlot3DPoint_c Point;
ImPlot3DPoint_c Normal;
};
struct ImPlot3DBox
{
ImPlot3DPoint_c Min;
ImPlot3DPoint_c Max;
};
struct ImPlot3DRange
{
double Min;
double Max;
};
struct ImPlot3DQuat_c
{
double x, y, z, w;
};
struct ImPlot3DStyle_c
{
float LineWeight;
int Marker;
float MarkerSize;
float FillAlpha;
ImVec2_c PlotDefaultSize;
ImVec2_c PlotMinSize;
ImVec2_c PlotPadding;
ImVec2_c LabelPadding;
float ViewScaleFactor;
ImVec2_c LegendPadding;
ImVec2_c LegendInnerPadding;
ImVec2_c LegendSpacing;
ImVec4_c Colors[ImPlot3DCol_COUNT];
ImPlot3DColormap Colormap;
};
static const int CUBE_VTX_COUNT = 8;
static const int CUBE_IDX_COUNT = 36;
static const int SPHERE_VTX_COUNT = 162;
static const int SPHERE_IDX_COUNT = 960;
static const int DUCK_VTX_COUNT = 254;
static const int DUCK_IDX_COUNT = 1428;
#else
#endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImPlot3DPoint_c ImPlot3DPoint;
typedef struct ImPlot3DQuat_c ImPlot3DQuat;
typedef struct ImPlot3DSpec_c ImPlot3DSpec;
typedef struct ImPlot3DStyle_c ImPlot3DStyle;
#endif
#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
typedef struct ImPlot3DPoint_c ImPlot3DPoint_c;
struct ImPlot3DPoint_c {
double x;
double y;
double z;
};
typedef struct ImPlot3DQuat_c ImPlot3DQuat_c;
struct ImPlot3DQuat_c {
double x;
double y;
double z;
double w;
};
typedef struct ImPlot3DSpec_c ImPlot3DSpec_c;
struct ImPlot3DSpec_c {
ImVec4_c LineColor;
ImU32* LineColors;
float LineWeight;
ImVec4_c FillColor;
ImU32* FillColors;
float FillAlpha;
ImPlot3DMarker Marker;
float MarkerSize;
float* MarkerSizes;
ImVec4_c MarkerLineColor;
ImU32* MarkerLineColors;
ImVec4_c MarkerFillColor;
ImU32* MarkerFillColors;
int Offset;
int Stride;
ImPlot3DItemFlags Flags;
};
typedef struct ImPlot3DStyle_c ImPlot3DStyle_c;
struct ImPlot3DStyle_c {
float LineWeight;
int Marker;
float MarkerSize;
float FillAlpha;
ImVec2_c PlotDefaultSize;
ImVec2_c PlotMinSize;
ImVec2_c PlotPadding;
ImVec2_c LabelPadding;
float ViewScaleFactor;
ImVec2_c LegendPadding;
ImVec2_c LegendInnerPadding;
ImVec2_c LegendSpacing;
ImVec4_c Colors[ImPlot3DCol_COUNT];
ImPlot3DColormap Colormap;
};
#endif
#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
CIMGUI_API ImPlot3DSpec* ImPlot3DSpec_ImPlot3DSpec(void);
CIMGUI_API void ImPlot3DSpec_destroy(ImPlot3DSpec* self);
CIMGUI_API void ImPlot3DSpec_SetProp_Float(ImPlot3DSpec* self,ImPlot3DProp prop,float v);
CIMGUI_API void ImPlot3DSpec_SetProp_double(ImPlot3DSpec* self,ImPlot3DProp prop,double v);
CIMGUI_API void ImPlot3DSpec_SetProp_S8(ImPlot3DSpec* self,ImPlot3DProp prop,ImS8 v);
CIMGUI_API void ImPlot3DSpec_SetProp_U8(ImPlot3DSpec* self,ImPlot3DProp prop,ImU8 v);
CIMGUI_API void ImPlot3DSpec_SetProp_S16(ImPlot3DSpec* self,ImPlot3DProp prop,ImS16 v);
CIMGUI_API void ImPlot3DSpec_SetProp_U16(ImPlot3DSpec* self,ImPlot3DProp prop,ImU16 v);
CIMGUI_API void ImPlot3DSpec_SetProp_S32(ImPlot3DSpec* self,ImPlot3DProp prop,ImS32 v);
CIMGUI_API void ImPlot3DSpec_SetProp_U32(ImPlot3DSpec* self,ImPlot3DProp prop,ImU32 v);
CIMGUI_API void ImPlot3DSpec_SetProp_S64(ImPlot3DSpec* self,ImPlot3DProp prop,ImS64 v);
CIMGUI_API void ImPlot3DSpec_SetProp_U64(ImPlot3DSpec* self,ImPlot3DProp prop,ImU64 v);
CIMGUI_API void ImPlot3DSpec_SetProp_U32Ptr(ImPlot3DSpec* self,ImPlot3DProp prop,ImU32* v);
CIMGUI_API void ImPlot3DSpec_SetProp_FloatPtr(ImPlot3DSpec* self,ImPlot3DProp prop,float* v);
CIMGUI_API void ImPlot3DSpec_SetProp_Vec4(ImPlot3DSpec* self,ImPlot3DProp prop,const ImVec4_c v);
CIMGUI_API ImPlot3DContext* ImPlot3D_CreateContext(void);
CIMGUI_API void ImPlot3D_DestroyContext(ImPlot3DContext* ctx);
CIMGUI_API ImPlot3DContext* ImPlot3D_GetCurrentContext(void);
CIMGUI_API void ImPlot3D_SetCurrentContext(ImPlot3DContext* ctx);
CIMGUI_API bool ImPlot3D_BeginPlot(const char* title_id,const ImVec2_c size,ImPlot3DFlags flags);
CIMGUI_API void ImPlot3D_EndPlot(void);
CIMGUI_API void ImPlot3D_SetupAxis(ImAxis3D axis,const char* label,ImPlot3DAxisFlags flags);
CIMGUI_API void ImPlot3D_SetupAxisLimits(ImAxis3D axis,double v_min,double v_max,ImPlot3DCond cond);
CIMGUI_API void ImPlot3D_SetupAxisFormat(ImAxis3D axis,ImPlot3DFormatter formatter,void* data);
CIMGUI_API void ImPlot3D_SetupAxisTicks_doublePtr(ImAxis3D axis,const double* values,int n_ticks,const char* const labels[],bool keep_default);
CIMGUI_API void ImPlot3D_SetupAxisTicks_double(ImAxis3D axis,double v_min,double v_max,int n_ticks,const char* const labels[],bool keep_default);
CIMGUI_API void ImPlot3D_SetupAxisScale_Plot3DScale(ImAxis3D axis,ImPlot3DScale scale);
CIMGUI_API void ImPlot3D_SetupAxisScale_Plot3DTransform(ImAxis3D axis,ImPlot3DTransform forward,ImPlot3DTransform inverse,void* data);
CIMGUI_API void ImPlot3D_SetupAxisLimitsConstraints(ImAxis3D axis,double v_min,double v_max);
CIMGUI_API void ImPlot3D_SetupAxisZoomConstraints(ImAxis3D axis,double zoom_min,double zoom_max);
CIMGUI_API void ImPlot3D_SetupAxes(const char* x_label,const char* y_label,const char* z_label,ImPlot3DAxisFlags x_flags,ImPlot3DAxisFlags y_flags,ImPlot3DAxisFlags z_flags);
CIMGUI_API void ImPlot3D_SetupAxesLimits(double x_min,double x_max,double y_min,double y_max,double z_min,double z_max,ImPlot3DCond cond);
CIMGUI_API void ImPlot3D_SetupBoxRotation_double(double elevation,double azimuth,bool animate,ImPlot3DCond cond);
CIMGUI_API void ImPlot3D_SetupBoxRotation_Plot3DQuat(ImPlot3DQuat_c rotation,bool animate,ImPlot3DCond cond);
CIMGUI_API void ImPlot3D_SetupBoxInitialRotation_double(double elevation,double azimuth);
CIMGUI_API void ImPlot3D_SetupBoxInitialRotation_Plot3DQuat(ImPlot3DQuat_c rotation);
CIMGUI_API void ImPlot3D_SetupBoxScale(double x,double y,double z);
CIMGUI_API void ImPlot3D_SetupLegend(ImPlot3DLocation location,ImPlot3DLegendFlags flags);
CIMGUI_API void ImPlot3D_PlotScatter_FloatPtr(const char* label_id,const float* xs,const float* ys,const float* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_doublePtr(const char* label_id,const double* xs,const double* ys,const double* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_S8Ptr(const char* label_id,const ImS8* xs,const ImS8* ys,const ImS8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_U8Ptr(const char* label_id,const ImU8* xs,const ImU8* ys,const ImU8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_S16Ptr(const char* label_id,const ImS16* xs,const ImS16* ys,const ImS16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_U16Ptr(const char* label_id,const ImU16* xs,const ImU16* ys,const ImU16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_S32Ptr(const char* label_id,const ImS32* xs,const ImS32* ys,const ImS32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_U32Ptr(const char* label_id,const ImU32* xs,const ImU32* ys,const ImU32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_S64Ptr(const char* label_id,const ImS64* xs,const ImS64* ys,const ImS64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotScatter_U64Ptr(const char* label_id,const ImU64* xs,const ImU64* ys,const ImU64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_FloatPtr(const char* label_id,const float* xs,const float* ys,const float* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_doublePtr(const char* label_id,const double* xs,const double* ys,const double* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_S8Ptr(const char* label_id,const ImS8* xs,const ImS8* ys,const ImS8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_U8Ptr(const char* label_id,const ImU8* xs,const ImU8* ys,const ImU8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_S16Ptr(const char* label_id,const ImS16* xs,const ImS16* ys,const ImS16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_U16Ptr(const char* label_id,const ImU16* xs,const ImU16* ys,const ImU16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_S32Ptr(const char* label_id,const ImS32* xs,const ImS32* ys,const ImS32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_U32Ptr(const char* label_id,const ImU32* xs,const ImU32* ys,const ImU32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_S64Ptr(const char* label_id,const ImS64* xs,const ImS64* ys,const ImS64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotLine_U64Ptr(const char* label_id,const ImU64* xs,const ImU64* ys,const ImU64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_FloatPtr(const char* label_id,const float* xs,const float* ys,const float* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_doublePtr(const char* label_id,const double* xs,const double* ys,const double* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_S8Ptr(const char* label_id,const ImS8* xs,const ImS8* ys,const ImS8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_U8Ptr(const char* label_id,const ImU8* xs,const ImU8* ys,const ImU8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_S16Ptr(const char* label_id,const ImS16* xs,const ImS16* ys,const ImS16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_U16Ptr(const char* label_id,const ImU16* xs,const ImU16* ys,const ImU16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_S32Ptr(const char* label_id,const ImS32* xs,const ImS32* ys,const ImS32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_U32Ptr(const char* label_id,const ImU32* xs,const ImU32* ys,const ImU32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_S64Ptr(const char* label_id,const ImS64* xs,const ImS64* ys,const ImS64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotTriangle_U64Ptr(const char* label_id,const ImU64* xs,const ImU64* ys,const ImU64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_FloatPtr(const char* label_id,const float* xs,const float* ys,const float* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_doublePtr(const char* label_id,const double* xs,const double* ys,const double* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_S8Ptr(const char* label_id,const ImS8* xs,const ImS8* ys,const ImS8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_U8Ptr(const char* label_id,const ImU8* xs,const ImU8* ys,const ImU8* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_S16Ptr(const char* label_id,const ImS16* xs,const ImS16* ys,const ImS16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_U16Ptr(const char* label_id,const ImU16* xs,const ImU16* ys,const ImU16* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_S32Ptr(const char* label_id,const ImS32* xs,const ImS32* ys,const ImS32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_U32Ptr(const char* label_id,const ImU32* xs,const ImU32* ys,const ImU32* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_S64Ptr(const char* label_id,const ImS64* xs,const ImS64* ys,const ImS64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotQuad_U64Ptr(const char* label_id,const ImU64* xs,const ImU64* ys,const ImU64* zs,int count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_FloatPtr(const char* label_id,const float* xs,const float* ys,const float* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_doublePtr(const char* label_id,const double* xs,const double* ys,const double* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_S8Ptr(const char* label_id,const ImS8* xs,const ImS8* ys,const ImS8* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_U8Ptr(const char* label_id,const ImU8* xs,const ImU8* ys,const ImU8* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_S16Ptr(const char* label_id,const ImS16* xs,const ImS16* ys,const ImS16* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_U16Ptr(const char* label_id,const ImU16* xs,const ImU16* ys,const ImU16* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_S32Ptr(const char* label_id,const ImS32* xs,const ImS32* ys,const ImS32* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_U32Ptr(const char* label_id,const ImU32* xs,const ImU32* ys,const ImU32* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_S64Ptr(const char* label_id,const ImS64* xs,const ImS64* ys,const ImS64* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotSurface_U64Ptr(const char* label_id,const ImU64* xs,const ImU64* ys,const ImU64* zs,int x_count,int y_count,double scale_min,double scale_max,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_FloatPtr(const char* label_id,const float* vtx_xs,const float* vtx_ys,const float* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_doublePtr(const char* label_id,const double* vtx_xs,const double* vtx_ys,const double* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_S8Ptr(const char* label_id,const ImS8* vtx_xs,const ImS8* vtx_ys,const ImS8* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_U8Ptr(const char* label_id,const ImU8* vtx_xs,const ImU8* vtx_ys,const ImU8* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_S16Ptr(const char* label_id,const ImS16* vtx_xs,const ImS16* vtx_ys,const ImS16* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_U16Ptr(const char* label_id,const ImU16* vtx_xs,const ImU16* vtx_ys,const ImU16* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_S32Ptr(const char* label_id,const ImS32* vtx_xs,const ImS32* vtx_ys,const ImS32* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_U32Ptr(const char* label_id,const ImU32* vtx_xs,const ImU32* vtx_ys,const ImU32* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_S64Ptr(const char* label_id,const ImS64* vtx_xs,const ImS64* vtx_ys,const ImS64* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotMesh_U64Ptr(const char* label_id,const ImU64* vtx_xs,const ImU64* vtx_ys,const ImU64* vtx_zs,const unsigned int* idxs,int vtx_count,int idx_count,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotImage_Vec2(const char* label_id,ImTextureRef_c tex_ref,const ImPlot3DPoint_c center,const ImPlot3DPoint_c axis_u,const ImPlot3DPoint_c axis_v,const ImVec2_c uv0,const ImVec2_c uv1,const ImVec4_c tint_col,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotImage_Plot3DPoint(const char* label_id,ImTextureRef_c tex_ref,const ImPlot3DPoint_c p0,const ImPlot3DPoint_c p1,const ImPlot3DPoint_c p2,const ImPlot3DPoint_c p3,const ImVec2_c uv0,const ImVec2_c uv1,const ImVec2_c uv2,const ImVec2_c uv3,const ImVec4_c tint_col,const ImPlot3DSpec_c spec);
CIMGUI_API void ImPlot3D_PlotText(const char* text,double x,double y,double z,double angle,const ImVec2_c pix_offset);
CIMGUI_API void ImPlot3D_PlotDummy(const char* label_id,const ImPlot3DSpec_c spec);
CIMGUI_API ImVec2_c ImPlot3D_PlotToPixels_Plot3DPoint(const ImPlot3DPoint_c point);
CIMGUI_API ImVec2_c ImPlot3D_PlotToPixels_double(double x,double y,double z);
CIMGUI_API ImPlot3DRay ImPlot3D_PixelsToPlotRay_Vec2(const ImVec2_c pix);
CIMGUI_API ImPlot3DRay ImPlot3D_PixelsToPlotRay_double(double x,double y);
CIMGUI_API ImPlot3DPoint_c ImPlot3D_PixelsToPlotPlane_Vec2(const ImVec2_c pix,ImPlane3D plane,bool mask);
CIMGUI_API ImPlot3DPoint_c ImPlot3D_PixelsToPlotPlane_double(double x,double y,ImPlane3D plane,bool mask);
CIMGUI_API ImVec2_c ImPlot3D_GetPlotRectPos(void);
CIMGUI_API ImVec2_c ImPlot3D_GetPlotRectSize(void);
CIMGUI_API ImDrawList* ImPlot3D_GetPlotDrawList(void);
CIMGUI_API ImPlot3DStyle* ImPlot3D_GetStyle(void);
CIMGUI_API void ImPlot3D_SetStyle(const ImPlot3DStyle_c style);
CIMGUI_API void ImPlot3D_StyleColorsAuto(ImPlot3DStyle* dst);
CIMGUI_API void ImPlot3D_StyleColorsDark(ImPlot3DStyle* dst);
CIMGUI_API void ImPlot3D_StyleColorsLight(ImPlot3DStyle* dst);
CIMGUI_API void ImPlot3D_StyleColorsClassic(ImPlot3DStyle* dst);
CIMGUI_API void ImPlot3D_PushStyleColor_U32(ImPlot3DCol idx,ImU32 col);
CIMGUI_API void ImPlot3D_PushStyleColor_Vec4(ImPlot3DCol idx,const ImVec4_c col);
CIMGUI_API void ImPlot3D_PopStyleColor(int count);
CIMGUI_API void ImPlot3D_PushStyleVar_Float(ImPlot3DStyleVar idx,float val);
CIMGUI_API void ImPlot3D_PushStyleVar_Int(ImPlot3DStyleVar idx,int val);
CIMGUI_API void ImPlot3D_PushStyleVar_Vec2(ImPlot3DStyleVar idx,const ImVec2_c val);
CIMGUI_API void ImPlot3D_PopStyleVar(int count);
CIMGUI_API ImVec4_c ImPlot3D_GetStyleColorVec4(ImPlot3DCol idx);
CIMGUI_API ImU32 ImPlot3D_GetStyleColorU32(ImPlot3DCol idx);
CIMGUI_API ImPlot3DMarker ImPlot3D_NextMarker(void);
CIMGUI_API ImPlot3DColormap ImPlot3D_AddColormap_Vec4Ptr(const char* name,const ImVec4* cols,int size,bool qual);
CIMGUI_API ImPlot3DColormap ImPlot3D_AddColormap_U32Ptr(const char* name,const ImU32* cols,int size,bool qual);
CIMGUI_API int ImPlot3D_GetColormapCount(void);
CIMGUI_API const char* ImPlot3D_GetColormapName(ImPlot3DColormap cmap);
CIMGUI_API ImPlot3DColormap ImPlot3D_GetColormapIndex(const char* name);
CIMGUI_API void ImPlot3D_PushColormap_Plot3DColormap(ImPlot3DColormap cmap);
CIMGUI_API void ImPlot3D_PushColormap_Str(const char* name);
CIMGUI_API void ImPlot3D_PopColormap(int count);
CIMGUI_API ImVec4_c ImPlot3D_NextColormapColor(void);
CIMGUI_API int ImPlot3D_GetColormapSize(ImPlot3DColormap cmap);
CIMGUI_API ImVec4_c ImPlot3D_GetColormapColor(int idx,ImPlot3DColormap cmap);
CIMGUI_API ImVec4_c ImPlot3D_SampleColormap(float t,ImPlot3DColormap cmap);
CIMGUI_API void ImPlot3D_ShowDemoWindow(bool* p_open);
CIMGUI_API void ImPlot3D_ShowAllDemos(void);
CIMGUI_API void ImPlot3D_ShowStyleEditor(ImPlot3DStyle* ref);
CIMGUI_API bool ImPlot3D_ShowStyleSelector(const char* label);
CIMGUI_API bool ImPlot3D_ShowColormapSelector(const char* label);
CIMGUI_API void ImPlot3D_ShowMetricsWindow(bool* p_popen);
CIMGUI_API void ImPlot3D_ShowAboutWindow(bool* p_open);
CIMGUI_API ImPlot3DPoint* ImPlot3DPoint_ImPlot3DPoint_Nil(void);
CIMGUI_API void ImPlot3DPoint_destroy(ImPlot3DPoint* self);
CIMGUI_API ImPlot3DPoint* ImPlot3DPoint_ImPlot3DPoint_double(double _x,double _y,double _z);
CIMGUI_API double ImPlot3DPoint_Dot(ImPlot3DPoint* self,const ImPlot3DPoint_c rhs);
CIMGUI_API ImPlot3DPoint_c ImPlot3DPoint_Cross(ImPlot3DPoint* self,const ImPlot3DPoint_c rhs);
CIMGUI_API double ImPlot3DPoint_Length(ImPlot3DPoint* self);
CIMGUI_API double ImPlot3DPoint_LengthSquared(ImPlot3DPoint* self);
CIMGUI_API void ImPlot3DPoint_Normalize(ImPlot3DPoint* self);
CIMGUI_API ImPlot3DPoint_c ImPlot3DPoint_Normalized(ImPlot3DPoint* self);
CIMGUI_API bool ImPlot3DPoint_IsNaN(ImPlot3DPoint* self);
CIMGUI_API ImPlot3DBox* ImPlot3DBox_ImPlot3DBox_Nil(void);
CIMGUI_API void ImPlot3DBox_destroy(ImPlot3DBox* self);
CIMGUI_API ImPlot3DBox* ImPlot3DBox_ImPlot3DBox_Plot3DPoint(const ImPlot3DPoint_c min,const ImPlot3DPoint_c max);
CIMGUI_API void ImPlot3DBox_Expand(ImPlot3DBox* self,const ImPlot3DPoint_c point);
CIMGUI_API bool ImPlot3DBox_Contains(ImPlot3DBox* self,const ImPlot3DPoint_c point);
CIMGUI_API bool ImPlot3DBox_ClipLineSegment(ImPlot3DBox* self,const ImPlot3DPoint_c p0,const ImPlot3DPoint_c p1,ImPlot3DPoint* p0_clipped,ImPlot3DPoint* p1_clipped);
CIMGUI_API ImPlot3DRange* ImPlot3DRange_ImPlot3DRange_Nil(void);
CIMGUI_API void ImPlot3DRange_destroy(ImPlot3DRange* self);
CIMGUI_API ImPlot3DRange* ImPlot3DRange_ImPlot3DRange_double(double min,double max);
CIMGUI_API void ImPlot3DRange_Expand(ImPlot3DRange* self,double value);
CIMGUI_API bool ImPlot3DRange_Contains(ImPlot3DRange* self,double value);
CIMGUI_API double ImPlot3DRange_Size(ImPlot3DRange* self);
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_Nil(void);
CIMGUI_API void ImPlot3DQuat_destroy(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_doubledouble(double _x,double _y,double _z,double _w);
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_doublePlot3DPoint(double _angle,const ImPlot3DPoint_c _axis);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_FromTwoVectors(const ImPlot3DPoint_c v0,const ImPlot3DPoint_c v1);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_FromElAz(double elevation,double azimuth);
CIMGUI_API double ImPlot3DQuat_Length(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Normalized(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Conjugate(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Inverse(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat_c* ImPlot3DQuat_Normalize(ImPlot3DQuat* self);
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Slerp(const ImPlot3DQuat_c q1,const ImPlot3DQuat_c q2,double t);
CIMGUI_API double ImPlot3DQuat_Dot(ImPlot3DQuat* self,const ImPlot3DQuat_c rhs);
CIMGUI_API ImVec4_c ImPlot3DStyle_GetColor(ImPlot3DStyle* self,ImPlot3DCol idx);
CIMGUI_API void ImPlot3DStyle_SetColor(ImPlot3DStyle* self,ImPlot3DCol idx,const ImVec4_c col);
CIMGUI_API ImPlot3DStyle* ImPlot3DStyle_ImPlot3DStyle_Nil(void);
CIMGUI_API void ImPlot3DStyle_destroy(ImPlot3DStyle* self);
CIMGUI_API ImPlot3DStyle* ImPlot3DStyle_ImPlot3DStyle_Plot3DStyle(const ImPlot3DStyle_c other);
#endif //CIMPLOT3D_INCLUDED