ome-files
0.5.0
|
Base class for all PixelBuffer types. More...
#include <ome/files/PixelBuffer.h>
Public Types | |
typedef boost::multi_array_types::size_type | size_type |
Size type. | |
typedef boost::multi_array_types::index | index |
Index type. | |
typedef std::array< boost::multi_array_types::index, PixelBufferBase::dimensions > | indices_type |
Type used to index all dimensions in public interfaces. | |
typedef boost::general_storage_order< dimensions > | storage_order_type |
Storage ordering type for controlling pixel memory layout. | |
typedef boost::detail::multi_array::extent_gen< dimensions > | range_type |
Extent range type. | |
Public Member Functions | |
virtual | ~PixelBufferBase () |
Destructor. | |
::ome::xml::model::enums::PixelType | pixelType () const |
Get the pixel type in use. More... | |
EndianType | endianType () const |
Get the endian type in use. More... | |
Static Public Member Functions | |
static storage_order_type | make_storage_order (ome::xml::model::enums::DimensionOrder order, bool interleaved) |
Generate storage ordering for a given dimension order. More... | |
static storage_order_type | default_storage_order () |
Generate default storage ordering. More... | |
Static Public Attributes | |
static const uint16_t | dimensions = 9 |
Total number of supported dimensions. | |
Protected Member Functions | |
PixelBufferBase (::ome::xml::model::enums::PixelType pixeltype, EndianType endiantype) | |
Constructor. More... | |
Private Attributes | |
const ::ome::xml::model::enums::PixelType | pixeltype |
Pixel type stored in this buffer. | |
const EndianType | endiantype |
Endian type stored in this buffer. | |
Base class for all PixelBuffer types.
Individual pixel buffer types are created from the PixelType and EndianType enumerations. However, the same underlying type may be used for two or more combinations of each type, depending upon the hardware and compiler implementation, meaning that it isn't possible to determine the original PixelType and EndianType from the language type alone. This base class stores the PixelType and EndianType in order to provide reliable introspection.
|
inlineprotected |
Constructor.
pixeltype | the pixel type stored in this buffer. |
endiantype | the endian type variant of the pixel type stored in this buffer. |
|
static |
Generate default storage ordering.
The default is XYZTC
with subchannel interleaving (i.e. SXYzZtTcC
as the 9D order).
References make_storage_order(), and ome::xml::model::enums::DimensionOrder::XYZTC.
Referenced by endianType().
|
inline |
Get the endian type in use.
References default_storage_order(), endiantype, and make_storage_order().
|
static |
Generate storage ordering for a given dimension order.
This converts the OME data model dimension ordering specification to the native 9D ordering, including subchannel and modulo components.
order | the OME data model dimension ordering |
interleaved | true if subchannels are interleaved (chunky), false otherwise (planar). |
References ome::files::DIM_CHANNEL, ome::files::DIM_MODULO_C, ome::files::DIM_MODULO_T, ome::files::DIM_MODULO_Z, ome::files::DIM_SPATIAL_X, ome::files::DIM_SPATIAL_Y, ome::files::DIM_SPATIAL_Z, ome::files::DIM_SUBCHANNEL, ome::files::DIM_TEMPORAL_T, dimensions, ome::xml::model::enums::DimensionOrder::XYCTZ, ome::xml::model::enums::DimensionOrder::XYCZT, ome::xml::model::enums::DimensionOrder::XYTCZ, ome::xml::model::enums::DimensionOrder::XYTZC, ome::xml::model::enums::DimensionOrder::XYZCT, and ome::xml::model::enums::DimensionOrder::XYZTC.
Referenced by default_storage_order(), endianType(), ome::files::detail::CopySubchannelVisitor::operator()(), ome::files::tiff::IFD::readImage(), ome::files::tiff::IFD::readLookupTable(), ome::files::detail::FormatReader::readPlane(), and ome::files::tiff::IFD::writeImage().
|
inline |