editor running but not much happening yet
This commit is contained in:
+79
-78
@@ -1,15 +1,14 @@
|
||||
#include "stdafx.h"
|
||||
#include "ForceFieldWindow.h"
|
||||
|
||||
using namespace wiSceneComponents;
|
||||
using namespace wiECS;
|
||||
using namespace wiSceneSystem;
|
||||
|
||||
|
||||
ForceFieldWindow::ForceFieldWindow(wiGUI* gui) : GUI(gui)
|
||||
{
|
||||
assert(GUI && "Invalid GUI!");
|
||||
|
||||
force = nullptr;
|
||||
|
||||
|
||||
float screenW = (float)wiRenderer::GetDevice()->GetScreenWidth();
|
||||
float screenH = (float)wiRenderer::GetDevice()->GetScreenHeight();
|
||||
@@ -23,77 +22,77 @@ ForceFieldWindow::ForceFieldWindow(wiGUI* gui) : GUI(gui)
|
||||
float y = 10;
|
||||
float step = 35;
|
||||
|
||||
typeComboBox = new wiComboBox("Force Field type: ");
|
||||
typeComboBox->SetPos(XMFLOAT2(x, y += step));
|
||||
typeComboBox->SetSize(XMFLOAT2(300, 25));
|
||||
typeComboBox->OnSelect([&](wiEventArgs args) {
|
||||
if (force != nullptr && args.iValue >= 0)
|
||||
{
|
||||
switch (args.iValue)
|
||||
{
|
||||
case 0:
|
||||
force->type = ENTITY_TYPE_FORCEFIELD_POINT;
|
||||
break;
|
||||
case 1:
|
||||
force->type = ENTITY_TYPE_FORCEFIELD_PLANE;
|
||||
break;
|
||||
default:
|
||||
assert(0); // error
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
typeComboBox->AddItem("Point");
|
||||
typeComboBox->AddItem("Plane");
|
||||
typeComboBox->SetEnabled(false);
|
||||
typeComboBox->SetTooltip("Choose the force field type.");
|
||||
forceFieldWindow->AddWidget(typeComboBox);
|
||||
//typeComboBox = new wiComboBox("Force Field type: ");
|
||||
//typeComboBox->SetPos(XMFLOAT2(x, y += step));
|
||||
//typeComboBox->SetSize(XMFLOAT2(300, 25));
|
||||
//typeComboBox->OnSelect([&](wiEventArgs args) {
|
||||
// if (force != nullptr && args.iValue >= 0)
|
||||
// {
|
||||
// switch (args.iValue)
|
||||
// {
|
||||
// case 0:
|
||||
// force->type = ENTITY_TYPE_FORCEFIELD_POINT;
|
||||
// break;
|
||||
// case 1:
|
||||
// force->type = ENTITY_TYPE_FORCEFIELD_PLANE;
|
||||
// break;
|
||||
// default:
|
||||
// assert(0); // error
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
//typeComboBox->AddItem("Point");
|
||||
//typeComboBox->AddItem("Plane");
|
||||
//typeComboBox->SetEnabled(false);
|
||||
//typeComboBox->SetTooltip("Choose the force field type.");
|
||||
//forceFieldWindow->AddWidget(typeComboBox);
|
||||
|
||||
|
||||
gravitySlider = new wiSlider(-10, 10, 0, 100000, "Gravity: ");
|
||||
gravitySlider->SetSize(XMFLOAT2(200, 30));
|
||||
gravitySlider->SetPos(XMFLOAT2(x, y += step));
|
||||
gravitySlider->OnSlide([&](wiEventArgs args) {
|
||||
if (force != nullptr)
|
||||
{
|
||||
force->gravity = args.fValue;
|
||||
}
|
||||
});
|
||||
gravitySlider->SetEnabled(false);
|
||||
gravitySlider->SetTooltip("Set the amount of gravity. Positive values attract, negatives deflect.");
|
||||
forceFieldWindow->AddWidget(gravitySlider);
|
||||
//gravitySlider = new wiSlider(-10, 10, 0, 100000, "Gravity: ");
|
||||
//gravitySlider->SetSize(XMFLOAT2(200, 30));
|
||||
//gravitySlider->SetPos(XMFLOAT2(x, y += step));
|
||||
//gravitySlider->OnSlide([&](wiEventArgs args) {
|
||||
// if (force != nullptr)
|
||||
// {
|
||||
// force->gravity = args.fValue;
|
||||
// }
|
||||
//});
|
||||
//gravitySlider->SetEnabled(false);
|
||||
//gravitySlider->SetTooltip("Set the amount of gravity. Positive values attract, negatives deflect.");
|
||||
//forceFieldWindow->AddWidget(gravitySlider);
|
||||
|
||||
|
||||
rangeSlider = new wiSlider(0.0f, 100.0f, 10, 100000, "Range: ");
|
||||
rangeSlider->SetSize(XMFLOAT2(200, 30));
|
||||
rangeSlider->SetPos(XMFLOAT2(x, y += step));
|
||||
rangeSlider->OnSlide([&](wiEventArgs args) {
|
||||
if (force != nullptr)
|
||||
{
|
||||
force->range = args.fValue;
|
||||
}
|
||||
});
|
||||
rangeSlider->SetEnabled(false);
|
||||
rangeSlider->SetTooltip("Set the range of affection.");
|
||||
forceFieldWindow->AddWidget(rangeSlider);
|
||||
//rangeSlider = new wiSlider(0.0f, 100.0f, 10, 100000, "Range: ");
|
||||
//rangeSlider->SetSize(XMFLOAT2(200, 30));
|
||||
//rangeSlider->SetPos(XMFLOAT2(x, y += step));
|
||||
//rangeSlider->OnSlide([&](wiEventArgs args) {
|
||||
// if (force != nullptr)
|
||||
// {
|
||||
// force->range = args.fValue;
|
||||
// }
|
||||
//});
|
||||
//rangeSlider->SetEnabled(false);
|
||||
//rangeSlider->SetTooltip("Set the range of affection.");
|
||||
//forceFieldWindow->AddWidget(rangeSlider);
|
||||
|
||||
|
||||
addButton = new wiButton("Add Force Field");
|
||||
addButton->SetSize(XMFLOAT2(150, 30));
|
||||
addButton->SetPos(XMFLOAT2(x, y += step * 2));
|
||||
addButton->OnClick([](wiEventArgs args) {
|
||||
wiRenderer::Add(new ForceField);
|
||||
});
|
||||
addButton->SetEnabled(true);
|
||||
addButton->SetTooltip("Add new Force Field to the simulation.");
|
||||
forceFieldWindow->AddWidget(addButton);
|
||||
//addButton = new wiButton("Add Force Field");
|
||||
//addButton->SetSize(XMFLOAT2(150, 30));
|
||||
//addButton->SetPos(XMFLOAT2(x, y += step * 2));
|
||||
//addButton->OnClick([](wiEventArgs args) {
|
||||
// wiRenderer::Add(new ForceField);
|
||||
//});
|
||||
//addButton->SetEnabled(true);
|
||||
//addButton->SetTooltip("Add new Force Field to the simulation.");
|
||||
//forceFieldWindow->AddWidget(addButton);
|
||||
|
||||
|
||||
|
||||
forceFieldWindow->Translate(XMFLOAT3(810, 50, 0));
|
||||
forceFieldWindow->SetVisible(false);
|
||||
|
||||
SetForceField(nullptr);
|
||||
SetEntity(INVALID_ENTITY);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,25 +100,27 @@ ForceFieldWindow::~ForceFieldWindow()
|
||||
{
|
||||
}
|
||||
|
||||
void ForceFieldWindow::SetForceField(ForceField* force)
|
||||
void ForceFieldWindow::SetEntity(Entity entity)
|
||||
{
|
||||
if (this->force == force)
|
||||
return;
|
||||
this->entity = entity;
|
||||
|
||||
this->force = force;
|
||||
//if (this->force == force)
|
||||
// return;
|
||||
|
||||
if (force != nullptr)
|
||||
{
|
||||
typeComboBox->SetSelected(force->type == ENTITY_TYPE_FORCEFIELD_POINT ? 0 : 1);
|
||||
gravitySlider->SetValue(force->gravity);
|
||||
rangeSlider->SetValue(force->range);
|
||||
//this->force = force;
|
||||
|
||||
forceFieldWindow->SetEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
forceFieldWindow->SetEnabled(false);
|
||||
}
|
||||
//if (force != nullptr)
|
||||
//{
|
||||
// typeComboBox->SetSelected(force->type == ENTITY_TYPE_FORCEFIELD_POINT ? 0 : 1);
|
||||
// gravitySlider->SetValue(force->gravity);
|
||||
// rangeSlider->SetValue(force->range);
|
||||
|
||||
addButton->SetEnabled(true);
|
||||
// forceFieldWindow->SetEnabled(true);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// forceFieldWindow->SetEnabled(false);
|
||||
//}
|
||||
|
||||
//addButton->SetEnabled(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user