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 FDORFPRASTERBANDDEFINITION_H
00020 #define FDORFPRASTERBANDDEFINITION_H
00021
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif //_WIN32
00025
00026 class FdoRfpRasterExtents;
00027 class FdoRfpRasterFeatureDefinition;
00028 class FdoRfpRasterImageDefinition;
00029
00030 /// \brief
00031 ///
00032 /// The FdoRfpRasterBandDefinition class defines a raster band which contains a name
00033 /// and the extents of the raster band.
00034 class FdoRfpRasterBandDefinition : public FdoPhysicalElementMapping
00035 {
00036 typedef FdoPhysicalElementMapping BaseType;
00037
00038 public:
00039 /// \brief
00040 /// Constructs a new Raster Band Definition.
00041 ///
00042 /// \return
00043 /// Returns the newly created FdoRfpRasterBandDefinition instance.
00044 ///
00045 FDORFP_API static FdoRfpRasterBandDefinition* Create();
00046
00047 /// \brief
00048 /// Gets the raster image definition
00049 ///
00050 /// \return
00051 /// Returns the raster image definition.
00052 ///
00053 FDORFP_API FdoRfpRasterImageDefinition* GetImage();
00054
00055 /// \brief
00056 /// Sets the raster image definition.
00057 ///
00058 /// \param imageDefinition
00059 /// Input raster image definition
00060 ///
00061 /// \return
00062 /// Returns nothing
00063 ///
00064 FDORFP_API void SetImage(FdoRfpRasterImageDefinition* imageDefinition);
00065
00066 /// \brief
00067 /// Gets the band number
00068 ///
00069 /// \return
00070 /// Returns the band number.
00071 ///
00072 FDORFP_API FdoInt32 GetBandNumber();
00073
00074 /// \brief
00075 /// Sets the band number.
00076 ///
00077 /// \param imageDefinition
00078 /// Input band number
00079 ///
00080 /// \return
00081 /// Returns nothing
00082 ///
00083 FDORFP_API void SetBandNumber(FdoInt32 bandNumber);
00084
00085 /// \cond DOXYGEN-IGNORE
00086
00087 /// XML Serialization functions, not part of supported API.
00088 FDORFP_API virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00089 FDORFP_API virtual FdoXmlSaxHandler* XmlStartElement(
00090 FdoXmlSaxContext* context,
00091 FdoString* uri,
00092 FdoString* name,
00093 FdoString* qname,
00094 FdoXmlAttributeCollection* atts
00095 );
00096 FDORFP_API virtual FdoBoolean XmlEndElement(
00097 FdoXmlSaxContext* context,
00098 FdoString* uri,
00099 FdoString* name,
00100 FdoString* qname
00101 );
00102 FDORFP_API void _writeXml( FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags );
00103
00104 protected:
00105 FDORFP_API FdoRfpRasterBandDefinition(void);
00106 FDORFP_API virtual ~FdoRfpRasterBandDefinition(void);
00107 void Dispose(void);
00108
00109 private:
00110 FdoPtr<FdoRfpRasterImageDefinition> m_imageDefinition;
00111 FdoInt32 m_bandNumber;
00112
00113 /// \endcond
00114
00115 };
00116
00117 /// \brief
00118 /// FdoRfpRasterBandDefinitionP is a FdoPtr on FdoRfpRasterBandDefinition, provided for convenience.
00119 typedef FdoPtr<FdoRfpRasterBandDefinition> FdoRfpRasterBandDefinitionP;
00120
00121
00122 /// \brief
00123 ///
00124 /// The FdoRfpRasterBandCollection class holds a list of Raster Band Definition.
00125 class FdoRfpRasterBandCollection : public FdoPhysicalElementMappingCollection<FdoRfpRasterBandDefinition>
00126 {
00127 public:
00128 /// \brief
00129 /// Constructs a new empty collection of Raster Band Definition.
00130 ///
00131 /// \param parent
00132 /// Input parent object
00133 ///
00134 /// \return
00135 /// Returns the newly created FdoRfpRasterBandCollection instance.
00136 ///
00137 FDORFP_API static FdoRfpRasterBandCollection* Create(FdoRfpRasterFeatureDefinition *parent);
00138
00139 /// \cond DOXYGEN-IGNORE
00140
00141 protected:
00142 FdoRfpRasterBandCollection();
00143 FDORFP_API FdoRfpRasterBandCollection(FdoRfpRasterFeatureDefinition *parent);
00144 FDORFP_API virtual ~FdoRfpRasterBandCollection(void);
00145 void Dispose();
00146
00147 /// \endcond
00148
00149 };
00150
00151 /// \brief
00152 /// FdoRfpRasterBandsP is a FdoPtr on FdoRfpRasterBandCollection, provided for convenience.
00153 typedef FdoPtr<FdoRfpRasterBandCollection> FdoRfpRasterBandsP;
00154
00155 #endif
00156
00157