00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef __DVPSDA_H__
00035
#define __DVPSDA_H__
00036
00037
#include "osconfig.h"
00038
#include "dctk.h"
00039
#include "dvpsril.h"
00040
#include "dvpstyp.h"
00041
00042
class DVPSReferencedSeries_PList;
00043
00047 class DVPSDisplayedArea
00048 {
00049
public:
00051
DVPSDisplayedArea();
00052
00054
DVPSDisplayedArea(
const DVPSDisplayedArea& copy);
00055
00060 DVPSDisplayedArea *
clone() {
return new DVPSDisplayedArea(*
this); }
00061
00063
virtual ~DVPSDisplayedArea();
00064
00074
OFCondition read(
DcmItem &dset);
00075
00082
OFCondition write(
DcmItem &dset);
00083
00089 OFBool
isApplicable(
const char *instanceUID,
unsigned long frame);
00090
00097 OFBool
matchesApplicability(
const char *instanceUID,
unsigned long frame, DVPSObjectApplicability applicability);
00098
00102 DVPSPresentationSizeMode
getPresentationSizeMode();
00103
00109
double getPresentationPixelAspectRatio();
00110
00118
void getDisplayedArea(Sint32& tlhcX, Sint32& tlhcY, Sint32& brhcX, Sint32& brhcY);
00119
00125
OFCondition getPresentationPixelSpacing(
double& x,
double& y);
00126
00131
OFCondition getPresentationPixelMagnificationRatio(
double& magnification);
00132
00143
OFCondition addImageReference(
00144
const char *sopclassUID,
00145
const char *instanceUID,
00146
unsigned long frame,
00147 DVPSObjectApplicability applicability);
00148
00161
void removeImageReference(
00162
DVPSReferencedSeries_PList& allReferences,
00163
const char *instanceUID,
00164
unsigned long frame,
00165
unsigned long numberOfFrames,
00166 DVPSObjectApplicability applicability);
00167
00170 void clearImageReferences() {
referencedImageList.
clear(); }
00171
00175 OFBool
imageReferencesEmpty() {
if (
referencedImageList.
size()==0)
return OFTrue;
else return OFFalse; }
00176
00181 OFBool
canUseTrueSize();
00182
00189
OFCondition setDisplayedAreaPixelSpacing(
double spacingX,
double spacingY);
00190
00196
OFCondition setDisplayedAreaPixelSpacing(
const char *spacing);
00197
00205
OFCondition setDisplayedAreaPixelAspectRatio(
double ratio);
00206
00212
OFCondition setDisplayedAreaPixelAspectRatio(
const char *ratio);
00213
00224
OFCondition setDisplayedArea(
00225 DVPSPresentationSizeMode sizeMode,
00226 Sint32 tlhcX, Sint32 tlhcY,
00227 Sint32 brhcX, Sint32 brhcY,
00228
double magnification=1.0);
00229
00235
void setLog(
OFConsole *stream, OFBool verbMode, OFBool dbgMode);
00236
00244
void rotateAndFlip(
00245 DVPSRotationType rotationFrom,
00246 OFBool isFlippedFrom,
00247 DVPSRotationType rotationTo,
00248 OFBool isFlippedTo);
00249
00250
private:
00253
DVPSDisplayedArea&
operator=(
const DVPSDisplayedArea& source);
00254
00256
void switchHorizontalCorners();
00257
00259
void switchVerticalCorners();
00260
00267
void rotateAndFlipFromOrTo(DVPSRotationType rotation, OFBool isFlipped);
00268
00270 DVPSReferencedImage_PList referencedImageList;
00272 DcmSignedLong displayedAreaTopLeftHandCorner;
00274 DcmSignedLong displayedAreaBottomRightHandCorner;
00276 DcmCodeString presentationSizeMode;
00278 DcmDecimalString presentationPixelSpacing;
00280 DcmIntegerString presentationPixelAspectRatio;
00282 DcmFloatingPointSingle presentationPixelMagnificationRatio;
00283
00286 OFConsole *
logstream;
00287
00290 OFBool
verboseMode;
00291
00294 OFBool
debugMode;
00295
00296 };
00297
00298
#endif
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324