00001 /*
00002 * (C) Copyright 2004 by Autodesk, Inc. All Rights Reserved.
00003 *
00004 * By using this code, you are agreeing to the terms and conditions of
00005 * the License Agreement included in the documentation for this code.
00006 *
00007 * AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE
00008 * CORRECTNESS OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE
00009 * IT. AUTODESK PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY
00010 * DISCLAIMS ANY LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL
00011 * DAMAGES FOR ERRORS, OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
00012 *
00013 * Use, duplication, or disclosure by the U.S. Government is subject
00014 * to restrictions set forth in FAR 52.227-19 (Commercial Computer
00015 * Software Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00016 * (Rights in Technical Data and Computer Software), as applicable.
00017 *
00018 */
00019 #ifndef FDORFPRASTERGEOREFERENCELOCATION_H
00020 #define FDORFPRASTERGEOREFERENCELOCATION_H
00021
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif //_WIN32
00025
00026 /// \brief
00027 ///
00028 /// The FdoRfpRasterImageDefinition class defines a raster image which contains a name
00029 /// and the extents of the raster image.
00030 class FdoRfpRasterGeoreferenceLocation : public FdoDisposable
00031 {
00032 public:
00033 /// \brief
00034 /// Constructs a new Raster Image Georeference Location.
00035 ///
00036 /// \return
00037 /// Returns the newly created FdoRfpRasterGeoreferenceLocation instance.
00038 ///
00039 FDORFP_API static FdoRfpRasterGeoreferenceLocation* Create();
00040
00041 /// \brief
00042 /// Retrieves the X insertion point of the raster image.
00043 ///
00044 /// \remarks
00045 /// X coordinate (in ground units) of the center of the upper
00046 /// left pixel of the image; the (1, 1) or (0, 0) pixel depending on convention.
00047 ///
00048 /// \return
00049 /// Returns the X insertion point.
00050 ///
00051 FDORFP_API FdoDouble GetXInsertionPoint (void) const;
00052
00053 /// \brief
00054 /// Sets the X insertion point of the raster image.
00055 ///
00056 /// \remarks
00057 /// X coordinate (in ground units) of the center of the upper
00058 /// left pixel of the image; the (1, 1) or (0, 0) pixel depending on convention.
00059 ///
00060 /// \param point
00061 /// Input the X insertion point of the image.
00062 ///
00063 /// \return
00064 /// Returns nothing.
00065 ///
00066 FDORFP_API void SetXInsertionPoint (FdoDouble point);
00067
00068 /// \brief
00069 /// Retrieves the Y insertion point of the raster image.
00070 ///
00071 /// \remarks
00072 /// Y coordinate (in ground units) of the center of the upper
00073 /// left pixel of the image; the (1, 1) or (0, 0) pixel depending on convention.
00074 ///
00075 /// \return
00076 /// Returns the Y insertion point.
00077 ///
00078 FDORFP_API FdoDouble GetYInsertionPoint (void) const;
00079
00080 /// \brief
00081 /// Sets the Y insertion point of the raster image.
00082 ///
00083 /// \remarks
00084 /// Y coordinate (in ground units) of the center of the upper
00085 /// left pixel of the image; the (1, 1) or (0, 0) pixel depending on convention.
00086 ///
00087 /// \param point
00088 /// Input the Y insertion point of the image.
00089 ///
00090 /// \return
00091 /// Returns nothing.
00092 ///
00093 FDORFP_API void SetYInsertionPoint (FdoDouble point);
00094
00095 /// \brief
00096 /// Retrieves the X resolution of the raster image.
00097 ///
00098 /// \remarks
00099 /// Cell size in the X direction. Usually a positive number.
00100 ///
00101 /// \return
00102 /// Returns the Resolution angle.
00103 ///
00104 FDORFP_API FdoDouble GetXResolution (void) const;
00105
00106 /// \brief
00107 /// Sets the X Resolution of the raster image.
00108 ///
00109 /// \remarks
00110 /// Cell size in the X direction. Usually a positive number.
00111 ///
00112 /// \param Resolution
00113 /// Input the Resolution angle in degrees.
00114 ///
00115 /// \return
00116 /// Returns nothing.
00117 ///
00118 FDORFP_API void SetXResolution (FdoDouble Resolution);
00119
00120 /// \brief
00121 /// Retrieves the Y Resolution of the raster image.
00122 ///
00123 /// \remarks
00124 /// Cell size in the Y direction. Usually a negative number in order to convert
00125 /// from image row numbering (increasing from the top down) to map coordinates (increasing
00126 /// from the bottom up). For a rectified image, ResolutionY must be equal to ResolutionX and
00127 /// of opposite sign.
00128 ///
00129 /// \return
00130 /// Returns the Resolution angle.
00131 ///
00132 FDORFP_API FdoDouble GetYResolution (void) const;
00133
00134 /// \brief
00135 /// Sets the Y Resolution of the raster image.
00136 ///
00137 /// \remarks
00138 /// Cell size in the Y direction. Usually a negative number in order to convert
00139 /// from image row numbering (increasing from the top down) to map coordinates (increasing
00140 /// from the bottom up). For a rectified image, ResolutionY must be equal to ResolutionX and
00141 /// of opposite sign.
00142 ///
00143 /// \param resolution
00144 /// Input the resolution of the .
00145 ///
00146 /// \return
00147 /// Returns nothing.
00148 ///
00149 FDORFP_API void SetYResolution (FdoDouble resolution);
00150
00151 /// \brief
00152 /// Retrieves the X Rotation of the raster image.
00153 ///
00154 /// \return
00155 /// Returns the rotation angle.
00156 ///
00157 FDORFP_API FdoDouble GetXRotation (void) const;
00158
00159 /// \brief
00160 /// Sets the X Rotation of the raster image.
00161 ///
00162 /// \param rotation
00163 /// Input the rotation angle in degrees.
00164 ///
00165 /// \return
00166 /// Returns nothing.
00167 ///
00168 FDORFP_API void SetXRotation (FdoDouble rotation);
00169
00170 /// \brief
00171 /// Retrieves the Y Rotation (Skew) of the raster image.
00172 ///
00173 /// \return
00174 /// Returns the rotation angle.
00175 ///
00176 FDORFP_API FdoDouble GetYRotation (void) const;
00177
00178 /// \brief
00179 /// Sets the Y Rotation (Skew) of the raster image.
00180 ///
00181 /// \param rotation
00182 /// Input the rotation angle in degrees.
00183 ///
00184 /// \return
00185 /// Returns nothing.
00186 ///
00187 FDORFP_API void SetYRotation (FdoDouble rotation);
00188
00189 protected:
00190 FDORFP_API FdoRfpRasterGeoreferenceLocation(void);
00191 FDORFP_API virtual ~FdoRfpRasterGeoreferenceLocation(void);
00192 void Dispose(void);
00193
00194 private:
00195 FdoDouble m_resX;
00196 FdoDouble m_resY;
00197 FdoDouble m_insX;
00198 FdoDouble m_insY;
00199 FdoDouble m_rotX;
00200 FdoDouble m_rotY;
00201 /// \endcond
00202
00203 };
00204
00205 /// \brief
00206 /// FdoRfpRasterImageDefinitionP is a FdoPtr on FdoRfpRasterImageDefinition, provided for convenience.
00207 typedef FdoPtr<FdoRfpRasterGeoreferenceLocation> FdoRfpRasterGeoreferenceLocationP;
00208
00209 #endif // FDORFPRASTERGEOREFERENCELOCATION_H
00210
00211