opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Functions
oscimgui.h File Reference
#include <liboscar/graphics/color.h>
#include <liboscar/maths/aabb.h>
#include <liboscar/maths/angle.h>
#include <liboscar/maths/circle.h>
#include <liboscar/maths/closed_interval.h>
#include <liboscar/maths/euler_angles.h>
#include <liboscar/maths/matrix4x4.h>
#include <liboscar/maths/rect.h>
#include <liboscar/maths/transform.h>
#include <liboscar/maths/vector.h>
#include <liboscar/platform/key.h>
#include <liboscar/platform/key_combination.h>
#include <liboscar/platform/resource_path.h>
#include <liboscar/utilities/copy_on_upd_ptr.h>
#include <liboscar/utilities/c_string_view.h>
#include <liboscar/utilities/flags.h>
#include <liboscar/utilities/uid.h>
#include <concepts>
#include <cstdarg>
#include <cstddef>
#include <functional>
#include <initializer_list>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <utility>
Include dependency graph for oscimgui.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  osc::ui::ContextConfiguration
 
class  osc::ui::Context
 
struct  osc::ui::ID
 
struct  osc::ui::TableColumnSortSpec
 
class  osc::ui::DrawListAPI
 
class  osc::ui::DrawListView
 
class  osc::ui::DrawList
 
struct  osc::ui::HittestResult
 
struct  osc::ui::GizmoOperationSnappingSteps
 
class  osc::ui::Gizmo
 

Namespaces

namespace  osc
 
namespace  osc::ui
 
namespace  osc::ui::detail
 
namespace  osc::ui::plot
 
namespace  osc::ui::plot::detail
 

Typedefs

using osc::ui::TreeNodeFlags = Flags< TreeNodeFlag >
 
using osc::ui::TabItemFlags = Flags< TabItemFlag >
 
using osc::ui::SliderFlags = Flags< SliderFlag >
 
using osc::ui::TextInputFlags = Flags< TextInputFlag >
 
using osc::ui::ComboFlags = Flags< ComboFlag >
 
using osc::ui::PanelFlags = Flags< PanelFlag >
 
using osc::ui::ChildPanelFlags = Flags< ChildPanelFlag >
 
using osc::ui::HoveredFlags = Flags< HoveredFlag >
 
using osc::ui::ItemFlags = Flags< ItemFlag >
 
using osc::ui::PopupFlags = Flags< PopupFlag >
 
using osc::ui::TableFlags = Flags< TableFlag >
 
using osc::ui::ColumnFlags = Flags< ColumnFlag >
 
using osc::ui::GizmoOperations = Flags< GizmoOperation >
 

Enumerations

enum class  osc::ui::TreeNodeFlag : unsigned {
  osc::ui::None = 0 , osc::ui::DefaultOpen = 1<<0 , osc::ui::OpenOnArrow = 1<<1 , osc::ui::Leaf = 1<<2 ,
  osc::ui::Bullet = 1<<3 , osc::ui::DrawLinesToNodes = 1<<4 , osc::ui::DrawLinesFull = 1<<5 , osc::ui::NUM_FLAGS = 6
}
 
enum class  osc::ui::TabItemFlag : unsigned {
  osc::ui::None = 0 , osc::ui::NoReorder = 1<<0 , osc::ui::NoCloseButton = 1<<1 , osc::ui::UnsavedDocument = 1<<2 ,
  osc::ui::SetSelected = 1<<3 , osc::ui::NUM_FLAGS = 4
}
 
enum class  osc::ui::MouseButton { osc::ui::Left , osc::ui::Right , osc::ui::Middle , osc::ui::NUM_OPTIONS }
 
enum class  osc::ui::SliderFlag : unsigned {
  osc::ui::None = 0 , osc::ui::Logarithmic = 1<<0 , osc::ui::AlwaysClamp = 1<<1 , osc::ui::NoInput = 1<<2 ,
  osc::ui::NUM_FLAGS = 3
}
 
enum class  osc::ui::DataType { osc::ui::Float , osc::ui::NUM_OPTIONS }
 
enum class  osc::ui::TextInputFlag : unsigned { osc::ui::None = 0 , osc::ui::ReadOnly = 1<<0 , osc::ui::EnterReturnsTrue = 1<<1 , osc::ui::NUM_FLAGS = 2 }
 
enum class  osc::ui::ComboFlag : unsigned { osc::ui::None = 0 , osc::ui::NoArrowButton = 1<<0 , osc::ui::NUM_FLAGS = 1 }
 
enum class  osc::ui::PanelFlag : unsigned {
  osc::ui::None = 0 , osc::ui::NoMove = 1<<0 , osc::ui::NoTitleBar = 1<<1 , osc::ui::NoResize = 1<<2 ,
  osc::ui::NoSavedSettings = 1<<3 , osc::ui::NoScrollbar = 1<<4 , osc::ui::NoInputs = 1<<5 , osc::ui::NoBackground = 1<<6 ,
  osc::ui::NoCollapse = 1<<7 , osc::ui::NoDecoration = 1<<8 , osc::ui::NoDocking = 1<<9 , osc::ui::NoNav = 1<<10 ,
  osc::ui::MenuBar = 1<<11 , osc::ui::AlwaysAutoResize = 1<<12 , osc::ui::HorizontalScrollbar = 1<<13 , osc::ui::AlwaysVerticalScrollbar = 1<<14 ,
  osc::ui::NUM_FLAGS = 15
}
 
enum class  osc::ui::ChildPanelFlag : unsigned { osc::ui::None = 0 , osc::ui::Border = 1<<0 , osc::ui::NUM_FLAGS = 1 }
 
enum class  osc::ui::Conditional { osc::ui::Always , osc::ui::Once , osc::ui::Appearing , osc::ui::NUM_OPTIONS }
 
enum class  osc::ui::HoveredFlag : unsigned {
  osc::ui::None = 0 , osc::ui::AllowWhenDisabled = 1<<0 , osc::ui::AllowWhenBlockedByPopup = 1<<1 , osc::ui::AllowWhenBlockedByActiveItem = 1<<2 ,
  osc::ui::AllowWhenOverlapped = 1<<3 , osc::ui::DelayNormal = 1<<4 , osc::ui::ForTooltip = 1<<5 , osc::ui::RootAndChildPanels = 1<<6 ,
  osc::ui::ChildPanels = 1<<7 , osc::ui::NUM_FLAGS = 8
}
 
enum class  osc::ui::ItemFlag : unsigned { osc::ui::None = 0 , osc::ui::Disabled = 1<<0 , osc::ui::Inputable = 1<<1 , osc::ui::NUM_FLAGS = 2 }
 
enum class  osc::ui::ColorVar {
  osc::ui::Text , osc::ui::Button , osc::ui::ButtonActive , osc::ui::ButtonHovered ,
  osc::ui::FrameBg , osc::ui::PopupBg , osc::ui::FrameBgHovered , osc::ui::FrameBgActive ,
  osc::ui::CheckMark , osc::ui::SliderGrab , osc::ui::PanelBg , osc::ui::NUM_OPTIONS
}
 
enum class  osc::ui::StyleVar {
  osc::ui::Alpha , osc::ui::ButtonTextAlign , osc::ui::CellPadding , osc::ui::DisabledAlpha ,
  osc::ui::FramePadding , osc::ui::FrameRounding , osc::ui::ItemInnerSpacing , osc::ui::ItemSpacing ,
  osc::ui::TabRounding , osc::ui::PanelPadding , osc::ui::NUM_OPTIONS
}
 
enum class  osc::ui::PopupFlag : unsigned { osc::ui::None = 0 , osc::ui::MouseButtonLeft = 1<<0 , osc::ui::MouseButtonRight = 1<<1 , osc::ui::NUM_FLAGS = 2 }
 
enum class  osc::ui::TableFlag : unsigned {
  osc::ui::None = 0 , osc::ui::BordersInner = 1<<0 , osc::ui::BordersInnerV = 1<<1 , osc::ui::NoSavedSettings = 1<<2 ,
  osc::ui::PadOuterX = 1<<3 , osc::ui::Resizable = 1<<4 , osc::ui::ScrollY = 1<<5 , osc::ui::SizingStretchProp = 1<<6 ,
  osc::ui::SizingStretchSame = 1<<7 , osc::ui::Sortable = 1<<8 , osc::ui::SortTristate = 1<<9 , osc::ui::NUM_FLAGS = 10
}
 
enum class  osc::ui::SortDirection { osc::ui::None , osc::ui::Ascending , osc::ui::Descending , osc::ui::NUM_OPTIONS }
 
enum class  osc::ui::ColumnFlag : unsigned { osc::ui::None = 0 , osc::ui::NoSort = 1<<0 , osc::ui::WidthStretch = 1<<1 , osc::ui::NUM_FLAGS = 2 }
 
enum class  osc::ui::GizmoOperation : unsigned {
  osc::ui::None = 0 , osc::ui::Translate = 1<<0 , osc::ui::Rotate = 1<<1 , osc::ui::Scale = 1<<2 ,
  osc::ui::NUM_FLAGS = 3
}
 
enum class  osc::ui::GizmoMode { osc::ui::Local , osc::ui::World , osc::ui::NUM_OPTIONS }
 

Functions

void osc::ui::align_text_to_frame_padding ()
 
void osc::ui::draw_text (CStringView)
 
template<typename... Args>
void osc::ui::draw_text (CStringView fmt, Args &&... args)
 
void osc::ui::draw_text_disabled (CStringView)
 
template<typename... Args>
void osc::ui::draw_text_disabled (CStringView fmt, Args &&... args)
 
void osc::ui::draw_text_wrapped (CStringView)
 
template<typename... Args>
void osc::ui::draw_text_wrapped (CStringView fmt, Args &&... args)
 
void osc::ui::draw_text_bullet_pointed (CStringView)
 
bool osc::ui::draw_text_link (CStringView)
 
void osc::ui::draw_bullet_point ()
 
bool osc::ui::draw_tree_node_ex (CStringView, TreeNodeFlags={})
 
float osc::ui::get_tree_node_to_label_spacing ()
 
void osc::ui::tree_pop ()
 
void osc::ui::draw_progress_bar (float fraction)
 
bool osc::ui::begin_menu (CStringView sv, bool enabled=true)
 
void osc::ui::end_menu ()
 
bool osc::ui::draw_menu_item (CStringView label, std::optional< KeyCombination > shortcut={}, bool selected=false, bool enabled=true)
 
bool osc::ui::draw_menu_item (CStringView label, std::optional< KeyCombination > shortcut, bool *p_selected, bool enabled=true)
 
bool osc::ui::begin_tab_bar (CStringView str_id)
 
void osc::ui::end_tab_bar ()
 
bool osc::ui::begin_tab_item (CStringView label, bool *p_open=nullptr, TabItemFlags={})
 
void osc::ui::end_tab_item ()
 
bool osc::ui::draw_tab_item_button (CStringView label)
 
void osc::ui::set_num_columns (int count=1, std::optional< CStringView > id=std::nullopt, bool border=true)
 
float osc::ui::get_column_width (int column_index=-1)
 
void osc::ui::next_column ()
 
void osc::ui::same_line (float offset_from_start_x=0.0f, float spacing=-1.0f)
 
bool osc::ui::is_mouse_clicked (MouseButton, bool repeat=false)
 
bool osc::ui::is_mouse_clicked (MouseButton, ID owner_id)
 
bool osc::ui::is_mouse_released (MouseButton)
 
bool osc::ui::is_mouse_down (MouseButton)
 
bool osc::ui::is_mouse_dragging (MouseButton, float lock_threshold=-1.0f)
 
bool osc::ui::draw_selectable (CStringView label, bool *p_selected)
 
bool osc::ui::draw_selectable (CStringView label, bool selected=false)
 
bool osc::ui::draw_checkbox (CStringView label, bool *v)
 
bool osc::ui::draw_float_slider (CStringView label, float *v, float v_min, float v_max, const char *format="%.3f", SliderFlags={})
 
bool osc::ui::draw_scalar_input (CStringView label, DataType data_type, void *p_data, const void *p_step=nullptr, const void *p_step_fast=nullptr, const char *format=nullptr, TextInputFlags={})
 
bool osc::ui::draw_int_input (CStringView label, int *v, int step=1, int step_fast=100, TextInputFlags={})
 
bool osc::ui::draw_size_t_input (CStringView label, size_t *v, size_t step=1, size_t step_fast=100, TextInputFlags={})
 
bool osc::ui::draw_double_input (CStringView label, double *v, double step=0.0, double step_fast=0.0, const char *format="%.6f", TextInputFlags={})
 
bool osc::ui::draw_float_input (CStringView label, float *v, float step=0.0f, float step_fast=0.0f, const char *format="%.3f", TextInputFlags={})
 
bool osc::ui::draw_float3_input (CStringView label, float v[3], const char *format="%.3f", TextInputFlags={})
 
bool osc::ui::draw_vector3_input (CStringView label, Vector3 &v, const char *format="%.3f", TextInputFlags={})
 
bool osc::ui::draw_rgb_color_editor (CStringView label, Color &color)
 
bool osc::ui::draw_rgba_color_editor (CStringView label, Color &color)
 
bool osc::ui::draw_button (CStringView label, const Vector2 &size={})
 
bool osc::ui::draw_small_button (CStringView label)
 
bool osc::ui::draw_arrow_down_button (CStringView label)
 
bool osc::ui::draw_invisible_button (CStringView label, Vector2 size={})
 
bool osc::ui::draw_radio_button (CStringView label, bool active)
 
bool osc::ui::draw_collapsing_header (CStringView label, TreeNodeFlags={})
 
void osc::ui::draw_dummy (const Vector2 &size)
 
void osc::ui::draw_vertical_spacer (float num_lines)
 
bool osc::ui::begin_combobox (CStringView label, CStringView preview_value, ComboFlags={})
 
void osc::ui::end_combobox ()
 
bool osc::ui::begin_listbox (CStringView label)
 
void osc::ui::end_listbox ()
 
void osc::ui::enable_dockspace_over_main_window ()
 
bool osc::ui::begin_panel (CStringView name, bool *p_open=nullptr, PanelFlags={})
 
void osc::ui::end_panel ()
 
bool osc::ui::begin_child_panel (CStringView str_id, const Vector2 &size={}, ChildPanelFlags child_flags={}, PanelFlags panel_flags={})
 
void osc::ui::end_child_panel ()
 
void osc::ui::close_current_popup ()
 
void osc::ui::detail::set_tooltip_v (CStringView fmt, va_list)
 
void osc::ui::set_tooltip (CStringView fmt,...)
 
void osc::ui::set_scroll_y_here ()
 
float osc::ui::get_frame_height ()
 
Vector2 osc::ui::get_content_region_available ()
 
Vector2 osc::ui::get_cursor_start_panel_position ()
 
Vector2 osc::ui::get_cursor_panel_position ()
 
void osc::ui::set_cursor_panel_position (Vector2)
 
float osc::ui::get_cursor_panel_x ()
 
void osc::ui::set_cursor_panel_x (float local_x)
 
Vector2 osc::ui::get_cursor_ui_position ()
 
void osc::ui::set_cursor_ui_position (Vector2)
 
void osc::ui::set_next_panel_ui_position (Vector2, Conditional=Conditional::Always, Vector2 pivot={})
 
void osc::ui::set_next_panel_size (Vector2 size, Conditional=Conditional::Always)
 
void osc::ui::set_next_panel_size_constraints (Vector2 size_min, Vector2 size_max)
 
void osc::ui::set_next_panel_bg_alpha (float alpha)
 
bool osc::ui::is_panel_hovered (HoveredFlags={})
 
void osc::ui::begin_disabled (bool disabled=true)
 
void osc::ui::end_disabled ()
 
bool osc::ui::begin_tooltip_nowrap ()
 
void osc::ui::end_tooltip_nowrap ()
 
void osc::ui::push_id (UID)
 
void osc::ui::push_id (int)
 
template<std::integral T>
void osc::ui::push_id (T number)
 
void osc::ui::push_id (std::string_view)
 
void osc::ui::push_id (const void *)
 
void osc::ui::pop_id ()
 
ID osc::ui::get_id (std::string_view)
 
void osc::ui::set_next_item_size (Rect)
 
bool osc::ui::add_item (Rect bounds, ID)
 
bool osc::ui::is_item_hoverable (Rect bounds, ID)
 
void osc::ui::draw_separator ()
 
void osc::ui::start_new_line ()
 
void osc::ui::indent (float indent_w=0.0f)
 
void osc::ui::unindent (float indent_w=0.0f)
 
void osc::ui::set_keyboard_focus_here ()
 
bool osc::ui::is_key_pressed (Key, bool repeat=true)
 
bool osc::ui::is_key_released (Key)
 
bool osc::ui::is_key_down (Key)
 
Color osc::ui::get_style_color (ColorVar)
 
Vector2 osc::ui::get_style_frame_padding ()
 
float osc::ui::get_style_frame_border_size ()
 
Vector2 osc::ui::get_style_panel_padding ()
 
Vector2 osc::ui::get_style_item_spacing ()
 
Vector2 osc::ui::get_style_item_inner_spacing ()
 
float osc::ui::get_style_alpha ()
 
float osc::ui::get_framerate ()
 
bool osc::ui::wants_keyboard ()
 
void osc::ui::push_style_var (StyleVar, Vector2)
 
void osc::ui::push_style_var (StyleVar, float)
 
void osc::ui::pop_style_var (int count=1)
 
void osc::ui::open_popup (CStringView str_id, PopupFlags={})
 
bool osc::ui::begin_popup (CStringView str_id, PanelFlags={})
 
bool osc::ui::begin_popup_context_menu (CStringView str_id={}, PopupFlags=PopupFlag::MouseButtonRight)
 
bool osc::ui::begin_popup_modal (CStringView name, bool *p_open=nullptr, PanelFlags={})
 
void osc::ui::end_popup ()
 
Vector2 osc::ui::get_mouse_ui_position ()
 
float osc::ui::get_mouse_wheel_amount ()
 
bool osc::ui::begin_menu_bar ()
 
void osc::ui::end_menu_bar ()
 
void osc::ui::hide_mouse_cursor ()
 
void osc::ui::show_mouse_cursor ()
 
void osc::ui::set_next_item_width (float item_width)
 
void osc::ui::set_next_item_open (bool is_open)
 
void osc::ui::push_item_flag (ItemFlags flags, bool enabled)
 
void osc::ui::pop_item_flag ()
 
bool osc::ui::is_item_clicked (MouseButton=MouseButton::Left)
 
bool osc::ui::is_item_hovered (HoveredFlags={})
 
bool osc::ui::is_item_deactivated_after_edit ()
 
Rect osc::ui::get_item_ui_rect ()
 
Vector2 osc::ui::get_item_top_left_ui_position ()
 
Vector2 osc::ui::get_item_bottom_right_ui_position ()
 
bool osc::ui::begin_table (CStringView str_id, int column, TableFlags={}, const Vector2 &outer_size={}, float inner_width=0.0f)
 
void osc::ui::table_setup_scroll_freeze (int cols, int rows)
 
bool osc::ui::table_column_sort_specs_are_dirty ()
 
std::vector< TableColumnSortSpecosc::ui::get_table_column_sort_specs ()
 
void osc::ui::table_headers_row ()
 
bool osc::ui::table_set_column_index (int column_n)
 
void osc::ui::table_next_row ()
 
void osc::ui::table_setup_column (CStringView label, ColumnFlags={}, float init_width_or_weight=0.0f, ID=ID{})
 
void osc::ui::end_table ()
 
void osc::ui::push_style_color (ColorVar, const Color &)
 
void osc::ui::pop_style_color (int count=1)
 
Color osc::ui::get_color (ColorVar)
 
float osc::ui::get_text_line_height_in_current_panel ()
 
float osc::ui::get_text_line_height_with_spacing_in_current_panel ()
 
float osc::ui::get_font_base_size ()
 
float osc::ui::get_font_base_size_with_spacing ()
 
std::optional< Texture2Dosc::ui::get_font_texture ()
 
Vector2 osc::ui::calc_text_size (CStringView text, bool hide_text_after_double_hash=false)
 
Vector2 osc::ui::get_panel_size ()
 
DrawListView osc::ui::get_panel_draw_list ()
 
DrawListView osc::ui::get_foreground_draw_list ()
 
void osc::ui::show_demo_panel ()
 
void osc::ui::apply_dark_theme ()
 
bool osc::ui::update_polar_camera_from_keyboard_inputs (PolarPerspectiveCamera &, const Rect &viewport_rect, std::optional< AABB > maybe_scene_world_space_aabb)
 
bool osc::ui::update_polar_camera_from_all_inputs (PolarPerspectiveCamera &, const Rect &viewport_rect, std::optional< AABB > maybe_scene_world_space_aabb)
 
void osc::ui::update_camera_from_all_inputs (Camera &, EulerAngles &)
 
Rect osc::ui::get_content_region_available_ui_rect ()
 
void osc::ui::draw_image (const Texture2D &texture, std::optional< Vector2 > dimensions=std::nullopt, const Rect &region_uv_coordinates=Rect::from_corners({0.0f, 0.0f}, {1.0f, 1.0f}))
 
void osc::ui::draw_image (const RenderTexture &)
 
void osc::ui::draw_image (const RenderTexture &, Vector2 dimensions)
 
Vector2 osc::ui::calc_button_size (CStringView)
 
float osc::ui::calc_button_width (CStringView)
 
bool osc::ui::draw_button_nobg (CStringView, Vector2 dimensions={0.0f, 0.0f})
 
bool osc::ui::draw_image_button (CStringView, const Texture2D &, Vector2 dimensions, const Rect &texture_coordinates)
 
bool osc::ui::draw_image_button (CStringView, const Texture2D &, Vector2 dimensions)
 
Rect osc::ui::get_last_drawn_item_ui_rect ()
 
Rect osc::ui::get_last_drawn_item_screen_rect ()
 
void osc::ui::add_screenshot_annotation_to_last_drawn_item (std::string_view label)
 
HittestResult osc::ui::hittest_last_drawn_item ()
 
HittestResult osc::ui::hittest_last_drawn_item (float drag_threshold)
 
bool osc::ui::any_of_keys_down (std::span< const Key >)
 
bool osc::ui::any_of_keys_down (std::initializer_list< const Key >)
 
bool osc::ui::any_of_keys_pressed (std::span< const Key >)
 
bool osc::ui::any_of_keys_pressed (std::initializer_list< const Key >)
 
bool osc::ui::is_ctrl_down ()
 
bool osc::ui::is_ctrl_or_super_down ()
 
bool osc::ui::is_shift_down ()
 
bool osc::ui::is_alt_down ()
 
bool osc::ui::is_mouse_released_without_dragging (MouseButton)
 
bool osc::ui::is_mouse_released_without_dragging (MouseButton, float drag_threshold)
 
bool osc::ui::is_mouse_dragging_with_any_button_down ()
 
void osc::ui::begin_tooltip (std::optional< float > wrap_width=std::nullopt)
 
void osc::ui::end_tooltip (std::optional< float > wrap_width=std::nullopt)
 
void osc::ui::draw_tooltip_header_text (CStringView)
 
void osc::ui::draw_tooltip_description_spacer ()
 
void osc::ui::draw_tooltip_description_text (CStringView)
 
void osc::ui::draw_tooltip_body_only (CStringView)
 
void osc::ui::draw_tooltip_body_only_if_item_hovered (CStringView, HoveredFlags=HoveredFlag::ForTooltip)
 
void osc::ui::draw_tooltip (CStringView header, CStringView description={})
 
void osc::ui::draw_tooltip_if_item_hovered (CStringView header, CStringView description={}, HoveredFlags=HoveredFlag::ForTooltip)
 
void osc::ui::draw_help_marker (CStringView header, CStringView description)
 
void osc::ui::draw_help_marker (CStringView)
 
bool osc::ui::draw_string_input (CStringView label, std::string &edited_string, TextInputFlags={})
 
bool osc::ui::draw_string_input_with_hint (CStringView label, CStringView hint, std::string &edited_string, TextInputFlags={})
 
bool osc::ui::draw_float_meters_input (CStringView label, float &v, float step=0.0f, float step_fast=0.0f, TextInputFlags={})
 
bool osc::ui::draw_float3_meters_input (CStringView label, Vector3 &, TextInputFlags={})
 
bool osc::ui::draw_float_meters_slider (CStringView label, float &v, float v_min, float v_max, SliderFlags flags={})
 
bool osc::ui::draw_float_kilogram_input (CStringView label, float &v, float step=0.0f, float step_fast=0.0f, TextInputFlags={})
 
bool osc::ui::draw_angle_input (CStringView label, Radians &v)
 
bool osc::ui::draw_angle3_input (CStringView label, Vector< Radians, 3 > &, CStringView format="%.3f")
 
bool osc::ui::draw_angle_slider (CStringView label, Radians &v, Radians min, Radians max)
 
PanelFlags osc::ui::get_minimal_panel_flags ()
 
bool osc::ui::main_window_has_workspace ()
 
Rect osc::ui::get_main_window_workspace_ui_rect ()
 
Rect osc::ui::get_main_window_workspace_screen_space_rect ()
 
Vector2 osc::ui::get_main_window_workspace_dimensions ()
 
float osc::ui::get_main_window_workspace_aspect_ratio ()
 
bool osc::ui::is_mouse_in_main_window_workspace ()
 
bool osc::ui::begin_main_window_top_bar (CStringView label, float height=ui::get_frame_height(), PanelFlags={PanelFlag::NoScrollbar, PanelFlag::NoSavedSettings, PanelFlag::MenuBar})
 
bool osc::ui::begin_main_window_bottom_bar (CStringView)
 
bool osc::ui::draw_button_centered (CStringView)
 
void osc::ui::draw_text_centered (CStringView)
 
void osc::ui::draw_text_panel_centered (CStringView)
 
void osc::ui::draw_text_disabled_and_centered (CStringView)
 
void osc::ui::draw_text_disabled_and_panel_centered (CStringView)
 
void osc::ui::draw_text_column_centered (CStringView)
 
void osc::ui::draw_text_faded (CStringView)
 
void osc::ui::draw_text_warning (CStringView)
 
bool osc::ui::should_save_last_drawn_item_value ()
 
void osc::ui::pop_item_flags (int n=1)
 
bool osc::ui::draw_combobox (CStringView label, size_t *current, size_t size, const std::function< CStringView(size_t)> &accessor)
 
bool osc::ui::draw_combobox (CStringView label, size_t *current, std::span< const CStringView > items)
 
void osc::ui::draw_vertical_separator ()
 
void osc::ui::draw_same_line_with_vertical_separator ()
 
bool osc::ui::draw_float_circular_slider (CStringView label, float *v, float min, float max, CStringView format="%.3f", SliderFlags={})
 
bool osc::ui::update_polar_camera_from_mouse_inputs (PolarPerspectiveCamera &, Vector2 viewport_dimensions)
 
constexpr float osc::ui::gizmo_annotation_offset ()
 
bool osc::ui::draw_gizmo_mode_selector (Gizmo &)
 
bool osc::ui::draw_gizmo_mode_selector (GizmoMode &)
 
bool osc::ui::draw_gizmo_operation_selector (Gizmo &, bool can_translate=true, bool can_rotate=true, bool can_scale=true, CStringView translate_button_text="T", CStringView rotate_button_text="R", CStringView scale_button_text="S")
 
bool osc::ui::draw_gizmo_operation_selector (GizmoOperation &, bool can_translate=true, bool can_rotate=true, bool can_scale=true, CStringView translate_button_text="T", CStringView rotate_button_text="R", CStringView scale_button_text="S")