/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.styling;
/**
* The ColorMap element defines either the colors of a palette-type raster
* source or the mapping of fixed-numeric pixel values to colors.
* <pre>
* <xs:element name="ColorMap">
* <xs:complexType>
* <xs:choice minOccurs="0" maxOccurs="unbounded">
* <xs:element ref="sld:ColorMapEntry"/>
* </xs:choice>
* </xs:complexType>
* </xs:element>
* </pre>
* For example, a DEM raster giving elevations in meters above sea level can be
* translated to a colored image with a ColorMap. The quantity attributes of
* a color-map are used for translating between numeric matrixes and color
* rasters and the ColorMap entries should be in order of increasing numeric
* quantity so that intermediate numeric values can be matched to a color (or
* be interpolated between two colors). Labels may be used for legends or
* may be used in the future to match character values. Not all systems can
* support opacity in colormaps. The default opacity is 1.0 (fully opaque).
* Defaults for quantity and label are system-dependent.
*
* @source $URL$
*/
public interface ColorMap extends org.opengis.style.ColorMap{
public static final int TYPE_RAMP = 1;
public static final int TYPE_INTERVALS = 2;
public static final int TYPE_VALUES = 3;
public void addColorMapEntry(ColorMapEntry entry);
public ColorMapEntry[] getColorMapEntries();
public ColorMapEntry getColorMapEntry(int i);
/**
* Type of color map; matchinges the function returned by getFunction().getName()
*
* @return One of TYPE_RAMP, TYPE_INTERVALS, or TYPE_VALUE
*/
public int getType();
/**
* @param type One of TYPE_RAMP, TYPE_INTERVALS, or TYPE_VALUE
*/
public void setType(int type);
void accept(org.geotools.styling.StyleVisitor visitor);
/**
* Tells me to use 65536 colors even if 256 could suffice.
*
* @param extended
* <code>true</code> for using 65536 colors, <code>false</code>
* for using 256.
*/
public void setExtendedColors(boolean extended);
public boolean getExtendedColors();
}