//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
#include "imgui.h"
#include "imgui_internal.h"
#include "./implot3d/implot3d.h"
#include "cimplot3d.h"



static inline ImPlot3DPoint ConvertToCPP_ImPlot3DPoint(const ImPlot3DPoint_c& src)
{
    ImPlot3DPoint dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    return dest;
}
static inline ImPlot3DPoint_c ConvertFromCPP_ImPlot3DPoint(const ImPlot3DPoint& src)
{
    ImPlot3DPoint_c dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    return dest;
}
static inline ImPlot3DQuat ConvertToCPP_ImPlot3DQuat(const ImPlot3DQuat_c& src)
{
    ImPlot3DQuat dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    dest.w = src.w;
    return dest;
}
static inline ImPlot3DQuat_c ConvertFromCPP_ImPlot3DQuat(const ImPlot3DQuat& src)
{
    ImPlot3DQuat_c dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    dest.w = src.w;
    return dest;
}
static inline ImPlot3DSpec ConvertToCPP_ImPlot3DSpec(const ImPlot3DSpec_c& src)
{
    ImPlot3DSpec dest;
    dest.LineColor.x = src.LineColor.x;
    dest.LineColor.y = src.LineColor.y;
    dest.LineColor.z = src.LineColor.z;
    dest.LineColor.w = src.LineColor.w;
    dest.LineColors = src.LineColors;
    dest.LineWeight = src.LineWeight;
    dest.FillColor.x = src.FillColor.x;
    dest.FillColor.y = src.FillColor.y;
    dest.FillColor.z = src.FillColor.z;
    dest.FillColor.w = src.FillColor.w;
    dest.FillColors = src.FillColors;
    dest.FillAlpha = src.FillAlpha;
    dest.Marker = src.Marker;
    dest.MarkerSize = src.MarkerSize;
    dest.MarkerSizes = src.MarkerSizes;
    dest.MarkerLineColor.x = src.MarkerLineColor.x;
    dest.MarkerLineColor.y = src.MarkerLineColor.y;
    dest.MarkerLineColor.z = src.MarkerLineColor.z;
    dest.MarkerLineColor.w = src.MarkerLineColor.w;
    dest.MarkerLineColors = src.MarkerLineColors;
    dest.MarkerFillColor.x = src.MarkerFillColor.x;
    dest.MarkerFillColor.y = src.MarkerFillColor.y;
    dest.MarkerFillColor.z = src.MarkerFillColor.z;
    dest.MarkerFillColor.w = src.MarkerFillColor.w;
    dest.MarkerFillColors = src.MarkerFillColors;
    dest.Offset = src.Offset;
    dest.Stride = src.Stride;
    dest.Flags = src.Flags;
    return dest;
}
static inline ImPlot3DSpec_c ConvertFromCPP_ImPlot3DSpec(const ImPlot3DSpec& src)
{
    ImPlot3DSpec_c dest;
    dest.LineColor.x = src.LineColor.x;
    dest.LineColor.y = src.LineColor.y;
    dest.LineColor.z = src.LineColor.z;
    dest.LineColor.w = src.LineColor.w;
    dest.LineColors = src.LineColors;
    dest.LineWeight = src.LineWeight;
    dest.FillColor.x = src.FillColor.x;
    dest.FillColor.y = src.FillColor.y;
    dest.FillColor.z = src.FillColor.z;
    dest.FillColor.w = src.FillColor.w;
    dest.FillColors = src.FillColors;
    dest.FillAlpha = src.FillAlpha;
    dest.Marker = src.Marker;
    dest.MarkerSize = src.MarkerSize;
    dest.MarkerSizes = src.MarkerSizes;
    dest.MarkerLineColor.x = src.MarkerLineColor.x;
    dest.MarkerLineColor.y = src.MarkerLineColor.y;
    dest.MarkerLineColor.z = src.MarkerLineColor.z;
    dest.MarkerLineColor.w = src.MarkerLineColor.w;
    dest.MarkerLineColors = src.MarkerLineColors;
    dest.MarkerFillColor.x = src.MarkerFillColor.x;
    dest.MarkerFillColor.y = src.MarkerFillColor.y;
    dest.MarkerFillColor.z = src.MarkerFillColor.z;
    dest.MarkerFillColor.w = src.MarkerFillColor.w;
    dest.MarkerFillColors = src.MarkerFillColors;
    dest.Offset = src.Offset;
    dest.Stride = src.Stride;
    dest.Flags = src.Flags;
    return dest;
}
static inline ImPlot3DStyle ConvertToCPP_ImPlot3DStyle(const ImPlot3DStyle_c& src)
{
    ImPlot3DStyle dest;
    dest.LineWeight = src.LineWeight;
    dest.Marker = src.Marker;
    dest.MarkerSize = src.MarkerSize;
    dest.FillAlpha = src.FillAlpha;
    dest.PlotDefaultSize.x = src.PlotDefaultSize.x;
    dest.PlotDefaultSize.y = src.PlotDefaultSize.y;
    dest.PlotMinSize.x = src.PlotMinSize.x;
    dest.PlotMinSize.y = src.PlotMinSize.y;
    dest.PlotPadding.x = src.PlotPadding.x;
    dest.PlotPadding.y = src.PlotPadding.y;
    dest.LabelPadding.x = src.LabelPadding.x;
    dest.LabelPadding.y = src.LabelPadding.y;
    dest.ViewScaleFactor = src.ViewScaleFactor;
    dest.LegendPadding.x = src.LegendPadding.x;
    dest.LegendPadding.y = src.LegendPadding.y;
    dest.LegendInnerPadding.x = src.LegendInnerPadding.x;
    dest.LegendInnerPadding.y = src.LegendInnerPadding.y;
    dest.LegendSpacing.x = src.LegendSpacing.x;
    dest.LegendSpacing.y = src.LegendSpacing.y;
    dest.Colors[ImPlot3DCol_COUNT].x = src.Colors[ImPlot3DCol_COUNT].x;
    dest.Colors[ImPlot3DCol_COUNT].y = src.Colors[ImPlot3DCol_COUNT].y;
    dest.Colors[ImPlot3DCol_COUNT].z = src.Colors[ImPlot3DCol_COUNT].z;
    dest.Colors[ImPlot3DCol_COUNT].w = src.Colors[ImPlot3DCol_COUNT].w;
    dest.Colormap = src.Colormap;
    return dest;
}
static inline ImPlot3DStyle_c ConvertFromCPP_ImPlot3DStyle(const ImPlot3DStyle& src)
{
    ImPlot3DStyle_c dest;
    dest.LineWeight = src.LineWeight;
    dest.Marker = src.Marker;
    dest.MarkerSize = src.MarkerSize;
    dest.FillAlpha = src.FillAlpha;
    dest.PlotDefaultSize.x = src.PlotDefaultSize.x;
    dest.PlotDefaultSize.y = src.PlotDefaultSize.y;
    dest.PlotMinSize.x = src.PlotMinSize.x;
    dest.PlotMinSize.y = src.PlotMinSize.y;
    dest.PlotPadding.x = src.PlotPadding.x;
    dest.PlotPadding.y = src.PlotPadding.y;
    dest.LabelPadding.x = src.LabelPadding.x;
    dest.LabelPadding.y = src.LabelPadding.y;
    dest.ViewScaleFactor = src.ViewScaleFactor;
    dest.LegendPadding.x = src.LegendPadding.x;
    dest.LegendPadding.y = src.LegendPadding.y;
    dest.LegendInnerPadding.x = src.LegendInnerPadding.x;
    dest.LegendInnerPadding.y = src.LegendInnerPadding.y;
    dest.LegendSpacing.x = src.LegendSpacing.x;
    dest.LegendSpacing.y = src.LegendSpacing.y;
    dest.Colors[ImPlot3DCol_COUNT].x = src.Colors[ImPlot3DCol_COUNT].x;
    dest.Colors[ImPlot3DCol_COUNT].y = src.Colors[ImPlot3DCol_COUNT].y;
    dest.Colors[ImPlot3DCol_COUNT].z = src.Colors[ImPlot3DCol_COUNT].z;
    dest.Colors[ImPlot3DCol_COUNT].w = src.Colors[ImPlot3DCol_COUNT].w;
    dest.Colormap = src.Colormap;
    return dest;
}
static inline ImTextureRef ConvertToCPP_ImTextureRef(const ImTextureRef_c& src)
{
    ImTextureRef dest;
    dest._TexData = src._TexData;
    dest._TexID = src._TexID;
    return dest;
}
static inline ImTextureRef_c ConvertFromCPP_ImTextureRef(const ImTextureRef& src)
{
    ImTextureRef_c dest;
    dest._TexData = src._TexData;
    dest._TexID = src._TexID;
    return dest;
}
static inline ImVec2 ConvertToCPP_ImVec2(const ImVec2_c& src)
{
    ImVec2 dest;
    dest.x = src.x;
    dest.y = src.y;
    return dest;
}
static inline ImVec2_c ConvertFromCPP_ImVec2(const ImVec2& src)
{
    ImVec2_c dest;
    dest.x = src.x;
    dest.y = src.y;
    return dest;
}
static inline ImVec4 ConvertToCPP_ImVec4(const ImVec4_c& src)
{
    ImVec4 dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    dest.w = src.w;
    return dest;
}
static inline ImVec4_c ConvertFromCPP_ImVec4(const ImVec4& src)
{
    ImVec4_c dest;
    dest.x = src.x;
    dest.y = src.y;
    dest.z = src.z;
    dest.w = src.w;
    return dest;
}CIMGUI_API ImPlot3DSpec* ImPlot3DSpec_ImPlot3DSpec(void)
{
    return IM_NEW(ImPlot3DSpec)();
}
CIMGUI_API void ImPlot3DSpec_destroy(ImPlot3DSpec* self)
{
    IM_DELETE(self);
}
CIMGUI_API void ImPlot3DSpec_SetProp_Float(ImPlot3DSpec* self,ImPlot3DProp prop,float v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_double(ImPlot3DSpec* self,ImPlot3DProp prop,double v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_S8(ImPlot3DSpec* self,ImPlot3DProp prop,ImS8 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_U8(ImPlot3DSpec* self,ImPlot3DProp prop,ImU8 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_S16(ImPlot3DSpec* self,ImPlot3DProp prop,ImS16 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_U16(ImPlot3DSpec* self,ImPlot3DProp prop,ImU16 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_S32(ImPlot3DSpec* self,ImPlot3DProp prop,ImS32 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_U32(ImPlot3DSpec* self,ImPlot3DProp prop,ImU32 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_S64(ImPlot3DSpec* self,ImPlot3DProp prop,ImS64 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_U64(ImPlot3DSpec* self,ImPlot3DProp prop,ImU64 v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_U32Ptr(ImPlot3DSpec* self,ImPlot3DProp prop,ImU32* v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_FloatPtr(ImPlot3DSpec* self,ImPlot3DProp prop,float* v)
{
    return self->SetProp(prop,v);
}
CIMGUI_API void ImPlot3DSpec_SetProp_Vec4(ImPlot3DSpec* self,ImPlot3DProp prop,const ImVec4_c v)
{
    return self->SetProp(prop,ConvertToCPP_ImVec4(v));
}
CIMGUI_API ImPlot3DContext* ImPlot3D_CreateContext()
{
    return ImPlot3D::CreateContext();
}
CIMGUI_API void ImPlot3D_DestroyContext(ImPlot3DContext* ctx)
{
    return ImPlot3D::DestroyContext(ctx);
}
CIMGUI_API ImPlot3DContext* ImPlot3D_GetCurrentContext()
{
    return ImPlot3D::GetCurrentContext();
}
CIMGUI_API void ImPlot3D_SetCurrentContext(ImPlot3DContext* ctx)
{
    return ImPlot3D::SetCurrentContext(ctx);
}
CIMGUI_API bool ImPlot3D_BeginPlot(const char* title_id,const ImVec2_c size,ImPlot3DFlags flags)
{
    return ImPlot3D::BeginPlot(title_id,ConvertToCPP_ImVec2(size),flags);
}
CIMGUI_API void ImPlot3D_EndPlot()
{
    return ImPlot3D::EndPlot();
}
CIMGUI_API void ImPlot3D_SetupAxis(ImAxis3D axis,const char* label,ImPlot3DAxisFlags flags)
{
    return ImPlot3D::SetupAxis(axis,label,flags);
}
CIMGUI_API void ImPlot3D_SetupAxisLimits(ImAxis3D axis,double v_min,double v_max,ImPlot3DCond cond)
{
    return ImPlot3D::SetupAxisLimits(axis,v_min,v_max,cond);
}
CIMGUI_API void ImPlot3D_SetupAxisFormat(ImAxis3D axis,ImPlot3DFormatter formatter,void* data)
{
    return ImPlot3D::SetupAxisFormat(axis,formatter,data);
}
CIMGUI_API void ImPlot3D_SetupAxisTicks_doublePtr(ImAxis3D axis,const double* values,int n_ticks,const char* const labels[],bool keep_default)
{
    return ImPlot3D::SetupAxisTicks(axis,values,n_ticks,labels,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)
{
    return ImPlot3D::SetupAxisTicks(axis,v_min,v_max,n_ticks,labels,keep_default);
}
CIMGUI_API void ImPlot3D_SetupAxisScale_Plot3DScale(ImAxis3D axis,ImPlot3DScale scale)
{
    return ImPlot3D::SetupAxisScale(axis,scale);
}
CIMGUI_API void ImPlot3D_SetupAxisScale_Plot3DTransform(ImAxis3D axis,ImPlot3DTransform forward,ImPlot3DTransform inverse,void* data)
{
    return ImPlot3D::SetupAxisScale(axis,forward,inverse,data);
}
CIMGUI_API void ImPlot3D_SetupAxisLimitsConstraints(ImAxis3D axis,double v_min,double v_max)
{
    return ImPlot3D::SetupAxisLimitsConstraints(axis,v_min,v_max);
}
CIMGUI_API void ImPlot3D_SetupAxisZoomConstraints(ImAxis3D axis,double zoom_min,double zoom_max)
{
    return ImPlot3D::SetupAxisZoomConstraints(axis,zoom_min,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)
{
    return ImPlot3D::SetupAxes(x_label,y_label,z_label,x_flags,y_flags,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)
{
    return ImPlot3D::SetupAxesLimits(x_min,x_max,y_min,y_max,z_min,z_max,cond);
}
CIMGUI_API void ImPlot3D_SetupBoxRotation_double(double elevation,double azimuth,bool animate,ImPlot3DCond cond)
{
    return ImPlot3D::SetupBoxRotation(elevation,azimuth,animate,cond);
}
CIMGUI_API void ImPlot3D_SetupBoxRotation_Plot3DQuat(ImPlot3DQuat_c rotation,bool animate,ImPlot3DCond cond)
{
    return ImPlot3D::SetupBoxRotation(ConvertToCPP_ImPlot3DQuat(rotation),animate,cond);
}
CIMGUI_API void ImPlot3D_SetupBoxInitialRotation_double(double elevation,double azimuth)
{
    return ImPlot3D::SetupBoxInitialRotation(elevation,azimuth);
}
CIMGUI_API void ImPlot3D_SetupBoxInitialRotation_Plot3DQuat(ImPlot3DQuat_c rotation)
{
    return ImPlot3D::SetupBoxInitialRotation(ConvertToCPP_ImPlot3DQuat(rotation));
}
CIMGUI_API void ImPlot3D_SetupBoxScale(double x,double y,double z)
{
    return ImPlot3D::SetupBoxScale(x,y,z);
}
CIMGUI_API void ImPlot3D_SetupLegend(ImPlot3DLocation location,ImPlot3DLegendFlags flags)
{
    return ImPlot3D::SetupLegend(location,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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotScatter(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotLine(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotTriangle(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotQuad(label_id,xs,ys,zs,count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotSurface(label_id,xs,ys,zs,x_count,y_count,scale_min,scale_max,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotMesh(label_id,vtx_xs,vtx_ys,vtx_zs,idxs,vtx_count,idx_count,ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotImage(label_id,ConvertToCPP_ImTextureRef(tex_ref),ConvertToCPP_ImPlot3DPoint(center),ConvertToCPP_ImPlot3DPoint(axis_u),ConvertToCPP_ImPlot3DPoint(axis_v),ConvertToCPP_ImVec2(uv0),ConvertToCPP_ImVec2(uv1),ConvertToCPP_ImVec4(tint_col),ConvertToCPP_ImPlot3DSpec(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)
{
    return ImPlot3D::PlotImage(label_id,ConvertToCPP_ImTextureRef(tex_ref),ConvertToCPP_ImPlot3DPoint(p0),ConvertToCPP_ImPlot3DPoint(p1),ConvertToCPP_ImPlot3DPoint(p2),ConvertToCPP_ImPlot3DPoint(p3),ConvertToCPP_ImVec2(uv0),ConvertToCPP_ImVec2(uv1),ConvertToCPP_ImVec2(uv2),ConvertToCPP_ImVec2(uv3),ConvertToCPP_ImVec4(tint_col),ConvertToCPP_ImPlot3DSpec(spec));
}
CIMGUI_API void ImPlot3D_PlotText(const char* text,double x,double y,double z,double angle,const ImVec2_c pix_offset)
{
    return ImPlot3D::PlotText(text,x,y,z,angle,ConvertToCPP_ImVec2(pix_offset));
}
CIMGUI_API void ImPlot3D_PlotDummy(const char* label_id,const ImPlot3DSpec_c spec)
{
    return ImPlot3D::PlotDummy(label_id,ConvertToCPP_ImPlot3DSpec(spec));
}
CIMGUI_API ImVec2_c ImPlot3D_PlotToPixels_Plot3DPoint(const ImPlot3DPoint_c point)
{
    return ConvertFromCPP_ImVec2(ImPlot3D::PlotToPixels(ConvertToCPP_ImPlot3DPoint(point)));
}
CIMGUI_API ImVec2_c ImPlot3D_PlotToPixels_double(double x,double y,double z)
{
    return ConvertFromCPP_ImVec2(ImPlot3D::PlotToPixels(x,y,z));
}
CIMGUI_API ImPlot3DRay ImPlot3D_PixelsToPlotRay_Vec2(const ImVec2_c pix)
{
    return ImPlot3D::PixelsToPlotRay(ConvertToCPP_ImVec2(pix));
}
CIMGUI_API ImPlot3DRay ImPlot3D_PixelsToPlotRay_double(double x,double y)
{
    return ImPlot3D::PixelsToPlotRay(x,y);
}
CIMGUI_API ImPlot3DPoint_c ImPlot3D_PixelsToPlotPlane_Vec2(const ImVec2_c pix,ImPlane3D plane,bool mask)
{
    return ConvertFromCPP_ImPlot3DPoint(ImPlot3D::PixelsToPlotPlane(ConvertToCPP_ImVec2(pix),plane,mask));
}
CIMGUI_API ImPlot3DPoint_c ImPlot3D_PixelsToPlotPlane_double(double x,double y,ImPlane3D plane,bool mask)
{
    return ConvertFromCPP_ImPlot3DPoint(ImPlot3D::PixelsToPlotPlane(x,y,plane,mask));
}
CIMGUI_API ImVec2_c ImPlot3D_GetPlotRectPos()
{
    return ConvertFromCPP_ImVec2(ImPlot3D::GetPlotRectPos());
}
CIMGUI_API ImVec2_c ImPlot3D_GetPlotRectSize()
{
    return ConvertFromCPP_ImVec2(ImPlot3D::GetPlotRectSize());
}
CIMGUI_API ImDrawList* ImPlot3D_GetPlotDrawList()
{
    return ImPlot3D::GetPlotDrawList();
}
CIMGUI_API ImPlot3DStyle* ImPlot3D_GetStyle()
{
    return &ImPlot3D::GetStyle();
}
CIMGUI_API void ImPlot3D_SetStyle(const ImPlot3DStyle_c style)
{
    return ImPlot3D::SetStyle(ConvertToCPP_ImPlot3DStyle(style));
}
CIMGUI_API void ImPlot3D_StyleColorsAuto(ImPlot3DStyle* dst)
{
    return ImPlot3D::StyleColorsAuto(dst);
}
CIMGUI_API void ImPlot3D_StyleColorsDark(ImPlot3DStyle* dst)
{
    return ImPlot3D::StyleColorsDark(dst);
}
CIMGUI_API void ImPlot3D_StyleColorsLight(ImPlot3DStyle* dst)
{
    return ImPlot3D::StyleColorsLight(dst);
}
CIMGUI_API void ImPlot3D_StyleColorsClassic(ImPlot3DStyle* dst)
{
    return ImPlot3D::StyleColorsClassic(dst);
}
CIMGUI_API void ImPlot3D_PushStyleColor_U32(ImPlot3DCol idx,ImU32 col)
{
    return ImPlot3D::PushStyleColor(idx,col);
}
CIMGUI_API void ImPlot3D_PushStyleColor_Vec4(ImPlot3DCol idx,const ImVec4_c col)
{
    return ImPlot3D::PushStyleColor(idx,ConvertToCPP_ImVec4(col));
}
CIMGUI_API void ImPlot3D_PopStyleColor(int count)
{
    return ImPlot3D::PopStyleColor(count);
}
CIMGUI_API void ImPlot3D_PushStyleVar_Float(ImPlot3DStyleVar idx,float val)
{
    return ImPlot3D::PushStyleVar(idx,val);
}
CIMGUI_API void ImPlot3D_PushStyleVar_Int(ImPlot3DStyleVar idx,int val)
{
    return ImPlot3D::PushStyleVar(idx,val);
}
CIMGUI_API void ImPlot3D_PushStyleVar_Vec2(ImPlot3DStyleVar idx,const ImVec2_c val)
{
    return ImPlot3D::PushStyleVar(idx,ConvertToCPP_ImVec2(val));
}
CIMGUI_API void ImPlot3D_PopStyleVar(int count)
{
    return ImPlot3D::PopStyleVar(count);
}
CIMGUI_API ImVec4_c ImPlot3D_GetStyleColorVec4(ImPlot3DCol idx)
{
    return ConvertFromCPP_ImVec4(ImPlot3D::GetStyleColorVec4(idx));
}
CIMGUI_API ImU32 ImPlot3D_GetStyleColorU32(ImPlot3DCol idx)
{
    return ImPlot3D::GetStyleColorU32(idx);
}
CIMGUI_API ImPlot3DMarker ImPlot3D_NextMarker()
{
    return ImPlot3D::NextMarker();
}
CIMGUI_API ImPlot3DColormap ImPlot3D_AddColormap_Vec4Ptr(const char* name,const ImVec4* cols,int size,bool qual)
{
    return ImPlot3D::AddColormap(name,cols,size,qual);
}
CIMGUI_API ImPlot3DColormap ImPlot3D_AddColormap_U32Ptr(const char* name,const ImU32* cols,int size,bool qual)
{
    return ImPlot3D::AddColormap(name,cols,size,qual);
}
CIMGUI_API int ImPlot3D_GetColormapCount()
{
    return ImPlot3D::GetColormapCount();
}
CIMGUI_API const char* ImPlot3D_GetColormapName(ImPlot3DColormap cmap)
{
    return ImPlot3D::GetColormapName(cmap);
}
CIMGUI_API ImPlot3DColormap ImPlot3D_GetColormapIndex(const char* name)
{
    return ImPlot3D::GetColormapIndex(name);
}
CIMGUI_API void ImPlot3D_PushColormap_Plot3DColormap(ImPlot3DColormap cmap)
{
    return ImPlot3D::PushColormap(cmap);
}
CIMGUI_API void ImPlot3D_PushColormap_Str(const char* name)
{
    return ImPlot3D::PushColormap(name);
}
CIMGUI_API void ImPlot3D_PopColormap(int count)
{
    return ImPlot3D::PopColormap(count);
}
CIMGUI_API ImVec4_c ImPlot3D_NextColormapColor()
{
    return ConvertFromCPP_ImVec4(ImPlot3D::NextColormapColor());
}
CIMGUI_API int ImPlot3D_GetColormapSize(ImPlot3DColormap cmap)
{
    return ImPlot3D::GetColormapSize(cmap);
}
CIMGUI_API ImVec4_c ImPlot3D_GetColormapColor(int idx,ImPlot3DColormap cmap)
{
    return ConvertFromCPP_ImVec4(ImPlot3D::GetColormapColor(idx,cmap));
}
CIMGUI_API ImVec4_c ImPlot3D_SampleColormap(float t,ImPlot3DColormap cmap)
{
    return ConvertFromCPP_ImVec4(ImPlot3D::SampleColormap(t,cmap));
}
CIMGUI_API void ImPlot3D_ShowDemoWindow(bool* p_open)
{
    return ImPlot3D::ShowDemoWindow(p_open);
}
CIMGUI_API void ImPlot3D_ShowAllDemos()
{
    return ImPlot3D::ShowAllDemos();
}
CIMGUI_API void ImPlot3D_ShowStyleEditor(ImPlot3DStyle* ref)
{
    return ImPlot3D::ShowStyleEditor(ref);
}
CIMGUI_API bool ImPlot3D_ShowStyleSelector(const char* label)
{
    return ImPlot3D::ShowStyleSelector(label);
}
CIMGUI_API bool ImPlot3D_ShowColormapSelector(const char* label)
{
    return ImPlot3D::ShowColormapSelector(label);
}
CIMGUI_API void ImPlot3D_ShowMetricsWindow(bool* p_popen)
{
    return ImPlot3D::ShowMetricsWindow(p_popen);
}
CIMGUI_API void ImPlot3D_ShowAboutWindow(bool* p_open)
{
    return ImPlot3D::ShowAboutWindow(p_open);
}
CIMGUI_API ImPlot3DPoint* ImPlot3DPoint_ImPlot3DPoint_Nil(void)
{
    return IM_NEW(ImPlot3DPoint)();
}
CIMGUI_API void ImPlot3DPoint_destroy(ImPlot3DPoint* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImPlot3DPoint* ImPlot3DPoint_ImPlot3DPoint_double(double _x,double _y,double _z)
{
    return IM_NEW(ImPlot3DPoint)(_x,_y,_z);
}
CIMGUI_API double ImPlot3DPoint_Dot(ImPlot3DPoint* self,const ImPlot3DPoint_c rhs)
{
    return self->Dot(ConvertToCPP_ImPlot3DPoint(rhs));
}
CIMGUI_API ImPlot3DPoint_c ImPlot3DPoint_Cross(ImPlot3DPoint* self,const ImPlot3DPoint_c rhs)
{
    return ConvertFromCPP_ImPlot3DPoint(self->Cross(ConvertToCPP_ImPlot3DPoint(rhs)));
}
CIMGUI_API double ImPlot3DPoint_Length(ImPlot3DPoint* self)
{
    return self->Length();
}
CIMGUI_API double ImPlot3DPoint_LengthSquared(ImPlot3DPoint* self)
{
    return self->LengthSquared();
}
CIMGUI_API void ImPlot3DPoint_Normalize(ImPlot3DPoint* self)
{
    return self->Normalize();
}
CIMGUI_API ImPlot3DPoint_c ImPlot3DPoint_Normalized(ImPlot3DPoint* self)
{
    return ConvertFromCPP_ImPlot3DPoint(self->Normalized());
}
CIMGUI_API bool ImPlot3DPoint_IsNaN(ImPlot3DPoint* self)
{
    return self->IsNaN();
}
CIMGUI_API ImPlot3DBox* ImPlot3DBox_ImPlot3DBox_Nil(void)
{
    return IM_NEW(ImPlot3DBox)();
}
CIMGUI_API void ImPlot3DBox_destroy(ImPlot3DBox* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImPlot3DBox* ImPlot3DBox_ImPlot3DBox_Plot3DPoint(const ImPlot3DPoint_c min,const ImPlot3DPoint_c max)
{
    return IM_NEW(ImPlot3DBox)(ConvertToCPP_ImPlot3DPoint(min),ConvertToCPP_ImPlot3DPoint(max));
}
CIMGUI_API void ImPlot3DBox_Expand(ImPlot3DBox* self,const ImPlot3DPoint_c point)
{
    return self->Expand(ConvertToCPP_ImPlot3DPoint(point));
}
CIMGUI_API bool ImPlot3DBox_Contains(ImPlot3DBox* self,const ImPlot3DPoint_c point)
{
    return self->Contains(ConvertToCPP_ImPlot3DPoint(point));
}
CIMGUI_API bool ImPlot3DBox_ClipLineSegment(ImPlot3DBox* self,const ImPlot3DPoint_c p0,const ImPlot3DPoint_c p1,ImPlot3DPoint* p0_clipped,ImPlot3DPoint* p1_clipped)
{
    return self->ClipLineSegment(ConvertToCPP_ImPlot3DPoint(p0),ConvertToCPP_ImPlot3DPoint(p1),*p0_clipped,*p1_clipped);
}
CIMGUI_API ImPlot3DRange* ImPlot3DRange_ImPlot3DRange_Nil(void)
{
    return IM_NEW(ImPlot3DRange)();
}
CIMGUI_API void ImPlot3DRange_destroy(ImPlot3DRange* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImPlot3DRange* ImPlot3DRange_ImPlot3DRange_double(double min,double max)
{
    return IM_NEW(ImPlot3DRange)(min,max);
}
CIMGUI_API void ImPlot3DRange_Expand(ImPlot3DRange* self,double value)
{
    return self->Expand(value);
}
CIMGUI_API bool ImPlot3DRange_Contains(ImPlot3DRange* self,double value)
{
    return self->Contains(value);
}
CIMGUI_API double ImPlot3DRange_Size(ImPlot3DRange* self)
{
    return self->Size();
}
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_Nil(void)
{
    return IM_NEW(ImPlot3DQuat)();
}
CIMGUI_API void ImPlot3DQuat_destroy(ImPlot3DQuat* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_doubledouble(double _x,double _y,double _z,double _w)
{
    return IM_NEW(ImPlot3DQuat)(_x,_y,_z,_w);
}
CIMGUI_API ImPlot3DQuat* ImPlot3DQuat_ImPlot3DQuat_doublePlot3DPoint(double _angle,const ImPlot3DPoint_c _axis)
{
    return IM_NEW(ImPlot3DQuat)(_angle,ConvertToCPP_ImPlot3DPoint(_axis));
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_FromTwoVectors(const ImPlot3DPoint_c v0,const ImPlot3DPoint_c v1)
{
    return ConvertFromCPP_ImPlot3DQuat(ImPlot3DQuat::FromTwoVectors(ConvertToCPP_ImPlot3DPoint(v0),ConvertToCPP_ImPlot3DPoint(v1)));
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_FromElAz(double elevation,double azimuth)
{
    return ConvertFromCPP_ImPlot3DQuat(ImPlot3DQuat::FromElAz(elevation,azimuth));
}
CIMGUI_API double ImPlot3DQuat_Length(ImPlot3DQuat* self)
{
    return self->Length();
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Normalized(ImPlot3DQuat* self)
{
    return ConvertFromCPP_ImPlot3DQuat(self->Normalized());
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Conjugate(ImPlot3DQuat* self)
{
    return ConvertFromCPP_ImPlot3DQuat(self->Conjugate());
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Inverse(ImPlot3DQuat* self)
{
    return ConvertFromCPP_ImPlot3DQuat(self->Inverse());
}
CIMGUI_API ImPlot3DQuat_c* ImPlot3DQuat_Normalize(ImPlot3DQuat* self)
{
    return reinterpret_cast<ImPlot3DQuat_c*>(&self->Normalize());
}
CIMGUI_API ImPlot3DQuat_c ImPlot3DQuat_Slerp(const ImPlot3DQuat_c q1,const ImPlot3DQuat_c q2,double t)
{
    return ConvertFromCPP_ImPlot3DQuat(ImPlot3DQuat::Slerp(ConvertToCPP_ImPlot3DQuat(q1),ConvertToCPP_ImPlot3DQuat(q2),t));
}
CIMGUI_API double ImPlot3DQuat_Dot(ImPlot3DQuat* self,const ImPlot3DQuat_c rhs)
{
    return self->Dot(ConvertToCPP_ImPlot3DQuat(rhs));
}
CIMGUI_API ImVec4_c ImPlot3DStyle_GetColor(ImPlot3DStyle* self,ImPlot3DCol idx)
{
    return ConvertFromCPP_ImVec4(self->GetColor(idx));
}
CIMGUI_API void ImPlot3DStyle_SetColor(ImPlot3DStyle* self,ImPlot3DCol idx,const ImVec4_c col)
{
    return self->SetColor(idx,ConvertToCPP_ImVec4(col));
}
CIMGUI_API ImPlot3DStyle* ImPlot3DStyle_ImPlot3DStyle_Nil(void)
{
    return IM_NEW(ImPlot3DStyle)();
}
CIMGUI_API void ImPlot3DStyle_destroy(ImPlot3DStyle* self)
{
    IM_DELETE(self);
}
CIMGUI_API ImPlot3DStyle* ImPlot3DStyle_ImPlot3DStyle_Plot3DStyle(const ImPlot3DStyle_c other)
{
    return IM_NEW(ImPlot3DStyle)(ConvertToCPP_ImPlot3DStyle(other));
}



