00001 /* 00002 * 00003 * Copyright (C) 1998-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmpstat 00015 * 00016 * Author: Marco Eichelberg 00017 * 00018 * Purpose: 00019 * classes: DVPSTextObject 00020 * 00021 * Last Update: $Author: joergr $ 00022 * Update Date: $Date: 2010-10-14 13:16:37 $ 00023 * CVS/RCS Revision: $Revision: 1.11 $ 00024 * Status: $State: Exp $ 00025 * 00026 * CVS/RCS Log at end of file 00027 * 00028 */ 00029 00030 #ifndef DVPSTX_H 00031 #define DVPSTX_H 00032 00033 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00034 #include "dcmtk/dcmdata/dctk.h" 00035 #include "dcmtk/dcmpstat/dvpstyp.h" 00036 00043 class DVPSTextObject 00044 { 00045 public: 00047 DVPSTextObject(); 00048 00050 DVPSTextObject(const DVPSTextObject& copy); 00051 00056 DVPSTextObject *clone() { return new DVPSTextObject(*this); } 00057 00059 virtual ~DVPSTextObject(); 00060 00070 OFCondition read(DcmItem &dset); 00071 00078 OFCondition write(DcmItem &dset); 00079 00083 OFBool haveAnchorPoint(); 00084 00088 OFBool haveBoundingBox(); 00089 00097 OFCondition setAnchorPoint(double x, double y, DVPSannotationUnit unit, OFBool isVisible); 00098 00108 OFCondition setBoundingBox(double TLHC_x, double TLHC_y, double BRHC_x, 00109 double BRHC_y, DVPSannotationUnit unit, DVPSTextJustification justification); 00110 00115 OFCondition setText(const char *text); 00116 00121 void removeAnchorPoint(); 00122 00127 void removeBoundingBox(); 00128 00132 const char *getText(); 00133 00138 double getBoundingBoxTLHC_x(); 00139 00144 double getBoundingBoxTLHC_y(); 00145 00150 double getBoundingBoxBRHC_x(); 00151 00156 double getBoundingBoxBRHC_y(); 00157 00162 DVPSannotationUnit getBoundingBoxAnnotationUnits(); 00163 00168 DVPSTextJustification getBoundingBoxHorizontalJustification(); 00169 00174 double getAnchorPoint_x(); 00175 00180 double getAnchorPoint_y(); 00181 00186 OFBool anchorPointIsVisible(); 00187 00192 DVPSannotationUnit getAnchorPointAnnotationUnits(); 00193 00194 private: 00197 DVPSTextObject& operator=(const DVPSTextObject&); 00198 00200 DcmCodeString boundingBoxAnnotationUnits; 00202 DcmCodeString anchorPointAnnotationUnits; 00204 DcmShortText unformattedTextValue; 00206 DcmFloatingPointSingle boundingBoxTLHC; 00208 DcmFloatingPointSingle boundingBoxBRHC; 00210 DcmCodeString boundingBoxTextHorizontalJustification; 00212 DcmFloatingPointSingle anchorPoint; 00214 DcmCodeString anchorPointVisibility; 00215 00216 }; 00217 00218 #endif 00219 00220 /* 00221 * $Log: dvpstx.h,v $ 00222 * Revision 1.11 2010-10-14 13:16:37 joergr 00223 * Updated copyright header. Added reference to COPYRIGHT file. 00224 * 00225 * Revision 1.10 2010-10-07 14:31:36 joergr 00226 * Removed leading underscore characters from preprocessor symbols (reserved). 00227 * 00228 * Revision 1.9 2009-11-24 14:12:58 uli 00229 * Switched to logging mechanism provided by the "new" oflog module. 00230 * 00231 * Revision 1.8 2005-12-08 16:04:08 meichel 00232 * Changed include path schema for all DCMTK header files 00233 * 00234 * Revision 1.7 2001/09/26 15:36:18 meichel 00235 * Adapted dcmpstat to class OFCondition 00236 * 00237 * Revision 1.6 2001/06/01 15:50:24 meichel 00238 * Updated copyright header 00239 * 00240 * Revision 1.5 2000/06/02 16:00:54 meichel 00241 * Adapted all dcmpstat classes to use OFConsole for log and error output 00242 * 00243 * Revision 1.4 2000/03/08 16:28:58 meichel 00244 * Updated copyright header. 00245 * 00246 * Revision 1.3 1999/07/22 16:39:14 meichel 00247 * Adapted dcmpstat data structures and API to supplement 33 letter ballot text. 00248 * 00249 * Revision 1.2 1998/12/14 16:10:36 meichel 00250 * Implemented Presentation State interface for graphic layers, 00251 * text and graphic annotations, presentation LUTs. 00252 * 00253 * Revision 1.1 1998/11/27 14:50:34 meichel 00254 * Initial Release. 00255 * 00256 * 00257 */