sascha@448: package de.intevation.gnv.raster;
sascha@448: 
sascha@465: /**
sascha@465:  * @author Sascha L. Teichmann (sascha.teichmann@intevation.de)
sascha@465:  */
sascha@448: public class IsoAttributeGenerator
sascha@465: implements   IsoProducer.AttributeGenerator
sascha@448: {
sascha@448:     protected Palette palette;
sascha@448: 
sascha@448:     public IsoAttributeGenerator() {
sascha@448:     }
sascha@448: 
sascha@448:     public IsoAttributeGenerator(Palette palette) {
sascha@448:         this.palette = palette;
sascha@448:     }
sascha@448: 
sascha@448:     public Object generateAttribute(int neighbor1, int neighbor2) {
sascha@448:         Palette.Entry e1 = palette.getEntryByIndex(neighbor1);
sascha@448:         Palette.Entry e2 = palette.getEntryByIndex(neighbor2);
sascha@448: 
sascha@448:         if (e1 == null || e2 == null) {
sascha@448:             return null;
sascha@448:         }
sascha@448: 
sascha@448:         double e1t = e1.getFrom();
sascha@448:         double e2f = e2.getTo();
sascha@448: 
sascha@448:         return Double.valueOf(e2f >= e1t
sascha@448:             ? 0.5d*(e1t+e2f)
sascha@448:             : 0.5d*(e2.getTo()+e1.getFrom()));
sascha@448:     }
sascha@448: }
sascha@448: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: