Revision 2308 org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/correction/ModeFilter.java
ModeFilter.java | ||
---|---|---|
22 | 22 |
package org.gvsig.raster.impl.grid.filter.correction; |
23 | 23 |
|
24 | 24 |
import org.gvsig.fmap.dal.coverage.datastruct.Params; |
25 |
import org.gvsig.fmap.dal.coverage.exception.FilterAddException; |
|
25 | 26 |
import org.gvsig.fmap.dal.coverage.grid.filter.BaseRasterFilter; |
26 |
import org.gvsig.raster.impl.DefaultRasterManager; |
|
27 |
import org.gvsig.raster.impl.buffer.RasterBuffer; |
|
28 | 27 |
import org.gvsig.raster.impl.store.ParamsImpl; |
29 | 28 |
|
30 | 29 |
/** |
31 | 30 |
* Clase base para los filtros de moda. |
32 | 31 |
* |
33 |
* 23/07/2008 |
|
34 | 32 |
* @author Nacho Brodin nachobrodin@gmail.com |
35 | 33 |
*/ |
36 | 34 |
public class ModeFilter extends BaseRasterFilter { |
... | ... | |
49 | 47 |
setName(names[0]); |
50 | 48 |
} |
51 | 49 |
|
52 |
/* |
|
53 |
* (non-Javadoc) |
|
54 |
* @see org.gvsig.raster.grid.filter.RasterFilter#pre() |
|
55 |
*/ |
|
56 |
public void pre() { |
|
57 |
exec = true; |
|
58 |
raster = (RasterBuffer) params.get("raster"); |
|
59 |
height = raster.getHeight(); |
|
60 |
width = raster.getWidth(); |
|
50 |
public void pre() throws FilterAddException { |
|
51 |
super.pre(); |
|
52 |
|
|
61 | 53 |
sideWindow = ((Integer) params.get("sideLong")).intValue(); |
62 | 54 |
|
63 | 55 |
//El lado de la ventana debe ser positivo e impar. |
... | ... | |
67 | 59 |
sizeWindow = sideWindow * sideWindow; |
68 | 60 |
halfSide = (sideWindow - 1) >> 1; |
69 | 61 |
|
70 |
rasterResult = DefaultRasterManager.getInstance().createBuffer(raster.getDataType(), raster.getWidth(), raster.getHeight(), raster.getBandCount(), true);
|
|
62 |
createBufferResult(raster.getDataType(), raster.getBandCount());
|
|
71 | 63 |
} |
72 | 64 |
|
73 |
/* |
|
74 |
* (non-Javadoc) |
|
75 |
* @see org.gvsig.raster.grid.filter.RasterFilter#post() |
|
76 |
*/ |
|
77 | 65 |
public void post() { |
78 | 66 |
// En caso de que nadie apunte a raster, se liberar? su memoria. |
79 | 67 |
raster = null; |
80 | 68 |
} |
81 | 69 |
|
82 |
/* |
|
83 |
* (non-Javadoc) |
|
84 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getGroup() |
|
85 |
*/ |
|
86 | 70 |
public String getGroup() { |
87 | 71 |
return "espaciales"; |
88 | 72 |
} |
89 | 73 |
|
90 |
/* |
|
91 |
* (non-Javadoc) |
|
92 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getInRasterDataType() |
|
93 |
*/ |
|
94 | 74 |
public int getInRasterDataType() { |
95 | 75 |
return 0; |
96 | 76 |
} |
97 | 77 |
|
98 |
/* |
|
99 |
* (non-Javadoc) |
|
100 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getNames() |
|
101 |
*/ |
|
102 | 78 |
public String[] getNames() { |
103 | 79 |
return names; |
104 | 80 |
} |
105 | 81 |
|
106 |
/* |
|
107 |
* (non-Javadoc) |
|
108 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getOutRasterDataType() |
|
109 |
*/ |
|
110 | 82 |
public int getOutRasterDataType() { |
111 | 83 |
return 0; |
112 | 84 |
} |
113 | 85 |
|
114 |
/* |
|
115 |
* (non-Javadoc) |
|
116 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getResult(java.lang.String) |
|
117 |
*/ |
|
118 |
public Object getResult(String name) { |
|
119 |
if (name.equals("raster")) { |
|
120 |
if (!exec) |
|
121 |
return this.raster; |
|
122 |
return this.rasterResult; |
|
123 |
} |
|
124 |
return null; |
|
125 |
} |
|
126 |
|
|
127 |
/* |
|
128 |
* (non-Javadoc) |
|
129 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getUIParams() |
|
130 |
*/ |
|
131 | 86 |
public Params getUIParams(String nameFilter) { |
132 | 87 |
if(params != null) { |
133 | 88 |
Object obj = params.get("sideLong"); |
... | ... | |
144 | 99 |
return params; |
145 | 100 |
} |
146 | 101 |
|
147 |
/* |
|
148 |
* (non-Javadoc) |
|
149 |
* @see org.gvsig.raster.grid.filter.RasterFilter#process(int, int) |
|
150 |
*/ |
|
151 | 102 |
public void process(int x, int y) { |
152 | 103 |
} |
153 | 104 |
|
Also available in: Unified diff