OFFIS DCMTK  Version 3.6.0
dimoopx.h
1 /*
2  *
3  * Copyright (C) 1996-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmimgle
15  *
16  * Author: Joerg Riesmeier
17  *
18  * Purpose: DicomMonoOutputPixel (Header)
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:16:26 $
22  * CVS/RCS Revision: $Revision: 1.21 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 
30 #ifndef DIMOOPX_H
31 #define DIMOOPX_H
32 
33 #include "dcmtk/config/osconfig.h"
34 #include "dcmtk/dcmimgle/diutils.h"
35 
36 #include "dcmtk/ofstd/ofstream.h"
37 
38 
39 /*------------------------*
40  * forward declarations *
41  *------------------------*/
42 
43 class DiMonoPixel;
44 
45 
46 /*---------------------*
47  * class declaration *
48  *---------------------*/
49 
53 {
54 
55  public:
56 
64  DiMonoOutputPixel(const DiMonoPixel *pixel,
65  const unsigned long size,
66  const unsigned long frame,
67  const unsigned long max);
68 
71  virtual ~DiMonoOutputPixel();
72 
77  virtual EP_Representation getRepresentation() const = 0;
78 
83  virtual const void *getData() const = 0;
84 
89  virtual void *getDataPtr() = 0;
90 
93  virtual void removeDataReference() = 0;
94 
99  virtual size_t getItemSize() const = 0;
100 
107  virtual int writePPM(STD_NAMESPACE ostream& stream) const = 0;
108 
115  virtual int writePPM(FILE *stream) const = 0;
116 
121  inline unsigned long getCount() const
122  {
123  return FrameSize;
124  }
125 
134  int isUnused(const unsigned long value);
135 
136 
137  protected:
138 
141  virtual void determineUsedValues() = 0;
142 
143 
145  /*const*/ unsigned long Count;
147  const unsigned long FrameSize;
148 
150  Uint8 *UsedValues;
152  const unsigned long MaxValue;
153 
154 
155  private:
156 
157  // --- declarations to avoid compiler warnings
158 
160  DiMonoOutputPixel &operator=(const DiMonoOutputPixel &);
161 };
162 
163 
164 #endif
165 
166 
167 /*
168  *
169  * CVS/RCS Log:
170  * $Log: dimoopx.h,v $
171  * Revision 1.21 2010-10-14 13:16:26 joergr
172  * Updated copyright header. Added reference to COPYRIGHT file.
173  *
174  * Revision 1.20 2010-03-01 09:08:47 uli
175  * Removed some unnecessary include directives in the headers.
176  *
177  * Revision 1.19 2006-08-15 16:30:11 meichel
178  * Updated the code in module dcmimgle to correctly compile when
179  * all standard C++ classes remain in namespace std.
180  *
181  * Revision 1.18 2005/12/08 16:47:53 meichel
182  * Changed include path schema for all DCMTK header files
183  *
184  * Revision 1.17 2004/02/06 11:07:50 joergr
185  * Distinguish more clearly between const and non-const access to pixel data.
186  *
187  * Revision 1.16 2004/01/05 14:52:20 joergr
188  * Removed acknowledgements with e-mail addresses from CVS log.
189  *
190  * Revision 1.15 2003/12/08 18:44:05 joergr
191  * Removed leading underscore characters from preprocessor symbols (reserved
192  * symbols). Updated copyright header.
193  *
194  * Revision 1.14 2002/11/27 14:08:05 meichel
195  * Adapted module dcmimgle to use of new header file ofstdinc.h
196  *
197  * Revision 1.13 2002/04/16 13:53:11 joergr
198  * Added configurable support for C++ ANSI standard includes (e.g. streams).
199  *
200  * Revision 1.12 2001/06/01 15:49:46 meichel
201  * Updated copyright header
202  *
203  * Revision 1.11 2000/03/08 16:24:19 meichel
204  * Updated copyright header.
205  *
206  * Revision 1.10 2000/02/23 15:12:15 meichel
207  * Corrected macro for Borland C++ Builder 4 workaround.
208  *
209  * Revision 1.9 2000/02/01 10:52:37 meichel
210  * Avoiding to include <stdlib.h> as extern "C" on Borland C++ Builder 4,
211  * workaround for bug in compiler header files.
212  *
213  * Revision 1.8 1999/10/06 13:41:21 joergr
214  * Added method to renmoved reference to (internally handles) pixel data.
215  *
216  * Revision 1.7 1999/09/17 12:26:52 joergr
217  * Added/changed/completed DOC++ style comments in the header files.
218  *
219  * Revision 1.6 1999/07/23 14:05:55 joergr
220  * Enhanced handling of corrupted pixel data (wrong length).
221  *
222  * Revision 1.5 1999/03/24 17:20:13 joergr
223  * Added/Modified comments and formatting.
224  *
225  * Revision 1.4 1999/02/11 16:37:56 joergr
226  * Added routine to check whether particular grayscale values are unused in
227  * the output data.
228  *
229  * Revision 1.3 1999/02/03 17:30:30 joergr
230  * Added BEGIN_EXTERN_C and END_EXTERN_C to some C includes.
231  *
232  * Revision 1.2 1999/01/20 15:07:02 joergr
233  * Replaced invocation of getCount() by member variable Count where possible.
234  *
235  * Revision 1.1 1998/11/27 15:25:48 joergr
236  * Added copyright message.
237  *
238  * Revision 1.3 1998/05/11 14:53:22 joergr
239  * Added CVS/RCS header to each file.
240  *
241  *
242  */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2