itk::ImageRegionSplitter< VImageDimension > Class Template Reference
[ITK System ObjectsData Processing Objects]

Divide a region into several pieces. More...

#include <itkImageRegionSplitter.h>

Inheritance diagram for itk::ImageRegionSplitter< VImageDimension >:

Inheritance graph
[legend]
Collaboration diagram for itk::ImageRegionSplitter< VImageDimension >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef ImageRegionSplitter Self
typedef Object Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const SelfConstPointer
typedef Index< VImageDimension > IndexType
typedef IndexType::IndexValueType IndexValueType
typedef Size< VImageDimension > SizeType
typedef SizeType::SizeValueType SizeValueType
typedef ImageRegion
< VImageDimension > 
RegionType

Public Member Functions

virtual const char * GetNameOfClass () const
virtual unsigned int GetNumberOfSplits (const RegionType &region, unsigned int requestedNumber)
virtual RegionType GetSplit (unsigned int i, unsigned int numberOfPieces, const RegionType &region)
virtual LightObject::Pointer CreateAnother () const
virtual void DebugOn () const
virtual void DebugOff () const
bool GetDebug () const
void SetDebug (bool debugFlag) const
virtual unsigned long GetMTime () const
virtual void Modified () const
virtual void Register () const
virtual void UnRegister () const
virtual void SetReferenceCount (int)
unsigned long AddObserver (const EventObject &event, Command *)
unsigned long AddObserver (const EventObject &event, Command *) const
CommandGetCommand (unsigned long tag)
void InvokeEvent (const EventObject &)
void InvokeEvent (const EventObject &) const
void RemoveObserver (unsigned long tag)
void RemoveAllObservers ()
bool HasObserver (const EventObject &event) const
MetaDataDictionaryGetMetaDataDictionary (void)
const MetaDataDictionaryGetMetaDataDictionary (void) const
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
virtual void Delete ()
void Print (std::ostream &os, Indent indent=0) const
virtual int GetReferenceCount () const

Static Public Member Functions

static Pointer New ()
static unsigned int GetImageDimension ()
static void SetGlobalWarningDisplay (bool flag)
static bool GetGlobalWarningDisplay ()
static void GlobalWarningDisplayOn ()
static void GlobalWarningDisplayOff ()
static void BreakOnError ()

Static Public Attributes

static const unsigned int ImageDimension = VImageDimension

Protected Types

typedef int InternalReferenceCountType

Protected Member Functions

void PrintSelf (std::ostream &os, Indent indent) const
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const

Protected Attributes

InternalReferenceCountType m_ReferenceCount
SimpleFastMutexLock m_ReferenceCountLock

Private Member Functions

 ImageRegionSplitter (const ImageRegionSplitter &)
void operator= (const ImageRegionSplitter &)


Detailed Description

template<unsigned int VImageDimension>
class itk::ImageRegionSplitter< VImageDimension >

Divide a region into several pieces.

ImageRegionSplitter divides an ImageRegion into smaller regions. ImageRegionSplitter is used by the StreamingImageFilter to divide a requested output region into a series of smaller requests of the pipeline. This object has two basic methods: GetNumberOfSplits() and GetSplit().

GetNumberOfSplits() is used to determine how may subregions a given region can be divided. You call GetNumberOfSplits with an argument that is the number of subregions you want. If the image region can support that number of subregions, that number is returned. Otherwise, the maximum number of splits less then or equal to the argumen be returned. For example, if a region splitter class only divides a region into horizontal slabs, then the maximum number of splits will be the number of rows in the region.

GetSplit() returns the ith of N subregions (as an ImageRegion object).

This ImageRegionSplitter class divides a region along the outermost dimension. If the outermost dimension has size 1 (i.e. a volume with a single slice), the ImageRegionSplitter will divide the region along the next outermost dimension. If that dimension has size 1, the process continues with the next outermost dimension.

Other ImageRegionSplitter subclasses could divide an image into more uniform shaped regions instead of slabs.

See also:
ImageRegionMultidimensionalSplitter

Definition at line 66 of file itkImageRegionSplitter.h.


Member Typedef Documentation

template<unsigned int VImageDimension>
typedef ImageRegionSplitter itk::ImageRegionSplitter< VImageDimension >::Self

template<unsigned int VImageDimension>
typedef Index<VImageDimension> itk::ImageRegionSplitter< VImageDimension >::IndexType

template<unsigned int VImageDimension>
typedef Size<VImageDimension> itk::ImageRegionSplitter< VImageDimension >::SizeType

template<unsigned int VImageDimension>
typedef ImageRegion<VImageDimension> itk::ImageRegionSplitter< VImageDimension >::RegionType

typedef int itk::LightObject::InternalReferenceCountType [protected, inherited]

Define the type of the reference count according to the target. This allows the use of atomic operations

Definition at line 137 of file itkLightObject.h.


Member Function Documentation

template<unsigned int VImageDimension>
static Pointer itk::ImageRegionSplitter< VImageDimension >::New (  )  [static]

template<unsigned int VImageDimension>
virtual const char* itk::ImageRegionSplitter< VImageDimension >::GetNameOfClass (  )  const [virtual]

template<unsigned int VImageDimension>
static unsigned int itk::ImageRegionSplitter< VImageDimension >::GetImageDimension (  )  [inline, static]

Dimension of the image available at run time.

Reimplemented in otb::ImageRegionTileMapSplitter< VImageDimension >.

Definition at line 85 of file itkImageRegionSplitter.h.

00086     { return VImageDimension; }

template<unsigned int VImageDimension>
unsigned int itk::ImageRegionSplitter< VImageDimension >::GetNumberOfSplits ( const RegionType region,
unsigned int  requestedNumber 
) [inline, virtual]

How many pieces can the specifed region be split? A given region cannot always be divided into the requested number of pieces. For instance, if the numberOfPieces exceeds the number of pixels along a certain dimensions, then some splits will not be possible. This method returns a number less than or equal to the requested number of pieces.

Reimplemented in itk::ImageRegionMultidimensionalSplitter< VImageDimension >.

Definition at line 32 of file itkImageRegionSplitter.txx.

Referenced by otb::StreamingTraits< TImage >::CalculateNumberOfStreamDivisions().

00033 {
00034   int splitAxis;
00035   const SizeType &regionSize = region.GetSize();
00036 
00037   // split on the outermost dimension available
00038   splitAxis = VImageDimension - 1;
00039   while (regionSize[splitAxis] == 1)
00040     {
00041     --splitAxis;
00042     if (splitAxis < 0)
00043       { // cannot split
00044       itkDebugMacro("  Cannot Split");
00045       return 1;
00046       }
00047     }
00048 
00049   // determine the actual number of pieces that will be generated
00050   SizeValueType range = regionSize[splitAxis];
00051   int valuesPerPiece = Math::Ceil<int>(range/(double)requestedNumber);
00052   int maxPieceUsed = Math::Ceil<int>(range/(double)valuesPerPiece) - 1;
00053 
00054   return maxPieceUsed + 1;
00055 }

template<unsigned int VImageDimension>
ImageRegion< VImageDimension > itk::ImageRegionSplitter< VImageDimension >::GetSplit ( unsigned int  i,
unsigned int  numberOfPieces,
const RegionType region 
) [inline, virtual]

Get a region definition that represents the ith piece a specified region. The "numberOfPieces" must be equal to what GetNumberOfSplits() returns.

Reimplemented in itk::ImageRegionMultidimensionalSplitter< VImageDimension >.

Definition at line 64 of file itkImageRegionSplitter.txx.

References itk::Index< VIndexDimension >::GetIndex(), itk::Size< VDimension >::GetSize(), and itk::Size< VDimension >::SetSize().

00066 {
00067   int splitAxis;
00068   RegionType splitRegion;
00069   IndexType splitIndex;
00070   SizeType splitSize, regionSize;
00071   
00072   // Initialize the splitRegion to the requested region
00073   splitRegion = region;
00074   splitIndex = splitRegion.GetIndex();
00075   splitSize = splitRegion.GetSize();
00076 
00077   regionSize = region.GetSize();
00078   
00079   // split on the outermost dimension available
00080   splitAxis = VImageDimension - 1;
00081   while (regionSize[splitAxis] == 1)
00082     {
00083     --splitAxis;
00084     if (splitAxis < 0)
00085       { // cannot split
00086       itkDebugMacro("  Cannot Split");
00087       return splitRegion;
00088       }
00089     }
00090 
00091   // determine the actual number of pieces that will be generated
00092   SizeValueType range = regionSize[splitAxis];
00093   int valuesPerPiece = Math::Ceil<int>(range/(double)numberOfPieces);
00094   int maxPieceUsed = Math::Ceil<int>(range/(double)valuesPerPiece) - 1;
00095 
00096   // Split the region
00097   if ((int) i < maxPieceUsed)
00098     {
00099     splitIndex[splitAxis] += i*valuesPerPiece;
00100     splitSize[splitAxis] = valuesPerPiece;
00101     }
00102   if ((int) i == maxPieceUsed)
00103     {
00104     splitIndex[splitAxis] += i*valuesPerPiece;
00105     // last piece needs to process the "rest" dimension being split
00106     splitSize[splitAxis] = splitSize[splitAxis] - i*valuesPerPiece;
00107     }
00108   
00109   // set the split region ivars
00110   splitRegion.SetIndex( splitIndex );
00111   splitRegion.SetSize( splitSize );
00112 
00113   itkDebugMacro("  Split Piece: " << splitRegion );
00114 
00115   return splitRegion;
00116 }

template<unsigned int VImageDimension>
void itk::ImageRegionSplitter< VImageDimension >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [inline, protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Chaining method to print an object's instance variables, as well as its superclasses.

Reimplemented from itk::Object.

Reimplemented in otb::ImageRegionNonUniformMultidimensionalSplitter< VImageDimension >, otb::ImageRegionTileMapSplitter< VImageDimension >, and itk::ImageRegionMultidimensionalSplitter< VImageDimension >.

Definition at line 126 of file itkImageRegionSplitter.txx.

00127 {
00128   Superclass::PrintSelf(os,indent);
00129 }

LightObject::Pointer itk::Object::CreateAnother ( void   )  const [virtual, inherited]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::LightObject.

Reimplemented in otb::BSQImageIOFactory, otb::DefaultImageMetadataInterfaceFactory, otb::GDALImageIOFactory, otb::IkonosImageMetadataInterfaceFactory, otb::JPEG2000ImageIOFactory, otb::KMLVectorDataIOFactory< TData >, otb::LUMImageIOFactory, otb::MSTARImageIOFactory, otb::MWImageIOFactory, otb::OGRVectorDataIOFactory< TData >, otb::ONERAImageIOFactory, otb::QuickBirdImageMetadataInterfaceFactory, otb::RADImageIOFactory, otb::SpotImageMetadataInterfaceFactory, otb::TileMapImageIOFactory, otb::WorldView2ImageMetadataInterfaceFactory, itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::CreateObjectFunction< T >, itk::TransformFactoryBase, itk::AnalyzeImageIOFactory, itk::BioRadImageIOFactory, itk::BMPImageIOFactory, itk::Brains2MaskImageIOFactory, itk::DICOMImageIO2Factory, itk::DicomImageIOFactory, itk::GDCMImageIOFactory, itk::GE4ImageIOFactory, itk::GE5ImageIOFactory, itk::GEAdwImageIOFactory, itk::GiplImageIOFactory, itk::JPEGImageIOFactory, itk::LSMImageIOFactory, itk::MetaImageIOFactory, itk::NiftiImageIOFactory, itk::NrrdImageIOFactory, itk::PNGImageIOFactory, itk::SiemensVisionImageIOFactory, itk::StimulateImageIOFactory, itk::TIFFImageIOFactory, itk::VTKImageIOFactory, itk::Bruker2DSEQImageIOFactory, itk::MatlabTransformIOFactory, itk::MINC2ImageIOFactory, itk::PhilipsRECImageIOFactory, itk::TxtTransformIOFactory, itk::VoxBoCUBImageIOFactory, and itk::SpatialObjectFactoryBase.

Definition at line 231 of file itkObject.cxx.

References itk::SmartPointer< TObjectType >::GetPointer(), and itk::Object::New().

00232 {
00233   return Object::New().GetPointer();
00234 }

void itk::Object::DebugOn (  )  const [virtual, inherited]

Turn debugging output on.

Turn debugging output on.

Definition at line 242 of file itkObject.cxx.

References itk::Object::m_Debug.

00243 {
00244   m_Debug = true;
00245 }

void itk::Object::DebugOff (  )  const [virtual, inherited]

Turn debugging output off.

Turn debugging output off.

Definition at line 253 of file itkObject.cxx.

References itk::Object::m_Debug.

00254 {
00255   m_Debug = false;
00256 }

bool itk::Object::GetDebug (  )  const [inherited]

Get the value of the debug flag.

Get the value of the debug flag.

Definition at line 264 of file itkObject.cxx.

References itk::Object::m_Debug.

00265 {
00266   return m_Debug;
00267 }

void itk::Object::SetDebug ( bool  debugFlag  )  const [inherited]

Set the value of the debug flag. A non-zero value turns debugging on.

Set the value of the debug flag. A non-zero value turns debugging on.

Definition at line 275 of file itkObject.cxx.

References itk::Object::m_Debug.

00276 {
00277   m_Debug = debugFlag;
00278 }

unsigned long itk::Object::GetMTime ( void   )  const [virtual, inherited]

Return this objects modified time.

Return the modification for this object.

Reimplemented in itk::ImageRegistrationMethod< TFixedImage, TMovingImage >, itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >, itk::MultiResolutionImageRegistrationMethod< TFixedImage, TMovingImage >, itk::PointSetToImageRegistrationMethod< TFixedPointSet, TMovingImage >, itk::PointSetToPointSetRegistrationMethod< TFixedPointSet, TMovingPointSet >, itk::DeformationFieldSource< TOutputImage >, itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >, itk::ImageAdaptor< TImage, TAccessor >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >, itk::ImageSpatialObject< TDimension, TPixelType >, itk::MeshSpatialObject< TMesh >, itk::SceneSpatialObject< TSpaceDimension >, itk::SpatialObject< TDimension >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecision >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecision >, itk::ImageAdaptor< TImage, itk::Accessor::AsinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::VectorImageToASPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, itk::Accessor::AbsPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::LogPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::ShiftScalePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::Log10PixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ExpPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AddPixelAccessor< TImage::PixelType > >, itk::ImageAdaptor< itk::VectorImage< TPixelType, Dimension >, itk::Accessor::VectorImageToImagePixelAccessor< TPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::RGBToVectorPixelAccessor< TImage::PixelType::ComponentType > >, itk::ImageAdaptor< TImage, itk::PixelAccessor< TInternalType, TExternalType > >, itk::ImageAdaptor< TImage, itk::Accessor::SqrtPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AcosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ExpNegativePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::VectorToRGBPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, itk::Accessor::TanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToRealPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::RGBToLuminancePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AtanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::SinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToImaginaryPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::CosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageSpatialObject< TDimension, unsigned char >, itk::SpatialObject< VDimension >, itk::SpatialObject< 3 >, and itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >.

Definition at line 286 of file itkObject.cxx.

References itk::TimeStamp::GetMTime(), and itk::Object::m_MTime.

Referenced by itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >::GetMTime(), itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >::GetMTime(), itk::DeformationFieldSource< TOutputImage >::GetMTime(), itk::SpatialObject< TDimension >::GetMTime(), itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >::GetMTime(), itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetMTime(), itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >::GetMTime(), itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >::GetObjectMTime(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::Initialize(), itk::VTKImageExportBase::PipelineModifiedCallback(), itk::Object::PrintSelf(), and itk::ProcessObject::UpdateOutputInformation().

00287 {
00288   return m_MTime.GetMTime();
00289 }

void itk::Object::Modified ( void   )  const [virtual, inherited]

Update the modification time for this object. Many filters rely on the modification time to determine if they need to recompute their data.

Make sure this object's modified time is greater than all others.

Reimplemented in otb::GenericInterpolateImageFunction< TInputImage, TFunction, TBoundaryCondition, TCoordRep >, otb::PolyLineParametricPathWithValue< TValue, VDimension >, otb::SVMModel< TValue, TLabel >, otb::GenericRSTransform< TScalarType, NInputDimensions, NOutputDimensions >, otb::MapProjection< TOssimMapProjection, TDirectionOfMapping, TScalarType, NInputDimensions, NOutputDimensions >, otb::SurfaceAdjacencyEffect6SCorrectionSchemeFilter< TInputImage, TOutputImage >, otb::TerraSarCalibrationImageFilter< TInputImage, TOutputImage >, itk::NormalizeImageFilter< TInputImage, TOutputImage >, itk::ImageAdaptor< TImage, TAccessor >, itk::MiniPipelineSeparableImageFilter< TInputImage, TOutputImage, TFilter >, itk::GrayscaleDilateImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleErodeImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleMorphologicalClosingImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleMorphologicalOpeningImageFilter< TInputImage, TOutputImage, TKernel >, itk::MorphologicalGradientImageFilter< TInputImage, TOutputImage, TKernel >, otb::MeanShiftImageFilter< TInputImage, TOutputImage, TLabeledOutput, otb::MeanShift::VectorBufferConverter >, otb::MapProjection< ossimMollweidProjection, transform >, otb::MapProjection< ossimSinusoidalProjection, transform >, otb::MapProjection< ossimTransMercatorProjection, transform >, otb::MapProjection< ossimEckert4Projection, transform >, otb::MapProjection< ossimLambertConformalConicProjection, transform >, otb::MapProjection< ossimUtmProjection, transform >, itk::ImageAdaptor< TImage, itk::Accessor::AsinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::VectorImageToASPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, itk::Accessor::AbsPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::LogPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::ShiftScalePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::Log10PixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ExpPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AddPixelAccessor< TImage::PixelType > >, itk::ImageAdaptor< itk::VectorImage< TPixelType, Dimension >, itk::Accessor::VectorImageToImagePixelAccessor< TPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::RGBToVectorPixelAccessor< TImage::PixelType::ComponentType > >, itk::ImageAdaptor< TImage, itk::PixelAccessor< TInternalType, TExternalType > >, itk::ImageAdaptor< TImage, itk::Accessor::SqrtPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AcosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ExpNegativePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::VectorToRGBPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, itk::Accessor::TanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToRealPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::RGBToLuminancePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::AtanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::SinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::ComplexToImaginaryPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, itk::Accessor::CosPixelAccessor< TImage::PixelType, TOutputPixelType > >, and itk::MiniPipelineSeparableImageFilter< TInputImage, TOutputImage, itk::RankImageFilter< TInputImage, TInputImage, itk::FlatStructuringElement< ::itk::GetImageDimension< TInputImage >::ImageDimension > > >.

Definition at line 297 of file itkObject.cxx.

References itk::Object::InvokeEvent(), itk::Object::m_MTime, and itk::TimeStamp::Modified().

Referenced by itk::NarrowBandImageFilterBase< TInputImage, itk::Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::InsertNarrowBandNode(), otb::ImageWidget< TInputImage >::LinearInterpolationOn(), itk::Object::Object(), itk::AffineTransform< TScalarType, NDimensions >::Rotate(), itk::AffineTransform< TScalarType, NDimensions >::Rotate2D(), itk::AffineTransform< TScalarType, NDimensions >::Rotate3D(), itk::AffineTransform< TScalarType, NDimensions >::Scale(), itk::Rigid2DTransform< TScalarType >::SetAngle(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetAutoMinMax(), otb::BlendingImageFilter< TInputImage1, TInputImage2, TOutputImage >::SetBlendingFunction(), otb::ImageLayerGenerator< TImageLayer >::SetBlendingFunction(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetCenter(), itk::LBFGSBOptimizer::SetCostFunction(), itk::ImageIOBase::SetDimensions(), itk::ImageIOBase::SetDirection(), itk::RawImageIO< TPixel, VImageDimension >::SetHeaderSize(), itk::VersorTransform< TScalarType >::SetIdentity(), itk::Statistics::ScalarImageTextureCalculator< TImageType, THistogramFrequencyContainer >::SetImageMask(), itk::Statistics::ScalarImageTextureCalculator< TImageType, THistogramFrequencyContainer >::SetInput(), itk::GDCMSeriesFileNames::SetInputDirectory(), otb::HistogramStatisticsFunction< TInputHistogram, TOutput >::SetInputHistogram(), itk::Statistics::ScalarImageTextureCalculator< TImageType, THistogramFrequencyContainer >::SetInsidePixelValue(), otb::Function::RenderingFunction< TPixel, TRGBPixel >::SetListSample(), itk::Similarity2DTransform< TScalarType >::SetMatrix(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetMatrix(), itk::Rigid2DTransform< TScalarType >::SetMatrix(), itk::NarrowBandImageFilterBase< TInputImage, itk::Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::SetNarrowBandInnerRadius(), itk::NarrowBandImageFilterBase< TInputImage, itk::Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::SetNarrowBandTotalRadius(), itk::Statistics::ScalarImageTextureCalculator< TImageType, THistogramFrequencyContainer >::SetNumberOfBinsPerAxis(), itk::ImageIOBase::SetNumberOfDimensions(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetOffset(), itk::ImageIOBase::SetOrigin(), itk::QuaternionRigidTransform< TScalarType >::SetParameters(), itk::CenteredAffineTransform< TScalarType, NDimensions >::SetParameters(), itk::TranslationTransform< TScalarType, NDimensions >::SetParameters(), itk::ScaleSkewVersor3DTransform< TScalarType >::SetParameters(), itk::Rigid2DTransform< TScalarType >::SetParameters(), itk::Rigid3DPerspectiveTransform< TScalarType >::SetParameters(), itk::CenteredEuler3DTransform< TScalarType >::SetParameters(), itk::VersorTransform< TScalarType >::SetParameters(), itk::ScaleTransform< TScalarType, NDimensions >::SetParameters(), itk::Rigid3DTransform< TScalarType >::SetParameters(), itk::KernelTransform< TScalarType, NDimensions >::SetParameters(), itk::VersorRigid3DTransform< TScalarType >::SetParameters(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetParameters(), itk::ScaleVersor3DTransform< TScalarType >::SetParameters(), itk::ScaleLogarithmicTransform< TScalarType, NDimensions >::SetParameters(), itk::Similarity3DTransform< TScalarType >::SetParameters(), itk::Statistics::ScalarImageTextureCalculator< TImageType, THistogramFrequencyContainer >::SetPixelValueMinMax(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetRealThresholds(), otb::RenderingImageFilter< TInputImage, TOutputImage >::SetRenderingFunction(), otb::ImageLayerGenerator< TImageLayer >::SetRenderingFunction(), itk::KernelTransform< TScalarType, NDimensions >::SetSourceLandmarks(), itk::ImageIOBase::SetSpacing(), itk::KernelTransform< TScalarType, NDimensions >::SetTargetLandmarks(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetThresholds(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetTranslation(), itk::AffineTransform< TScalarType, NDimensions >::Shear(), and itk::AffineTransform< TScalarType, NDimensions >::Translate().

00298 {
00299   m_MTime.Modified();
00300   InvokeEvent( ModifiedEvent() );
00301 }

void itk::Object::Register (  )  const [virtual, inherited]

Increase the reference count (mark as used by another object).

Increase the reference count (mark as used by another object).

Reimplemented from itk::LightObject.

Definition at line 309 of file itkObject.cxx.

References itk::LightObject::m_ReferenceCount, and itk::LightObject::Register().

Referenced by itk::ObjectFactoryBase::RegisterFactory().

00310 {
00311   itkDebugMacro(<< "Registered, "
00312                 << "ReferenceCount = " << (m_ReferenceCount+1));
00313 
00314   // call the parent
00315   Superclass::Register();
00316 }

void itk::Object::UnRegister (  )  const [virtual, inherited]

Decrease the reference count (release by another object).

Decrease the reference count (release by another object).

If there is a delete method, invoke it.

Reimplemented from itk::LightObject.

Definition at line 324 of file itkObject.cxx.

References itk::Object::InvokeEvent(), itk::LightObject::m_ReferenceCount, and itk::LightObject::UnRegister().

Referenced by itk::Object::New(), itk::SmartPointer< itk::Statistics::ImageToListAdaptor >::operator=(), and itk::ObjectFactoryBase::UnRegisterFactory().

00325 {
00326   // call the parent
00327   itkDebugMacro(<< "UnRegistered, "
00328                 << "ReferenceCount = " << (m_ReferenceCount-1));
00329 
00330   if ( (m_ReferenceCount-1) <= 0)
00331     {
00335     this->InvokeEvent(DeleteEvent());
00336     }
00337 
00338   Superclass::UnRegister();
00339 }

void itk::Object::SetReferenceCount ( int  ref  )  [virtual, inherited]

Sets the reference count (use with care)

Sets the reference count (use with care)

If there is a delete method, invoke it.

Reimplemented from itk::LightObject.

Definition at line 347 of file itkObject.cxx.

References itk::Object::InvokeEvent(), and itk::LightObject::SetReferenceCount().

00348 {
00349   itkDebugMacro(<< "Reference Count set to " << ref);
00350 
00351   // ReferenceCount in now unlocked.  We may have a race condition to
00352   // to delete the object.
00353   if( ref <= 0 )
00354     {
00358     this->InvokeEvent(DeleteEvent());
00359     }
00360 
00361   Superclass::SetReferenceCount(ref);
00362 }

void itk::Object::SetGlobalWarningDisplay ( bool  val  )  [static, inherited]

This is a global flag that controls whether any debug, warning or error messages are displayed.

Set the value of the global debug output control flag.

Definition at line 370 of file itkObject.cxx.

References itk::Object::m_GlobalWarningDisplay.

00371 {
00372   m_GlobalWarningDisplay = val;
00373 }

bool itk::Object::GetGlobalWarningDisplay (  )  [static, inherited]

Get the value of the global debug output control flag.

Definition at line 381 of file itkObject.cxx.

References itk::Object::m_GlobalWarningDisplay.

00382 {
00383   return m_GlobalWarningDisplay;
00384 }

unsigned long itk::Object::AddObserver ( const EventObject event,
Command cmd 
) [inherited]

Allow people to add/remove/invoke observers (callbacks) to any ITK object. This is an implementation of the subject/observer design pattern. An observer is added by specifying an event to respond to and an itk::Command to execute. It returns an unsigned long tag which can be used later to remove the event or retrieve the command. The memory for the Command becomes the responsibility of this object, so don't pass the same instance of a command to two different objects

Definition at line 389 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

Referenced by itk::ProgressAccumulator::RegisterInternalFilter(), and otb::WriterWatcherBase::WriterWatcherBase().

00390 {
00391   if (!this->m_SubjectImplementation)
00392     {
00393     this->m_SubjectImplementation = new SubjectImplementation;
00394     }
00395   return this->m_SubjectImplementation->AddObserver(event,cmd);
00396 }

Command * itk::Object::GetCommand ( unsigned long  tag  )  [inherited]

Get the command associated with the given tag. NOTE: This returns a pointer to a Command, but it is safe to asign this to a Command::Pointer. Since Command inherits from LightObject, at this point in the code, only a pointer or a reference to the Command can be used.

Definition at line 414 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

00415 {
00416   if (this->m_SubjectImplementation)
00417     {
00418     return this->m_SubjectImplementation->GetCommand(tag);
00419     }
00420   return NULL;
00421 }

void itk::Object::InvokeEvent ( const EventObject event  )  [inherited]

Call Execute on all the Commands observing this event id.

Definition at line 446 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

Referenced by itk::Object::Modified(), itk::Object::SetReferenceCount(), itk::CumulativeGaussianOptimizer::StartOptimization(), itk::Object::UnRegister(), and itk::VTKImageExportBase::UpdateDataCallback().

00447 {
00448   if (this->m_SubjectImplementation)
00449     {
00450     this->m_SubjectImplementation->InvokeEvent(event,this);
00451     }
00452 }

void itk::Object::InvokeEvent ( const EventObject event  )  const [inherited]

Call Execute on all the Commands observing this event id. The actions triggered by this call doesn't modify this object.

Definition at line 457 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

00458 {
00459   if (this->m_SubjectImplementation)
00460     {
00461     this->m_SubjectImplementation->InvokeEvent(event,this);
00462     }
00463 }

void itk::Object::RemoveObserver ( unsigned long  tag  )  [inherited]

Remove the observer with this tag value.

Definition at line 425 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

00426 {
00427   if (this->m_SubjectImplementation)
00428     {
00429     this->m_SubjectImplementation->RemoveObserver(tag);
00430     }
00431 }

void itk::Object::RemoveAllObservers (  )  [inherited]

Remove all observers .

Definition at line 435 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

00436 {
00437   if (this->m_SubjectImplementation)
00438     {
00439     this->m_SubjectImplementation->RemoveAllObservers();
00440     }
00441 }

bool itk::Object::HasObserver ( const EventObject event  )  const [inherited]

Return true if an observer is registered for this event.

Definition at line 467 of file itkObject.cxx.

References itk::Object::m_SubjectImplementation.

00468 {
00469   if (this->m_SubjectImplementation)
00470     {
00471     return this->m_SubjectImplementation->HasObserver(event);
00472     }
00473   return false;
00474 }

MetaDataDictionary & itk::Object::GetMetaDataDictionary ( void   )  [inherited]

Returns:
A reference to this objects MetaDataDictionary.
Warning:
This reference may be changed.

Definition at line 532 of file itkObject.cxx.

References itk::Object::m_MetaDataDictionary.

Referenced by otb::RenderingImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::Brains2MaskImageIO::CanReadFile(), otb::Image< TPixel, VImageDimension >::CopyInformation(), otb::VectorImage< TPixel, VImageDimension >::CopyInformation(), itk::GDCMImageIO::GetPatientName(), itk::GDCMImageIO::GetValueFromTag(), otb::GDALImageIO::InternalReadImageInformation(), otb::GDALImageIO::InternalWriteImageInformation(), otb::Image< TPixel, VImageDimension >::PrintSelf(), otb::VectorImage< TPixel, VImageDimension >::PrintSelf(), itk::DICOMImageIO2::Read(), itk::NiftiImageIO::ReadImageInformation(), itk::DICOMImageIO2::ReadImageInformation(), itk::VoxBoCUBImageIO::ReadImageInformation(), itk::MetaImageIO::ReadImageInformation(), itk::AnalyzeImageIO::ReadImageInformation(), itk::IPLCommonImageIO::ReadImageInformation(), itk::PhilipsRECImageIO::ReadImageInformation(), itk::Bruker2DSEQImageIO::ReadImageInformation(), itk::NrrdImageIO::ReadImageInformation(), itk::Brains2MaskImageIO::Write(), itk::GDCMImageIO::Write(), itk::NrrdImageIO::Write(), itk::MetaImageIO::Write(), itk::AnalyzeImageIO::WriteImageInformation(), and itk::VoxBoCUBImageIO::WriteImageInformation().

00533 {
00534   if(m_MetaDataDictionary==NULL)
00535     {
00536     m_MetaDataDictionary=new MetaDataDictionary;
00537     }
00538   return *m_MetaDataDictionary;
00539 }

const MetaDataDictionary & itk::Object::GetMetaDataDictionary ( void   )  const [inherited]

Returns:
A constant reference to this objects MetaDataDictionary.

Definition at line 543 of file itkObject.cxx.

References itk::Object::m_MetaDataDictionary.

00544 {
00545   if(m_MetaDataDictionary==NULL)
00546     {
00547     m_MetaDataDictionary=new MetaDataDictionary;
00548     }
00549   return *m_MetaDataDictionary;
00550 }

void itk::Object::SetMetaDataDictionary ( const MetaDataDictionary rhs  )  [inherited]

Returns:
Set the MetaDataDictionary

Definition at line 554 of file itkObject.cxx.

References itk::Object::m_MetaDataDictionary.

Referenced by otb::Image< TPixel, VImageDimension >::CopyInformation(), and otb::VectorImage< TPixel, VImageDimension >::CopyInformation().

00555 {
00556   if(m_MetaDataDictionary==NULL)
00557     {
00558     m_MetaDataDictionary=new MetaDataDictionary;
00559     }
00560   *m_MetaDataDictionary=rhs;
00561 }

void itk::LightObject::Delete (  )  [virtual, inherited]

Delete an itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C delete method will not work with reference counting.

Delete a itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C++ delete method will not work with reference counting.

Definition at line 88 of file itkLightObject.cxx.

References itk::LightObject::UnRegister().

00089 {
00090   this->UnRegister();
00091 }

void itk::LightObject::Print ( std::ostream &  os,
Indent  indent = 0 
) const [inherited]

Cause the object to print itself out.

Avoid DLL boundary problems. This function will be common to all itk objects. It just calls the header/self/trailer virtual print methods, which can be overriden by subclasses (any itk object).

Definition at line 135 of file itkLightObject.cxx.

References itk::Indent::GetNextIndent(), itk::LightObject::PrintHeader(), itk::LightObject::PrintSelf(), and itk::LightObject::PrintTrailer().

Referenced by itk::operator<<(), itk::WeakPointer< itk::ProcessObject >::Print(), and itk::SmartPointer< itk::Statistics::ImageToListAdaptor >::Print().

00136 {
00137   this->PrintHeader(os, indent); 
00138   this->PrintSelf(os, indent.GetNextIndent());
00139   this->PrintTrailer(os, indent);
00140 }

void itk::LightObject::BreakOnError (  )  [static, inherited]

This method is called when itkExceptionMacro executes. It allows the debugger to break on error.

This method is called when itkExceptionMacro executes. It allows the debugger to break on error.

Definition at line 149 of file itkLightObject.cxx.

00150 {
00151   ;  
00152 }

virtual int itk::LightObject::GetReferenceCount (  )  const [inline, virtual, inherited]

Gets the reference count on this object.

Definition at line 105 of file itkLightObject.h.

00106     {return static_cast<int>(m_ReferenceCount);}

void itk::LightObject::PrintHeader ( std::ostream &  os,
Indent  indent 
) const [protected, virtual, inherited]

Define a default print header for all objects.

Definition at line 320 of file itkLightObject.cxx.

References itk::LightObject::GetNameOfClass().

Referenced by itk::LightObject::Print().

00321 {
00322   os << indent << this->GetNameOfClass() << " (" << this << ")\n";
00323 }

void itk::LightObject::PrintTrailer ( std::ostream &  os,
Indent  indent 
) const [protected, virtual, inherited]

Define a default print trailer for all objects.

Definition at line 331 of file itkLightObject.cxx.

Referenced by itk::LightObject::Print().

00332 {
00333 }


Member Data Documentation

template<unsigned int VImageDimension>
const unsigned int itk::ImageRegionSplitter< VImageDimension >::ImageDimension = VImageDimension [static]

Mutex lock to protect modification to the reference count

Definition at line 144 of file itkLightObject.h.

Referenced by itk::LightObject::Register(), itk::LightObject::SetReferenceCount(), and itk::LightObject::UnRegister().


The documentation for this class was generated from the following files:

Generated at Wed Jul 14 07:06:01 2010 for OTB with doxygen 1.5.6