/*
* 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 ChannelSelection element specifies the false-color channel selection for
* a multi-spectral raster source (such as a multi-band satellite-imagery
* source). It is defined as:
* <PRE>
* <xs:element name="ChannelSelection">
* <xs:complexType>
* <xs:choice>
* <xs:sequence>
* <xs:element ref="sld:RedChannel"/>
* <xs:element ref="sld:GreenChannel"/>
* <xs:element ref="sld:BlueChannel"/>
* </xs:sequence>
* <xs:element ref="sld:GrayChannel"/>
* </xs:choice>
* </xs:complexType>
* </xs:element>
* <xs:element name="RedChannel" type="sld:SelectedChannelType"/>
* <xs:element name="GreenChannel" type="sld:SelectedChannelType"/>
* <xs:element name="BlueChannel" type="sld:SelectedChannelType"/>
* <xs:element name="GrayChannel" type="sld:SelectedChannelType"/>
* </PRE>
* Either a channel may be selected to display in each of red, green, and blue,
* or a single channel may be selected to display in grayscale. (The spelling
* ?gray? is used since it seems to be more common on the Web than ?grey? by a
* ratio of about 3:1.) Contrast enhancement may be applied to each channel in
* isolation. Channels are identified by a system and data-dependent
* character identifier. Commonly, channels will be labelled as ?1?, ?2?,
* etc.
*
* @author iant
* @source $URL$
*/
public interface ChannelSelection extends org.opengis.style.ChannelSelection {
/**
* Set the RGB channels to be used
*
* @param red the red channel
* @param green the green channel
* @param blue the blue channel
*/
void setRGBChannels(SelectedChannelType red, SelectedChannelType green, SelectedChannelType blue);
/**
* Set the RGB channels to be used
*
* @param channels array of channels in RGB order
*/
void setRGBChannels(SelectedChannelType[] channels);
/**
* get the RGB channels to be used
*
* @return array of channels in RGB order
*/
SelectedChannelType[] getRGBChannels();
/**
* Set the gray channel to be used
*
* @param gray the gray channel
*/
void setGrayChannel(SelectedChannelType gray);
/**
* Get the gray channel to be used
*
* @return the gray channel
*/
SelectedChannelType getGrayChannel();
/**
* set the channels to be used
*
* @param channels array of channels
* @deprecated Please use setRGBChannels
*/
void setSelectedChannels(SelectedChannelType[] channels);
/**
* get the channels to be used
*
* @return array of channels
* @deprecated Please use getRGBChannels
*/
SelectedChannelType[] getSelectedChannels();
public void accept(org.geotools.styling.StyleVisitor visitor);
}