DD::Image::DeepPixel Class Reference

Inherited by DD::Image::DeepOutputPixel.

List of all members.

Public Types

enum  Ordering { eUnordered, eZAscending, eZDescending }

Public Member Functions

 DeepPixel (const DD::Image::ChannelMap &channels, const float *pixels, size_t dataCount, Ordering ordering)
const ChannelMapchannels () const
size_t getSampleCount () const
const float * data () const
size_t getDataCount () const
const float * getUnorderedSample (size_t sampNo) const
const float & getUnorderedSample (size_t sampNo, DD::Image::Channel channel) const
const float & getOrderedSample (size_t depthIdx, DD::Image::Channel channel) const

Static Public Member Functions

static Ordering SwapOrdering (Ordering ordering)

Protected Member Functions

void makeSampleOrder () const

Protected Attributes

const DD::Image::ChannelMap_channels
const float * _data
size_t _dataCount
size_t _chanCount
size_t _sampleCount
Ordering _ordering
std::vector< size_t > _sampleOrder
bool _doneSampleOrder

Friends

class DeepPlane

Detailed Description

DeepPixel is a helper class for accessing DeepPlanes. It represents all the data at a particular x/y position in a DeepPlane. It does not contain its own copy of the data, and remains valid for only as long as the DeepPlane it is associated with exists.


Member Enumeration Documentation

which ordering the pixel data is in.

Enumerator:
eZAscending 

unordered - the samples are in no particular depth order

eZDescending 

z ascending - the samples with lowest Z are first


Constructor & Destructor Documentation

DD::Image::DeepPixel::DeepPixel ( const DD::Image::ChannelMap channels,
const float *  pixels,
size_t  dataCount,
Ordering  ordering 
) [inline]

Constructor. Usually not accessed directly, invoked by DeepPlane::getPixel


Member Function Documentation

static Ordering DD::Image::DeepPixel::SwapOrdering ( Ordering  ordering) [inline, static]

Swap the pixel ordering to the other way around. Unordered remains unordered, but Z-ascending and Z-descending swap.

void DD::Image::DeepPixel::makeSampleOrder ( ) const [protected]

Build up the sample order index

References _doneSampleOrder, _sampleOrder, getSampleCount(), and getUnorderedSample().

const ChannelMap& DD::Image::DeepPixel::channels ( ) const [inline]

Get the channels that this DeepPixel contains

Referenced by DD::Image::DeepOutputPlane::addPixel(), and DD::Image::DeepSample::DeepSample().

size_t DD::Image::DeepPixel::getSampleCount ( ) const [inline]

Get the number of samples

Referenced by makeSampleOrder().

const float* DD::Image::DeepPixel::data ( ) const [inline]

Get the pointer to the data

Referenced by DD::Image::DeepOutputPlane::addPixel().

size_t DD::Image::DeepPixel::getDataCount ( ) const [inline]

Get the total number of data elements

Referenced by DD::Image::DeepOutputPlane::addPixel().

const float* DD::Image::DeepPixel::getUnorderedSample ( size_t  sampNo) const [inline]

Get a pointer to the pixel data for a particular sample number. Data will be the channels present in channels(), ordered by numeric channel id. Samples are in whatever order they happen to be in the pixel.

Referenced by DD::Image::DeepSample::DeepSample(), and makeSampleOrder().

const float& DD::Image::DeepPixel::getUnorderedSample ( size_t  sampNo,
DD::Image::Channel  channel 
) const [inline]

Get a particular sample and channel. Samples are in whatever order they happen to be in the pixel.

const float & DD::Image::DeepPixel::getOrderedSample ( size_t  depthIdx,
DD::Image::Channel  channel 
) const

Get a particle sample (by depth) and channel. Samples will be ordered so that if depthIdx == 0, it will fetch the sample with the lowest Z.

Referenced by DD::Image::DeepSample::DeepSample(), and DD::Image::DeepOutputPixel::getWritableOrderedSample().


Member Data Documentation

The channels that this DeepPixel is for.

const float* DD::Image::DeepPixel::_data [protected]

The raw data for the DeepPixel

the amount of floats pointed to by _data for this pixel

the number of channels present in _channels.

The number of samples (equivalent to _dataCount / _chanCount)

The order in which the samples are stored (unordered, z-ascending, z-descending)

std::vector<size_t> DD::Image::DeepPixel::_sampleOrder [mutable, protected]

An index for accessing the samples in z-order

Referenced by makeSampleOrder().

bool DD::Image::DeepPixel::_doneSampleOrder [mutable, protected]

Whether or not the _sampleOrder index has been built

Referenced by makeSampleOrder().