FDO .NET API Reference Feature Data Objects

mgRasterDataModel.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma once
00020 
00021 #include "FDO\Raster\mgRasterDataModelType.h"
00022 #include "FDO\Raster\mgRasterDataType.h"
00023 #include "FDO\Raster\mgRasterDataOrganization.h"
00024 
00025 class FdoRasterDataModel;
00026 
00027 BEGIN_NAMESPACE_OSGEO_FDO_RASTER
00028 
00029 /// \ingroup (OSGeoFDORaster)
00030 /// \brief
00031 /// The RasterDataModel specifies the data type and organization
00032 /// of raster data retrieved and stored. Using this class and the image
00033 /// extents in width and length, the binary format of the image data returned
00034 /// by and accepted by the IStreamReader class can be interpreted.
00035 public __gc class RasterDataModel: public NAMESPACE_OSGEO_RUNTIME::Disposable
00036 {
00037 public:
00038     /// \brief
00039     /// Creates a new datamodel.
00040     /// 
00041     /// \return
00042     /// Returns a bitonal 256x256 tiled data model.
00043     /// 
00044     RasterDataModel();
00045 
00046     /// \brief
00047     /// Gets the type of data available from this datamodel.
00048     /// 
00049     /// \return
00050     /// Returns the type of data available with this data model.
00051     /// 
00052     __property NAMESPACE_OSGEO_FDO_RASTER::RasterDataModelType get_DataModelType ();
00053 
00054     /// \brief
00055     /// Sets the type of data for this datamodel.
00056     /// 
00057     /// \param type 
00058     /// The type of data for this data model.
00059     /// 
00060     __property System ::Void set_DataModelType (NAMESPACE_OSGEO_FDO_RASTER::RasterDataModelType type);
00061 
00062     /// \brief
00063     /// Get the number of bits per pixel.
00064     /// 
00065     /// \return
00066     /// Returns the number of bits for each pixel. For multi-channel
00067     /// data the bits per channel will be this value devided by the numer of
00068     /// channels. For example, RGB data has three channels, so if this
00069     /// method returns twelve, each channel is four bits.
00070     /// 
00071     __property System ::Int32 get_BitsPerPixel ();
00072 
00073     /// \brief
00074     /// Set the number of bits per pixel.
00075     /// 
00076     /// \param bitsPerPixel 
00077     /// The number of bits per pixel desired.
00078     /// Values of 1, 4, 8, 16, 24, 32, 48 and 64 bits per channel may
00079     /// be supported. Others values (i.e. indivisible by the number of channels)
00080     /// are likely to raise a Exception.
00081     /// 
00082     __property System ::Void set_BitsPerPixel (System::Int32 bitsPerPixel);
00083 
00084     /// \brief
00085     /// Get the data interleave organization.
00086     /// 
00087     /// \return
00088     /// Returns the way data is interleaved.
00089     /// 
00090     __property NAMESPACE_OSGEO_FDO_RASTER::RasterDataOrganization get_Organization();
00091 
00092     /// \brief
00093     /// Set the data interleave organization.
00094     /// 
00095     /// \param organization 
00096     /// Specifies the way data is to be interleaved.
00097     /// 
00098     __property System::Void set_Organization (NAMESPACE_OSGEO_FDO_RASTER::RasterDataOrganization organization);
00099 
00100     /// \brief
00101     /// Get the tile size in the horizontal direction (number of columns).
00102     /// 
00103     /// \return
00104     /// The number of columns in a tile.
00105     /// 
00106     __property System::Int32 get_TileSizeX ();
00107 
00108     /// \brief
00109     /// Set the tile size in the horizontal direction (number of columns).
00110     /// 
00111     /// \param sizex 
00112     /// The number of columns in a tile.
00113     /// 
00114     __property System::Void set_TileSizeX (System::Int32 sizex);
00115 
00116     /// \brief
00117     /// Get the tile size in the vertical direction (number of rows).
00118     /// 
00119     /// \return
00120     /// The number of rows in a tile.
00121     /// 
00122     __property System::Int32 get_TileSizeY ();
00123 
00124     /// \brief
00125     /// Set the tile size in the vertical direction (number of rows).
00126     /// Values of 64, 128, 256, 512, 1024 and the image extents in width and
00127     /// length may be supported. When the tile sizes are equal to the image
00128     /// extents, the image is monolithic. Rectangular tile sizes, combining
00129     /// different values for X and Y, may be supported.
00130     /// 
00131     /// \param sizey 
00132     /// The number of rows in a tile.
00133     /// 
00134     __property System::Void set_TileSizeY (System::Int32 sizey);
00135 
00136     /// \brief
00137     /// Gets the data type.
00138     /// 
00139     /// \return
00140     /// Returns the data type of the raster.
00141     /// 
00142     __property NAMESPACE_OSGEO_FDO_RASTER::RasterDataType get_DataType();
00143 
00144     /// \brief
00145     /// Sets the data type.
00146     /// 
00147     /// \param dataType 
00148     /// Specifies the data type the raster data is to be returned in.
00149     /// 
00150     __property System::Void set_DataType (NAMESPACE_OSGEO_FDO_RASTER::RasterDataType dataType);
00151 
00152     /// \brief
00153     /// Constructs a RasterDataModel object based on an unmanaged instance of the object
00154     /// 
00155     /// \param unmanaged 
00156     /// Input A Pointer to the unmanaged object.
00157     /// 
00158     /// \param autoDelete 
00159     /// Input Indicates if the constructed object should be automatically deleted 
00160     /// once it no longer referenced.
00161     /// 
00162     RasterDataModel(System::IntPtr unmanaged, System::Boolean autoDelete);
00163 
00164 /// \cond DOXYGEN-IGNORE
00165 protected:
00166     System::Void ReleaseUnmanagedObject();
00167 /// \endcond
00168 
00169 public private:
00170     inline FdoRasterDataModel* GetImpObj();
00171 };
00172 
00173 END_NAMESPACE_OSGEO_FDO_RASTER
00174 
00175 

Comments or suggestions? Send us feedback.