001    /*
002     *    GeoAPI - Java interfaces for OGC/ISO standards
003     *    http://www.geoapi.org
004     *
005     *    Copyright (C) 2008-2012 Open Geospatial Consortium, Inc.
006     *    All Rights Reserved. http://www.opengeospatial.org/ogc/legal
007     *
008     *    Permission to use, copy, and modify this software and its documentation, with
009     *    or without modification, for any purpose and without fee or royalty is hereby
010     *    granted, provided that you include the following on ALL copies of the software
011     *    and documentation or portions thereof, including modifications, that you make:
012     *
013     *    1. The full text of this NOTICE in a location viewable to users of the
014     *       redistributed or derivative work.
015     *    2. Notice of any changes or modifications to the OGC files, including the
016     *       date changes were made.
017     *
018     *    THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
019     *    NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
020     *    TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
021     *    THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
022     *    PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
023     *
024     *    COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
025     *    CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
026     *
027     *    The name and trademarks of copyright holders may NOT be used in advertising or
028     *    publicity pertaining to the software without specific, written prior permission.
029     *    Title to copyright in this software and any associated documentation will at all
030     *    times remain with copyright holders.
031     */
032    package org.opengis.style;
033    
034    import org.opengis.annotation.Extension;
035    import org.opengis.annotation.XmlElement;
036    import org.opengis.filter.expression.Expression;
037    
038    
039    /**
040     * The ShadedRelief element selects the application of relief shading (or “hill shading”) to
041     * an image for a three-dimensional visual effect.
042     *
043     * Exact parameters of the shading are system-dependent (for now). If the BrightnessOnly
044     * flag is “0” or “false” (false, default), the shading is applied to the layer being rendered as
045     * the current RasterSymbolizer. If BrightnessOnly is “1” or “true” (true), the shading is
046     * applied to the brightness of the colors in the rendering canvas generated so far by other
047     * layers, with the effect of relief-shading these other layers. The default for
048     * BrightnessOnly is “0” (false). The ReliefFactor gives the amount of exaggeration to use
049     * for the height of the “hills.” A value of around 55 (times) gives reasonable results for
050     * Earth-based DEMs. The default value is system-dependent.
051     *
052     * @version <A HREF="http://www.opengeospatial.org/standards/symbol">Symbology Encoding Implementation Specification 1.1.0</A>
053     * @author Open Geospatial Consortium
054     * @author Ian Turton, CCG
055     * @author Johann Sorel (Geomatys)
056     * @since GeoAPI 2.2
057     */
058    @XmlElement("ShadedRelief")
059    public interface ShadedRelief {
060    
061        /**
062         * indicates if brightnessOnly is true or false. Default is false.
063         *
064         * @return boolean brightnessOn.
065         */
066        @XmlElement("BrightnessOnly")
067        public boolean isBrightnessOnly();
068    
069        /**
070         * The ReliefFactor gives the amount of exaggeration to use for the height
071         * of the ?hills.?  A value of around 55 (times) gives reasonable results
072         * for Earth-based DEMs. The default value is system-dependent.
073         *
074         * @return an expression which evaluates to a double.
075         */
076        @XmlElement("ReliefFactor")
077        public Expression getReliefFactor();
078    
079        /**
080         * calls the visit method of a StyleVisitor
081         *
082         * @param visitor the style visitor
083         */
084        @Extension
085        Object accept(StyleVisitor visitor, Object extraData);
086        
087    }