001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002-2006, GeoTools Project Managment Committee (PMC)
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: */
016: package org.geotools.styling;
017:
018: import org.geotools.event.GTComponent;
019:
020: /**
021: * The ChannelSelection element specifies the false-color channel selection for
022: * a multi-spectral raster source (such as a multi-band satellite-imagery
023: * source). It is defined as:
024: * <PRE>
025: * <xs:element name="ChannelSelection">
026: * <xs:complexType>
027: * <xs:choice>
028: * <xs:sequence>
029: * <xs:element ref="sld:RedChannel"/>
030: * <xs:element ref="sld:GreenChannel"/>
031: * <xs:element ref="sld:BlueChannel"/>
032: * </xs:sequence>
033: * <xs:element ref="sld:GrayChannel"/>
034: * </xs:choice>
035: * </xs:complexType>
036: * </xs:element>
037: * <xs:element name="RedChannel" type="sld:SelectedChannelType"/>
038: * <xs:element name="GreenChannel" type="sld:SelectedChannelType"/>
039: * <xs:element name="BlueChannel" type="sld:SelectedChannelType"/>
040: * <xs:element name="GrayChannel" type="sld:SelectedChannelType"/>
041: * </PRE>
042: * Either a channel may be selected to display in each of red, green, and blue,
043: * or a single channel may be selected to display in grayscale. (The spelling
044: * ?gray? is used since it seems to be more common on the Web than ?grey? by a
045: * ratio of about 3:1.) Contrast enhancement may be applied to each channel in
046: * isolation. Channels are identified by a system and data-dependent
047: * character identifier. Commonly, channels will be labelled as ?1?, ?2?,
048: * etc.
049: *
050: * @author iant
051: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/api/src/main/java/org/geotools/styling/ChannelSelection.java $
052: */
053: public interface ChannelSelection extends GTComponent {
054: /**
055: * set the RGB channels to be used
056: *
057: * @param red the red channel
058: * @param green the green channel
059: * @param blue the blue channel
060: */
061: void setRGBChannels(SelectedChannelType red,
062: SelectedChannelType green, SelectedChannelType blue);
063:
064: /**
065: * set the RGB channels to be used
066: *
067: * @param channels array of channels in RGB order
068: */
069: void setRGBChannels(SelectedChannelType[] channels);
070:
071: /**
072: * get the RGB channels to be used
073: *
074: * @return array of channels in RGB order
075: */
076: SelectedChannelType[] getRGBChannels();
077:
078: /**
079: * Set the gray channel to be used
080: *
081: * @param gray the gray channel
082: */
083: void setGrayChannel(SelectedChannelType gray);
084:
085: /**
086: * Get the gray channel to be used
087: *
088: * @return the gray channel
089: */
090: SelectedChannelType getGrayChannel();
091:
092: /**
093: * set the channels to be used
094: *
095: * @param channels array of channels
096: */
097: void setSelectedChannels(SelectedChannelType[] channels);
098:
099: /**
100: * get the channels to be used
101: *
102: * @return array of channels
103: */
104: SelectedChannelType[] getSelectedChannels();
105: }
|