#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().