Public Member Functions | Protected Member Functions | Protected Attributes

mitk::ApplyDiffImageOperation Class Reference
[Undo ClassesClasses related to InteractiveSegmentation]

Operation, that holds information about some image difference. More...

#include <mitkApplyDiffImageOperation.h>

Inheritance diagram for mitk::ApplyDiffImageOperation:
Inheritance graph
[legend]
Collaboration diagram for mitk::ApplyDiffImageOperation:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ApplyDiffImageOperation (OperationType operationType, Image *image, Image *diffImage, unsigned int timeStep=0, unsigned int sliceDimension=2, unsigned int sliceIndex=0)
virtual ~ApplyDiffImageOperation ()
unsigned int GetSliceIndex ()
unsigned int GetSliceDimension ()
unsigned int GetTimeStep ()
void SetFactor (double factor)
double GetFactor ()
ImageGetImage ()
Image::ConstPointer GetDiffImage ()
bool IsImageStillValid ()

Protected Member Functions

void OnImageDeleted ()

Protected Attributes

Imagem_Image
unsigned int m_SliceIndex
unsigned int m_SliceDimension
unsigned int m_TimeStep
double m_Factor
bool m_ImageStillValid
unsigned long m_DeleteTag
CompressedImageContainer::Pointer zlibContainer

Detailed Description

Operation, that holds information about some image difference.

This class stores undo information for DiffImageApplier. Instances of this class are created e.g. by OverwriteSliceImageFilter. This works only for images with 1 channel (gray scale images, no color images).

ApplyDiffImageOperation of course refers to an image (a segmentation usually). The refered image is observed for itk::DeleteEvent, because there is no SmartPointer used to keep the image alive -- the purpose of this class is undo and the undo stack should not keep things alive forever.

To save memory, zlib compression is used via CompressedImageContainer.

Definition at line 45 of file mitkApplyDiffImageOperation.h.


Constructor & Destructor Documentation

mitk::ApplyDiffImageOperation::ApplyDiffImageOperation ( OperationType  operationType,
Image image,
Image diffImage,
unsigned int  timeStep = 0,
unsigned int  sliceDimension = 2,
unsigned int  sliceIndex = 0 
)

Pass only 2D images here.

Parameters:
sliceIndexbrief Which slice to extract (first one has index 0).
sliceDimensionNumber of the dimension which is constant for all pixels of the desired slice (e.g. 0 for transversal)

Definition at line 23 of file mitkApplyDiffImageOperation.cpp.

References m_DeleteTag, m_ImageStillValid, mitk::CompressedImageContainer::New(), OnImageDeleted(), and zlibContainer.

: Operation(operationType),
  m_Image( image ),
  m_SliceIndex( sliceIndex ),
  m_SliceDimension( sliceDimension ),
  m_TimeStep( timeStep ),
  m_Factor( 1.0 ),
  m_ImageStillValid( false ),
  m_DeleteTag( 0 )
{
  if (image && diffImage)
  {
    // observe 3D image for DeleteEvent
    m_ImageStillValid = true;

    itk::SimpleMemberCommand< ApplyDiffImageOperation >::Pointer command = itk::SimpleMemberCommand< ApplyDiffImageOperation >::New();
    command->SetCallbackFunction( this, &ApplyDiffImageOperation::OnImageDeleted );
    m_DeleteTag = image->AddObserver( itk::DeleteEvent(), command );

    // keep a compressed version of the image
    zlibContainer = CompressedImageContainer::New();
    zlibContainer->SetImage( diffImage );
  }
}
mitk::ApplyDiffImageOperation::~ApplyDiffImageOperation (  ) [virtual]

Definition at line 48 of file mitkApplyDiffImageOperation.cpp.

{
  if (m_ImageStillValid)
  {
    m_Image->RemoveObserver( m_DeleteTag );
  }
}

Member Function Documentation

mitk::Image::ConstPointer mitk::ApplyDiffImageOperation::GetDiffImage (  )

Definition at line 61 of file mitkApplyDiffImageOperation.cpp.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{
  // uncompress image to create a valid mitk::Image
  Image::ConstPointer image = zlibContainer->GetImage().GetPointer();

  return image; 
}
double mitk::ApplyDiffImageOperation::GetFactor (  ) [inline]

Definition at line 78 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_Factor; }
Image* mitk::ApplyDiffImageOperation::GetImage ( void   ) [inline]

Definition at line 80 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_Image; }
unsigned int mitk::ApplyDiffImageOperation::GetSliceDimension (  ) [inline]

Definition at line 74 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_SliceDimension; }
unsigned int mitk::ApplyDiffImageOperation::GetSliceIndex (  ) [inline]

Definition at line 73 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_SliceIndex; }
unsigned int mitk::ApplyDiffImageOperation::GetTimeStep (  ) [inline]

Definition at line 75 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_TimeStep; }
bool mitk::ApplyDiffImageOperation::IsImageStillValid (  ) [inline]

Definition at line 83 of file mitkApplyDiffImageOperation.h.

Referenced by mitk::DiffImageApplier::ExecuteOperation().

{ return m_ImageStillValid; }
void mitk::ApplyDiffImageOperation::OnImageDeleted (  ) [protected]

Definition at line 56 of file mitkApplyDiffImageOperation.cpp.

Referenced by ApplyDiffImageOperation().

{
  m_ImageStillValid = false;
}
void mitk::ApplyDiffImageOperation::SetFactor ( double  factor ) [inline]

Member Data Documentation

unsigned long mitk::ApplyDiffImageOperation::m_DeleteTag [protected]

Definition at line 58 of file mitkApplyDiffImageOperation.h.

Referenced by ApplyDiffImageOperation().

Definition at line 55 of file mitkApplyDiffImageOperation.h.

Definition at line 51 of file mitkApplyDiffImageOperation.h.

Definition at line 56 of file mitkApplyDiffImageOperation.h.

Referenced by ApplyDiffImageOperation().

Definition at line 53 of file mitkApplyDiffImageOperation.h.

Definition at line 52 of file mitkApplyDiffImageOperation.h.

Definition at line 54 of file mitkApplyDiffImageOperation.h.

Definition at line 60 of file mitkApplyDiffImageOperation.h.

Referenced by ApplyDiffImageOperation().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines