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 FDORFPRASTERIMAGEDEFINITION_H
00020 #define FDORFPRASTERIMAGEDEFINITION_H
00021
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif //_WIN32
00025
00026 class FdoRfpRasterExtents;
00027 class FdoRfpRasterGeoreferenceLocation;
00028
00029 /// \brief
00030 ///
00031 /// The FdoRfpRasterImageDefinition class defines a raster image which contains a name
00032 /// and the extents of the raster image.
00033 class FdoRfpRasterImageDefinition : public FdoPhysicalElementMapping
00034 {
00035 typedef FdoPhysicalElementMapping BaseType;
00036 friend class FdoRfpRasterBandDefinition;
00037
00038 public:
00039 /// \brief
00040 /// Constructs a new Raster Image Definition.
00041 ///
00042 /// \return
00043 /// Returns the newly created FdoRfpRasterImageDefinition instance.
00044 ///
00045 FDORFP_API static FdoRfpRasterImageDefinition* Create();
00046
00047 /// \brief
00048 /// Gets the frame number of the raster image.
00049 ///
00050 /// \return
00051 /// Returns the frame number of the raster image.
00052 ///
00053 FDORFP_API FdoInt32 GetFrameNumber();
00054
00055 /// \brief
00056 /// Sets the frame number of the raster image.
00057 ///
00058 /// \param extents
00059 /// Input the frame number of the raster image.
00060 ///
00061 /// \return
00062 /// Returns nothing
00063 ///
00064 FDORFP_API void SetFrameNumber(FdoInt32 frameNumber);
00065
00066 /// \brief
00067 /// Gets the georeferenced location of the raster image.
00068 ///
00069 /// \return
00070 /// Returns the georeferenced location of the raster image.
00071 ///
00072 FDORFP_API FdoRfpRasterGeoreferenceLocation * GetGeoreferencedLocation();
00073
00074 /// \brief
00075 /// Sets the georeferenced location of the raster image.
00076 ///
00077 /// \param location
00078 /// Input the georeferenced location of the raster image.
00079 ///
00080 /// \return
00081 /// Returns nothing
00082 ///
00083 FDORFP_API void SetGeoreferencedLocation (FdoRfpRasterGeoreferenceLocation * location);
00084
00085 /// \brief
00086 /// Gets the geographic bounds of the raster image.
00087 ///
00088 /// \return
00089 /// Returns the boundary of the raster image as an FDO byte array.
00090 ///
00091 FDORFP_API FdoByteArray * GetBounds();
00092
00093 /// \brief
00094 /// Sets the georeferenced bounds of the raster image.
00095 ///
00096 /// \param location
00097 /// Input the georeferenced boundary of the raster image.
00098 ///
00099 /// \return
00100 /// Returns nothing
00101 ///
00102 FDORFP_API void SetBounds (FdoByteArray* bounds);
00103
00104 /// \cond DOXYGEN-IGNORE
00105
00106 /// XML Serialization functions, not part of supported API.
00107 FDORFP_API virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00108 FDORFP_API virtual FdoXmlSaxHandler* XmlStartElement(
00109 FdoXmlSaxContext* context,
00110 FdoString* uri,
00111 FdoString* name,
00112 FdoString* qname,
00113 FdoXmlAttributeCollection* atts
00114 );
00115 FDORFP_API virtual FdoBoolean XmlEndElement(
00116 FdoXmlSaxContext* context,
00117 FdoString* uri,
00118 FdoString* name,
00119 FdoString* qname
00120 );
00121 FDORFP_API virtual void XmlCharacters(FdoXmlSaxContext*, FdoString*);
00122 FDORFP_API void _writeXml( FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags );
00123
00124 protected:
00125 FDORFP_API FdoRfpRasterImageDefinition(void);
00126 FDORFP_API virtual ~FdoRfpRasterImageDefinition(void);
00127 void Dispose(void);
00128
00129 private:
00130 FdoInt32 m_state;
00131 FdoDouble *m_minX;
00132 FdoDouble *m_minY;
00133 FdoDouble *m_maxX;
00134 FdoDouble *m_maxY;
00135 FdoInt32 m_frameNumber;
00136 FdoPtr<FdoRfpRasterGeoreferenceLocation> m_geoReference;
00137
00138 /// \endcond
00139
00140 };
00141
00142 /// \brief
00143 /// FdoRfpRasterImageDefinitionP is a FdoPtr on FdoRfpRasterImageDefinition, provided for convenience.
00144 typedef FdoPtr<FdoRfpRasterImageDefinition> FdoRfpRasterImageDefinitionP;
00145
00146 #endif
00147
00148