The data is always stored in one array, of the type matching the data /// type (i.e. for 'int' it's an 'int[]'). The data should be stored in the /// array in standard scan-line order. That is the samples go from the top-left /// corner of the code-block to the lower-right corner by line and then /// column.
/// ///The member variable 'offset' gives the index in the array of the first /// data element (i.e. the top-left coefficient (ulx,uly)). The member variable /// 'scanw' gives the width of the scan that is used to store the data, that /// can be different from the width of the block. Element '(x,y)' of the /// code-block (i.e. '(ulx,uly)' is the top-left coefficient), will appear at /// position 'offset+(y-uly)*scanw+(x-ulx)' in the array of data.
/// ///A block of data can have the progressive attribute set. Data is /// progressive when it is obtained by successive refinement and the values in /// this block are approximations of the "final" values. When the final values /// are returned the progressive attribute must be turned off.
/// ///The classes DataBlkInt and DataBlkFloat provide /// implementations for int and float types respectively.
/// ///Each implementing class should provide a type specific equivalent /// method (e.g., getDataInt() in DataBlkInt) which /// returns an array of the correct type explicetely and not through an /// Object.
/// ///The size of the array is not necessarily checked for consistency /// with w and h or any other fields.
/// ///Each implementing class should provide a type specific equivalent /// method (e.g., setDataInt() in DataBlkInt) which takes /// an array of the correct type explicetely and not through an /// Object.
/// ///