GDCM
2.2.3
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 00005 Copyright (c) 2006-2011 Mathieu Malaterre 00006 All rights reserved. 00007 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 #ifndef GDCMBOXREGION_H 00015 #define GDCMBOXREGION_H 00016 00017 #include "gdcmRegion.h" 00018 00019 namespace gdcm 00020 { 00021 class BoxRegionInternals; 00029 //----------------------------------------------------------------------------- 00030 class GDCM_EXPORT BoxRegion : public Region 00031 { 00032 public : 00033 BoxRegion(); 00034 ~BoxRegion(); 00035 00037 void SetDomain(unsigned int xmin, unsigned int xmax, 00038 unsigned int ymin, unsigned int ymax, 00039 unsigned int zmin, unsigned int zmax); 00040 00042 unsigned int GetXMin() const; 00043 unsigned int GetXMax() const; 00044 unsigned int GetYMin() const; 00045 unsigned int GetYMax() const; 00046 unsigned int GetZMin() const; 00047 unsigned int GetZMax() const; 00048 00049 // Satisfy pure virtual parent class 00050 Region *Clone() const; 00051 bool Empty() const; 00052 bool IsValid() const; 00053 size_t Area() const; 00054 BoxRegion ComputeBoundingBox(); 00055 00056 void Print(std::ostream &os = std::cout) const; 00057 00059 static BoxRegion BoundingBox(BoxRegion const & b1, BoxRegion const & b2 ); 00060 00062 BoxRegion(const BoxRegion&); 00063 void operator=(const BoxRegion&); 00064 private: 00065 BoxRegionInternals *Internals; 00066 }; 00067 00068 } // end namespace gdcm 00069 //----------------------------------------------------------------------------- 00070 #endif //GDCMREGION_H