• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Change
  • Next Change →

Changeset 1048 for trunk/components/rendering/src/omeis/providers/re/data/PlaneFactory.java

Show
Ignore:
Timestamp:
10/26/06 17:59:06 (2 years ago)
Author:
callan
Message:

Huge rendering engine optimization and patch that closes and/or implements #190, #260, #449, #450, #451 and #453. Further information on rendering engine optimization can be found on the RenderingEngine Wiki page.

Files:
1 modified

  • trunk/components/rendering/src/omeis/providers/re/data/PlaneFactory.java (modified) (1 diff)

Legend:

Unmodified
Added
Removed
  • trunk/components/rendering/src/omeis/providers/re/data/PlaneFactory.java

    r821 r1048  
    193193                iPixels.getEnumeration(RenderingModel.class, value); 
    194194    } 
    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 in 
    199      * the pixels file.  The mapping is linear and the intervals are selected 
    200      * 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 input 
    238             // start and input end are floating point whereas the statistical 
    239             // global min and global max values stored in the database are 
    240             // 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     } 
    258195} 

Download in other formats:

  • Unified Diff
  • Zip Archive

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/