This interface defines how to draw this component to property panel.
27 {
29
30 ImGui::Spacing();
31 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2{ 0, 3.0f });
33
34 {
36
38
40
41 {
43 ImGui::PushID("DirectionalLightComponent Color R");
44
45 ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.8f, 0.1f, 0.15f, 1.0f });
46 ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.9f, 0.2f, 0.2f, 1.0f });
47 ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.8f, 0.1f, 0.15f, 1.0f });
49 ImGui::PopStyleColor(3);
50 ImGui::SameLine();
51 ImGui::PushItemWidth(itemWidth);
52 if(ImGui::SliderFloat(
"##R", &
m_DirectionalLight.color.x, 0.0f, 1.0f,
"%.2f", ImGuiSliderFlags_AlwaysClamp))
53 {
55 }
56 ImGui::PopItemWidth();
57 ImGui::SameLine();
59 {
62 }
63 ImGui::SameLine();
64 ImGui::PopID();
65 }
66
67 {
69 ImGui::PushID("DirectionalLightComponent Color G");
70
71 ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.2f, 0.7f, 0.2f, 1.0f });
72 ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.3f, 0.8f, 0.3f, 1.0f });
73 ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.2f, 0.7f, 0.2f, 1.0f });
75 ImGui::PopStyleColor(3);
76 ImGui::SameLine();
77 ImGui::PushItemWidth(itemWidth);
78 if(ImGui::SliderFloat(
"##G", &
m_DirectionalLight.color.y, 0.0f, 1.0f,
"%.2f", ImGuiSliderFlags_AlwaysClamp))
79 {
81 }
82 ImGui::PopItemWidth();
83 ImGui::SameLine();
85 {
88 }
89 ImGui::SameLine();
90 ImGui::PopID();
91 }
92
93 {
95 ImGui::PushID("DirectionalLightComponent Color B");
96
97 ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.1f, 0.25f, 0.8f, 1.0f });
98 ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.2f, 0.35f, 0.9f, 1.0f });
99 ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.1f, 0.25f, 0.8f, 1.0f });
101 ImGui::PopStyleColor(3);
102 ImGui::SameLine();
103 ImGui::PushItemWidth(itemWidth);
104 if(ImGui::SliderFloat(
"##B", &
m_DirectionalLight.color.z, 0.0f, 1.0f,
"%.2f", ImGuiSliderFlags_AlwaysClamp))
105 {
107 }
108 ImGui::PopItemWidth();
109 ImGui::SameLine();
111 {
114 }
115 ImGui::SameLine();
116 ImGui::PopID();
117 }
118
119 {
121 ImGui::PushID("DirectionalLightComponent Color Picker");
122
123 ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGui::GetStyle().Colors[ImGuiCol_WindowBg]);
124 if(ImGui::ColorEdit3(
"##", glm::value_ptr(
m_DirectionalLight.color), ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_PickerHueBar))
125 {
127 }
128 ImGui::SameLine();
130 {
133 }
134 ImGui::PopStyleColor();
135 ImGui::PopID();
136 }
137 });
138 }
139
140 {
142
145 if(ImGui::DragFloat(
"##", &
m_DirectionalLight.intensity, 0.1f, 0.0f, 10000.0f,
"%.2f", ImGuiSliderFlags_AlwaysClamp))
146 {
148 }
149 ImGui::PopItemWidth();
150 ImGui::SameLine();
152 {
155 }
156 });
157 }
158
159 ImGui::PopStyleVar();
160 ImGui::Spacing();
161 }
#define SPICES_PROFILE_ZONEN(...)
#define SPICES_PROFILE_ZONE
SpicesShader::DirectionalLight m_DirectionalLight
This DirectionalLight data this component handled.
static FrameInfo & Get()
Get FrameInfo.
std::shared_ptr< World > m_World
The shared pointer of specific world.
static ImVec2 GetLineItemSize()
Get Line Width's Square Size.
static bool DrawResetIcon(const bool &isMove)
Draw Reset Icon.
static void DrawPropertyItem(const std::string &itemName, float columeWidth, std::function< void()> nameFunc, std::function< void()> valFunc)
Draw a single property.