Class to wrap up an image plane of arbitrary type. This is used by the readers to return image data with the minimal amount of conversion needed. More...
Public Member Functions | |
GenericImagePlane (const GenericImagePlaneDescriptor &desc) | |
ctor, relying on our own allocation | |
GenericImagePlane (const GenericImagePlaneDescriptor &desc, HandlePtr handle) | |
const GenericImagePlaneDescriptor & | desc () const |
ptrdiff_t | rowStrideBytes () const |
ptrdiff_t | colStrideBytes () const |
ptrdiff_t | chanStrideBytes () const |
template<class T > | |
const T & | at (int x, int y, int z) const |
Get a reference to the data at (x, y) with the channel number /z/. | |
template<class T > | |
T & | writableAt (int x, int y, int z) |
Get a reference to the data at (x, y) with the channel number /z/. | |
void | clearImage () |
Clears the image by writing 0 into the entire buffer. | |
Protected Member Functions | |
void | SetStrides () |
const char * | address (int x, int y, int z) const |
void | CheckType (unsigned char testVariable) |
void | CheckType (unsigned short testVariable) |
void | CheckType (unsigned int testVariable) |
void | CheckType (half testVariable) |
void | CheckType (float testVariable) |
Protected Attributes | |
GenericImagePlaneDescriptor | _desc |
HandlePtr | _handle |
char * | _data |
base address of our image, kept as a char for address maths | |
ptrdiff_t | _rowStrideBytes |
ptrdiff_t | _colStrideBytes |
The stride between columns in *bytes*. | |
ptrdiff_t | _chanStrideBytes |
The stride between channels in *bytes*. |
Class to wrap up an image plane of arbitrary type. This is used by the readers to return image data with the minimal amount of conversion needed.
TODO - refactor ImagePlane and it's floatingpoint refcounted thing to be compatible with this (via assigment and CC both ways, with checks for types being right).
DD::Image::GenericImagePlane::GenericImagePlane | ( | const GenericImagePlaneDescriptor & | desc, |
HandlePtr | handle | ||
) | [inline] |
Constructor using a specific chunk of memory in which we want the image data stored.
References _data, and SetStrides().
void DD::Image::GenericImagePlane::SetStrides | ( | ) | [inline, protected] |
Helper function to calculate the various strides given the information in the GenericImagePlaneDescriptor member _desc, which must have been set before the call to SetStrides().
References _chanStrideBytes, _colStrideBytes, _rowStrideBytes, DD::Image::Box::h(), and DD::Image::Box::w().
Referenced by GenericImagePlane().
void DD::Image::GenericImagePlane::CheckType | ( | unsigned char | testVariable | ) | [inline, protected] |
The various CheckType() functions are used to assert that the type on which at() or writableAt() have been templatised corresponds to the enumerated type of the descriptor's data info, which is determined at runtime.
ptrdiff_t DD::Image::GenericImagePlane::_rowStrideBytes [protected] |
The stride between rows in *bytes*. This depends on the channel data type and the number of channels and/or image width, according to whether the image plane is packed or not (as specified by GenericImagePlaneDescriptor::_packed).
Referenced by SetStrides().