Euphoria
Main Page
Related Pages
Topics
Namespaces
Concepts
Classes
Files
File List
File Members
libs
imgui
src
eu
imgui
scurve.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "dear_imgui/imgui.h"
4
5
namespace
eu::core
6
{
7
struct
SCurve;
8
}
9
10
namespace
eu::imgui
11
{
12
14
struct
SCurveGuiState
15
{
16
ImVec2
drag
= {0.5f, 0.5f};
17
18
SCurveGuiState
() =
default
;
19
SCurveGuiState
(
float
x,
float
y);
20
21
static
SCurveGuiState
light_curve
();
22
23
std::vector<ImVec2>
point_cache
;
24
};
25
27
struct
SCurveImguiSettings
28
{
29
bool
widget_border
=
false
;
30
ImVec2
widget_size
=
ImVec2
{100, 100};
31
32
float
drag_radius
= 10.0f;
33
ImU32
drag_color
=
IM_COL32
(100, 0, 0, 255);
34
35
float
point_radius
= 3.0f;
36
ImU32
point_color
=
IM_COL32
(0, 100, 0, 255);
37
bool
draw_points
=
false
;
38
39
ImGuiMouseButton_
button
=
ImGuiMouseButton_Left
;
40
41
ImU32
background_color
=
IM_COL32
(50, 50, 50, 255);
42
ImU32
line_color
=
IM_COL32
(100, 100, 100, 255);
43
44
std::size_t
num_points
= 21;
45
};
46
47
enum class
FlipX
48
{
49
no
,
yes
50
};
51
52
bool
imgui_s_curve_editor
(
const
char
*
title
,
core::SCurve
*
scurve
,
SCurveGuiState
* gui,
FlipX
flip_x
,
const
SCurveImguiSettings
& settings,
bool
force_init_curve
);
53
58
}
// namespace klotter
eu::core
Definition
color.h:4
eu::imgui
Definition
scurve.h:11
eu::imgui::FlipX
FlipX
Definition
scurve.h:48
eu::imgui::FlipX::no
@ no
eu::imgui::FlipX::yes
@ yes
eu::imgui::imgui_s_curve_editor
bool imgui_s_curve_editor(const char *title, core::SCurve *scurve, SCurveGuiState *gui, FlipX flip_x, const SCurveImguiSettings &settings, bool force_init_curve)
eu::R
A (inclusive) range between two values.
Definition
range.h:19
eu::core::SCurve
Contains the parameters for an S-Curve.
Definition
scurve.h:15
eu::imgui::SCurveGuiState
Represents the GUI state for an S-curve.
Definition
scurve.h:15
eu::imgui::SCurveGuiState::drag
ImVec2 drag
the gui data
Definition
scurve.h:16
eu::imgui::SCurveGuiState::light_curve
static SCurveGuiState light_curve()
eu::imgui::SCurveGuiState::SCurveGuiState
SCurveGuiState()=default
eu::imgui::SCurveGuiState::SCurveGuiState
SCurveGuiState(float x, float y)
eu::imgui::SCurveGuiState::point_cache
std::vector< ImVec2 > point_cache
Definition
scurve.h:23
eu::imgui::SCurveImguiSettings
Configuration settings for displaying and interacting with an S-curve widget.
Definition
scurve.h:28
eu::imgui::SCurveImguiSettings::draw_points
bool draw_points
Definition
scurve.h:37
eu::imgui::SCurveImguiSettings::drag_color
ImU32 drag_color
Definition
scurve.h:33
eu::imgui::SCurveImguiSettings::widget_size
ImVec2 widget_size
size of the widget
Definition
scurve.h:30
eu::imgui::SCurveImguiSettings::button
ImGuiMouseButton_ button
Definition
scurve.h:39
eu::imgui::SCurveImguiSettings::num_points
std::size_t num_points
number of points to draw, more points means smoother curve, but more expensive
Definition
scurve.h:44
eu::imgui::SCurveImguiSettings::point_color
ImU32 point_color
Definition
scurve.h:36
eu::imgui::SCurveImguiSettings::line_color
ImU32 line_color
Definition
scurve.h:42
eu::imgui::SCurveImguiSettings::background_color
ImU32 background_color
Definition
scurve.h:41
eu::imgui::SCurveImguiSettings::drag_radius
float drag_radius
Definition
scurve.h:32
eu::imgui::SCurveImguiSettings::widget_border
bool widget_border
draw a border around the widget
Definition
scurve.h:29
eu::imgui::SCurveImguiSettings::point_radius
float point_radius
Definition
scurve.h:35
Generated by
1.9.8