FDO API Reference | Feature Data Objects |
00001 #ifndef _IRASTERPROPERTYDICTIONARY_H_ 00002 #define _IRASTERPROPERTYDICTIONARY_H_ 00003 00004 // 00005 // Copyright (C) 2004-2006 Autodesk, Inc. 00006 // 00007 // This library is free software; you can redistribute it and/or 00008 // modify it under the terms of version 2.1 of the GNU Lesser 00009 // General Public License as published by the Free Software Foundation. 00010 // 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 // 00020 #ifdef _WIN32 00021 #pragma once 00022 #endif 00023 00024 #include <FdoStd.h> 00025 #include <Fdo/Raster/RasterDataModelType.h> 00026 #include <Fdo/Raster/RasterDataOrganization.h> 00027 #include <Fdo/Raster/DataValueCollection.h> 00028 00029 /// \brief 00030 /// The FdoIRasterPropertyDictionary exposes a dictionary style 00031 /// interface to the raster properties. Through this interface the 00032 /// non-standard properties of a raster image can be determined and 00033 /// their values can be retrieved and set. Data values are exchanged 00034 /// through the FdoDataValue object to accommodate various data types, 00035 /// boolean, integer, double, string etc. 00036 class FdoIRasterPropertyDictionary: public FdoIDisposable 00037 { 00038 public: 00039 00040 /// \brief 00041 /// Gets the names of all the properties that apply to this 00042 /// image as a collection of Strings. The order of the property names 00043 /// in the collection dictate the order in which they need to 00044 /// be specified. This is especially important for the success of 00045 /// the EnumeratePropertyValues method as properties that occur 00046 /// earlier in the collection may be required for successful enumeration 00047 /// of properties that appear later in the collection. 00048 /// 00049 /// \return 00050 /// A collection of the names of properties in this dictionary. 00051 /// 00052 FDO_API virtual FdoStringCollection* GetPropertyNames () = 0; 00053 00054 /// \brief 00055 /// Gets the data type for the specified property. 00056 /// 00057 /// \param name 00058 /// The name of the property to get the data type of. 00059 /// 00060 /// \return 00061 /// The data type of the property. 00062 /// 00063 FDO_API virtual FdoDataType GetPropertyDataType (FdoString* name) = 0; 00064 00065 /// \brief 00066 /// Gets the value of the specified property (or its default). 00067 /// 00068 /// \param name 00069 /// The name of the property to get the value of. 00070 /// 00071 /// \return 00072 /// The value of the property. 00073 /// 00074 FDO_API virtual FdoDataValue* GetProperty (FdoString* name) = 0; 00075 00076 /// \brief 00077 /// Sets the value of the specified property. 00078 /// 00079 /// \param name 00080 /// The name of the property to set the value of. 00081 /// \param value 00082 /// The new value for the property. 00083 /// 00084 FDO_API virtual void SetProperty (FdoString* name, FdoDataValue* value) = 0; 00085 00086 /// \brief 00087 /// Gets the default value for the specified property. 00088 /// 00089 /// \param name 00090 /// The name of the property to get the default value of. 00091 /// 00092 /// \return 00093 /// The default value of the property. 00094 /// 00095 FDO_API virtual FdoDataValue* GetPropertyDefault (FdoString* name) = 0; 00096 00097 /// \brief 00098 /// Predicate to determine if the property is required to be set. 00099 /// 00100 /// \param name 00101 /// The name of the property to get the required status of. 00102 /// 00103 /// \return 00104 /// Returns true if the specified property is required, false if it is optional. 00105 /// 00106 FDO_API virtual bool IsPropertyRequired (FdoString* name) = 0; 00107 00108 /// \brief 00109 /// Predicate to determine if the property is enumerable (has more than one value). 00110 /// 00111 /// \param name 00112 /// The name of the property to get the enumerable status of. 00113 /// 00114 /// \return 00115 /// Returns true if the possible values for the specified property 00116 /// can be enumerated via the GetPropertyValues method. 00117 /// 00118 FDO_API virtual bool IsPropertyEnumerable (FdoString* name) = 0; 00119 00120 /// \brief 00121 /// Access the values of the specified enumerable property. 00122 /// The property must respond TRUE to IsPropertyEnumerable. 00123 /// 00124 /// \param name 00125 /// The name of the property to get the collection of values for. 00126 /// 00127 /// \return 00128 /// A collection of datavaluesfor the enumerable property. 00129 /// 00130 FDO_API virtual FdoDataValueCollection* GetPropertyValues (FdoString* name) = 0; 00131 00132 /// \brief 00133 /// Set the values of the specified enumerable property. 00134 /// The property must respond TRUE to IsPropertyEnumerable. 00135 /// Clients will need to use SetPropertyValues when creating an image 00136 /// with specific values for the enumerable property. 00137 /// An example would be setting a table of wavelength ranges corresponding 00138 /// to the false colour used to encode the image. 00139 /// 00140 /// \param name 00141 /// The name of the property to set the collection of values for. 00142 /// \param collection 00143 /// The collection of values for the enumerable property. 00144 /// 00145 FDO_API virtual void SetPropertyValues (FdoString* name, FdoDataValueCollection* collection) = 0; 00146 00147 /// The FdoDataValueCollection object is a subclass of the standard collection template with FdoDataValue elements. 00148 }; 00149 00150 #endif // _IRASTERPROPERTYDICTIONARY_H_ 00151 00152
Comments or suggestions? Send us feedback. |