123 lines
2.6 KiB
C
123 lines
2.6 KiB
C
|
/*
|
||
|
*
|
||
|
* Copyright (C) 1996-2011, OFFIS e.V.
|
||
|
* All rights reserved. See COPYRIGHT file for details.
|
||
|
*
|
||
|
* This software and supporting documentation were developed by
|
||
|
*
|
||
|
* OFFIS e.V.
|
||
|
* R&D Division Health
|
||
|
* Escherweg 2
|
||
|
* D-26121 Oldenburg, Germany
|
||
|
*
|
||
|
*
|
||
|
* Module: dcmimgle
|
||
|
*
|
||
|
* Author: Joerg Riesmeier
|
||
|
*
|
||
|
* Purpose: DicomPixel (Header)
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef DIPIXEL_H
|
||
|
#define DIPIXEL_H
|
||
|
|
||
|
#include "dcmtk/config/osconfig.h"
|
||
|
|
||
|
#include "dcmtk/dcmimgle/diutils.h"
|
||
|
|
||
|
|
||
|
/*---------------------*
|
||
|
* class declaration *
|
||
|
*---------------------*/
|
||
|
|
||
|
/** Abstract base class to handle pixel data
|
||
|
*/
|
||
|
class DCMTK_DCMIMGLE_EXPORT DiPixel
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
|
||
|
/** constructor
|
||
|
*
|
||
|
** @param count number of pixels stored in the buffer
|
||
|
* @param inputCount number of pixels read from 'PixelData' attribute
|
||
|
*/
|
||
|
DiPixel(const unsigned long count,
|
||
|
const unsigned long inputCount = 0)
|
||
|
: Count(count),
|
||
|
InputCount(inputCount)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/** destructor
|
||
|
*/
|
||
|
virtual ~DiPixel()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/** get integer representation (abstract)
|
||
|
*
|
||
|
** @return integer representation of the internally stored pixel data
|
||
|
*/
|
||
|
virtual EP_Representation getRepresentation() const = 0;
|
||
|
|
||
|
/** get number of planes (abstract).
|
||
|
*
|
||
|
** @return number of planes (e.g. 1 for monochrome and 3 for color images)
|
||
|
*/
|
||
|
virtual int getPlanes() const = 0;
|
||
|
|
||
|
/** get pointer to pixel data (abstract).
|
||
|
* NB: See implemented method in derived class for details.
|
||
|
*
|
||
|
** @return pointer to pixel data
|
||
|
*/
|
||
|
virtual const void *getData() const = 0;
|
||
|
|
||
|
/** get pointer to pixel data (abstract).
|
||
|
* NB: See implemented method in derived class for details.
|
||
|
*
|
||
|
** @return pointer to pixel data
|
||
|
*/
|
||
|
virtual void *getDataPtr() = 0;
|
||
|
|
||
|
/** get pointer to array of pixel data (abstract).
|
||
|
* The number of planes in the returned array can be determined using 'getPlanes()'.
|
||
|
*
|
||
|
** @return pointer to array of pixel data
|
||
|
*/
|
||
|
virtual void *getDataArrayPtr() = 0;
|
||
|
|
||
|
/** get number of pixels
|
||
|
*
|
||
|
** @return number of pixels
|
||
|
*/
|
||
|
inline unsigned long getCount() const
|
||
|
{
|
||
|
return Count;
|
||
|
}
|
||
|
|
||
|
/** get number of pixels stored in the 'PixelData' element
|
||
|
*
|
||
|
** @return number pixels read from the input buffer
|
||
|
*/
|
||
|
inline unsigned long getInputCount() const
|
||
|
{
|
||
|
return InputCount;
|
||
|
}
|
||
|
|
||
|
|
||
|
protected:
|
||
|
|
||
|
/// number of pixels
|
||
|
/*const*/ unsigned long Count;
|
||
|
|
||
|
/// number of pixels in the input buffer
|
||
|
unsigned long InputCount;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif
|