Patch Update - Light dans ImGui
Feat : + Fenêtre Light dans l'interface + Contrôle des lights (position, couleur)
This commit is contained in:
parent
064c34b6dc
commit
8d344dbfc7
@ -1448,4 +1448,19 @@ void ApplicationClass::SetLightPosition(int index, XMVECTOR position)
|
||||
|
||||
//set the position
|
||||
m_Lights[index]->SetPosition(lightPosition.x, lightPosition.y, lightPosition.z);
|
||||
}
|
||||
}
|
||||
|
||||
void ApplicationClass::DeleteLight(int index)
|
||||
{
|
||||
if (index < 0 || index >= m_Lights.size())
|
||||
{
|
||||
// Index out of bounds
|
||||
return;
|
||||
}
|
||||
|
||||
// Delete the light object
|
||||
delete m_Lights[index];
|
||||
|
||||
// Remove the light from the vector
|
||||
m_Lights.erase(m_Lights.begin() + index);
|
||||
}
|
||||
|
@ -84,6 +84,8 @@ public:
|
||||
void SetLightPosition(int index, XMVECTOR color);
|
||||
void SetLightColor(int index, XMVECTOR color);
|
||||
|
||||
void DeleteLight(int index);
|
||||
|
||||
std::vector<LightClass*> GetLights() const { return m_Lights; };
|
||||
|
||||
private:
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
@ -118,12 +118,12 @@
|
||||
<None Include="packages.config" />
|
||||
<None Include="reflection.ps" />
|
||||
<None Include="reflection.vs" />
|
||||
<FxCompile Include="specmap.ps">
|
||||
<None Include="specmap.ps">
|
||||
<FileType>Document</FileType>
|
||||
</FxCompile>
|
||||
<FxCompile Include="specmap.vs">
|
||||
</None>
|
||||
<None Include="specmap.vs">
|
||||
<FileType>Document</FileType>
|
||||
</FxCompile>
|
||||
</None>
|
||||
<None Include="texture.ps" />
|
||||
<None Include="texture.vs" />
|
||||
</ItemGroup>
|
||||
|
@ -14,3 +14,7 @@ Size=492,353
|
||||
Pos=892,19
|
||||
Size=418,94
|
||||
|
||||
[Window][Light]
|
||||
Pos=70,378
|
||||
Size=418,240
|
||||
|
||||
|
@ -216,8 +216,8 @@ void imguiManager::WidgetLightWindow(ApplicationClass* app)
|
||||
std::string headerName = "Light " + std::to_string(index);
|
||||
if (ImGui::CollapsingHeader(headerName.c_str()))
|
||||
{
|
||||
XMVECTOR position = light->GetPosition();
|
||||
XMVECTOR color = light->GetColor();
|
||||
XMVECTOR position = app->GetLightPosition(index);
|
||||
XMVECTOR color = app->GetLightColor(index);
|
||||
float pos[3] = { XMVectorGetX(position), XMVectorGetY(position), XMVectorGetZ(position) };
|
||||
float col[3] = { XMVectorGetX(color), XMVectorGetY(color), XMVectorGetZ(color) };
|
||||
|
||||
@ -226,12 +226,12 @@ void imguiManager::WidgetLightWindow(ApplicationClass* app)
|
||||
|
||||
if (ImGui::DragFloat3(posLabel.c_str(), pos))
|
||||
{
|
||||
light->SetPosition(XMVectorSet(pos[0], pos[1], pos[2], 0.0f));
|
||||
app->SetLightPosition(index, XMVectorSet(pos[0], pos[1], pos[2], 0.0f));
|
||||
}
|
||||
|
||||
if (ImGui::ColorEdit3(colLabel.c_str(), col))
|
||||
{
|
||||
light->SetColor(XMVectorSet(col[0], col[1], col[2], 0.0f));
|
||||
app->SetLightColor(index, XMVectorSet(col[0], col[1], col[2], 0.0f));
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
@ -246,7 +246,7 @@ void imguiManager::WidgetLightWindow(ApplicationClass* app)
|
||||
ImGui::Separator();
|
||||
}
|
||||
index++;
|
||||
})
|
||||
};
|
||||
|
||||
ImGui::End();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user