MeshLib Documentation
Loading...
Searching...
No Matches
ImGui Namespace Reference

Classes

struct  CustomStatePluginWindowParameters
 Structure that contains parameters for State plugin window with custom style. More...
 
struct  HistogramGridLine
 helper structure for PlotCustomHistogram describing background grid line and label More...
 
struct  MultiDragRes
 

Enumerations

enum class  PaletteChanges { None = 0 , Texture = 1 , Ranges = 2 , All = Texture | Ranges }
 
enum class  PlaneWidgetFlags { None = 0 , DisableVisibility = 1 }
 

Functions

bool Combo (const char *label, int *idx, const std::vector< std::string > &values)
 
bool Combo (const char *label, int *idx, std::function< const char *(int)> getter, int items_count)
 
bool ListBox (const char *label, int *idx, const std::vector< std::string > &values)
 
bool InputText (const char *label, std::string &str, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
 
MRVIEWER_API bool DragFloatValid (const char *label, float *value, float speed=1.0f, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max(), const char *format="%.3f", ImGuiSliderFlags flags=0)
 
MRVIEWER_API bool DragFloatValidLineWidth (const char *label, float *value)
 similar to ImGui::DragFloatValid but use available line width range
 
MRVIEWER_API MultiDragRes DragFloatValid2 (const char *label, float v[2], float v_speed=1.0f, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max(), const char *format="%.3f", ImGuiSliderFlags flags=0, const char *(*tooltips)[2]=nullptr)
 
MRVIEWER_API MultiDragRes DragFloatValid3 (const char *label, float v[3], float v_speed=1.0f, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max(), const char *format="%.3f", ImGuiSliderFlags flags=0, const char *(*tooltips)[3]=nullptr)
 
MRVIEWER_API bool DragIntValid (const char *label, int *value, float speed=1, int min=std::numeric_limits< int >::lowest(), int max=std::numeric_limits< int >::max(), const char *format="%d")
 
MRVIEWER_API MultiDragRes DragIntValid3 (const char *label, int v[3], float speed=1, int min=std::numeric_limits< int >::lowest(), int max=std::numeric_limits< int >::max(), const char *format="%d", const char *(*tooltips)[3]=nullptr)
 
MRVIEWER_API bool InputIntValid (const char *label, int *value, int min, int max, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
 
template<typename Getter , typename Setter >
bool Checkbox (const char *label, Getter get, Setter set)
 
MRVIEWER_API void PlotCustomHistogram (const char *str_id, std::function< float(int idx)> values_getter, std::function< void(int idx)> tooltip, std::function< void(int idx)> on_click, int values_count, int values_offset=0, float scale_min=FLT_MAX, float scale_max=FLT_MAX, ImVec2 frame_size=ImVec2(0, 0), int selectedBarId=-1, int hoveredBarId=-1, const std::vector< HistogramGridLine > &gridIndexes={}, const std::vector< HistogramGridLine > &gridValues={})
 
MRVIEWER_API bool BeginStatePlugin (const char *label, bool *open, float width)
 begin typical state plugin window
 
MRVIEWER_API ImVec2 GetDownPosition (const float width)
 
MRVIEWER_API float GetTitleBarHeght (float menuScaling)
 
MRVIEWER_API bool BeginCustomStatePlugin (const char *label, bool *open, const CustomStatePluginWindowParameters &params={})
 
MRVIEWER_API void EndCustomStatePlugin ()
 end state plugin window with custom style
 
MRVIEWER_API bool BeginModalNoAnimation (const char *label, bool *open=nullptr, ImGuiWindowFlags flags=0)
 starts modal window with no animation for background
 
MRVIEWER_API bool InputIntBitSet (const char *label, int *v, const MR::BitSet &bs, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
 same as ImGui::InputInt
 
MRVIEWER_API bool DragInputInt (const char *label, int *value, float speed=1, int min=std::numeric_limits< int >::lowest(), int max=std::numeric_limits< int >::max(), const char *format="%d", ImGuiSliderFlags flags=ImGuiSliderFlags_None)
 Combine of ImGui::DragInt and ImGui::InputInt.
 
MRVIEWER_API bool Link (const char *label, uint32_t color=MR::Color(60, 120, 255).getUInt32())
 Draw text as link, calls callback on click.
 
MRVIEWER_API PaletteChanges Palette (const char *label, MR::Palette &palette, std::string &presetName, float width, float menuScaling, bool *fixZero=nullptr, float speed=1.0f, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max())
 
MRVIEWER_API void Plane (MR::PlaneWidget &planeWidget, float menuScaling, PlaneWidgetFlags flags={})
 
MRVIEWER_API void Image (const MR::ImGuiImage &image, const ImVec2 &size, const MR::Color &multColor)
 draw image with Y-direction inversed up-down
 
MRVIEWER_API void Image (const MR::ImGuiImage &image, const ImVec2 &size, const ImVec4 &multColor={ 1, 1, 1, 1 })
 
MRVIEWER_API MR::Vector2i GetImagePointerCoord (const MR::ImGuiImage &image, const ImVec2 &size, const ImVec2 &imagePos)
 get image coordinates under cursor considering Y-direction flipping
 
MRVIEWER_API void Spinner (float radius, float scaling)
 draw spinner in given place, radius with respect to scaling
 
MRVIEWER_API bool ModalBigTitle (const char *title, float scaling)
 draw big title with close cross (i.e. for settings modal popup )
 
MRVIEWER_API bool ModalExitButton (float scaling)
 draw exit button with close cross (i.e. for settings modal popup )
 
float getExpSpeed (float val, float frac=0.01f, float min=1e-5f)
 get exponential speed for this value
 

Enumeration Type Documentation

◆ PaletteChanges

enum class ImGui::PaletteChanges
strong

return struct of ImGui::Palette
values are bits

Enumerator
None 
Texture 
Ranges 
All 

◆ PlaneWidgetFlags

enum class ImGui::PlaneWidgetFlags
strong
Enumerator
None 
DisableVisibility 

Function Documentation

◆ BeginCustomStatePlugin()

MRVIEWER_API bool ImGui::BeginCustomStatePlugin ( const char * label,
bool * open,
const CustomStatePluginWindowParameters & params = {} )

begin state plugin window with custom style. if you use this function, you must call EndCustomStatePlugin to close the plugin correctly. the flags ImGuiWindowFlags_NoScrollbar and ImGuiWindow_NoScrollingWithMouse are forced in the function.

◆ BeginModalNoAnimation()

MRVIEWER_API bool ImGui::BeginModalNoAnimation ( const char * label,
bool * open = nullptr,
ImGuiWindowFlags flags = 0 )

starts modal window with no animation for background

◆ BeginStatePlugin()

MRVIEWER_API bool ImGui::BeginStatePlugin ( const char * label,
bool * open,
float width )

begin typical state plugin window

◆ Checkbox()

template<typename Getter , typename Setter >
bool ImGui::Checkbox ( const char * label,
Getter get,
Setter set )
inline

◆ Combo() [1/2]

bool ImGui::Combo ( const char * label,
int * idx,
const std::vector< std::string > & values )
inline

◆ Combo() [2/2]

bool ImGui::Combo ( const char * label,
int * idx,
std::function< const char *(int)> getter,
int items_count )
inline

◆ DragFloatValid()

MRVIEWER_API bool ImGui::DragFloatValid ( const char * label,
float * value,
float speed = 1.0f,
float min = std::numeric_limits< float >::lowest(),
float max = std::numeric_limits< float >::max(),
const char * format = "%.3f",
ImGuiSliderFlags flags = 0 )

similar to ImGui::DragFloat but 1) value on output is forced to be in [min,max] range; 2) tooltip about Shift/Alt is shown when the item is active, and the valid range

◆ DragFloatValid2()

MRVIEWER_API MultiDragRes ImGui::DragFloatValid2 ( const char * label,
float v[2],
float v_speed = 1.0f,
float min = std::numeric_limits< float >::lowest(),
float max = std::numeric_limits< float >::max(),
const char * format = "%.3f",
ImGuiSliderFlags flags = 0,
const char *(*) tooltips[2] = nullptr )

similar to ImGui::DragFloat2 - two drag-float controls in a row, but 1) returns information whether an item was deactivated; 2) calls DragFloatValid inside instead of DragFloat; 3) permits showing tooltip for each item

◆ DragFloatValid3()

MRVIEWER_API MultiDragRes ImGui::DragFloatValid3 ( const char * label,
float v[3],
float v_speed = 1.0f,
float min = std::numeric_limits< float >::lowest(),
float max = std::numeric_limits< float >::max(),
const char * format = "%.3f",
ImGuiSliderFlags flags = 0,
const char *(*) tooltips[3] = nullptr )

similar to ImGui::DragFloat3 - three drag-float controls in a row, but 1) returns information whether an item was deactivated; 2) calls DragFloatValid inside instead of DragFloat; 3) permits showing tooltip for each item

◆ DragFloatValidLineWidth()

MRVIEWER_API bool ImGui::DragFloatValidLineWidth ( const char * label,
float * value )

similar to ImGui::DragFloatValid but use available line width range

◆ DragInputInt()

MRVIEWER_API bool ImGui::DragInputInt ( const char * label,
int * value,
float speed = 1,
int min = std::numeric_limits< int >::lowest(),
int max = std::numeric_limits< int >::max(),
const char * format = "%d",
ImGuiSliderFlags flags = ImGuiSliderFlags_None )

Combine of ImGui::DragInt and ImGui::InputInt.

Value can be changed by drag or "+"/"-" buttons

Note
used new visual style

◆ DragIntValid()

MRVIEWER_API bool ImGui::DragIntValid ( const char * label,
int * value,
float speed = 1,
int min = std::numeric_limits< int >::lowest(),
int max = std::numeric_limits< int >::max(),
const char * format = "%d" )

similar to ImGui::DragInt but 1) value on output is forced to be in [min,max] range; 2) tooltip about Shift/Alt is shown when the item is active, and the valid range

◆ DragIntValid3()

MRVIEWER_API MultiDragRes ImGui::DragIntValid3 ( const char * label,
int v[3],
float speed = 1,
int min = std::numeric_limits< int >::lowest(),
int max = std::numeric_limits< int >::max(),
const char * format = "%d",
const char *(*) tooltips[3] = nullptr )

similar to ImGui::DragInt3 - three drag-int controls in a row, but 1) returns information whether an item was deactivated; 2) calls DragIntValid inside instead of DragInt; 3) permits showing tooltip for each item

◆ EndCustomStatePlugin()

MRVIEWER_API void ImGui::EndCustomStatePlugin ( )

end state plugin window with custom style

◆ GetDownPosition()

MRVIEWER_API ImVec2 ImGui::GetDownPosition ( const float width)

returns the position of the window that will be located at the bottom of the viewport for a value pivot = ( 0.0f, 1.0f )

◆ getExpSpeed()

float ImGui::getExpSpeed ( float val,
float frac = 0.01f,
float min = 1e-5f )
inline

get exponential speed for this value

◆ GetImagePointerCoord()

MRVIEWER_API MR::Vector2i ImGui::GetImagePointerCoord ( const MR::ImGuiImage & image,
const ImVec2 & size,
const ImVec2 & imagePos )

get image coordinates under cursor considering Y-direction flipping

◆ GetTitleBarHeght()

MRVIEWER_API float ImGui::GetTitleBarHeght ( float menuScaling)

◆ Image() [1/2]

MRVIEWER_API void ImGui::Image ( const MR::ImGuiImage & image,
const ImVec2 & size,
const ImVec4 & multColor = { 1, 1, 1, 1 } )

◆ Image() [2/2]

MRVIEWER_API void ImGui::Image ( const MR::ImGuiImage & image,
const ImVec2 & size,
const MR::Color & multColor )

draw image with Y-direction inversed up-down

◆ InputIntBitSet()

MRVIEWER_API bool ImGui::InputIntBitSet ( const char * label,
int * v,
const MR::BitSet & bs,
int step = 1,
int step_fast = 100,
ImGuiInputTextFlags flags = 0 )

same as ImGui::InputInt

Input int according valid from BitSet

Returns
true if value was changed and valid
Note
if inputted invalid value, it will be changed to first upper valid value (or find_last)
value can't be changed if bs has no any valid value

◆ InputIntValid()

MRVIEWER_API bool ImGui::InputIntValid ( const char * label,
int * value,
int min,
int max,
int step = 1,
int step_fast = 100,
ImGuiInputTextFlags flags = 0 )

◆ InputText()

bool ImGui::InputText ( const char * label,
std::string & str,
ImGuiInputTextFlags flags = 0,
ImGuiInputTextCallback callback = NULL,
void * user_data = NULL )
inline

◆ Link()

MRVIEWER_API bool ImGui::Link ( const char * label,
uint32_t color = MR::Color(60, 120, 255).getUInt32() )

Draw text as link, calls callback on click.

Draw text as link, colored with blue, calls callback on click

◆ ListBox()

bool ImGui::ListBox ( const char * label,
int * idx,
const std::vector< std::string > & values )
inline

◆ ModalBigTitle()

MRVIEWER_API bool ImGui::ModalBigTitle ( const char * title,
float scaling )

draw big title with close cross (i.e. for settings modal popup )

◆ ModalExitButton()

MRVIEWER_API bool ImGui::ModalExitButton ( float scaling)

draw exit button with close cross (i.e. for settings modal popup )

◆ Palette()

MRVIEWER_API PaletteChanges ImGui::Palette ( const char * label,
MR::Palette & palette,
std::string & presetName,
float width,
float menuScaling,
bool * fixZero = nullptr,
float speed = 1.0f,
float min = std::numeric_limits< float >::lowest(),
float max = std::numeric_limits< float >::max() )

Helper palette widget, allows to change palette ranges and filter type
can load and save palette preset.

Parameters
presetNamestores the currently selected palette's preset name or empty string if the palette was edited by user
fixZeroif present shows checkbox to fix zero symmetrical palette
Returns
mask of changes, if it has PaletteChanges::Texture bit - object requires texture update, if it has PaletteChanges::Ranges uv coordinates should be recalculated and updated in object

◆ Plane()

MRVIEWER_API void ImGui::Plane ( MR::PlaneWidget & planeWidget,
float menuScaling,
PlaneWidgetFlags flags = {} )

Helper plane widget, allows to draw specified plain in the scene
can import plane from the scene, draw it with mouse or adjust with controls planeWidget stores the plane widget params

◆ PlotCustomHistogram()

MRVIEWER_API void ImGui::PlotCustomHistogram ( const char * str_id,
std::function< float(int idx)> values_getter,
std::function< void(int idx)> tooltip,
std::function< void(int idx)> on_click,
int values_count,
int values_offset = 0,
float scale_min = FLT_MAX,
float scale_max = FLT_MAX,
ImVec2 frame_size = ImVec2(0, 0),
int selectedBarId = -1,
int hoveredBarId = -1,
const std::vector< HistogramGridLine > & gridIndexes = {},
const std::vector< HistogramGridLine > & gridValues = {} )

draws a histogram

Parameters
selectedBarId(if not negative) the bar to highlight as selected
hoveredBarId(if not negative) the bar to highlight as hovered

◆ Spinner()

MRVIEWER_API void ImGui::Spinner ( float radius,
float scaling )

draw spinner in given place, radius with respect to scaling