- Timestamp:
- 10/26/06 17:59:06 (2 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/components/rendering/src/omeis/providers/re/data/PlaneFactory.java
r821 r1048 193 193 iPixels.getEnumeration(RenderingModel.class, value); 194 194 } 195 196 /**197 * Helper method to create the default settings if none is available.198 * In this case we use a grayscale model to map the first wavelength in199 * the pixels file. The mapping is linear and the intervals are selected200 * according to a "best-guess" statistical approach.201 *202 * @param iPixels An IPixels service.203 * @param metadata Pixels object.204 * @return The default rendering settings.205 */206 public static RenderingDef createDefaultRenderingDef(IPixels iPixels,207 Pixels metadata)208 {209 int c_size = metadata.getSizeC().intValue();210 int z_size = metadata.getSizeZ().intValue();211 212 QuantumDef qDef = new QuantumDef();213 qDef.setBitResolution(new Integer(QuantumFactory.DEPTH_8BIT));214 qDef.setCdStart(new Integer(0));215 qDef.setCdEnd(new Integer(QuantumFactory.DEPTH_8BIT));216 217 ChannelBinding[] waves = new ChannelBinding[c_size];218 boolean active = false;219 RenderingModel model =220 getRenderingModel(iPixels, Renderer.MODEL_GREYSCALE);221 222 List channels = metadata.getChannels();223 int w = 0;224 for (Iterator i = channels.iterator(); i.hasNext(); )225 {226 Channel channel = (Channel) i.next();227 double gMin = channel.getStatsInfo().getGlobalMin().doubleValue();228 double gMax = channel.getStatsInfo().getGlobalMax().doubleValue();229 Color color = ColorsFactory.getColor(w, channel);230 if (metadata.getAcquisitionContext().231 getPhotometricInterpretation().getValue() == Renderer.PHOTOMETRIC_RGB)232 {233 active = true;234 model = getRenderingModel(iPixels, Renderer.MODEL_RGB);235 }236 waves[w] = new ChannelBinding();237 // FIXME: These downcasts should probably be dealt with. The input238 // start and input end are floating point whereas the statistical239 // global min and global max values stored in the database are240 // double precision.241 waves[w].setInputStart((float) gMin);242 waves[w].setInputEnd((float) gMax);243 waves[w].setColor(color);244 waves[w].setActive(active);245 waves[w].setFamily(QuantumFactory.getFamily(QuantumFactory.LINEAR));246 waves[w].setCoefficient(1.0);247 }248 waves[0].setActive(true); //NOTE: dims object enforces 1 < sizeC.249 RenderingDef newRD = new RenderingDef();250 int defaultZ = z_size/2+z_size%2-1;251 newRD.setDefaultZ(Integer.valueOf(defaultZ));252 newRD.setDefaultT(Integer.valueOf(0));253 newRD.setModel(model);254 newRD.setQuantization(qDef);255 newRD.setWaveRendering(Arrays.asList(waves));256 return newRD;257 }258 195 }
