ome-files  0.5.0
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
ome::files::PixelBufferBase Class Reference

Base class for all PixelBuffer types. More...

#include <ome/files/PixelBuffer.h>

+ Inheritance diagram for ome::files::PixelBufferBase:
+ Collaboration diagram for ome::files::PixelBufferBase:

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::dimensionsindices_type
 Type used to index all dimensions in public interfaces.
 
typedef boost::general_storage_order< dimensionsstorage_order_type
 Storage ordering type for controlling pixel memory layout.
 
typedef boost::detail::multi_array::extent_gen< dimensionsrange_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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ PixelBufferBase()

ome::files::PixelBufferBase::PixelBufferBase ( ::ome::xml::model::enums::PixelType  pixeltype,
EndianType  endiantype 
)
inlineprotected

Constructor.

Parameters
pixeltypethe pixel type stored in this buffer.
endiantypethe endian type variant of the pixel type stored in this buffer.

Member Function Documentation

◆ default_storage_order()

PixelBufferBase::storage_order_type ome::files::PixelBufferBase::default_storage_order ( )
static

Generate default storage ordering.

The default is XYZTC with subchannel interleaving (i.e. SXYzZtTcC as the 9D order).

Returns
the storage ordering.

References make_storage_order(), and ome::xml::model::enums::DimensionOrder::XYZTC.

Referenced by endianType().

+ Here is the caller graph for this function:

◆ endianType()

EndianType ome::files::PixelBufferBase::endianType ( ) const
inline

Get the endian type in use.

Returns
the endian type.

References default_storage_order(), endiantype, and make_storage_order().

◆ make_storage_order()

PixelBufferBase::storage_order_type ome::files::PixelBufferBase::make_storage_order ( ome::xml::model::enums::DimensionOrder  order,
bool  interleaved 
)
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.

Parameters
orderthe OME data model dimension ordering
interleavedtrue if subchannels are interleaved (chunky), false otherwise (planar).
Returns
the storage ordering.

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().

+ Here is the caller graph for this function:

◆ pixelType()

::ome::xml::model::enums::PixelType ome::files::PixelBufferBase::pixelType ( ) const
inline

Get the pixel type in use.

Returns
the pixel type.

References pixeltype.


The documentation for this class was generated from the following files: