001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/graphics/transformation/GeoTransform.java $
002    /*----------------    FILE HEADER  ------------------------------------------
003    
004    This file is part of deegree.
005    Copyright (C) 2001-2008 by:
006    EXSE, Department of Geography, University of Bonn
007    http://www.giub.uni-bonn.de/deegree/
008    lat/lon GmbH
009    http://www.lat-lon.de
010    
011    This library is free software; you can redistribute it and/or
012    modify it under the terms of the GNU Lesser General Public
013    License as published by the Free Software Foundation; either
014    version 2.1 of the License, or (at your option) any later version.
015    
016    This library is distributed in the hope that it will be useful,
017    but WITHOUT ANY WARRANTY; without even the implied warranty of
018    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
019    Lesser General Public License for more details.
020    
021    You should have received a copy of the GNU Lesser General Public
022    License along with this library; if not, write to the Free Software
023    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
024    
025    Contact:
026    
027    Andreas Poth
028    lat/lon GmbH
029    Aennchenstr. 19
030    53115 Bonn
031    Germany
032    E-Mail: poth@lat-lon.de
033    
034    Prof. Dr. Klaus Greve
035    Department of Geography
036    University of Bonn
037    Meckenheimer Allee 166
038    53115 Bonn
039    Germany
040    E-Mail: greve@giub.uni-bonn.de
041    
042                     
043     ---------------------------------------------------------------------------*/
044    package org.deegree.graphics.transformation;
045    
046    import org.deegree.model.spatialschema.Envelope;
047    import org.deegree.model.spatialschema.Position;
048    
049    /**
050     * <code>GeoTransformInterface</code> declares the methods which have to
051     * be implemented by each class that executes a geographical coordinat
052     * transformation.
053     * 
054     * 
055     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
056     * @author last edited by: $Author: apoth $
057     * 
058     * @version. $Revision: 9340 $, $Date: 2007-12-27 13:32:12 +0100 (Do, 27 Dez 2007) $
059     */
060    public interface GeoTransform {
061        /**
062         *
063         *
064         * @param xdest 
065         *
066         * @return source x coordinate
067         */
068        public double getSourceX( double xdest );
069    
070        /**
071         *
072         *
073         * @param xsource 
074         *
075         * @return destination x coordinate
076         */
077        public double getDestX( double xsource );
078    
079        /**
080         *
081         *
082         * @param ydest 
083         *
084         * @return source y coordinate
085         */
086        public double getSourceY( double ydest );
087    
088        /**
089         *
090         *
091         * @param ysource 
092         *
093         * @return destination y coordinate
094         */
095        public double getDestY( double ysource );
096    
097        /**
098         * @param rect
099         * 
100         */
101        public void setSourceRect(Envelope rect);
102    
103    
104        /**
105         *
106         *
107         * @param xMin 
108         * @param yMin 
109         * @param xMax 
110         * @param yMax 
111         */
112        public void setSourceRect( double xMin, double yMin, double xMax, double yMax );
113    
114        /**
115         * @return source rectange
116         * 
117         */
118        public Envelope getSourceRect();
119    
120        /**
121         * @param rect
122         * 
123         */
124        public void setDestRect(Envelope rect);
125    
126    
127        /**
128         *
129         *
130         * @param xMin 
131         * @param yMin 
132         * @param xMax 
133         * @param yMax 
134         */
135        public void setDestRect( double xMin, double yMin, double xMax, double yMax );
136    
137        /**
138         * @return destination rectange
139         * 
140         */
141        public Envelope getDestRect();
142    
143        /**
144         *
145         *
146         * @param point 
147         *
148         * @return source position
149         */
150        public Position getSourcePoint( Position point );
151    
152        /**
153         *
154         *
155         * @param point 
156         *
157         * @return destination position
158         */
159        public Position getDestPoint( Position point );
160    }