DYT/Tool/3rdParty_x64/include/dcmtk/dcmimage/dicoopx.h

137 lines
3.1 KiB
C
Raw Normal View History

2024-11-22 15:19:31 +00:00
/*
*
* Copyright (C) 1996-2012, 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: DicomColorOutputPixel (Header)
*
*/
#ifndef DICOOPX_H
#define DICOOPX_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmimgle/diutils.h"
#include "dcmtk/ofstd/ofstream.h"
#define INCLUDE_CSTDLIB
#define INCLUDE_CSTDIO
#include "dcmtk/ofstd/ofstdinc.h"
#include "dcmtk/dcmimage/dicdefin.h"
/*------------------------*
* forward declarations *
*------------------------*/
class DiPixel;
/*---------------------*
* class declaration *
*---------------------*/
/** Abstract base class to create color output data
*/
class DCMTK_DCMIMAGE_EXPORT DiColorOutputPixel
{
public:
/** constructor
*
** @param pixel pointer to intermediate pixel representation
* @param size number of pixel per frame
* @param frame frame to be rendered
*/
DiColorOutputPixel(const DiPixel *pixel,
const unsigned long size,
const unsigned long frame);
/** destructor
*/
virtual ~DiColorOutputPixel();
/** get integer representation (abstract)
*
** @return integer representation
*/
virtual EP_Representation getRepresentation() const = 0;
/** get pointer to output pixel data (abstract)
*
** @return pointer to pixel data
*/
virtual const void *getData() const = 0;
/** get pointer to outpout pixel data (abstract)
*
** @return pointer to pixel data
*/
virtual void *getDataPtr() = 0;
/** get pointer to given plane of output pixel data (abstract)
*
** @param plane number of the plane to be retrieved (0..2)
*
** @return pointer to beginning of plane if successful, NULL otherwise
*/
virtual const void *getPlane(const int plane) const = 0;
/** get size of one pixel / item in the pixel array (abstract)
*
** @return item size
*/
virtual size_t getItemSize() const = 0;
/** write pixel data of selected frame to PPM/ASCII file (abstract)
*
** @param stream open C++ output stream
*
** @return status, true if successful, false otherwise
*/
virtual int writePPM(STD_NAMESPACE ostream& stream) const = 0;
/** write pixel data of selected frame to PPM/ASCII file (abstract)
*
** @param stream open C file stream
*
** @return status, true if successful, false otherwise
*/
virtual int writePPM(FILE *stream) const = 0;
/** get number of pixel per frame
*
** @return number of pixel per frame
*/
inline unsigned long getCount() const
{
return FrameSize;
}
protected:
/// number of pixels per frame (intermediate representation)
/*const*/ unsigned long Count;
/// number of pixels per frame (memory buffer size)
const unsigned long FrameSize;
};
#endif