App
LUTCancelableTool.java
Go to the documentation of this file.
1 package mhr.appcore.tools.cancelable.lut;
2 
3 import mhr.appcore.bitmap.ChannelCount;
4 import mhr.appcore.bitmap.NBitmap;
5 import mhr.appcore.image.Image;
6 import mhr.appcore.image.ImageSelectedState;
7 import mhr.appcore.pointops.LUT;
8 import mhr.appcore.tools.actiondata.CancelableToolActionData;
9 import mhr.appcore.tools.actiondata.ToolActionData;
10 import mhr.appcore.tools.cancelable.CancelableTool;
11 import mhr.appcore.tools.exceptions.ToolNotApplicableException;
12 import mhr.appcore.utils.Rect;
13 
18 public abstract class LUTCancelableTool extends CancelableTool {
19 
20  //===== INTERFACES, CLASSES, ENUMS ==========================================================================================================//
21  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
22  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
23 
24  //===== FIELDS ==============================================================================================================================//
25  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
26  protected LUT lut;
27 
28  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
29 
30  //===== CONSTRUCTORS, DESTRUCTORS, RELATED METHODS ==========================================================================================//
31  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
32  @Override
33  protected void finalize() throws Throwable {
34  dispose();
35  super.finalize();
36  }
37 
38  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
39  public LUTCancelableTool() {
41  }
42 
43  @Override
44  public synchronized void dispose() {
45  if (lut != null) {
46  synchronized (lut) {
47  lut.dispose();
48  lut = null;
49  }
50  }
51  }
52 
53  //===== METHODS =============================================================================================================================//
54  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
55 
56  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
57  @Override
58  public void applyTo(Image img, ToolActionData data) {
60  throw new ToolNotApplicableException("Selected tool is not applicable to selected item.");
61  }
62  super.applyTo(img, data);
63  }
64 
65  @Override
66  public void onRender(Image img, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY) {
67  origLayer.copyTo(tmpLayer, src, srcOrigX, srcOrigY);
68  if (masterMask != null) {
69  lut.applyTo(tmpLayer, masterMask, src, srcOrigX, srcOrigY, 1.0);
70  } else {
71  lut.applyTo(tmpLayer, src, 1.0);
72  }
73  }
74 
75  @Override
76  public void onCommit(Image image, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY) {
77 
78  if (masterMask != null) {
79  lut.applyTo(origLayer, masterMask, src, srcOrigX, srcOrigY, 1.0);
80  } else {
81  lut.applyTo(origLayer, src, 1.0);
82  }
83  }
84 
85  //===== CALLBACKS ===========================================================================================================================//
86 
87  //----- destruktory -------------------------------------------------------------------------------------------------------------------------//
88 
89  //----- metody ------------------------------------------------------------------------------------------------------------------------------//
90 
91 }