- Main Page
- Related Pages
- Modules
- Classes
- Files

# IRasterPropertyDictionary.h

Go to the documentation of this file.

    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/Expression/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

Please send us your comment about this page