#include <mitkImageBackground2D.h>

Public Types | |
| typedef ImageBackground2D | Self |
| typedef itk::Object | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| vtkRenderWindow * | GetRenderWindow () |
| void | SetRenderWindow (vtkRenderWindow *renderWindow) |
| void | SetImageDimensions (int x, int y, int nrOfScalarComponents) |
| void | SetParallelScale (int scale) |
| int | GetParallelScale () |
| void | Update (char *dataPointer) |
| void | Update (char *dataPointer, int width, int height, int imageScalarComponents) |
| void | Enable () |
| void | Disable () |
| bool | IsEnabled () |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| ImageBackground2D () | |
| ~ImageBackground2D () | |
| void | InitVtkImageImport () |
Protected Attributes | |
| vtkRenderWindow * | m_RenderWindow |
| vtkRenderer * | m_ImageRenderer |
| vtkImageActor * | m_Actor |
| vtkImageImport * | m_VtkImageImport |
| vtkVideoSizeCallback * | m_SizeCallback |
| unsigned char * | m_ImageData |
| int | m_ImageWidth |
| int | m_ImageHeight |
| int | m_ImageScalarComponents |
| int | m_ParallelScale |
Displays a 2D image (currently unsigned char) in the background of a vtkRenderWindow. Caution: As the data is not being copied, a user is responsible for a valid pointer to the image. Also the image dimensions needs to be set correctly before enabling the background.
Definition at line 44 of file mitkImageBackground2D.h.
| typedef itk::SmartPointer<const Self> mitk::ImageBackground2D::ConstPointer |
Definition at line 47 of file mitkImageBackground2D.h.
| typedef itk::SmartPointer<Self> mitk::ImageBackground2D::Pointer |
Definition at line 47 of file mitkImageBackground2D.h.
Definition at line 47 of file mitkImageBackground2D.h.
| typedef itk::Object mitk::ImageBackground2D::Superclass |
Definition at line 47 of file mitkImageBackground2D.h.
| mitk::ImageBackground2D::ImageBackground2D | ( | ) | [protected] |
Definition at line 60 of file mitkImageBackground2D.cpp.
References m_Actor, m_ImageData, m_ImageHeight, m_ImageRenderer, m_ImageScalarComponents, m_ImageWidth, m_ParallelScale, m_RenderWindow, m_VtkImageImport, and New().
{
m_ImageWidth = 0;
m_ImageHeight = 0;
m_ImageScalarComponents = 3;
m_ParallelScale = 0;
m_RenderWindow = NULL;
m_Actor = vtkImageActor::New();
m_ImageRenderer = vtkRenderer::New();
m_VtkImageImport = vtkImageImport::New();
m_ImageData = NULL;
}
| mitk::ImageBackground2D::~ImageBackground2D | ( | ) | [protected] |
Definition at line 85 of file mitkImageBackground2D.cpp.
{
if ( m_RenderWindow != NULL )
if ( this->IsEnabled() )
this->Disable();
if ( m_Actor!=NULL )
m_Actor->Delete();
if ( m_ImageRenderer != NULL )
m_ImageRenderer->Delete();
if ( m_VtkImageImport != NULL)
m_VtkImageImport->Delete();
}
| void mitk::ImageBackground2D::Disable | ( | ) |
Disables drawing of the color Video background. If you want to enable it, call the Enable() function.
Definition at line 151 of file mitkImageBackground2D.cpp.
References mitk::VtkLayerController::GetInstance(), and mitk::VtkLayerController::RemoveRenderer().
{
if ( this->IsEnabled() )
mitk::VtkLayerController::GetInstance(m_RenderWindow)->RemoveRenderer(m_ImageRenderer);
}
| void mitk::ImageBackground2D::Enable | ( | ) |
Enables drawing of the color Video background. If you want to disable it, call the Disable() function.
Definition at line 125 of file mitkImageBackground2D.cpp.
References mitk::VtkLayerController::GetInstance(), and mitk::VtkLayerController::InsertBackgroundRenderer().
{
m_ImageRenderer = vtkRenderer::New();
mitk::VtkLayerController::GetInstance(m_RenderWindow)->InsertBackgroundRenderer(m_ImageRenderer,true);
char * c = 0;
Update(c);
m_Actor->SetInput(m_VtkImageImport->GetOutput());
m_ImageRenderer->AddActor2D(m_Actor);
m_ImageRenderer->ResetCamera();
m_ImageRenderer->InteractiveOff();
m_ImageRenderer->GetActiveCamera()->ParallelProjectionOn();
if(m_ParallelScale == 0)
m_ImageRenderer->GetActiveCamera()->SetParallelScale(m_ImageHeight/2);
//m_SizeCallback->SetVtkVideoRenderer(m_ImageRenderer);
//m_SizeCallback->SetVideoDimensions(m_ImageWidth, m_ImageHeight);
}
| virtual const char* mitk::ImageBackground2D::GetClassName | ( | ) | const [virtual] |
| int mitk::ImageBackground2D::GetParallelScale | ( | ) |
Definition at line 116 of file mitkImageBackground2D.cpp.
{
// TODO someone who knows this, check if double->int could cause problems
return static_cast<int>(m_ImageRenderer->GetActiveCamera()->GetParallelScale());
}
| vtkRenderWindow* mitk::ImageBackground2D::GetRenderWindow | ( | ) |
| void mitk::ImageBackground2D::InitVtkImageImport | ( | ) | [protected] |
Definition at line 75 of file mitkImageBackground2D.cpp.
{
/*m_VtkImageImport->Delete();
m_VtkImageImport = vtkImageImport::New();*/
m_VtkImageImport->SetDataScalarTypeToUnsignedChar();
m_VtkImageImport->SetNumberOfScalarComponents(m_ImageScalarComponents);
m_VtkImageImport->SetWholeExtent(0,m_ImageWidth-1,0,m_ImageHeight-1,0,1-1);
m_VtkImageImport->SetDataExtentToWholeExtent();
}
| bool mitk::ImageBackground2D::IsEnabled | ( | ) |
Checks, if the Video background is currently enabled (visible)
Definition at line 160 of file mitkImageBackground2D.cpp.
References mitk::VtkLayerController::GetInstance().
{
if ( mitk::VtkLayerController::GetInstance(m_RenderWindow)->IsRendererInserted(m_ImageRenderer))
return true;
else
return false;
}
| static Pointer mitk::ImageBackground2D::New | ( | ) | [static] |
Referenced by ImageBackground2D().
| void mitk::ImageBackground2D::SetImageDimensions | ( | int | x, |
| int | y, | ||
| int | nrOfScalarComponents | ||
| ) | [inline] |
Definition at line 60 of file mitkImageBackground2D.h.
{
m_ImageWidth = x;
m_ImageHeight = y;
m_ImageScalarComponents = nrOfScalarComponents;
InitVtkImageImport();
}
| void mitk::ImageBackground2D::SetParallelScale | ( | int | scale ) |
Definition at line 111 of file mitkImageBackground2D.cpp.
{
m_ParallelScale = scale;
m_ImageRenderer->GetActiveCamera()->SetParallelScale(m_ParallelScale);
}
| void mitk::ImageBackground2D::SetRenderWindow | ( | vtkRenderWindow * | renderWindow ) |
Sets the renderwindow, in which the Video background will be shown. Make sure, you have called this function before calling Enable()
Definition at line 102 of file mitkImageBackground2D.cpp.
{
m_RenderWindow = renderWindow;
/*m_SizeCallback = vtkVideoSizeCallback::New();
m_RenderWindow->GetVtkRenderWindow()->AddObserver(vtkCommand::ModifiedEvent,m_SizeCallback);*/
}
| void mitk::ImageBackground2D::Update | ( | char * | dataPointer, |
| int | width, | ||
| int | height, | ||
| int | imageScalarComponents | ||
| ) |
Definition at line 191 of file mitkImageBackground2D.cpp.
{
// no image-backround layer is rendered
if(!IsEnabled())
return;
// image contains no data, OR image scalar components missmatch (no RGB, no greyscale)
if(!dataPointer || (imageScalarComponents != 1 && imageScalarComponents != 3))
{
// no valid image pointer provided -> we initialize black image
if(m_ImageData == NULL)
m_ImageData = new unsigned char[m_ImageHeight*m_ImageWidth*m_ImageScalarComponents];
unsigned char* b = m_ImageData;
for ( int textCounter = 0; textCounter < (m_ImageHeight*m_ImageWidth*m_ImageScalarComponents); textCounter++ )
*b++ = 0;
}
else
{
if(m_ImageWidth == 0)
{ // VTK Image Import has to be initialized properly
m_ImageHeight = height;
m_ImageWidth = width;
m_ImageScalarComponents = imageScalarComponents;
InitVtkImageImport();
}
// VTK import image data must be allocated before import (with correct parameters)
if(m_ImageData == NULL)
m_ImageData = new unsigned char[m_ImageHeight*m_ImageWidth*m_ImageScalarComponents];
int column, row;
unsigned char* tex = m_ImageData;
char* data = dataPointer;
// PREPARE image Data for VTKImageImport Filter //
if(imageScalarComponents == 1)
{
m_VtkImageImport->SetNumberOfScalarComponents(m_ImageScalarComponents);
unsigned char g;
for (column = 0; column < m_ImageHeight; column++)
for (row = 0; row < m_ImageWidth; row++)
{
g = *data++;
*tex++ = g;
}
}
else if(imageScalarComponents == 3)
{
// flip image, change color channels
unsigned char r, g, b;
for (column = 0; column < m_ImageHeight; column++)
for (row = 0; row < m_ImageWidth; row++)
{ //change r with b
b = *data++;
g = *data++;
r = *data++;
*tex++ = r;
*tex++ = g;
*tex++ = b;
}
} // else if(imageScalarComponents == 3)
} // end else image data present
// Initialize VTK-ImageImport Filter //
m_VtkImageImport->SetImportVoidPointer(m_ImageData);
m_VtkImageImport->Modified();
m_VtkImageImport->Update();
m_RenderWindow->Render();
}
| void mitk::ImageBackground2D::Update | ( | char * | dataPointer ) |
Definition at line 168 of file mitkImageBackground2D.cpp.
{
if(!IsEnabled())
return;
// VTK import image data must be allocated before import (with correct parameters)
if(m_ImageData == NULL)
m_ImageData = new unsigned char[m_ImageHeight*m_ImageWidth*m_ImageScalarComponents];
if(!dataPointer)
{// no valid image pointer provided -> initialize black image
unsigned char* b = m_ImageData;
for ( int textCounter = 0; textCounter < (m_ImageHeight*m_ImageWidth*m_ImageScalarComponents); textCounter++ )
*b++ = 0;
}
m_VtkImageImport->SetImportVoidPointer(m_ImageData);
m_VtkImageImport->Modified();
m_VtkImageImport->Update();
m_RenderWindow->Render();
}
vtkImageActor* mitk::ImageBackground2D::m_Actor [protected] |
Definition at line 92 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
unsigned char* mitk::ImageBackground2D::m_ImageData [protected] |
Definition at line 98 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
int mitk::ImageBackground2D::m_ImageHeight [protected] |
Definition at line 100 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
vtkRenderer* mitk::ImageBackground2D::m_ImageRenderer [protected] |
Definition at line 91 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
int mitk::ImageBackground2D::m_ImageScalarComponents [protected] |
Definition at line 100 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
int mitk::ImageBackground2D::m_ImageWidth [protected] |
Definition at line 100 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
int mitk::ImageBackground2D::m_ParallelScale [protected] |
Definition at line 100 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
vtkRenderWindow* mitk::ImageBackground2D::m_RenderWindow [protected] |
Definition at line 90 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
Definition at line 96 of file mitkImageBackground2D.h.
vtkImageImport* mitk::ImageBackground2D::m_VtkImageImport [protected] |
Definition at line 93 of file mitkImageBackground2D.h.
Referenced by ImageBackground2D().
1.7.2