RasterPage.h

Go to the documentation of this file.
00001 /*
00002  * The information in this file is
00003  * Copyright(c) 2007 Ball Aerospace & Technologies Corporation
00004  * and is subject to the terms and conditions of the
00005  * GNU Lesser General Public License Version 2.1
00006  * The license text is available from   
00007  * http://www.gnu.org/licenses/lgpl.html
00008  */
00009 
00010 
00011 
00012 #ifndef RASTERPAGE_H
00013 #define RASTERPAGE_H
00014 
00015 /**
00016  *  This is the object returned by RasterPager to represent
00017  *  a page of a RasterElement's data
00018  *
00019  *  @see RasterPager
00020  */
00021 class RasterPage
00022 {
00023 public:
00024    /** 
00025     *  Returns a pointer to the raw cube data that was requested
00026     *  by the RasterPager::getPage() method and that was
00027     *  loaded from the original data into memory.
00028     *
00029     *  @return a pointer to the requested raw cube data.
00030     */
00031    virtual void* getRawData() = 0;
00032 
00033    /**
00034     *  Returns the number of full complete rows of data that are contained
00035     *  with the memory returned by the getRawData() method.
00036     *
00037     *  @return the number of full complete rows
00038     */
00039    virtual unsigned int getNumRows() = 0;
00040 
00041    /**
00042     *  Returns the number of columns that must be skipped in
00043     *  from the initial pointer returned by getRawData()
00044     *  in order to access the same column in the second row.
00045     *
00046     *  @return the number of columns that must be skipped.
00047     *          If a value of zero is returned, the RasterElement
00048     *          will assume that it will require DataDescriptor::getColumnNum()
00049     *          columns to be skipped in order to access the same
00050     *          column in the next row.
00051     */
00052    virtual unsigned int getNumColumns() = 0;
00053 
00054    /**
00055     *  Returns the number of bands that must skipped in
00056     *  order to access the next column in BIP formatted
00057     *  data, or the same row/column in BIL formatted data.
00058     *
00059     *  @return the number of full complete bands.  If a value of
00060     *          zero is returned, the RasterElement
00061     *          will assume that it will require DataDescriptor::getBandNum()
00062     *          bands to be skipped.  If the requested data is
00063     *          BSQ formatted, a value of zero should be
00064     *          returned from this method.
00065     */
00066    virtual unsigned int getNumBands() = 0;
00067 
00068    /**
00069     *  Returns the number of inter-line bytes that must
00070     *  be skipped in order to access the same column
00071     *  in the next row.
00072     *
00073     *  @return the number of inter-line bytes.
00074     */
00075    virtual unsigned int getInterlineBytes() = 0;
00076 
00077 protected:
00078    /**
00079     * This should be destroyed by calling RasterPager::releasePage.
00080     */
00081    virtual ~RasterPage() {}
00082 };
00083 
00084 #endif

Software Development Kit - Opticks 4.9.0 Build 16218