From 86ce65515eed0a0dff48d02062b598a8d2275f23 Mon Sep 17 00:00:00 2001 From: m smith Date: Wed, 11 Sep 2019 15:06:32 +0100 Subject: [PATCH] Added a method to clear the currently selected snake from the current frame only. --- src/main/java/snakeprogram/SnakeFrame.java | 7 +++++++ src/main/java/snakeprogram/SnakeModel.java | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/snakeprogram/SnakeFrame.java b/src/main/java/snakeprogram/SnakeFrame.java index 622a3fc..767e7e7 100644 --- a/src/main/java/snakeprogram/SnakeFrame.java +++ b/src/main/java/snakeprogram/SnakeFrame.java @@ -243,6 +243,13 @@ private JMenuBar createMenuBar(){ transform_snake.setAccelerator(KeyStroke.getKeyStroke('m')); snakes.add(transform_snake); + JMenuItem clear_current = new JMenuItem("Clear from Current Frame."); + clear_current.addActionListener(evt->{ + snake_model.clearCurrentSnake(); + }); + clear_current.setAccelerator(KeyStroke.getKeyStroke('c')); + snakes.add(clear_current); + JMenuItem sculpt_snake = new JMenuItem("Sculpt Selected"); sculpt_snake.setActionCommand(SnakeActions.sculpt.name()); sculpt_snake.addActionListener(snake_listener); diff --git a/src/main/java/snakeprogram/SnakeModel.java b/src/main/java/snakeprogram/SnakeModel.java index 2847fa4..3bbe329 100644 --- a/src/main/java/snakeprogram/SnakeModel.java +++ b/src/main/java/snakeprogram/SnakeModel.java @@ -934,7 +934,20 @@ public boolean checkForCurrentSnake(){ } } - + + /** + * Clears the current snake from the current frame, without deleting the whole snake. + */ + public void clearCurrentSnake(){ + if(CurrentSnake != null){ + Integer f = getCurrentFrame(); + if(CurrentSnake.exists(f)){ + CurrentSnake.Coordinates.remove(f); + } + purgeSnakes(); + updateImagePanel(); + } + } /** * Ceases a deform iterations */