Merge pull request #14 from andreja6/raycasting-part-selection

Added delete functionality
This commit is contained in:
andreja6
2018-04-26 13:35:15 -07:00
committed by GitHub

View File

@@ -262,6 +262,29 @@ void CameraButtonListener::onButton1MouseClick(BaseButtonInstance* button)
}
class DeleteListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
};
void DeleteListener::onButton1MouseClick(BaseButtonInstance* button)
{
if(selectedInstance != NULL)
{
for(size_t i = 0; i < instances.size(); i++)
{
if(instances.at(i) == selectedInstance)
{
Instance* deleting = instances.at(i);
instances.erase(instances.begin() + i);
delete deleting;
selectedInstance == NULL;
}
}
}
}
class ModeSelectionListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
@@ -483,15 +506,8 @@ void initGUI()
instance->size = Vector2(40,46);
instance->position = Vector2(20, 284);
instance->parent = dataModel;
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/Delete.png")),
Texture::fromFile(GetFileInPath("/content/images/Delete_ovr.png")),
Texture::fromFile(GetFileInPath("/content/images/Delete_dn.png")),
Texture::fromFile(GetFileInPath("/content/images/Delete_ds.png")));
instance->size = Vector2(40,46);
instance->position = Vector2(20, 284);
instance->parent = dataModel;
instance->name = "Delete";
instance->setButtonListener(new DeleteListener());
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn.png")),
@@ -705,6 +721,19 @@ void Demo::onCleanup() {
void Demo::onLogic() {
// Add non-simulation game logic and AI code here
for(size_t i = 0; i < instances_2D.size(); i++)
{
if(instances_2D.at(i)->name == "Delete")
{
ImageButtonInstance* button = (ImageButtonInstance*)instances_2D.at(i);
if(selectedInstance == NULL)
button->disabled = true;
else
button->disabled = false;
}
}
}
@@ -903,6 +932,27 @@ void Demo::onUserInput(UserInput* ui) {
right = true;
}
if(ui->keyPressed(SDL_LEFT_MOUSE_KEY))
{
bool onGUI = false;
for(size_t i = 0; i < instances_2D.size(); i++)
{
if(instances_2D.at(i)->className == "TextButton" || instances_2D.at(i)->className == "ImageButton")
{
BaseButtonInstance* button = (BaseButtonInstance*)instances_2D.at(i);
if(button->mouseInButton(ui->mouseXY().x, ui->mouseXY().y, app->renderDevice))
{
onGUI = true;
break;
}
}
}
if(!onGUI)
{
selectedInstance = NULL;
}
}
if(ui->keyReleased(SDL_LEFT_MOUSE_KEY))
{