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 GDCMREGION_H 00015 #define GDCMREGION_H 00016 00017 #include "gdcmTypes.h" 00018 #include <vector> 00019 #include <iostream> 00020 00021 namespace gdcm 00022 { 00023 class BoxRegion; 00027 //----------------------------------------------------------------------------- 00028 class GDCM_EXPORT Region 00029 { 00030 public : 00031 Region(); 00032 virtual ~Region(); 00033 00035 virtual void Print(std::ostream &os = std::cout) const; 00036 00038 virtual bool Empty() const = 0; 00039 00041 virtual bool IsValid() const = 0; 00042 00044 virtual size_t Area() const = 0; 00045 00046 // implementation detail of heterogenous container in C++ 00047 virtual Region *Clone() const = 0; 00048 00050 virtual BoxRegion ComputeBoundingBox() = 0; 00051 private: 00052 }; 00053 //----------------------------------------------------------------------------- 00054 inline std::ostream& operator<<(std::ostream &os, const Region&r) 00055 { 00056 r.Print( os ); 00057 return os; 00058 } 00059 00060 } // end namespace gdcm 00061 //----------------------------------------------------------------------------- 00062 #endif //GDCMREGION_H