From a9a9064d638ca384c52416035b619d685fad412f Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Fri, 19 Mar 2021 15:55:41 -0500 Subject: [PATCH 01/14] Updated G4P from 4.2.1 -> 4.2.3 Hoping to get it fully up-to-date, but noticed some issues when trying the most recent revision --- code/G4P.jar | Bin 231188 -> 233659 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/code/G4P.jar b/code/G4P.jar index bedf4a35bc30b46487de7ba9f180670d2d32bb89..f8cad2a711337e645177675bda03da7dfc53b57b 100644 GIT binary patch delta 39334 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�hnFX;-DOCOfqPD@O;M+ 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 F^dF~3dEx*7 From de4707af42bdea327ab5c5090abadd80343d66ca Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Fri, 28 May 2021 14:42:11 -0500 Subject: [PATCH 02/14] Randomly pick one of the sample images on startup --- ChannelShiftGUI.pde | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChannelShiftGUI.pde b/ChannelShiftGUI.pde index a74e132..5a4cc84 100644 --- a/ChannelShiftGUI.pde +++ b/ChannelShiftGUI.pde @@ -4,7 +4,7 @@ import g4p_controls.*; // Input File ------------------------------------------------------------------ // Default image to load on start -String defaultImgName = "test1"; +String defaultImgName = "test" + int(random(0,2)); String defaultImgPath = "demo/" + defaultImgName + ".jpg"; // Globals ===================================================================== From 98afc329a69c51e50ffcdaa243fc790f3451f61d Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Mon, 7 Jun 2021 15:38:20 -0500 Subject: [PATCH 03/14] Increased preview window size --- advanced.pde | 1 - previewWindow.pde | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/advanced.pde b/advanced.pde index 1d3fb7f..aab4d32 100644 --- a/advanced.pde +++ b/advanced.pde @@ -45,7 +45,6 @@ public class DefaultShiftType implements ShiftTypeState { public class ScaleShiftType implements ShiftTypeState { // Multiplier values specific to this shift type public float xMultiplier, yMultiplier; - // TODO negative multipliers? public ScaleShiftType(float xMult, float yMult) { xMultiplier = xMult; diff --git a/previewWindow.pde b/previewWindow.pde index e7affa2..0072672 100644 --- a/previewWindow.pde +++ b/previewWindow.pde @@ -18,7 +18,7 @@ public class WindowManager { public WindowManager() { width = height = 0; - maxWindowSize = 600; + maxWindowSize = 800; previewImgUpdated = true; } From af9b5fb51ef51ddd4c2683512556dee7b9efebbf Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Tue, 8 Jun 2021 15:28:48 -0500 Subject: [PATCH 04/14] Added Noise shift type Control panel still needs to be created --- advanced.pde | 92 +++++++++++++++++++++++++++++++++++++++++++--- controlsWindow.pde | 15 +++++++- 2 files changed, 100 insertions(+), 7 deletions(-) diff --git a/advanced.pde b/advanced.pde index aab4d32..30fab36 100644 --- a/advanced.pde +++ b/advanced.pde @@ -2,21 +2,22 @@ // Globals, logic, and event handlers related to advanced shift type options // ============================================================================= -// Constants =================================================================== +// CONSTANTS =================================================================== // Names of different shift types -String[] SHIFT_TYPES = new String[]{"Default", "Scale", "Linear", "Skew", "XY Multiply"}; +String[] SHIFT_TYPES = new String[]{"Default", "Scale", "Linear", "Skew", "XY Multiply", "Noise"}; // Indexes int TYPE_DEFAULT = 0; int TYPE_SCALE = 1; int TYPE_LINEAR = 2; int TYPE_SKEW = 3; int TYPE_XYMULT = 4; +int TYPE_NOISE = 5; // Total # of shift types int TOTAL_SHIFT_TYPES = SHIFT_TYPES.length; -// Manager/State Classes ======================================================= +// SHIFT TYPES ================================================================= // Shift Type Interface -------------------------------------------------------- @@ -212,7 +213,6 @@ public class XYMultShiftType implements ShiftTypeState { this(true, true, false, true); } - // TODO flip divisor? (w/o dividing by 0) public int calculateShiftOffset(int x, int y, int width, int height, int shift, boolean horizontal) { if (horizontal) return x + shift + (multX ? (int)(xSign*x*y / height) : 0); @@ -242,7 +242,53 @@ public class XYMultShiftType implements ShiftTypeState { public boolean isPositiveY() { return ySign > 0.0; } } -// Manager --------------------------------------------------------------------- +// Noise ----------------------------------------------------------------------- + +public class NoiseShiftType implements ShiftTypeState { + public float xNoiseStart, yNoiseStart; + public float xNoiseIncrement, yNoiseIncrement; + public float noiseMultiplier; + + // TODO: noiseSeed?? + public NoiseShiftType(float xNoiseStart, float yNoiseStart, float xNoiseIncrement, float yNoiseIncrement, float noiseMultiplier) { + this.xNoiseStart = xNoiseStart; + this.yNoiseStart = yNoiseStart; + this.xNoiseIncrement = xNoiseIncrement; + this.yNoiseIncrement = yNoiseIncrement; + this.noiseMultiplier = noiseMultiplier; + } + + public NoiseShiftType() { + this(0.01, 0.01, 0.01, 0.01, 20.0); + } + + public int calculateShiftOffset(int x, int y, int width, int height, int shift, boolean horizontal) { + float xNoise = xNoiseStart + (xNoiseIncrement * x); + float yNoise = yNoiseStart + (yNoiseIncrement * y); + return (horizontal ? x : y) + shift + (int)(noiseMultiplier * noise(xNoise, yNoise)); + } + + public String stringifyStep() { + String step = "-noise-"; + // TODO FINISH + return step; + } + + // Setters + public void setXNoiseStart(float val) { xNoiseStart = val; } + public void setYNoiseStart(float val) { yNoiseStart = val; } + public void setXNoiseIncrement(float val) { xNoiseIncrement = val; } + public void setYNoiseIncrement(float val) { yNoiseIncrement = val; } + public void setNoiseMultiplier(float val) { noiseMultiplier = val; } + // Getters + public float getXNoiseStart() { return xNoiseStart; } + public float getYNoiseStart() { return yNoiseStart; } + public float getXNoiseIncrement() { return xNoiseIncrement; } + public float getYNoiseIncrement() { return yNoiseIncrement; } + public float getNoiseMultiplier() { return noiseMultiplier; } +} + +// Manager ===================================================================== public class ShiftTypeManager { // Array of state objects @@ -258,6 +304,7 @@ public class ShiftTypeManager { shiftTypes[TYPE_LINEAR] = new LinearShiftType(); shiftTypes[TYPE_SKEW] = new SkewShiftType(); shiftTypes[TYPE_XYMULT] = new XYMultShiftType(); + shiftTypes[TYPE_NOISE] = new NoiseShiftType(); // Start w/ default state = TYPE_DEFAULT; } @@ -345,6 +392,38 @@ public class ShiftTypeManager { return ((XYMultShiftType)shiftTypes[TYPE_XYMULT]).isPositiveY(); } + // Noise + public void noise_setXNoiseStart(float val) { + ((NoiseShiftType)shiftTypes[TYPE_NOISE]).setXNoiseStart(val); + } + public float noise_xNoiseStart() { + return ((NoiseShiftType)shiftTypes[TYPE_NOISE]).getXNoiseStart(); + } + public void noise_setYNoiseStart(float val) { + ((NoiseShiftType)shiftTypes[TYPE_NOISE]).setYNoiseStart(val); + } + public float noise_yNoiseStart() { + return ((NoiseShiftType)shiftTypes[TYPE_NOISE]).getYNoiseStart(); + } + public void noise_setXNoiseIncrement(float val) { + ((NoiseShiftType)shiftTypes[TYPE_NOISE]).setXNoiseIncrement(val); + } + public float noise_xNoiseIncrement() { + return ((NoiseShiftType)shiftTypes[TYPE_NOISE]).getXNoiseIncrement(); + } + public void noise_setYNoiseIncrement(float val) { + ((NoiseShiftType)shiftTypes[TYPE_NOISE]).setYNoiseIncrement(val); + } + public float noise_yNoiseIncrement() { + return ((NoiseShiftType)shiftTypes[TYPE_NOISE]).getYNoiseIncrement(); + } + public void noise_setNoiseMultiplier(float val) { + ((NoiseShiftType)shiftTypes[TYPE_NOISE]).setNoiseMultiplier(val); + } + public float noise_noiseMultiplier() { + return ((NoiseShiftType)shiftTypes[TYPE_NOISE]).getNoiseMultiplier(); + } + } @@ -496,3 +575,6 @@ public void multYNegativeCheckbox_click(GCheckbox source, GEvent event) { showPreview(); } +// Noise Configs --------------------------------------------------------------- +// TODO Configs + diff --git a/controlsWindow.pde b/controlsWindow.pde index 5c73fe3..a00085b 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -29,7 +29,7 @@ GPanel advancedOptionsPanel; GDropList shiftTypeSelect; GLabel shiftTypeLabel; // Per-Type configs -GPanel defaultShiftTypePanel, scaleShiftTypePanel, linearShiftTypePanel, skewShiftTypePanel, xyMultShiftTypePanel; +GPanel defaultShiftTypePanel, scaleShiftTypePanel, linearShiftTypePanel, skewShiftTypePanel, xyMultShiftTypePanel, noiseShiftTypePanel; // Default (just a label) GLabel defaultShiftConfigLabel; // Multiply @@ -564,6 +564,7 @@ public void createAdvancedOptionsPanel() { createLinearShiftTypePanel(); createSkewShiftTypePanel(); createXYMultShiftTypePanel(); + createNoiseShiftTypePanel(); } // Helpers @@ -590,7 +591,7 @@ public void setupShiftTypePanel(GPanel panel, int shiftTypeIndex) { shiftTypeConfigPanels[shiftTypeIndex] = panel; } -// Shift Type Panels +// Shift Type Panels =========================================================== public void createDefaultShiftTypePanel() { defaultShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); @@ -735,6 +736,16 @@ public void createXYMultShiftTypePanel() { advancedOptionsPanel.addControl(xyMultShiftTypePanel); } +public void createNoiseShiftTypePanel() { + // TODO + noiseShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); + setupShiftTypePanel(noiseShiftTypePanel, TYPE_NOISE); + // Add to advanced options + advancedOptionsPanel.addControl(noiseShiftTypePanel); +} + +// Bottom Panels =============================================================== + // Load/Save Panel ------------------------------------------------------------- public void createLoadSavePanel() { From 0a3600680f57c4c1623fe12bfa3f3bfaa6d80f85 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Thu, 10 Jun 2021 14:54:09 -0500 Subject: [PATCH 05/14] Better initial positioning of windows --- controlsWindow.pde | 8 ++++++-- previewWindow.pde | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/controlsWindow.pde b/controlsWindow.pde index a00085b..855136c 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -93,8 +93,9 @@ int X_MARGINS = 2 * X_MARGIN; // Panel labels are ~20, add this so children don't overlap int PANEL_Y_START = 20; // Window ---------------------------------------------------------------------- -int WINDOW_X = 10; -int WINDOW_Y = 10; +// x/y to be set when creating window +int WINDOW_X = 0; +int WINDOW_Y = 0; int WINDOW_HEIGHT = 475; // The main sketch section int WINDOW_MAIN_WIDTH = 650; @@ -305,6 +306,9 @@ public void createGUI(){ G4P.setMouseOverEnabled(false); surface.setTitle("Sketch Window"); // Controls window + // displayWidth doesn't seem to work when declared at the top level, so defining x and y here + WINDOW_X = (displayWidth / 2) - (WINDOW_WIDTH + 50); + WINDOW_Y = (displayHeight / 2) - (WINDOW_HEIGHT / 2); controlsWindow = GWindow.getWindow(this, "Channel Shift", WINDOW_X, WINDOW_Y, WINDOW_WIDTH, WINDOW_HEIGHT, JAVA2D); controlsWindow.noLoop(); controlsWindow.setActionOnClose(G4P.KEEP_OPEN); diff --git a/previewWindow.pde b/previewWindow.pde index 0072672..f48ef41 100644 --- a/previewWindow.pde +++ b/previewWindow.pde @@ -29,6 +29,7 @@ public class WindowManager { width = dimensions[0]; height = dimensions[1]; surface.setSize(width, height); + surface.setLocation((displayWidth / 2) + 50, (displayHeight / 2) - (height / 2)); } public void previewImgUpdated(boolean wasUpdated) { From 9c414acb4c590684fc0c4f0c6e0cf9f38497c993 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Thu, 10 Jun 2021 15:49:27 -0500 Subject: [PATCH 06/14] Added controls for noise shift type --- advanced.pde | 94 ++++++++++++++++++++++++++++++++++- controlsWindow.pde | 121 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 200 insertions(+), 15 deletions(-) diff --git a/advanced.pde b/advanced.pde index 30fab36..ae9b7c3 100644 --- a/advanced.pde +++ b/advanced.pde @@ -576,5 +576,97 @@ public void multYNegativeCheckbox_click(GCheckbox source, GEvent event) { } // Noise Configs --------------------------------------------------------------- -// TODO Configs +// Noise Start + +void noiseStartInputEventHandler(GTextField source, GEvent event, boolean isX) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + if (isX) + shiftTypeManager.noise_setXNoiseStart(val); + else + shiftTypeManager.noise_setYNoiseStart(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + (isX ? shiftTypeManager.noise_xNoiseStart() : shiftTypeManager.noise_yNoiseStart())); + break; + default: + break; + } +} + +public void xNoiseStartInput_change(GTextField source, GEvent event) { + noiseStartInputEventHandler(source, event, true); +} + +public void yNoiseStartInput_change(GTextField source, GEvent event) { + noiseStartInputEventHandler(source, event, false); +} + +// Noise Increment + +void noiseIncrementInputEventHandler(GTextField source, GEvent event, boolean isX) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + if (isX) + shiftTypeManager.noise_setXNoiseIncrement(val); + else + shiftTypeManager.noise_setYNoiseIncrement(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + (isX ? shiftTypeManager.noise_xNoiseIncrement() : shiftTypeManager.noise_yNoiseIncrement())); + break; + default: + break; + } +} + +public void xNoiseIncrementInput_change(GTextField source, GEvent event) { + noiseIncrementInputEventHandler(source, event, true); +} + +public void yNoiseIncrementInput_change(GTextField source, GEvent event) { + noiseIncrementInputEventHandler(source, event, false); +} + +// Noise Multiplier + +public void noiseMultiplierInput_change(GTextField source, GEvent event) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + shiftTypeManager.noise_setNoiseMultiplier(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + shiftTypeManager.noise_noiseMultiplier()); + break; + default: + break; + } +} diff --git a/controlsWindow.pde b/controlsWindow.pde index 855136c..12732f8 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -1,7 +1,10 @@ -// G4P Variable Declarations =================================================== +// ============================================================================= +// G4P Variable Declarations +// ============================================================================= -// Window ---------------------------------------------------------------------- +// WINDOW ====================================================================== GWindow controlsWindow; +// CHANNELS ==================================================================== // Source Toggle --------------------------------------------------------------- GPanel srcChannelPanel; GToggleGroup srcChannelToggle; @@ -14,7 +17,7 @@ GToggleGroup targChannelToggle; ChannelOption targR, targG, targB; // Keep track of toggles in global w/ index corresponding to channel ChannelOption[] targToggles; -// Randomize Button/Toggles ---------------------------------------------------- +// RANDOMIZE =================================================================== // TODO checkbox for swapping channels GPanel randomizePanel, randomizeCheckboxPanel; GButton randomizeBtn; @@ -22,7 +25,7 @@ GCheckbox randSrcCheckbox, randTargCheckbox, randXShiftCheckbox, randYShiftCheckbox; GTextField randXMaxInput, randYMaxInput; GLabel randXMaxLabel, randYMaxLabel; -// Advanced Options ------------------------------------------------------------ +// ADVANCED OPTIONS ============================================================ // TODO randomize/reset buttons? add a randomize method to interface and call it on current state GPanel advancedOptionsPanel; // Type Select @@ -30,31 +33,43 @@ GDropList shiftTypeSelect; GLabel shiftTypeLabel; // Per-Type configs GPanel defaultShiftTypePanel, scaleShiftTypePanel, linearShiftTypePanel, skewShiftTypePanel, xyMultShiftTypePanel, noiseShiftTypePanel; -// Default (just a label) +// Keep track of shift type config panels w/ indices matching globals +GPanel[] shiftTypeConfigPanels; +// Default (just a label) ------------------------------------------------------ GLabel defaultShiftConfigLabel; -// Multiply +// Multiply -------------------------------------------------------------------- // TODO RENAME TO SCALE GLabel xMultiplierLabel, yMultiplierLabel; GTextField xMultiplierInput, yMultiplierInput; GTabManager multiplierTabManager; -// Linear +// Linear ---------------------------------------------------------------------- GLabel linearCoeffLabel; GTextField linearCoeffInput; GToggleGroup linearEqTypeToggle; GOption linearYEquals, linearXEquals; GCheckbox linearNegativeCoeffCheckbox; -// Skew +// Skew ------------------------------------------------------------------------ GLabel xSkewLabel, ySkewLabel; GTextField xSkewInput, ySkewInput; GTabManager skewTabManager; GCheckbox xSkewNegativeCheckbox, ySkewNegativeCheckbox; -// X*Y +// X*Y ------------------------------------------------------------------------- GLabel multXLabel, multYLabel; GCheckbox multXCheckbox, multYCheckbox; GCheckbox multXNegativeCheckbox, multYNegativeCheckbox; - -// Keep track of shift type config panels w/ indices matching globals -GPanel[] shiftTypeConfigPanels; +// Noise ----------------------------------------------------------------------- +// Start +GLabel xNoiseStartLabel, yNoiseStartLabel; +GTextField xNoiseStartInput, yNoiseStartInput; +// Increment +GLabel xNoiseIncrementLabel, yNoiseIncrementLabel; +GTextField xNoiseIncrementInput, yNoiseIncrementInput; +// Multiplier +GLabel noiseMultiplierLabel; +GTextField noiseMultiplierInput; +// Tab MGMT +GTabManager noiseTabManager; +// SHIFT ======================================================================= // X Slider -------------------------------------------------------------------- GPanel xShiftPanel; GSlider xSlider; @@ -67,6 +82,7 @@ GSlider ySlider; GToggleGroup ySliderToggle; GOption ySliderPercent, ySliderPixels; GTextField ySliderInput; +// BOTTOM ====================================================================== // Reset/Confirm Buttons ------------------------------------------------------- GPanel resetConfirmPanel; GButton resetBtn, confirmBtn; @@ -77,7 +93,9 @@ GButton loadBtn; GButton saveBtn; -// Globals ===================================================================== +// ============================================================================= +// Globals +// ============================================================================= // Positioning ----------------------------------------------------------------- // Start positioning at 10px to add some padding @@ -249,6 +267,28 @@ int XYMULT_CONFIG_XNEGATIVE_CHECKBOX_Y = XYMULT_CONFIG_XMULT_CHECKBOX_Y + XYMULT int XYMULT_CONFIG_Y_LABEL_Y = XYMULT_CONFIG_XNEGATIVE_CHECKBOX_Y + XYMULT_CONFIG_CHECKBOX_HEIGHT + Y_MARGIN; int XYMULT_CONFIG_YMULT_CHECKBOX_Y = XYMULT_CONFIG_Y_LABEL_Y + XYMULT_CONFIG_LABEL_HEIGHT; int XYMULT_CONFIG_YNEGATIVE_CHECKBOX_Y = XYMULT_CONFIG_YMULT_CHECKBOX_Y + XYMULT_CONFIG_CHECKBOX_HEIGHT; +// Noise ----------------------------------------------------------------------- +// Common Label/Input Values +int NOISE_CONFIG_LABEL_FULL_WIDTH = TYPE_PANEL_WIDTH - X_MARGINS; +int NOISE_CONFIG_LABEL_HALF_WIDTH = (TYPE_PANEL_WIDTH / 2) - X_MARGINS; +int NOISE_CONFIG_LABEL_HEIGHT = 20; +int NOISE_CONFIG_INPUT_FULL_WIDTH = NOISE_CONFIG_LABEL_FULL_WIDTH; +int NOISE_CONFIG_INPUT_HALF_WIDTH = NOISE_CONFIG_LABEL_HALF_WIDTH; +int NOISE_CONFIG_INPUT_HEIGHT = NOISE_CONFIG_LABEL_HEIGHT; +int NOISE_CONFIG_LABEL_LEFT_X = X_MARGIN; +int NOISE_CONFIG_LABEL_RIGHT_X = NOISE_CONFIG_LABEL_LEFT_X + NOISE_CONFIG_LABEL_HALF_WIDTH + X_MARGINS; +int NOISE_CONFIG_INPUT_LEFT_X = X_MARGIN; +int NOISE_CONFIG_INPUT_RIGHT_X = NOISE_CONFIG_INPUT_LEFT_X + NOISE_CONFIG_INPUT_HALF_WIDTH + X_MARGINS; +// Noise Start Y +int NOISE_CONFIG_LABEL_START_Y = PANEL_Y_START; +int NOISE_CONFIG_INPUT_START_Y = NOISE_CONFIG_LABEL_START_Y + NOISE_CONFIG_LABEL_HEIGHT; +// Noise Increment Y +int NOISE_CONFIG_LABEL_INCREMENT_Y = NOISE_CONFIG_INPUT_START_Y + NOISE_CONFIG_LABEL_HEIGHT + Y_MARGIN; +int NOISE_CONFIG_INPUT_INCREMENT_Y = NOISE_CONFIG_LABEL_INCREMENT_Y + NOISE_CONFIG_LABEL_HEIGHT; +// Noise Multiplier Y +int NOISE_CONFIG_LABEL_MULTIPLIER_Y = NOISE_CONFIG_INPUT_INCREMENT_Y + NOISE_CONFIG_LABEL_HEIGHT + Y_MARGIN; +int NOISE_CONFIG_INPUT_MULTIPLIER_Y = NOISE_CONFIG_LABEL_MULTIPLIER_Y + NOISE_CONFIG_LABEL_HEIGHT; + // Sliders --------------------------------------------------------------------- // General int SLIDER_TOGGLE_WIDTH = 75; @@ -741,9 +781,62 @@ public void createXYMultShiftTypePanel() { } public void createNoiseShiftTypePanel() { - // TODO noiseShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(noiseShiftTypePanel, TYPE_NOISE); + // X Noise Start + xNoiseStartLabel = new GLabel(controlsWindow, NOISE_CONFIG_LABEL_LEFT_X, NOISE_CONFIG_LABEL_START_Y, NOISE_CONFIG_LABEL_HALF_WIDTH, NOISE_CONFIG_LABEL_HEIGHT); + xNoiseStartLabel.setText("X Start:"); + setupGeneralLabel(xNoiseStartLabel); + noiseShiftTypePanel.addControl(xNoiseStartLabel); + xNoiseStartInput = new GTextField(controlsWindow, NOISE_CONFIG_INPUT_LEFT_X, NOISE_CONFIG_INPUT_START_Y, NOISE_CONFIG_INPUT_HALF_WIDTH, NOISE_CONFIG_INPUT_HEIGHT); + xNoiseStartInput.setText("0.01"); // TODO pull from manager + xNoiseStartInput.addEventHandler(this, "xNoiseStartInput_change"); + noiseShiftTypePanel.addControl(xNoiseStartInput); + // Y Noise Start + yNoiseStartLabel = new GLabel(controlsWindow, NOISE_CONFIG_LABEL_RIGHT_X, NOISE_CONFIG_LABEL_START_Y, NOISE_CONFIG_LABEL_HALF_WIDTH, NOISE_CONFIG_LABEL_HEIGHT); + yNoiseStartLabel.setText("Y Start:"); + setupGeneralLabel(yNoiseStartLabel); + noiseShiftTypePanel.addControl(yNoiseStartLabel); + yNoiseStartInput = new GTextField(controlsWindow, NOISE_CONFIG_INPUT_RIGHT_X, NOISE_CONFIG_INPUT_START_Y, NOISE_CONFIG_INPUT_HALF_WIDTH, NOISE_CONFIG_INPUT_HEIGHT); + yNoiseStartInput.setText("0.01"); // TODO pull from manager + yNoiseStartInput.addEventHandler(this, "yNoiseStartInput_change"); + noiseShiftTypePanel.addControl(yNoiseStartInput); + // X Noise Increment + xNoiseIncrementLabel = new GLabel(controlsWindow, NOISE_CONFIG_LABEL_LEFT_X, NOISE_CONFIG_LABEL_INCREMENT_Y, NOISE_CONFIG_LABEL_HALF_WIDTH, NOISE_CONFIG_LABEL_HEIGHT); + xNoiseIncrementLabel.setText("X Step:"); + setupGeneralLabel(xNoiseIncrementLabel); + noiseShiftTypePanel.addControl(xNoiseIncrementLabel); + xNoiseIncrementInput = new GTextField(controlsWindow, NOISE_CONFIG_INPUT_LEFT_X, NOISE_CONFIG_INPUT_INCREMENT_Y, NOISE_CONFIG_INPUT_HALF_WIDTH, NOISE_CONFIG_INPUT_HEIGHT); + xNoiseIncrementInput.setText("0.01"); // TODO pull from manager + xNoiseIncrementInput.addEventHandler(this, "xNoiseIncrementInput_change"); + noiseShiftTypePanel.addControl(xNoiseIncrementInput); + // Y Noise Increment + yNoiseIncrementLabel = new GLabel(controlsWindow, NOISE_CONFIG_LABEL_RIGHT_X, NOISE_CONFIG_LABEL_INCREMENT_Y, NOISE_CONFIG_LABEL_HALF_WIDTH, NOISE_CONFIG_LABEL_HEIGHT); + yNoiseIncrementLabel.setText("Y Step:"); + setupGeneralLabel(yNoiseIncrementLabel); + noiseShiftTypePanel.addControl(yNoiseIncrementLabel); + yNoiseIncrementInput = new GTextField(controlsWindow, NOISE_CONFIG_INPUT_RIGHT_X, NOISE_CONFIG_INPUT_INCREMENT_Y, NOISE_CONFIG_INPUT_HALF_WIDTH, NOISE_CONFIG_INPUT_HEIGHT); + yNoiseIncrementInput.setText("0.01"); // TODO pull from manager + yNoiseIncrementInput.addEventHandler(this, "yNoiseIncrementInput_change"); + noiseShiftTypePanel.addControl(yNoiseIncrementInput); + // Noise Multiplier + noiseMultiplierLabel = new GLabel(controlsWindow, NOISE_CONFIG_LABEL_LEFT_X, NOISE_CONFIG_LABEL_MULTIPLIER_Y, NOISE_CONFIG_LABEL_FULL_WIDTH, NOISE_CONFIG_LABEL_HEIGHT); + noiseMultiplierLabel.setText("Noise Multiplier:"); + setupGeneralLabel(noiseMultiplierLabel); + noiseShiftTypePanel.addControl(noiseMultiplierLabel); + noiseMultiplierInput = new GTextField(controlsWindow, NOISE_CONFIG_INPUT_LEFT_X, NOISE_CONFIG_INPUT_MULTIPLIER_Y, NOISE_CONFIG_INPUT_FULL_WIDTH, NOISE_CONFIG_INPUT_HEIGHT); + noiseMultiplierInput.setText("20.0"); // TODO pull from manager + noiseMultiplierInput.addEventHandler(this, "noiseMultiplierInput_change"); + noiseShiftTypePanel.addControl(noiseMultiplierInput); + + // Tab manager for inputs + noiseTabManager = new GTabManager(); + noiseTabManager.addControls( + xNoiseStartInput, yNoiseStartInput, + xNoiseIncrementInput, yNoiseIncrementInput, + noiseMultiplierInput + ); + // Add to advanced options advancedOptionsPanel.addControl(noiseShiftTypePanel); } From 01d33c51b98888382312d07d81fc902a696b26da Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Thu, 10 Jun 2021 16:08:25 -0500 Subject: [PATCH 07/14] Added tab manager for randomize inputs and tweaked checkbox margins --- controlsWindow.pde | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/controlsWindow.pde b/controlsWindow.pde index 12732f8..2a2f0de 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -25,6 +25,7 @@ GCheckbox randSrcCheckbox, randTargCheckbox, randXShiftCheckbox, randYShiftCheckbox; GTextField randXMaxInput, randYMaxInput; GLabel randXMaxLabel, randYMaxLabel; +GTabManager randMaxTabManager; // ADVANCED OPTIONS ============================================================ // TODO randomize/reset buttons? add a randomize method to interface and call it on current state GPanel advancedOptionsPanel; @@ -142,24 +143,24 @@ int RAND_PANEL_Y = Y_START; // Fill rest of window (minus right margin) int RAND_PANEL_WIDTH = WINDOW_MAIN_WIDTH - RAND_PANEL_X - X_MARGIN; // Randomize Checkboxes + Panel -int RAND_CHECKBOX_PANEL_X = 0; +int RAND_CHECKBOX_PANEL_X = X_MARGIN; int RAND_CHECKBOX_PANEL_Y = PANEL_Y_START; -int RAND_CHECKBOX_PANEL_WIDTH = RAND_PANEL_WIDTH; +int RAND_CHECKBOX_PANEL_WIDTH = RAND_PANEL_WIDTH - X_MARGINS; // Half of panel width, 2 checkboxes per row -int RAND_CHECKBOX_WIDTH = RAND_CHECKBOX_PANEL_WIDTH / 2; +int RAND_CHECKBOX_WIDTH = (RAND_CHECKBOX_PANEL_WIDTH / 2) - X_MARGINS; int RAND_CHECKBOX_HEIGHT = 30; // Checkbox positioning int RAND_CHECKBOX_LEFT_X = 0; -int RAND_CHECKBOX_RIGHT_X = RAND_CHECKBOX_WIDTH; +int RAND_CHECKBOX_RIGHT_X = RAND_CHECKBOX_LEFT_X + RAND_CHECKBOX_WIDTH + X_MARGINS; int RAND_CHECKBOX_TOP_Y = 0; int RAND_CHECKBOX_BOTTOM_Y = RAND_CHECKBOX_HEIGHT; int RAND_CHECKBOX_PANEL_HEIGHT = 2 * RAND_CHECKBOX_HEIGHT; // Max Shift Inputs // Labels are full width for text alignment -int RAND_MAX_LABEL_WIDTH = RAND_CHECKBOX_WIDTH; +int RAND_MAX_LABEL_WIDTH = RAND_PANEL_WIDTH / 2; int RAND_MAX_LABEL_HEIGHT = 20; // Inputs have margins (so they don't overlap) -int RAND_MAX_INPUT_WIDTH = RAND_CHECKBOX_WIDTH - X_MARGINS; +int RAND_MAX_INPUT_WIDTH = RAND_MAX_LABEL_WIDTH - X_MARGINS; int RAND_MAX_INPUT_HEIGHT = 20; int RAND_MAX_TOTAL_HEIGHT = RAND_MAX_LABEL_HEIGHT + RAND_MAX_INPUT_HEIGHT + Y_MARGIN; int RAND_MAX_LABEL_Y = RAND_CHECKBOX_PANEL_Y + RAND_CHECKBOX_PANEL_HEIGHT; @@ -584,6 +585,10 @@ public void createRandomizePanel() { randYMaxInput.setText("100"); randYMaxInput.addEventHandler(this, "randYMaxInput_change"); randomizePanel.addControl(randYMaxInput); + + // Tab manager for text inputs + randMaxTabManager = new GTabManager(); + randMaxTabManager.addControls(randXMaxInput, randYMaxInput); } // Shift Type Panel ------------------------------------------------------------ From 7d437161e07ba8f48347b2e9197d22025a92ab38 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Thu, 10 Jun 2021 16:39:41 -0500 Subject: [PATCH 08/14] Stringify noise step --- advanced.pde | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/advanced.pde b/advanced.pde index ae9b7c3..04fa084 100644 --- a/advanced.pde +++ b/advanced.pde @@ -269,8 +269,7 @@ public class NoiseShiftType implements ShiftTypeState { } public String stringifyStep() { - String step = "-noise-"; - // TODO FINISH + String step = "-noise-x" + xNoiseStart + "+" + xNoiseIncrement + "-y" + yNoiseStart + "+" + yNoiseIncrement + "mult" + noiseMultiplier; return step; } From fe931eb8661b96c5390f2b4b01714bfb20c9a535 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Thu, 10 Jun 2021 16:51:45 -0500 Subject: [PATCH 09/14] Added noise shift type to README --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index dd7e17a..97b601c 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,9 @@ manipulating RGB color channels. * [XY Multiply](#xy-multiply) * [Options](#options-3) * [Shift Calculation](#shift-calculation-3) + * [Noise](#noise) + * [Options](#options-4) + * [Shift Calculation](#shift-calculation-4) @@ -368,3 +371,39 @@ Where: corresponding dimension +### Noise + +![Noise shift type](../assets/samples/noise.png?raw=true) + +Apply [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) to the shift amount. + +#### Options + +- **X Start:** Starting value for x noise +- **Y Start:** Starting value for y noise +- **X Step:** Amount to increment x by each time `noise()` is called. Use a smaller number for smoother results +- **Y Step:** Amount to increment y by each time `noise()` is called. Use a smaller number for smoother results +- **Noise Multiplier:** Value to multiply result of `noise()` by. Higher values create more drastic effects + +#### Shift Calculation + +**Horizontal Offset:** + +``` +x + shift + (int)(noiseMultiplier * noise(xNoise, yNoise)) +``` + +**Vertical Offset:** + + +``` +y + shift + (int)(noiseMultiplier * noise(xNoise, yNoise)) +``` + +Where: + +- `x` and `y`: the coordinates of the pixel +- `shift`: the horizontal/vertical shift amount +- `noiseMultiplier`: the noise multiplier value +- `xNoise` and `yNoise`: noise coordinates, calculated by adding offset to start value each time the corresponding coordinate (`x` or `y`) is incremented + From d58bc13d0755973eb92136739d86047daddcf360 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Fri, 11 Jun 2021 11:40:09 -0500 Subject: [PATCH 10/14] Made comment formatting a bit more consistent in controlsWindow --- controlsWindow.pde | 63 ++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/controlsWindow.pde b/controlsWindow.pde index 2a2f0de..58f6c9b 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -98,6 +98,7 @@ GButton saveBtn; // Globals // ============================================================================= +// COMMON ====================================================================== // Positioning ----------------------------------------------------------------- // Start positioning at 10px to add some padding int X_START = 10; @@ -111,7 +112,7 @@ int X_MARGINS = 2 * X_MARGIN; // Panels ---------------------------------------------------------------------- // Panel labels are ~20, add this so children don't overlap int PANEL_Y_START = 20; -// Window ---------------------------------------------------------------------- +// WINDOW ====================================================================== // x/y to be set when creating window int WINDOW_X = 0; int WINDOW_Y = 0; @@ -122,27 +123,29 @@ int WINDOW_MAIN_WIDTH = 650; int WINDOW_ADV_WIDTH = 200; // Total width int WINDOW_WIDTH = WINDOW_MAIN_WIDTH + WINDOW_ADV_WIDTH; -// Toggles --------------------------------------------------------------------- -// General +// CHANNELS ==================================================================== +// TODO make parent panel +// General --------------------------------------------------------------------- int CHANNEL_TOGGLE_WIDTH = 150; int CHANNEL_TOGGLE_HEIGHT = 25; int CHANNEL_PANEL_HEIGHT = 3 * CHANNEL_TOGGLE_HEIGHT + PANEL_Y_START; int R_CHANNEL_Y = PANEL_Y_START; int G_CHANNEL_Y = PANEL_Y_START + CHANNEL_TOGGLE_HEIGHT; int B_CHANNEL_Y = PANEL_Y_START + 2 * CHANNEL_TOGGLE_HEIGHT; -// Source +// Source ---------------------------------------------------------------------- int SRC_CHANNEL_X = X_START; int SRC_CHANNEL_Y = Y_START; -// Target +// Target ---------------------------------------------------------------------- int TARG_CHANNEL_X = SRC_CHANNEL_X + CHANNEL_TOGGLE_WIDTH + X_MARGINS; int TARG_CHANNEL_Y = Y_START; -// Randomize Button/Toggles ---------------------------------------------------- +// RANDOMIZE =================================================================== +// Panel ----------------------------------------------------------------------- // End of target channel panel + margins int RAND_PANEL_X = TARG_CHANNEL_X + CHANNEL_TOGGLE_WIDTH + X_MARGINS; int RAND_PANEL_Y = Y_START; // Fill rest of window (minus right margin) int RAND_PANEL_WIDTH = WINDOW_MAIN_WIDTH - RAND_PANEL_X - X_MARGIN; -// Randomize Checkboxes + Panel +// Randomize Checkboxes + Panel ------------------------------------------------ int RAND_CHECKBOX_PANEL_X = X_MARGIN; int RAND_CHECKBOX_PANEL_Y = PANEL_Y_START; int RAND_CHECKBOX_PANEL_WIDTH = RAND_PANEL_WIDTH - X_MARGINS; @@ -155,7 +158,7 @@ int RAND_CHECKBOX_RIGHT_X = RAND_CHECKBOX_LEFT_X + RAND_CHECKBOX_WIDTH + X_MARGI int RAND_CHECKBOX_TOP_Y = 0; int RAND_CHECKBOX_BOTTOM_Y = RAND_CHECKBOX_HEIGHT; int RAND_CHECKBOX_PANEL_HEIGHT = 2 * RAND_CHECKBOX_HEIGHT; -// Max Shift Inputs +// Max Shift Inputs ------------------------------------------------------------ // Labels are full width for text alignment int RAND_MAX_LABEL_WIDTH = RAND_PANEL_WIDTH / 2; int RAND_MAX_LABEL_HEIGHT = 20; @@ -170,35 +173,37 @@ int RAND_MAX_LABEL_LEFT_X = 0; int RAND_MAX_INPUT_LEFT_X = X_MARGIN; int RAND_MAX_LABEL_RIGHT_X = RAND_MAX_LABEL_WIDTH; int RAND_MAX_INPUT_RIGHT_X = RAND_MAX_INPUT_LEFT_X + RAND_MAX_INPUT_WIDTH + X_MARGINS; -// Randomize Button +// Randomize Button ------------------------------------------------------------ int RAND_BTN_WIDTH = RAND_PANEL_WIDTH; int RAND_BTN_HEIGHT = 30; int RAND_BTN_X = 0; int RAND_BTN_Y = RAND_MAX_LABEL_Y + RAND_MAX_TOTAL_HEIGHT; int RAND_PANEL_HEIGHT = RAND_CHECKBOX_PANEL_HEIGHT + RAND_MAX_TOTAL_HEIGHT + RAND_BTN_HEIGHT + PANEL_Y_START; -// Shift Type Select ----------------------------------------------------------- -// Panel +// SHIFT TYPE SELECT =========================================================== +// Panel ----------------------------------------------------------------------- int ADV_OPTS_PANEL_X = WINDOW_MAIN_WIDTH + X_MARGIN; int ADV_OPTS_PANEL_Y = Y_START; int ADV_OPTS_PANEL_WIDTH = WINDOW_ADV_WIDTH - X_MARGINS; int ADV_OPTS_PANEL_HEIGHT = WINDOW_HEIGHT - (2 * Y_MARGIN); -// Label +// Label ----------------------------------------------------------------------- int TYPE_LABEL_X = X_MARGIN; int TYPE_LABEL_Y = PANEL_Y_START; int TYPE_LABEL_WIDTH = ADV_OPTS_PANEL_WIDTH - X_MARGINS; int TYPE_LABEL_HEIGHT = 20; -// Dropdown +// Dropdown -------------------------------------------------------------------- int TYPE_SELECT_X = X_MARGIN; int TYPE_SELECT_Y = TYPE_LABEL_Y + TYPE_LABEL_HEIGHT; int TYPE_SELECT_WIDTH = ADV_OPTS_PANEL_WIDTH - X_MARGINS; int TYPE_SELECT_HEIGHT = 100; int TYPE_SELECT_MAX_ITEMS = 4; int TYPE_SELECT_BTN_WIDTH = TYPE_SELECT_WIDTH / 4; -// Common shift type configs +// ADVANCED ==================================================================== +// Panel ----------------------------------------------------------------------- int TYPE_PANEL_X = 0; int TYPE_PANEL_Y = TYPE_SELECT_Y + TYPE_SELECT_HEIGHT + Y_MARGIN; int TYPE_PANEL_WIDTH = ADV_OPTS_PANEL_WIDTH; int TYPE_PANEL_HEIGHT = ADV_OPTS_PANEL_HEIGHT - TYPE_PANEL_Y; +// SHIFT TYPES ================================================================= // Default Shift Type Panel ---------------------------------------------------- int DEFAULT_CONFIG_LABEL_X = X_MARGIN; int DEFAULT_CONFIG_LABEL_Y = PANEL_Y_START; @@ -290,8 +295,8 @@ int NOISE_CONFIG_INPUT_INCREMENT_Y = NOISE_CONFIG_LABEL_INCREMENT_Y + NOISE_CONF int NOISE_CONFIG_LABEL_MULTIPLIER_Y = NOISE_CONFIG_INPUT_INCREMENT_Y + NOISE_CONFIG_LABEL_HEIGHT + Y_MARGIN; int NOISE_CONFIG_INPUT_MULTIPLIER_Y = NOISE_CONFIG_LABEL_MULTIPLIER_Y + NOISE_CONFIG_LABEL_HEIGHT; -// Sliders --------------------------------------------------------------------- -// General +// SHIFT SLIDERS =============================================================== +// General --------------------------------------------------------------------- int SLIDER_TOGGLE_WIDTH = 75; int SLIDER_INPUT_WIDTH = 75; int SLIDER_INPUT_HEIGHT = 20; @@ -308,13 +313,13 @@ int SLIDER_Y = PANEL_Y_START; int SLIDER_TOGGLE_X = SLIDER_X + SLIDER_WIDTH; int SLIDER_PERCENT_TOGGLE_Y = PANEL_Y_START; int SLIDER_PIXELS_TOGGLE_Y = SLIDER_PERCENT_TOGGLE_Y + SLIDER_TOGGLE_HEIGHT; -// Horizontal Shift +// Horizontal Shift ------------------------------------------------------------ int X_SLIDER_PANEL_X = X_START; int X_SLIDER_PANEL_Y = RAND_PANEL_Y + RAND_PANEL_HEIGHT + Y_MARGIN; -// Vertical Shift +// Vertical Shift -------------------------------------------------------------- int Y_SLIDER_PANEL_X = X_START; int Y_SLIDER_PANEL_Y = X_SLIDER_PANEL_Y + SLIDER_PANEL_HEIGHT + Y_MARGIN; -// Load/Save Buttons ----------------------------------------------------------- +// LOAD/SAVE BUTTONS =========================================================== int LOAD_SAVE_PANEL_X = X_START; int LOAD_SAVE_PANEL_Y = Y_SLIDER_PANEL_Y + SLIDER_PANEL_HEIGHT + Y_MARGIN; int LOAD_SAVE_PANEL_WIDTH = WINDOW_MAIN_WIDTH / 2 - X_MARGINS; @@ -324,7 +329,7 @@ int LOAD_BTN_X = 0; int LOAD_BTN_Y = 0; int SAVE_BTN_X = 0; int SAVE_BTN_Y = LOAD_BTN_Y + LOAD_SAVE_BTN_HEIGHT + Y_MARGIN; -// Reset/Confirm Buttons ------------------------------------------------------- +// RESET/CONFIRM BUTTONS ======================================================= int RESET_CONFIRM_PANEL_X = LOAD_SAVE_PANEL_X + LOAD_SAVE_PANEL_WIDTH + X_MARGINS; int RESET_CONFIRM_PANEL_Y = LOAD_SAVE_PANEL_Y; int RESET_CONFIRM_PANEL_WIDTH = LOAD_SAVE_PANEL_WIDTH; @@ -339,7 +344,11 @@ int RECURSIVE_CHECKBOX_X = 0; int RECURSIVE_CHECKBOX_Y = CONFIRM_BTN_Y + RESET_CONFIRM_BTN_HEIGHT; -// Initialization ============================================================== +// ============================================================================= +// Create GUI +// ============================================================================= + +// WINDOW ====================================================================== public void createGUI(){ G4P.messagesEnabled(false); @@ -416,7 +425,7 @@ public void togglePanelVisibility(GPanel panel, boolean show) { panel.setVisible(show); } -// Channel Toggle Panels ------------------------------------------------------- +// CHANNEL TOGGLE PANELS ======================================================= public void createChannelPanel(GPanel channelPanel, GToggleGroup channelToggle, ChannelOption R, ChannelOption G, ChannelOption B, boolean src) { // Configure options @@ -464,7 +473,7 @@ public void createTargChannelPanel() { } -// Channel Shift Panels -------------------------------------------------------- +// CHANNEL SHIFT PANELS ======================================================== /** * Common setup for channel shift slider panels. GUI objects must be @@ -534,7 +543,7 @@ public void createYShiftPanel() { createChannelShiftPanel(yShiftPanel, GCScheme.GREEN_SCHEME, ySlider, "ySlider_change", ySliderInput, "ySliderInput_change", ySliderToggle, ySliderPercent, "ySliderPercent_clicked", ySliderPixels, "ySliderPixels_clicked"); } -// Randomize/Reset Button Panel ------------------------------------------------ +// RANDOMIZE/RESET BUTTON PANEL ================================================ // TODO: extract common? public void createRandomizePanel() { @@ -591,7 +600,7 @@ public void createRandomizePanel() { randMaxTabManager.addControls(randXMaxInput, randYMaxInput); } -// Shift Type Panel ------------------------------------------------------------ +// SHIFT TYPE PANEL ============================================================ // Advanced options panel public void createAdvancedOptionsPanel() { @@ -640,7 +649,7 @@ public void setupShiftTypePanel(GPanel panel, int shiftTypeIndex) { shiftTypeConfigPanels[shiftTypeIndex] = panel; } -// Shift Type Panels =========================================================== +// SHIFT TYPE PANELS =========================================================== public void createDefaultShiftTypePanel() { defaultShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); @@ -846,7 +855,7 @@ public void createNoiseShiftTypePanel() { advancedOptionsPanel.addControl(noiseShiftTypePanel); } -// Bottom Panels =============================================================== +// BOTTOM PANELS =============================================================== // Load/Save Panel ------------------------------------------------------------- From 4fe154724fc76db85d8f382f1732567f6f2f785d Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Mon, 14 Jun 2021 16:30:34 -0500 Subject: [PATCH 11/14] Updated license --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index cf10db9..173d01d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 Connor de la Cruz +Copyright (c) 2021 Connor de la Cruz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 7f985b507349e4beedf791034ff0db2800a80d36 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Mon, 14 Jun 2021 16:50:22 -0500 Subject: [PATCH 12/14] Moved advanced options event handlers to controlsWindow --- ChannelShiftGUI.pde | 4 +- advanced.pde | 248 +---------------------- controlsWindow.pde | 464 +++++++++++++++++++++++++++++++++++--------- 3 files changed, 377 insertions(+), 339 deletions(-) diff --git a/ChannelShiftGUI.pde b/ChannelShiftGUI.pde index 5a4cc84..bf0cb88 100644 --- a/ChannelShiftGUI.pde +++ b/ChannelShiftGUI.pde @@ -53,19 +53,17 @@ void shiftChannel(PImage sourceImg, PImage targetImg, int xShift, int yShift, in for (int x = 0; x < targetImg.width; x++) { int yOffset = mod(shiftTypeManager.calculateShiftOffset(x, y, targetImg.width, targetImg.height, yShift, false), targetImg.height); int xOffset = mod(shiftTypeManager.calculateShiftOffset(x, y, targetImg.width, targetImg.height, xShift, true), targetImg.width); - // Get source pixel and its RGB vals int sourceIndex = yOffset * sourceImg.width + xOffset; color sourcePixel = sourcePixels[sourceIndex]; float[] sourceRGB = new float[]{ red(sourcePixel), green(sourcePixel), blue(sourcePixel) }; - // Get target pixel and its RGB vals int targetIndex = y * targetImg.width + x; color targetPixel = targetPixels[targetIndex]; float[] targetRGB = new float[]{ red(targetPixel), green(targetPixel), blue(targetPixel) }; - // Swap source channel w/ target channel targetRGB[targetChannel] = sourceRGB[sourceChannel]; + // TODO !!! targetRGB[sourceChannel] = sourceRGB[targetChannel] ??? targetPixels[targetIndex] = color(targetRGB[0], targetRGB[1], targetRGB[2]); } } diff --git a/advanced.pde b/advanced.pde index 04fa084..68b72b8 100644 --- a/advanced.pde +++ b/advanced.pde @@ -2,8 +2,7 @@ // Globals, logic, and event handlers related to advanced shift type options // ============================================================================= -// CONSTANTS =================================================================== - +// GLOBALS ===================================================================== // Names of different shift types String[] SHIFT_TYPES = new String[]{"Default", "Scale", "Linear", "Skew", "XY Multiply", "Noise"}; // Indexes @@ -22,6 +21,7 @@ int TOTAL_SHIFT_TYPES = SHIFT_TYPES.length; // Shift Type Interface -------------------------------------------------------- public interface ShiftTypeState { + // TODO add public String typeName // Calculate offset for this shift type public int calculateShiftOffset(int x, int y, int width, int height, int shift, boolean horizontal); // String representation of this step @@ -425,247 +425,3 @@ public class ShiftTypeManager { } - -// Event Handlers ============================================================== - -// Shift Type ------------------------------------------------------------------ - -public void shiftTypeSelect_change(GDropList source, GEvent event) { - // Hide previously selected panel - hideShiftTypePanel(shiftTypeConfigPanels[shiftTypeManager.state]); - shiftTypeManager.setShiftType(source.getSelectedIndex()); - // Show newly selected panel - showShiftTypePanel(shiftTypeConfigPanels[shiftTypeManager.state]); - showPreview(); -} - -// Scale Configs --------------------------------------------------------------- - -void multiplierInputEventHandler(GTextField source, GEvent event, boolean horizontal) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val > -1.0) { - shiftTypeManager.scale_setMultiplier(val, horizontal); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + shiftTypeManager.scale_getMultiplier(horizontal)); - break; - default: - break; - } -} - -public void xMultiplierInput_change(GTextField source, GEvent event) { - multiplierInputEventHandler(source, event, true); -} - -public void yMultiplierInput_change(GTextField source, GEvent event) { - multiplierInputEventHandler(source, event, false); -} - -// Linear Configs -------------------------------------------------------------- - -public void linearYEquals_clicked(GOption source, GEvent event) { - shiftTypeManager.linear_setEquationType(true); - showPreview(); -} - -public void linearXEquals_clicked(GOption source, GEvent event) { - shiftTypeManager.linear_setEquationType(false); - showPreview(); -} - -public void linearCoeffInput_change(GTextField source, GEvent event) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val > -1.0) { - shiftTypeManager.linear_setCoefficient(val); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + shiftTypeManager.linear_getCoefficient()); - break; - default: - break; - } -} - -public void linearNegativeCoeffCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.linear_setCoefficientSign(!source.isSelected()); - showPreview(); -} - -// Skew Configs ---------------------------------------------------------------- - -void skewInputEventHandler(GTextField source, GEvent event, boolean horizontal) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val > -1.0) { - shiftTypeManager.skew_setSkew(val, horizontal); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + shiftTypeManager.skew_getSkew(horizontal)); - break; - default: - break; - } -} - -public void xSkewInput_change(GTextField source, GEvent event) { - skewInputEventHandler(source, event, true); -} - -public void xSkewNegativeCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.skew_setSign(!source.isSelected(), true); - showPreview(); -} - -public void ySkewInput_change(GTextField source, GEvent event) { - skewInputEventHandler(source, event, false); -} - -public void ySkewNegativeCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.skew_setSign(!source.isSelected(), false); - showPreview(); -} - -// X*Y Configs ----------------------------------------------------------------- - -public void multXCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.xymult_setMultX(source.isSelected()); - showPreview(); -} - -public void multXNegativeCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.xymult_setXSign(!source.isSelected()); - showPreview(); -} - -public void multYCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.xymult_setMultY(source.isSelected()); - showPreview(); -} - -public void multYNegativeCheckbox_click(GCheckbox source, GEvent event) { - shiftTypeManager.xymult_setYSign(!source.isSelected()); - showPreview(); -} - -// Noise Configs --------------------------------------------------------------- - -// Noise Start - -void noiseStartInputEventHandler(GTextField source, GEvent event, boolean isX) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val >= 0.0) { - if (isX) - shiftTypeManager.noise_setXNoiseStart(val); - else - shiftTypeManager.noise_setYNoiseStart(val); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + (isX ? shiftTypeManager.noise_xNoiseStart() : shiftTypeManager.noise_yNoiseStart())); - break; - default: - break; - } -} - -public void xNoiseStartInput_change(GTextField source, GEvent event) { - noiseStartInputEventHandler(source, event, true); -} - -public void yNoiseStartInput_change(GTextField source, GEvent event) { - noiseStartInputEventHandler(source, event, false); -} - -// Noise Increment - -void noiseIncrementInputEventHandler(GTextField source, GEvent event, boolean isX) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val >= 0.0) { - if (isX) - shiftTypeManager.noise_setXNoiseIncrement(val); - else - shiftTypeManager.noise_setYNoiseIncrement(val); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + (isX ? shiftTypeManager.noise_xNoiseIncrement() : shiftTypeManager.noise_yNoiseIncrement())); - break; - default: - break; - } -} - -public void xNoiseIncrementInput_change(GTextField source, GEvent event) { - noiseIncrementInputEventHandler(source, event, true); -} - -public void yNoiseIncrementInput_change(GTextField source, GEvent event) { - noiseIncrementInputEventHandler(source, event, false); -} - -// Noise Multiplier - -public void noiseMultiplierInput_change(GTextField source, GEvent event) { - switch(event) { - case ENTERED: - // Unfocus on enter, then do same actions as LOST_FOCUS case - source.setFocus(false); - case LOST_FOCUS: - // Sanitize and update manager - float val = sanitizeFloatInputValue(source); - if (val >= 0.0) { - shiftTypeManager.noise_setNoiseMultiplier(val); - showPreview(); - } - // Update input text to match sanitized input - // Also reverts input text in the event that it was not a valid numeric - // value after parsing - source.setText("" + shiftTypeManager.noise_noiseMultiplier()); - break; - default: - break; - } -} diff --git a/controlsWindow.pde b/controlsWindow.pde index 58f6c9b..f34bf39 100644 --- a/controlsWindow.pde +++ b/controlsWindow.pde @@ -345,10 +345,44 @@ int RECURSIVE_CHECKBOX_Y = CONFIRM_BTN_Y + RESET_CONFIRM_BTN_HEIGHT; // ============================================================================= -// Create GUI +// COMMON SETUP HELPERS // ============================================================================= -// WINDOW ====================================================================== +// General Configs ------------------------------------------------------------- + +// Common panel formatting +public void setupGeneralPanel(GPanel panel) { + panel.setTextBold(); + panel.setCollapsible(false); + panel.setDraggable(false); +} +// Common panel formatting w/ colorscheme +public void setupGeneralPanel(GPanel panel, int colorScheme) { + setupGeneralPanel(panel); + panel.setLocalColorScheme(colorScheme); + panel.setOpaque(true); +} + +// Common label formatting +public void setupGeneralLabel(GLabel label) { + label.setTextAlign(GAlign.CENTER, GAlign.MIDDLE); + label.setTextBold(); +} + +// General Utilities ----------------------------------------------------------- + +// Show/hide a panel (w/ collapse) +public void togglePanelVisibility(GPanel panel, boolean show) { + panel.setCollapsed(!show); + panel.setVisible(show); +} + + +// ============================================================================= +// WINDOW +// ============================================================================= + +// Setup ----------------------------------------------------------------------- public void createGUI(){ G4P.messagesEnabled(false); @@ -384,48 +418,15 @@ public void createGUI(){ controlsWindow.loop(); } -// Event Handlers ============================================================== - -// Controls Window ------------------------------------------------------------- +// Event Handlers -------------------------------------------------------------- synchronized public void controlsWindow_draw(PApplet appc, GWinData data) { appc.background(230); } - -// Helpers ===================================================================== - -// General Configs ------------------------------------------------------------- -// TODO extended class that uses these defaults? - -// Common panel formatting -public void setupGeneralPanel(GPanel panel) { - panel.setTextBold(); - panel.setCollapsible(false); - panel.setDraggable(false); -} -// Common panel formatting w/ colorscheme -public void setupGeneralPanel(GPanel panel, int colorScheme) { - setupGeneralPanel(panel); - panel.setLocalColorScheme(colorScheme); - panel.setOpaque(true); -} - -// Common label formatting -public void setupGeneralLabel(GLabel label) { - label.setTextAlign(GAlign.CENTER, GAlign.MIDDLE); - label.setTextBold(); -} - -// General Utilities ----------------------------------------------------------- - -// Show/hide a panel (w/ collapse) -public void togglePanelVisibility(GPanel panel, boolean show) { - panel.setCollapsed(!show); - panel.setVisible(show); -} - -// CHANNEL TOGGLE PANELS ======================================================= +// ============================================================================= +// CHANNEL TOGGLE PANELS +// ============================================================================= public void createChannelPanel(GPanel channelPanel, GToggleGroup channelToggle, ChannelOption R, ChannelOption G, ChannelOption B, boolean src) { // Configure options @@ -473,7 +474,9 @@ public void createTargChannelPanel() { } -// CHANNEL SHIFT PANELS ======================================================== +// ============================================================================= +// CHANNEL SHIFT PANELS +// ============================================================================= /** * Common setup for channel shift slider panels. GUI objects must be @@ -543,9 +546,10 @@ public void createYShiftPanel() { createChannelShiftPanel(yShiftPanel, GCScheme.GREEN_SCHEME, ySlider, "ySlider_change", ySliderInput, "ySliderInput_change", ySliderToggle, ySliderPercent, "ySliderPercent_clicked", ySliderPixels, "ySliderPixels_clicked"); } -// RANDOMIZE/RESET BUTTON PANEL ================================================ +// ============================================================================= +// RANDOMIZE PANEL +// ============================================================================= -// TODO: extract common? public void createRandomizePanel() { randomizePanel = new GPanel(controlsWindow, RAND_PANEL_X, RAND_PANEL_Y, RAND_PANEL_WIDTH, RAND_PANEL_HEIGHT, "Randomize Options"); setupGeneralPanel(randomizePanel, GCScheme.CYAN_SCHEME); @@ -600,9 +604,66 @@ public void createRandomizePanel() { randMaxTabManager.addControls(randXMaxInput, randYMaxInput); } -// SHIFT TYPE PANEL ============================================================ -// Advanced options panel +// ============================================================================= +// LOAD/SAVE/RESET/CONFIRM PANEL +// ============================================================================= + +// Load/Save Panel ------------------------------------------------------------- + +public void createLoadSavePanel() { + loadSavePanel = new GPanel(controlsWindow, LOAD_SAVE_PANEL_X, LOAD_SAVE_PANEL_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_PANEL_HEIGHT); + setupGeneralPanel(loadSavePanel); + loadSavePanel.setOpaque(false); + // Load button + loadBtn = new GButton(controlsWindow, LOAD_BTN_X, LOAD_BTN_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_BTN_HEIGHT); + loadBtn.setText("Load Image"); + loadBtn.setTextBold(); + loadBtn.setLocalColorScheme(GCScheme.ORANGE_SCHEME); + loadBtn.addEventHandler(this, "loadBtn_click"); + loadSavePanel.addControl(loadBtn); + // Save button + saveBtn = new GButton(controlsWindow, SAVE_BTN_X, SAVE_BTN_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_BTN_HEIGHT); + saveBtn.setText("Save Result"); + saveBtn.setTextBold(); + saveBtn.setLocalColorScheme(GCScheme.GREEN_SCHEME); + saveBtn.addEventHandler(this, "saveBtn_click"); + loadSavePanel.addControl(saveBtn); +} + +// Preview/Confirm Panel ------------------------------------------------------- + +public void createResetConfirmPanel() { + resetConfirmPanel = new GPanel(controlsWindow, RESET_CONFIRM_PANEL_X, RESET_CONFIRM_PANEL_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_PANEL_HEIGHT); + setupGeneralPanel(resetConfirmPanel); + resetConfirmPanel.setOpaque(false); + // Reset Button + resetBtn = new GButton(controlsWindow, RESET_BTN_X, RESET_BTN_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_BTN_HEIGHT); + resetBtn.setText("Reset Step"); + resetBtn.setLocalColorScheme(GCScheme.YELLOW_SCHEME); + resetBtn.addEventHandler(this, "resetBtn_click"); + resetConfirmPanel.addControl(resetBtn); + // Confirm Button + confirmBtn = new GButton(controlsWindow, CONFIRM_BTN_X, CONFIRM_BTN_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_BTN_HEIGHT); + confirmBtn.setText("Confirm Step"); + confirmBtn.addEventHandler(this, "confirmBtn_click"); + resetConfirmPanel.addControl(confirmBtn); + // Recursive checkbox + recursiveCheckbox = new GCheckbox(controlsWindow, RECURSIVE_CHECKBOX_X, RECURSIVE_CHECKBOX_Y, RESET_CONFIRM_PANEL_WIDTH, RECURSIVE_CHECKBOX_HEIGHT); + recursiveCheckbox.setSelected(true); + recursiveCheckbox.setText("Recursive", GAlign.CENTER, GAlign.MIDDLE); + recursiveCheckbox.setOpaque(true); + recursiveCheckbox.addEventHandler(this, "recursiveCheckbox_click"); + resetConfirmPanel.addControl(recursiveCheckbox); +} + + +// ============================================================================= +// ADVANCED OPTIONS PANEL +// ============================================================================= + +// Setup ----------------------------------------------------------------------- + public void createAdvancedOptionsPanel() { advancedOptionsPanel = new GPanel(controlsWindow, ADV_OPTS_PANEL_X, ADV_OPTS_PANEL_Y, ADV_OPTS_PANEL_WIDTH, ADV_OPTS_PANEL_HEIGHT, "Advanced Options"); setupGeneralPanel(advancedOptionsPanel, GCScheme.PURPLE_SCHEME); @@ -625,7 +686,7 @@ public void createAdvancedOptionsPanel() { createNoiseShiftTypePanel(); } -// Helpers +// Helpers --------------------------------------------------------------------- public void hideShiftTypePanel(GPanel panel) { togglePanelVisibility(panel, false); @@ -638,7 +699,18 @@ public void showShiftTypePanel(GPanel panel) { togglePanelVisibility(panel, true); } -// Type config panels (called above) +// Event Handlers -------------------------------------------------------------- + +public void shiftTypeSelect_change(GDropList source, GEvent event) { + // Hide previously selected panel + hideShiftTypePanel(shiftTypeConfigPanels[shiftTypeManager.state]); + shiftTypeManager.setShiftType(source.getSelectedIndex()); + // Show newly selected panel + showShiftTypePanel(shiftTypeConfigPanels[shiftTypeManager.state]); + showPreview(); +} + +// Type config panels (called above) ------------------------------------------- public void setupShiftTypePanel(GPanel panel, int shiftTypeIndex) { setupGeneralPanel(panel); @@ -649,7 +721,13 @@ public void setupShiftTypePanel(GPanel panel, int shiftTypeIndex) { shiftTypeConfigPanels[shiftTypeIndex] = panel; } -// SHIFT TYPE PANELS =========================================================== +// ============================================================================= +// SHIFT TYPE CONFIGS +// ============================================================================= + +// Default ===================================================================== + +// Setup ----------------------------------------------------------------------- public void createDefaultShiftTypePanel() { defaultShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); @@ -666,6 +744,11 @@ public void createDefaultShiftTypePanel() { advancedOptionsPanel.addControl(defaultShiftTypePanel); } + +// Scale ======================================================================= + +// Setup ----------------------------------------------------------------------- + public void createScaleShiftTypePanel() { scaleShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(scaleShiftTypePanel, TYPE_SCALE); @@ -695,6 +778,43 @@ public void createScaleShiftTypePanel() { advancedOptionsPanel.addControl(scaleShiftTypePanel); } +// Event Handlers -------------------------------------------------------------- + +void multiplierInputEventHandler(GTextField source, GEvent event, boolean horizontal) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val > -1.0) { + shiftTypeManager.scale_setMultiplier(val, horizontal); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + shiftTypeManager.scale_getMultiplier(horizontal)); + break; + default: + break; + } +} + +public void xMultiplierInput_change(GTextField source, GEvent event) { + multiplierInputEventHandler(source, event, true); +} + +public void yMultiplierInput_change(GTextField source, GEvent event) { + multiplierInputEventHandler(source, event, false); +} + + +// Linear ====================================================================== + +// Setup ----------------------------------------------------------------------- + public void createLinearShiftTypePanel() { linearShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(linearShiftTypePanel, TYPE_LINEAR); @@ -731,6 +851,50 @@ public void createLinearShiftTypePanel() { advancedOptionsPanel.addControl(linearShiftTypePanel); } +// Event Handlers -------------------------------------------------------------- + +public void linearYEquals_clicked(GOption source, GEvent event) { + shiftTypeManager.linear_setEquationType(true); + showPreview(); +} + +public void linearXEquals_clicked(GOption source, GEvent event) { + shiftTypeManager.linear_setEquationType(false); + showPreview(); +} + +public void linearCoeffInput_change(GTextField source, GEvent event) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val > -1.0) { + shiftTypeManager.linear_setCoefficient(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + shiftTypeManager.linear_getCoefficient()); + break; + default: + break; + } +} + +public void linearNegativeCoeffCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.linear_setCoefficientSign(!source.isSelected()); + showPreview(); +} + + +// Skew ======================================================================== + +// Setup ----------------------------------------------------------------------- + public void createSkewShiftTypePanel() { skewShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(skewShiftTypePanel, TYPE_SKEW); @@ -766,6 +930,53 @@ public void createSkewShiftTypePanel() { advancedOptionsPanel.addControl(skewShiftTypePanel); } +// Event Handlers -------------------------------------------------------------- + +void skewInputEventHandler(GTextField source, GEvent event, boolean horizontal) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val > -1.0) { + shiftTypeManager.skew_setSkew(val, horizontal); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + shiftTypeManager.skew_getSkew(horizontal)); + break; + default: + break; + } +} + +public void xSkewInput_change(GTextField source, GEvent event) { + skewInputEventHandler(source, event, true); +} + +public void xSkewNegativeCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.skew_setSign(!source.isSelected(), true); + showPreview(); +} + +public void ySkewInput_change(GTextField source, GEvent event) { + skewInputEventHandler(source, event, false); +} + +public void ySkewNegativeCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.skew_setSign(!source.isSelected(), false); + showPreview(); +} + + +// X*Y ========================================================================= + +// Setup ----------------------------------------------------------------------- + public void createXYMultShiftTypePanel() { xyMultShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(xyMultShiftTypePanel, TYPE_XYMULT); @@ -794,6 +1005,33 @@ public void createXYMultShiftTypePanel() { advancedOptionsPanel.addControl(xyMultShiftTypePanel); } +// Event Handlers -------------------------------------------------------------- + +public void multXCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.xymult_setMultX(source.isSelected()); + showPreview(); +} + +public void multXNegativeCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.xymult_setXSign(!source.isSelected()); + showPreview(); +} + +public void multYCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.xymult_setMultY(source.isSelected()); + showPreview(); +} + +public void multYNegativeCheckbox_click(GCheckbox source, GEvent event) { + shiftTypeManager.xymult_setYSign(!source.isSelected()); + showPreview(); +} + + +// Noise ======================================================================= + +// Setup ----------------------------------------------------------------------- + public void createNoiseShiftTypePanel() { noiseShiftTypePanel = new GPanel(controlsWindow, TYPE_PANEL_X, TYPE_PANEL_Y, TYPE_PANEL_WIDTH, TYPE_PANEL_HEIGHT); setupShiftTypePanel(noiseShiftTypePanel, TYPE_NOISE); @@ -855,53 +1093,99 @@ public void createNoiseShiftTypePanel() { advancedOptionsPanel.addControl(noiseShiftTypePanel); } -// BOTTOM PANELS =============================================================== +// Event Handlers -------------------------------------------------------------- -// Load/Save Panel ------------------------------------------------------------- +// Noise Start -public void createLoadSavePanel() { - loadSavePanel = new GPanel(controlsWindow, LOAD_SAVE_PANEL_X, LOAD_SAVE_PANEL_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_PANEL_HEIGHT); - setupGeneralPanel(loadSavePanel); - loadSavePanel.setOpaque(false); - // Load button - loadBtn = new GButton(controlsWindow, LOAD_BTN_X, LOAD_BTN_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_BTN_HEIGHT); - loadBtn.setText("Load Image"); - loadBtn.setTextBold(); - loadBtn.setLocalColorScheme(GCScheme.ORANGE_SCHEME); - loadBtn.addEventHandler(this, "loadBtn_click"); - loadSavePanel.addControl(loadBtn); - // Save button - saveBtn = new GButton(controlsWindow, SAVE_BTN_X, SAVE_BTN_Y, LOAD_SAVE_PANEL_WIDTH, LOAD_SAVE_BTN_HEIGHT); - saveBtn.setText("Save Result"); - saveBtn.setTextBold(); - saveBtn.setLocalColorScheme(GCScheme.GREEN_SCHEME); - saveBtn.addEventHandler(this, "saveBtn_click"); - loadSavePanel.addControl(saveBtn); +void noiseStartInputEventHandler(GTextField source, GEvent event, boolean isX) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + if (isX) + shiftTypeManager.noise_setXNoiseStart(val); + else + shiftTypeManager.noise_setYNoiseStart(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + (isX ? shiftTypeManager.noise_xNoiseStart() : shiftTypeManager.noise_yNoiseStart())); + break; + default: + break; + } } -// Preview/Confirm Panel ------------------------------------------------------- +public void xNoiseStartInput_change(GTextField source, GEvent event) { + noiseStartInputEventHandler(source, event, true); +} -public void createResetConfirmPanel() { - resetConfirmPanel = new GPanel(controlsWindow, RESET_CONFIRM_PANEL_X, RESET_CONFIRM_PANEL_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_PANEL_HEIGHT); - setupGeneralPanel(resetConfirmPanel); - resetConfirmPanel.setOpaque(false); - // Reset Button - resetBtn = new GButton(controlsWindow, RESET_BTN_X, RESET_BTN_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_BTN_HEIGHT); - resetBtn.setText("Reset Step"); - resetBtn.setLocalColorScheme(GCScheme.YELLOW_SCHEME); - resetBtn.addEventHandler(this, "resetBtn_click"); - resetConfirmPanel.addControl(resetBtn); - // Confirm Button - confirmBtn = new GButton(controlsWindow, CONFIRM_BTN_X, CONFIRM_BTN_Y, RESET_CONFIRM_PANEL_WIDTH, RESET_CONFIRM_BTN_HEIGHT); - confirmBtn.setText("Confirm Step"); - confirmBtn.addEventHandler(this, "confirmBtn_click"); - resetConfirmPanel.addControl(confirmBtn); - // Recursive checkbox - recursiveCheckbox = new GCheckbox(controlsWindow, RECURSIVE_CHECKBOX_X, RECURSIVE_CHECKBOX_Y, RESET_CONFIRM_PANEL_WIDTH, RECURSIVE_CHECKBOX_HEIGHT); - recursiveCheckbox.setSelected(true); - recursiveCheckbox.setText("Recursive", GAlign.CENTER, GAlign.MIDDLE); - recursiveCheckbox.setOpaque(true); - recursiveCheckbox.addEventHandler(this, "recursiveCheckbox_click"); - resetConfirmPanel.addControl(recursiveCheckbox); +public void yNoiseStartInput_change(GTextField source, GEvent event) { + noiseStartInputEventHandler(source, event, false); +} + +// Noise Increment + +void noiseIncrementInputEventHandler(GTextField source, GEvent event, boolean isX) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + if (isX) + shiftTypeManager.noise_setXNoiseIncrement(val); + else + shiftTypeManager.noise_setYNoiseIncrement(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + (isX ? shiftTypeManager.noise_xNoiseIncrement() : shiftTypeManager.noise_yNoiseIncrement())); + break; + default: + break; + } +} + +public void xNoiseIncrementInput_change(GTextField source, GEvent event) { + noiseIncrementInputEventHandler(source, event, true); +} + +public void yNoiseIncrementInput_change(GTextField source, GEvent event) { + noiseIncrementInputEventHandler(source, event, false); +} + +// Noise Multiplier + +public void noiseMultiplierInput_change(GTextField source, GEvent event) { + switch(event) { + case ENTERED: + // Unfocus on enter, then do same actions as LOST_FOCUS case + source.setFocus(false); + case LOST_FOCUS: + // Sanitize and update manager + float val = sanitizeFloatInputValue(source); + if (val >= 0.0) { + shiftTypeManager.noise_setNoiseMultiplier(val); + showPreview(); + } + // Update input text to match sanitized input + // Also reverts input text in the event that it was not a valid numeric + // value after parsing + source.setText("" + shiftTypeManager.noise_noiseMultiplier()); + break; + default: + break; + } } From 41aa7a4dc15dfd5901cefb508d0f931c6d9825e2 Mon Sep 17 00:00:00 2001 From: Connor de la Cruz Date: Tue, 15 Jun 2021 14:29:30 -0500 Subject: [PATCH 13/14] Upgraded G4P to 4.3.0 --- code/G4P.jar | Bin 233659 -> 235350 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/code/G4P.jar b/code/G4P.jar index f8cad2a711337e645177675bda03da7dfc53b57b..9fdeb2d95b807429cadda2155ca2a016c5b212c4 100644 GIT binary patch delta 74960 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 delta 73056 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 Date: Tue, 15 Jun 2021 14:35:08 -0500 Subject: [PATCH 14/14] Upgraded G4P to 4.3.2 --- code/G4P.jar | Bin 235350 -> 234664 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/code/G4P.jar b/code/G4P.jar index 9fdeb2d95b807429cadda2155ca2a016c5b212c4..c36d49d495b6f009b950008d3e844db0eff57619 100644 GIT binary patch delta 23427 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 H3Iq0k{GiHO delta 24132 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