#include <mitkManufacturerLogo.h>


Public Types | |
| enum | LogoPosition { UpperLeft, UpperRight, LowerLeft, LowerRight, Middle } |
| typedef ManufacturerLogo | Self |
| typedef BaseData | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual void | SetRenderWindow (vtkRenderWindow *renderWindow) |
| virtual void | SetLogoSource (const char *filename) |
| virtual void | SetOpacity (double opacity) |
| virtual void | SetZoomFactor (double factor) |
| virtual void | Enable () |
| virtual void | Disable () |
| virtual bool | IsEnabled () |
| virtual void | SetRequestedRegionToLargestPossibleRegion () |
| virtual bool | RequestedRegionIsOutsideOfTheBufferedRegion () |
| virtual bool | VerifyRequestedRegion () |
| virtual void | SetRequestedRegion (itk::DataObject *) |
| virtual vtkRenderWindow * | GetRenderWindow () |
| virtual vtkRenderer * | GetVtkRenderer () |
| virtual vtkImageActor * | GetActor () |
| virtual vtkImageMapper * | GetMapper () |
| virtual void | ForceMBILogoVisible (bool visible) |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| void | SetupCamera () |
| void | SetupPosition () |
| ManufacturerLogo () | |
| ~ManufacturerLogo () | |
Protected Attributes | |
| vtkRenderWindow * | m_RenderWindow |
| vtkRenderer * | m_Renderer |
| vtkImageActor * | m_Actor |
| vtkImageMapper * | m_Mapper |
| vtkPNGReader * | m_PngReader |
| vtkCamera * | m_Camera |
| vtkImageImport * | m_VtkImageImport |
| std::string | m_FileName |
| bool | m_IsEnabled |
| bool | m_ForceShowMBIDepartmentLogo |
| LogoPosition | m_LogoPosition |
| double | m_ZoomFactor |
| double | m_Opacity |
| char * | m_ImageData |
Renders a company logo in the foreground of a vtkRenderWindow.
Definition at line 43 of file mitkManufacturerLogo.h.
| typedef itk::SmartPointer<const Self> mitk::ManufacturerLogo::ConstPointer |
Reimplemented from mitk::BaseData.
Definition at line 47 of file mitkManufacturerLogo.h.
| typedef itk::SmartPointer<Self> mitk::ManufacturerLogo::Pointer |
Reimplemented from mitk::BaseData.
Definition at line 47 of file mitkManufacturerLogo.h.
Reimplemented from mitk::BaseData.
Definition at line 47 of file mitkManufacturerLogo.h.
Reimplemented from mitk::BaseData.
Definition at line 47 of file mitkManufacturerLogo.h.
Definition at line 51 of file mitkManufacturerLogo.h.
{ UpperLeft, UpperRight, LowerLeft, LowerRight, Middle };
| mitk::ManufacturerLogo::ManufacturerLogo | ( | ) | [protected] |
Constructor
Definition at line 48 of file mitkManufacturerLogo.cpp.
References LowerRight, m_Actor, m_FileName, m_ForceShowMBIDepartmentLogo, m_IsEnabled, m_LogoPosition, m_Mapper, m_Opacity, m_PngReader, m_Renderer, m_RenderWindow, m_VtkImageImport, m_ZoomFactor, and New().
:m_ImageData(NULL) { m_RenderWindow = NULL; m_Renderer = vtkRenderer::New(); m_Actor = vtkImageActor::New(); m_Mapper = vtkImageMapper::New(); m_PngReader = vtkPNGReader::New(); m_VtkImageImport = vtkImageImport::New(); m_LogoPosition = mitk::ManufacturerLogo::LowerRight; m_IsEnabled = false; m_ForceShowMBIDepartmentLogo = false; m_ZoomFactor = 1.15; m_Opacity = 0.5; m_FileName = ""; m_PngReader->SetFileName(m_FileName.c_str()); }
| mitk::ManufacturerLogo::~ManufacturerLogo | ( | ) | [protected] |
Destructor
Definition at line 70 of file mitkManufacturerLogo.cpp.
{
if ( m_RenderWindow != NULL )
if ( this->IsEnabled() )
this->Disable();
if ( m_Mapper != NULL )
m_Mapper->Delete();
if ( m_Actor!=NULL )
m_Actor->Delete();
if ( m_Renderer != NULL )
m_Renderer->Delete();
if ( m_PngReader != NULL )
m_PngReader->Delete();
if ( m_VtkImageImport != NULL )
m_VtkImageImport->Delete();
if ( m_ImageData != NULL)
delete[] m_ImageData;
}
| void mitk::ManufacturerLogo::Disable | ( | ) | [virtual] |
Disables drawing of the logo. If you want to enable it, call the Enable() function.
Definition at line 345 of file mitkManufacturerLogo.cpp.
References mitk::VtkLayerController::GetInstance(), and mitk::VtkLayerController::RemoveRenderer().
{
if ( this->IsEnabled() && !m_ForceShowMBIDepartmentLogo )
{
mitk::VtkLayerController::GetInstance(m_RenderWindow)->RemoveRenderer(m_Renderer);
m_IsEnabled = false;
}
}
| void mitk::ManufacturerLogo::Enable | ( | ) | [virtual] |
Enables drawing of the logo. If you want to disable it, call the Disable() function.
Definition at line 155 of file mitkManufacturerLogo.cpp.
References mitk::VtkLayerController::GetInstance(), mitk::VtkLayerController::InsertForegroundRenderer(), mbiLogo_Data, mbiLogo_Height, mbiLogo_NumberOfScalars, and mbiLogo_Width.
{
if(m_IsEnabled)
return;
if(m_RenderWindow != NULL)
{
if(itksys::SystemTools::FileExists(m_FileName.c_str()) && !m_ForceShowMBIDepartmentLogo)
{
m_PngReader->Update();
m_Actor->SetInput(m_PngReader->GetOutput());
}
else // either logo file not found or logo renderer is forced to show the MBI logo
{
m_VtkImageImport->SetDataScalarTypeToUnsignedChar();
m_VtkImageImport->SetNumberOfScalarComponents(mbiLogo_NumberOfScalars);
m_VtkImageImport->SetWholeExtent(0,mbiLogo_Width-1,0,mbiLogo_Height-1,0,1-1);
m_VtkImageImport->SetDataExtentToWholeExtent();
// flip mbi logo around y axis and change color order
m_ImageData = new char[mbiLogo_Height*mbiLogo_Width*mbiLogo_NumberOfScalars];
unsigned int column, row;
char * dest = m_ImageData;
char * source = (char*) &mbiLogo_Data[0];;
char r, g, b, a;
for (column = 0; column < mbiLogo_Height; column++)
for (row = 0; row < mbiLogo_Width; row++)
{ //change r with b
b = *source++;
g = *source++;
r = *source++;
a = *source++;
*dest++ = r;
*dest++ = g;
*dest++ = b;
*dest++ = a;
}
m_VtkImageImport->SetImportVoidPointer(m_ImageData);
m_VtkImageImport->Modified();
m_VtkImageImport->Update();
m_Actor->SetInput(m_VtkImageImport->GetOutput());
}
#if ( VTK_MAJOR_VERSION >= 5 )
m_Actor->SetOpacity(m_Opacity);
#endif
m_Renderer->AddActor( m_Actor );
m_Renderer->InteractiveOff();
SetupCamera();
SetupPosition();
mitk::VtkLayerController::GetInstance(m_RenderWindow)->InsertForegroundRenderer(m_Renderer,false);
m_IsEnabled = true;
}
}
| void mitk::ManufacturerLogo::ForceMBILogoVisible | ( | bool | visible ) | [virtual] |
If set true, this method forces the logo rendering mechanism that it always renders the MBI department logo, independent from mainapp option settings.
Definition at line 327 of file mitkManufacturerLogo.cpp.
{
m_ForceShowMBIDepartmentLogo = visible;
}
| vtkImageActor * mitk::ManufacturerLogo::GetActor | ( | ) | [virtual] |
Returns the actor associated with the logo
Definition at line 127 of file mitkManufacturerLogo.cpp.
{
return m_Actor;
}
| virtual const char* mitk::ManufacturerLogo::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::BaseData.
| vtkImageMapper * mitk::ManufacturerLogo::GetMapper | ( | ) | [virtual] |
Returns the mapper associated with the logo
Returns the mapper associated with the logo.
Definition at line 136 of file mitkManufacturerLogo.cpp.
{
return m_Mapper;
}
| vtkRenderWindow * mitk::ManufacturerLogo::GetRenderWindow | ( | ) | [virtual] |
Returns the vtkRenderWindow, which is used for displaying the logo
Definition at line 109 of file mitkManufacturerLogo.cpp.
{
return m_RenderWindow;
}
| vtkRenderer * mitk::ManufacturerLogo::GetVtkRenderer | ( | ) | [virtual] |
Returns the renderer responsible for rendering the logo into the vtkRenderWindow
Definition at line 119 of file mitkManufacturerLogo.cpp.
{
return m_Renderer;
}
| bool mitk::ManufacturerLogo::IsEnabled | ( | ) | [virtual] |
Checks, if the logo is currently enabled (visible)
Definition at line 358 of file mitkManufacturerLogo.cpp.
{
return m_IsEnabled;
}
| static Pointer mitk::ManufacturerLogo::New | ( | ) | [static] |
| bool mitk::ManufacturerLogo::RequestedRegionIsOutsideOfTheBufferedRegion | ( | ) | [virtual] |
Empty implementation, since the ManufacturerLogo doesn't support the requested region concept
Implements mitk::BaseData.
Definition at line 369 of file mitkManufacturerLogo.cpp.
{
return false;
}
| void mitk::ManufacturerLogo::SetLogoSource | ( | const char * | filename ) | [virtual] |
Sets the source file for the logo.
Definition at line 141 of file mitkManufacturerLogo.cpp.
{
std::string file = filename;
if(file.length() != 0)
{
m_FileName = filename;
m_PngReader->SetFileName(m_FileName.c_str());
}
}
| void mitk::ManufacturerLogo::SetOpacity | ( | double | opacity ) | [virtual] |
Sets the opacity level of the logo.
Definition at line 336 of file mitkManufacturerLogo.cpp.
{
m_Opacity = opacity;
}
| void mitk::ManufacturerLogo::SetRenderWindow | ( | vtkRenderWindow * | renderWindow ) | [virtual] |
Sets the renderwindow, in which the logo will be shown. Make sure, you have called this function before calling Enable()
Definition at line 100 of file mitkManufacturerLogo.cpp.
{
m_RenderWindow = renderWindow;
}
| void mitk::ManufacturerLogo::SetRequestedRegion | ( | itk::DataObject * | ) | [virtual] |
Empty implementation, since the ManufacturerLogo doesn't support the requested region concept
Implements mitk::BaseData.
Definition at line 379 of file mitkManufacturerLogo.cpp.
{
//nothing to do
}
| void mitk::ManufacturerLogo::SetRequestedRegionToLargestPossibleRegion | ( | ) | [virtual] |
Empty implementation, since the ManufacturerLogo doesn't support the requested region concept
Implements mitk::BaseData.
Definition at line 364 of file mitkManufacturerLogo.cpp.
{
//nothing to do
}
| void mitk::ManufacturerLogo::SetupCamera | ( | ) | [protected] |
Definition at line 219 of file mitkManufacturerLogo.cpp.
References QuadProgPP::max().
{
// set the vtk camera in way that stretches the logo all over the renderwindow
vtkImageData * image = m_Actor->GetInput();
m_Camera = m_Renderer->GetActiveCamera();
m_Camera->SetClippingRange(1,100000);
if ( !image )
return;
double spacing[3];
double origin[3];
int dimensions[3];
image->GetSpacing(spacing);
image->GetOrigin(origin);
image->GetDimensions(dimensions);
double focalPoint[3];
double position[3];
for ( unsigned int cc = 0; cc < 3; cc++)
{
focalPoint[cc] = origin[cc] + ( spacing[cc] * dimensions[cc] ) / 2.0;
position[cc] = focalPoint[cc];
}
m_Camera->SetViewUp (0,1,0);
int idx = 2;
const double distanceToFocalPoint = 1000;
position[idx] = distanceToFocalPoint;
m_Camera->ParallelProjectionOn();
m_Camera->SetPosition (position);
m_Camera->SetFocalPoint (focalPoint);
int d1 = (idx + 1) % 3;
int d2 = (idx + 2) % 3;
double max = std::max(dimensions[d1],dimensions[d2]);
m_Camera->SetParallelScale( max / 2 );
}
| void mitk::ManufacturerLogo::SetupPosition | ( | ) | [protected] |
Definition at line 265 of file mitkManufacturerLogo.cpp.
References LowerLeft, LowerRight, QuadProgPP::max(), Middle, UpperLeft, and UpperRight.
{ // Position and Scale of the logo
double newPos[4];
int dimensions[3];
vtkImageData * image = m_Actor->GetInput();
image->GetDimensions(dimensions);
// normalize image dimensions
double max = std::max(dimensions[0],dimensions[1]);
double normX = dimensions[0] / max;
double normY = dimensions[1] / max;
double buffer = 0; // buffer to the boarder of the renderwindow
switch(m_LogoPosition)
{
case mitk::ManufacturerLogo::LowerLeft:
{
newPos[0] = (0 + buffer);
newPos[1] = (0 + buffer);
newPos[2] = 0.2 * normX * m_ZoomFactor;
newPos[3] = 0.2 * normY * m_ZoomFactor;
break;
}
case mitk::ManufacturerLogo::LowerRight:
{
newPos[0] = (1 - buffer) - 0.2 * normX * m_ZoomFactor;
newPos[1] = 0.0;
newPos[2] = (1 - buffer);
newPos[3] = 0.2 * normY * m_ZoomFactor;
break;
}
case mitk::ManufacturerLogo::UpperLeft:
{
newPos[0] = (0 + buffer);
newPos[1] = (1 - buffer) - 0.2 * normY * m_ZoomFactor;
newPos[2] = 0.2 * normX * m_ZoomFactor;
newPos[3] = (1 - buffer);
break;
}
case mitk::ManufacturerLogo::UpperRight:
{
newPos[0] = (1 - buffer) - 0.2 * normX * m_ZoomFactor;
newPos[1] = (1 - buffer) - 0.2 * normY * m_ZoomFactor;
newPos[2] = (1 - buffer);
newPos[3] = (1 - buffer);
break;
}
case mitk::ManufacturerLogo::Middle:
default:
{
newPos[0] = 0.5 - 0.2 * normX * m_ZoomFactor;
newPos[1] = 0.5 + 0.2 * normY * m_ZoomFactor;
newPos[2] = 0.5 - 0.2 * normX * m_ZoomFactor;
newPos[3] = 0.5 + 0.2 * normY * m_ZoomFactor;
break;
}
}
m_Renderer->SetViewport(newPos);
}
| void mitk::ManufacturerLogo::SetZoomFactor | ( | double | factor ) | [virtual] |
Specifies the logo size, values from 0...10, where 1 is a nice little logo
Definition at line 332 of file mitkManufacturerLogo.cpp.
{
m_ZoomFactor = factor;
}
| bool mitk::ManufacturerLogo::VerifyRequestedRegion | ( | ) | [virtual] |
Empty implementation, since the ManufacturerLogo doesn't support the requested region concept
Implements mitk::BaseData.
Definition at line 374 of file mitkManufacturerLogo.cpp.
{
return true;
}
vtkImageActor* mitk::ManufacturerLogo::m_Actor [protected] |
Definition at line 163 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkCamera* mitk::ManufacturerLogo::m_Camera [protected] |
Definition at line 166 of file mitkManufacturerLogo.h.
std::string mitk::ManufacturerLogo::m_FileName [protected] |
Definition at line 169 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
bool mitk::ManufacturerLogo::m_ForceShowMBIDepartmentLogo [protected] |
Definition at line 172 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
char* mitk::ManufacturerLogo::m_ImageData [protected] |
Definition at line 178 of file mitkManufacturerLogo.h.
bool mitk::ManufacturerLogo::m_IsEnabled [protected] |
Definition at line 171 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
LogoPosition mitk::ManufacturerLogo::m_LogoPosition [protected] |
Definition at line 174 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkImageMapper* mitk::ManufacturerLogo::m_Mapper [protected] |
Definition at line 164 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
double mitk::ManufacturerLogo::m_Opacity [protected] |
Definition at line 176 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkPNGReader* mitk::ManufacturerLogo::m_PngReader [protected] |
Definition at line 165 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkRenderer* mitk::ManufacturerLogo::m_Renderer [protected] |
Definition at line 162 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkRenderWindow* mitk::ManufacturerLogo::m_RenderWindow [protected] |
Definition at line 161 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
vtkImageImport* mitk::ManufacturerLogo::m_VtkImageImport [protected] |
Definition at line 167 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
double mitk::ManufacturerLogo::m_ZoomFactor [protected] |
Definition at line 175 of file mitkManufacturerLogo.h.
Referenced by ManufacturerLogo().
1.7.2