go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkImageMaskSpatialObject2.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   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 notices for more information.
00012 
00013 ======================================================================*/
00014 
00017 /*=========================================================================
00018 
00019   Program:   Insight Segmentation & Registration Toolkit
00020   Module:    $RCSfile$
00021   Language:  C++
00022   Date:      $Date: 2008-05-28 10:45:42 +0200 (Wed, 28 May 2008) $
00023   Version:   $Revision: 1636 $
00024 
00025   Copyright (c) Insight Software Consortium. All rights reserved.
00026   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00027 
00028      This software is distributed WITHOUT ANY WARRANTY; without even
00029      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00030      PURPOSE.  See the above copyright notices for more information.
00031 
00032 =========================================================================*/
00033 
00034 #ifndef __itkImageMaskSpatialObject2_h
00035 #define __itkImageMaskSpatialObject2_h
00036 
00037 #include "itkImageSpatialObject2.h"
00038 #include "itkImageSliceConstIteratorWithIndex.h"
00039 
00040 namespace itk
00041 {
00042 
00052 template < unsigned int TDimension = 3 >
00053 class ImageMaskSpatialObject2
00054   : public ImageSpatialObject2< TDimension, unsigned char >
00055 {
00056 
00057 public:
00058 
00059   typedef ImageMaskSpatialObject2< TDimension >       Self;
00060   typedef ImageSpatialObject2< TDimension >           Superclass;
00061   typedef SmartPointer< Self >                        Pointer;
00062   typedef SmartPointer< const Self >                  ConstPointer;
00063 
00064   typedef typename Superclass::ScalarType             ScalarType;
00065   typedef typename Superclass::PixelType              PixelType;
00066   typedef typename Superclass::ImageType              ImageType;
00067   typedef typename Superclass::ImagePointer           ImagePointer;
00068   typedef typename Superclass::IndexType              IndexType;
00069   typedef typename Superclass::SizeType               SizeType;
00070   typedef typename Superclass::RegionType             RegionType;
00071   typedef typename Superclass::TransformType          TransformType;
00072   typedef typename Superclass::PointType              PointType;
00073   typedef typename Superclass::BoundingBoxType        BoundingBoxType;
00074 
00075   typedef itk::ImageSliceConstIteratorWithIndex< ImageType >
00076                                                       SliceIteratorType;
00077 
00079   itkNewMacro( Self );
00080 
00082   itkTypeMacro( ImageMaskSpatialObject2, ImageSpatialObject2 );
00083 
00085   bool IsInside( const PointType & point,
00086                  unsigned int depth, char *name) const;
00087 
00091   virtual bool IsInside( const PointType & point) const;
00092 
00099   RegionType GetAxisAlignedBoundingBoxRegion() const;
00100 
00102   bool ComputeLocalBoundingBox() const;
00103 
00107   void ComputeLocalBoundingBoxIndexAndSize(
00108     IndexType & index, SizeType & size ) const;
00109 
00110 protected:
00111   ImageMaskSpatialObject2(const Self&); //purposely not implemented
00112   void operator=(const Self&); //purposely not implemented
00113 
00114   ImageMaskSpatialObject2();
00115   virtual ~ImageMaskSpatialObject2();
00116 
00117   void PrintSelf( std::ostream& os, Indent indent ) const;
00118 
00119 };
00120 
00121 } // end of namespace itk
00122 
00123 #ifndef ITK_MANUAL_INSTANTIATION
00124 #include "itkImageMaskSpatialObject2.txx"
00125 #endif
00126 
00127 #endif //__itkImageMaskSpatialObject2_h
00128 


Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo