diff --git a/Modules/ToFHardware/files.cmake b/Modules/ToFHardware/files.cmake index e39aac8409..90d445dbc4 100644 --- a/Modules/ToFHardware/files.cmake +++ b/Modules/ToFHardware/files.cmake @@ -1,34 +1,35 @@ SET(CPP_FILES mitkToFImageRecorder.cpp mitkToFImageRecorderFilter.cpp mitkToFImageWriter.cpp mitkToFNrrdImageWriter.cpp mitkToFImageCsvWriter.cpp mitkIToFDeviceFactory.cpp mitkAbstractToFDeviceFactory.cpp mitkToFHardwareActivator.cpp mitkToFCameraMITKPlayerDeviceFactory.cpp mitkToFImageGrabber.cpp mitkToFOpenCVImageGrabber.cpp mitkToFCameraDevice.cpp mitkToFCameraMITKPlayerController.cpp mitkToFCameraMITKPlayerDevice.cpp + mitkToFImageSource.cpp ) SET(H_FILES mitkToFDebugHelper.h ) set(RESOURCE_FILES CalibrationFiles/Default_Parameters.xml ) #IF(NOT MITK_USE_TOF_PMDCAMCUBE) #IF(NOT MITK_USE_TOF_PMDCAMBOARD) #IF(NOT MITK_USE_TOF_PMDO3) #SET(CPP_FILES ${CPP_FILES} # mitkToFCameraPMDControllerStub.cpp #) #ENDIF(NOT MITK_USE_TOF_PMDO3) #ENDIF(NOT MITK_USE_TOF_PMDCAMBOARD) #ENDIF(NOT MITK_USE_TOF_PMDCAMCUBE) diff --git a/Modules/ToFHardware/mitkToFImageGrabber.cpp b/Modules/ToFHardware/mitkToFImageGrabber.cpp index 6d06f0afa6..013d7b6c12 100644 --- a/Modules/ToFHardware/mitkToFImageGrabber.cpp +++ b/Modules/ToFHardware/mitkToFImageGrabber.cpp @@ -1,367 +1,375 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkToFImageGrabber.h" -#include "itkCommand.h" +#include +#include +#include namespace mitk { ToFImageGrabber::ToFImageGrabber(): m_ToFCameraDevice(NULL), m_CaptureWidth(-1), m_CaptureHeight(-1), m_PixelNumber(-1), m_RGBImageWidth(0), m_RGBImageHeight(0), m_RGBPixelNumber(0), m_ImageSequence(0), m_SourceDataSize(0), m_IntensityArray(NULL), m_DistanceArray(NULL), m_AmplitudeArray(NULL), m_SourceDataArray(NULL), m_RgbDataArray(NULL), m_DeviceObserverTag() { // Create the output. We use static_cast<> here because we know the default // output must be of type TOutputImage OutputImageType::Pointer output0 = static_cast(this->MakeOutput(0).GetPointer()); OutputImageType::Pointer output1 = static_cast(this->MakeOutput(1).GetPointer()); OutputImageType::Pointer output2 = static_cast(this->MakeOutput(2).GetPointer()); OutputImageType::Pointer output3 = static_cast(this->MakeOutput(3).GetPointer()); mitk::ImageSource::SetNumberOfRequiredOutputs(3); mitk::ImageSource::SetNthOutput(0, output0.GetPointer()); mitk::ImageSource::SetNthOutput(1, output1.GetPointer()); mitk::ImageSource::SetNthOutput(2, output2.GetPointer()); mitk::ImageSource::SetNthOutput(3, output3.GetPointer()); } ToFImageGrabber::~ToFImageGrabber() { if (m_IntensityArray||m_AmplitudeArray||m_DistanceArray||m_RgbDataArray) { if (m_ToFCameraDevice) { m_ToFCameraDevice->RemoveObserver(m_DeviceObserverTag); } this->DisconnectCamera(); this->CleanUpImageArrays(); } } void ToFImageGrabber::GenerateData() { int requiredImageSequence = 0; // acquire new image data this->m_ToFCameraDevice->GetAllImages(this->m_DistanceArray, this->m_AmplitudeArray, this->m_IntensityArray, this->m_SourceDataArray, requiredImageSequence, this->m_ImageSequence, this->m_RgbDataArray ); mitk::Image::Pointer distanceImage = this->GetOutput(0); if (m_DistanceArray) { distanceImage->SetSlice(this->m_DistanceArray, 0, 0, 0); } bool hasAmplitudeImage = false; m_ToFCameraDevice->GetBoolProperty("HasAmplitudeImage", hasAmplitudeImage); if((hasAmplitudeImage) && (m_AmplitudeArray)) { mitk::Image::Pointer amplitudeImage = this->GetOutput(1); amplitudeImage->SetSlice(this->m_AmplitudeArray, 0, 0, 0); } bool hasIntensityImage = false; m_ToFCameraDevice->GetBoolProperty("HasIntensityImage", hasIntensityImage); if((hasIntensityImage) && (m_IntensityArray)) { mitk::Image::Pointer intensityImage = this->GetOutput(2); intensityImage->SetSlice(this->m_IntensityArray, 0, 0, 0); } bool hasRGBImage = false; m_ToFCameraDevice->GetBoolProperty("HasRGBImage", hasRGBImage); if( hasRGBImage ) { mitk::Image::Pointer rgbImage = this->GetOutput(3); if (m_RgbDataArray) { rgbImage->SetSlice(this->m_RgbDataArray, 0, 0, 0); } } } bool ToFImageGrabber::ConnectCamera() { bool ok = m_ToFCameraDevice->ConnectCamera(); if (ok) { this->m_CaptureWidth = this->m_ToFCameraDevice->GetCaptureWidth(); this->m_CaptureHeight = this->m_ToFCameraDevice->GetCaptureHeight(); this->m_PixelNumber = this->m_CaptureWidth * this->m_CaptureHeight; this->m_RGBImageWidth = this->m_ToFCameraDevice->GetRGBCaptureWidth(); this->m_RGBImageHeight = this->m_ToFCameraDevice->GetRGBCaptureHeight(); this->m_RGBPixelNumber = this->m_RGBImageWidth * this->m_RGBImageHeight; this->m_SourceDataSize = m_ToFCameraDevice->GetSourceDataSize(); this->AllocateImageArrays(); this->InitializeImages(); } return ok; } bool ToFImageGrabber::DisconnectCamera() { return m_ToFCameraDevice->DisconnectCamera(); } void ToFImageGrabber::StartCamera() { m_ToFCameraDevice->StartCamera(); + us::ModuleContext* context = us::GetModuleContext(); + us::ServiceProperties deviceProps; + deviceProps["ToFImageSourceName"] = std::string("Image Grabber"); + m_ServiceRegistration = context->RegisterService(this,deviceProps); } void ToFImageGrabber::StopCamera() { m_ToFCameraDevice->StopCamera(); + if (m_ServiceRegistration != NULL) m_ServiceRegistration.Unregister(); + m_ServiceRegistration = 0; } bool ToFImageGrabber::IsCameraActive() { return m_ToFCameraDevice->IsCameraActive(); } bool ToFImageGrabber::IsCameraConnected() { return m_ToFCameraDevice->IsCameraConnected(); } void ToFImageGrabber::SetCameraDevice(ToFCameraDevice* aToFCameraDevice) { m_ToFCameraDevice = aToFCameraDevice; itk::SimpleMemberCommand::Pointer modifiedCommand = itk::SimpleMemberCommand::New(); modifiedCommand->SetCallbackFunction(this, &ToFImageGrabber::OnToFCameraDeviceModified); m_DeviceObserverTag = m_ToFCameraDevice->AddObserver(itk::ModifiedEvent(), modifiedCommand); this->Modified(); } ToFCameraDevice* ToFImageGrabber::GetCameraDevice() { return m_ToFCameraDevice; } int ToFImageGrabber::GetCaptureWidth() { return m_CaptureWidth; } int ToFImageGrabber::GetCaptureHeight() { return m_CaptureHeight; } int ToFImageGrabber::GetPixelNumber() { return m_PixelNumber; } int ToFImageGrabber::GetRGBImageWidth() { return m_RGBImageWidth; } int ToFImageGrabber::GetRGBImageHeight() { return m_RGBImageHeight; } int ToFImageGrabber::GetRGBPixelNumber() { return m_RGBPixelNumber; } int ToFImageGrabber::SetModulationFrequency(int modulationFrequency) { this->m_ToFCameraDevice->SetProperty("ModulationFrequency",mitk::IntProperty::New(modulationFrequency)); this->Modified(); modulationFrequency = this->GetModulationFrequency(); // return the new valid modulation frequency from the camera return modulationFrequency; } int ToFImageGrabber::SetIntegrationTime(int integrationTime) { this->m_ToFCameraDevice->SetProperty("IntegrationTime",mitk::IntProperty::New(integrationTime)); this->Modified(); integrationTime = this->GetIntegrationTime(); // return the new valid integration time from the camera return integrationTime; } int ToFImageGrabber::GetIntegrationTime() { int integrationTime = 0; this->m_ToFCameraDevice->GetIntProperty("IntegrationTime",integrationTime); return integrationTime; } int ToFImageGrabber::GetModulationFrequency() { int modulationFrequency = 0; this->m_ToFCameraDevice->GetIntProperty("ModulationFrequency",modulationFrequency); return modulationFrequency; } void ToFImageGrabber::SetBoolProperty( const char* propertyKey, bool boolValue ) { SetProperty(propertyKey, mitk::BoolProperty::New(boolValue)); } void ToFImageGrabber::SetIntProperty( const char* propertyKey, int intValue ) { SetProperty(propertyKey, mitk::IntProperty::New(intValue)); } void ToFImageGrabber::SetFloatProperty( const char* propertyKey, float floatValue ) { SetProperty(propertyKey, mitk::FloatProperty::New(floatValue)); } void ToFImageGrabber::SetStringProperty( const char* propertyKey, const char* stringValue ) { SetProperty(propertyKey, mitk::StringProperty::New(stringValue)); } void ToFImageGrabber::SetProperty( const char *propertyKey, BaseProperty* propertyValue ) { this->m_ToFCameraDevice->SetProperty(propertyKey, propertyValue); } bool ToFImageGrabber::GetBoolProperty( const char* propertyKey) { mitk::BoolProperty::Pointer boolProp = dynamic_cast(GetProperty(propertyKey)); if(!boolProp) return false; return boolProp->GetValue(); } int ToFImageGrabber::GetIntProperty( const char* propertyKey) { mitk::IntProperty::Pointer intProp = dynamic_cast(GetProperty(propertyKey)); return intProp->GetValue(); } float ToFImageGrabber::GetFloatProperty( const char* propertyKey) { mitk::FloatProperty::Pointer floatProp = dynamic_cast(GetProperty(propertyKey)); return floatProp->GetValue(); } const char* ToFImageGrabber::GetStringProperty( const char* propertyKey) { mitk::StringProperty::Pointer stringProp = dynamic_cast(GetProperty(propertyKey)); return stringProp->GetValue(); } BaseProperty* ToFImageGrabber::GetProperty( const char *propertyKey) { return this->m_ToFCameraDevice->GetProperty(propertyKey); } void ToFImageGrabber::OnToFCameraDeviceModified() { this->Modified(); } void ToFImageGrabber::CleanUpImageArrays() { // free buffer if (m_IntensityArray) { delete [] m_IntensityArray; m_IntensityArray = NULL; } if (m_DistanceArray) { delete [] m_DistanceArray; m_DistanceArray = NULL; } if (m_AmplitudeArray) { delete [] m_AmplitudeArray; m_AmplitudeArray = NULL; } if (m_SourceDataArray) { delete [] m_SourceDataArray; m_SourceDataArray = NULL; } if (m_RgbDataArray) { delete [] m_RgbDataArray; m_RgbDataArray = NULL; } } void ToFImageGrabber::AllocateImageArrays() { // cleanup memory if necessary this->CleanUpImageArrays(); // allocate buffer m_IntensityArray = new float[m_PixelNumber]; m_DistanceArray = new float[m_PixelNumber]; m_AmplitudeArray = new float[m_PixelNumber]; m_SourceDataArray = new char[m_SourceDataSize]; m_RgbDataArray = new unsigned char[m_RGBPixelNumber*3]; } void ToFImageGrabber::InitializeImages() { unsigned int dimensions[3]; dimensions[0] = this->m_ToFCameraDevice->GetCaptureWidth(); dimensions[1] = this->m_ToFCameraDevice->GetCaptureHeight(); dimensions[2] = 1; mitk::PixelType FloatType = MakeScalarPixelType(); mitk::Image::Pointer distanceImage = this->GetOutput(); distanceImage->ReleaseData(); distanceImage->Initialize(FloatType, 3, dimensions, 1); bool hasAmplitudeImage = false; m_ToFCameraDevice->GetBoolProperty("HasAmplitudeImage", hasAmplitudeImage); if(hasAmplitudeImage) { mitk::Image::Pointer amplitudeImage = this->GetOutput(1); amplitudeImage->ReleaseData(); amplitudeImage->Initialize(FloatType, 3, dimensions, 1); } bool hasIntensityImage = false; m_ToFCameraDevice->GetBoolProperty("HasIntensityImage", hasIntensityImage); if(hasIntensityImage) { mitk::Image::Pointer intensityImage = this->GetOutput(2); intensityImage->ReleaseData(); intensityImage->Initialize(FloatType, 3, dimensions, 1); } bool hasRGBImage = false; m_ToFCameraDevice->GetBoolProperty("HasRGBImage", hasRGBImage); if(hasRGBImage) { unsigned int rgbDimension[3]; rgbDimension[0] = this->m_ToFCameraDevice->GetRGBCaptureWidth(); rgbDimension[1] = this->m_ToFCameraDevice->GetRGBCaptureHeight(); rgbDimension[2] = 1 ; mitk::Image::Pointer rgbImage = this->GetOutput(3); rgbImage->ReleaseData(); rgbImage->Initialize(mitk::PixelType(MakePixelType, 3>()), 3, rgbDimension,1); } } } diff --git a/Modules/ToFHardware/mitkToFImageGrabber.h b/Modules/ToFHardware/mitkToFImageGrabber.h index 8862703646..734bff65f3 100644 --- a/Modules/ToFHardware/mitkToFImageGrabber.h +++ b/Modules/ToFHardware/mitkToFImageGrabber.h @@ -1,211 +1,211 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef __mitkToFImageGrabber_h #define __mitkToFImageGrabber_h #include -#include "mitkCommon.h" -#include "mitkImageSource.h" -#include "mitkToFCameraDevice.h" +#include +#include +#include -#include "itkObject.h" -#include "itkObjectFactory.h" +#include +#include namespace mitk { /**Documentation * \brief Image source providing ToF images. Interface for filters provided in ToFProcessing module * * This class internally holds a ToFCameraDevice to access the images acquired by a ToF camera. * * Provided images include: distance image (output 0), amplitude image (output 1), intensity image (output 2) * * \ingroup ToFHardware */ - class MITK_TOFHARDWARE_EXPORT ToFImageGrabber : public mitk::ImageSource + class MITK_TOFHARDWARE_EXPORT ToFImageGrabber : public mitk::ToFImageSource { public: mitkClassMacro( ToFImageGrabber , ImageSource ); itkFactorylessNewMacro(Self) itkCloneMacro(Self) void ShowDebugImage(float* distances); /*! \brief Establish a connection to the ToF camera */ virtual bool ConnectCamera(); /*! \brief Disconnects the ToF camera */ virtual bool DisconnectCamera(); /*! \brief Starts the continuous updating of the camera. A separate thread updates the source data, the main thread processes the source data and creates images and coordinates */ virtual void StartCamera(); /*! \brief Stops the continuous updating of the camera */ virtual void StopCamera(); /*! \brief Returns true if the camera is connected and started */ virtual bool IsCameraActive(); /*! \brief Returns true if the camera is connected */ virtual bool IsCameraConnected(); /*! \brief Sets the ToF device, the image grabber is grabbing the images from \param aToFCameraDevice device internally used for grabbing the images from the camera */ void SetCameraDevice(ToFCameraDevice* aToFCameraDevice); /*! \brief Get the currently set ToF camera device \return device currently used for grabbing images from the camera */ ToFCameraDevice* GetCameraDevice(); /*! \brief Set the modulation frequency used by the ToF camera. For default values see the corresponding device classes \param modulationFrequency modulation frequency in Hz */ int SetModulationFrequency(int modulationFrequency); /*! \brief Get the modulation frequency used by the ToF camera. \return modulation frequency in MHz */ int GetModulationFrequency(); /*! \brief Set the integration time used by the ToF camera. For default values see the corresponding device classes \param integrationTime integration time in ms */ int SetIntegrationTime(int integrationTime); /*! \brief Get the integration time in used by the ToF camera. \return integration time in ms */ int GetIntegrationTime(); /*! \brief Get the dimension in x direction of the ToF image \return width of the image */ int GetCaptureWidth(); /*! \brief Get the dimension in y direction of the ToF image \return height of the image */ int GetCaptureHeight(); /*! \brief Get the number of pixel in the ToF image \return number of pixel */ int GetPixelNumber(); /*! \brief Get the dimension in x direction of the ToF image \return width of the image */ int GetRGBImageWidth(); /*! \brief Get the dimension in y direction of the ToF image \return height of the image */ int GetRGBImageHeight(); /*! \brief Get the number of pixel in the ToF image \return number of pixel */ int GetRGBPixelNumber(); // properties void SetBoolProperty( const char* propertyKey, bool boolValue ); void SetIntProperty( const char* propertyKey, int intValue ); void SetFloatProperty( const char* propertyKey, float floatValue ); void SetStringProperty( const char* propertyKey, const char* stringValue ); void SetProperty( const char *propertyKey, BaseProperty* propertyValue ); bool GetBoolProperty( const char* propertyKey); int GetIntProperty( const char* propertyKey); float GetFloatProperty( const char* propertyKey); const char* GetStringProperty( const char* propertyKey); BaseProperty* GetProperty( const char *propertyKey); protected: /// /// called when the ToFCameraDevice was modified /// void OnToFCameraDeviceModified(); /*! \brief clean up memory allocated for the image arrays m_IntensityArray, m_DistanceArray, m_AmplitudeArray and m_SourceDataArray */ virtual void CleanUpImageArrays(); /*! \brief Allocate memory for the image arrays m_IntensityArray, m_DistanceArray, m_AmplitudeArray and m_SourceDataArray */ virtual void AllocateImageArrays(); /** * @brief InitializeImages Initialze the geometries of the images according to the device properties. */ void InitializeImages(); ToFCameraDevice::Pointer m_ToFCameraDevice; ///< Device allowing access to ToF image data int m_CaptureWidth; ///< Width of the captured ToF image int m_CaptureHeight; ///< Height of the captured ToF image int m_PixelNumber; ///< Number of pixels in the image int m_RGBImageWidth; ///< Width of the captured RGB image int m_RGBImageHeight; ///< Height of the captured RGB image int m_RGBPixelNumber; ///< Number of pixels in the RGB image int m_ImageSequence; ///< counter for currently acquired images int m_SourceDataSize; ///< size of the source data in bytes float* m_IntensityArray; ///< member holding the current intensity array float* m_DistanceArray; ///< member holding the current distance array float* m_AmplitudeArray; ///< member holding the current amplitude array char* m_SourceDataArray;///< member holding the current source data array unsigned char* m_RgbDataArray; ///< member holding the current rgb data array unsigned long m_DeviceObserverTag; ///< tag of the observer for the ToFCameraDevice ToFImageGrabber(); ~ToFImageGrabber(); /*! \brief Method generating the outputs of this filter. Called in the updated process of the pipeline. 0: distance image 1: amplitude image 2: intensity image 3: RGB image */ void GenerateData(); private: }; } //END mitk namespace #endif diff --git a/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp b/Modules/ToFHardware/mitkToFImageSource.cpp similarity index 52% copy from Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp copy to Modules/ToFHardware/mitkToFImageSource.cpp index 5a4c6d5d7e..5ce94d481a 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp +++ b/Modules/ToFHardware/mitkToFImageSource.cpp @@ -1,37 +1,30 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#include "mitkPluginActivator.h" +#include "mitkToFImageSource.h" +#include "itkCommand.h" -#include -#include "QmitkToFUtilView.h" -#include "QmitkToFDeviceGeneration.h" - -namespace mitk { - -void PluginActivator::start(ctkPluginContext* context) +namespace mitk { - BERRY_REGISTER_EXTENSION_CLASS(QmitkToFUtilView, context) - BERRY_REGISTER_EXTENSION_CLASS(QmitkToFDeviceGeneration, context) -} -void PluginActivator::stop(ctkPluginContext* context) +ToFImageSource::ToFImageSource() : ImageSource() { - Q_UNUSED(context) } +ToFImageSource::~ToFImageSource() +{ } -Q_EXPORT_PLUGIN2(org_mitk_gui_qt_tofutil, mitk::PluginActivator) +}//end namespace mitk diff --git a/Modules/ToFHardware/mitkToFImageSource.h b/Modules/ToFHardware/mitkToFImageSource.h new file mode 100644 index 0000000000..69f6ca300b --- /dev/null +++ b/Modules/ToFHardware/mitkToFImageSource.h @@ -0,0 +1,65 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ +#ifndef __mitkToFImageSource_h +#define __mitkToFImageSource_h + +#include +#include +#include +#include + +//MicroServices +#include +#include + +namespace mitk +{ + /**Documentation + * \brief Image source providing ToF images. Interface for filters provided in ToFProcessing module + * + * This class internally holds a ToFCameraDevice to access the images acquired by a ToF camera. + * + * Provided images include: distance image (output 0), amplitude image (output 1), intensity image (output 2) and color image (output 3) + * + * \ingroup ToFHardware + */ + class MITK_TOFHARDWARE_EXPORT ToFImageSource : public mitk::ImageSource + { + public: + + mitkClassMacro( ToFImageSource, ImageSource ); + + itkFactorylessNewMacro(Self) + itkCloneMacro(Self) + + protected: + + ToFImageSource(); + + ~ToFImageSource(); + + us::ServiceRegistration m_ServiceRegistration; + private: + + }; +} //END mitk namespace + +/** +ToFCameraDevice is declared a MicroService interface. See +MicroService documenation for more details. +*/ +US_DECLARE_SERVICE_INTERFACE(mitk::ToFImageSource, "org.mitk.services.ToFImageSource") +#endif diff --git a/Plugins/org.mitk.gui.qt.tofutil/files.cmake b/Plugins/org.mitk.gui.qt.tofutil/files.cmake index e46d8b17a4..120417dd6b 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/files.cmake +++ b/Plugins/org.mitk.gui.qt.tofutil/files.cmake @@ -1,42 +1,46 @@ set(SRC_CPP_FILES ) set(INTERNAL_CPP_FILES QmitkToFUtilView.cpp QmitkToFDeviceGeneration.cpp QmitkToFImageBackground.cpp + QmitkToFScreenshotMaker.cpp mitkPluginActivator.cpp ) set(UI_FILES src/internal/QmitkToFDeviceGenerationControls.ui src/internal/QmitkToFUtilViewControls.ui + src/internal/QmitkToFScreenshotMakerControls.ui ) set(MOC_H_FILES src/internal/QmitkToFUtilView.h src/internal/QmitkToFDeviceGeneration.h + src/internal/QmitkToFScreenshotMaker.h src/internal/QmitkToFImageBackground.h src/internal/mitkPluginActivator.h ) set(CACHED_RESOURCE_FILES plugin.xml resources/iconGenerationView.xpm resources/iconToFUtilView.xpm + resources/iconToFScrenshotMaker.xpm ) set(QRC_FILES resources/QmitkToFUtilView.qrc ) set(CPP_FILES ) foreach(file ${SRC_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) foreach(file ${INTERNAL_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Plugins/org.mitk.gui.qt.tofutil/plugin.xml b/Plugins/org.mitk.gui.qt.tofutil/plugin.xml index 31eb0ba6e3..ca85e6fa7e 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/plugin.xml +++ b/Plugins/org.mitk.gui.qt.tofutil/plugin.xml @@ -1,16 +1,20 @@ + diff --git a/Plugins/org.mitk.gui.qt.tofutil/resources/iconToFScrenshotMaker.xpm b/Plugins/org.mitk.gui.qt.tofutil/resources/iconToFScrenshotMaker.xpm new file mode 100644 index 0000000000..e496f01339 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.tofutil/resources/iconToFScrenshotMaker.xpm @@ -0,0 +1,1759 @@ +/* XPM */ +static char * iconToFScrenshotMaker_xpm[] = { +"100 100 1656 2", +" c None", +". c #F3F3F3", +"+ c #ACACAC", +"@ c #7E7E7E", +"# c #7C7C7C", +"$ c #5E5E5E", +"% c #E3E3E4", +"& c #A1A1A3", +"* c #8B8B8A", +"= c #646464", +"- c #474747", +"; c #121212", +"> c #323232", +", c #6B6B6B", +"' c #EAEAEA", +") c #C9CACA", +"! c #98989A", +"~ c #777779", +"{ c #454547", +"] c #4A4A4A", +"^ c #2C2C2C", +"/ c #3B3B3B", +"( c #181818", +"_ c #1D1D1D", +": c #252526", +"< c #343435", +"[ c #C3C3C2", +"} c #D5D5D5", +"| c #B0B1B3", +"1 c #B8B9BC", +"2 c #707174", +"3 c #707276", +"4 c #414245", +"5 c #454647", +"6 c #444444", +"7 c #383838", +"8 c #2F2F2F", +"9 c #262626", +"0 c #202020", +"a c #1B1C1D", +"b c #19191B", +"c c #161618", +"d c #5D5D5D", +"e c #C8C8C8", +"f c #C5C7C9", +"g c #B0B6B9", +"h c #A1A4A8", +"i c #8F8F95", +"j c #48484D", +"k c #505153", +"l c #515152", +"m c #2B2B2B", +"n c #404040", +"o c #222222", +"p c #212223", +"q c #18191A", +"r c #232326", +"s c #131315", +"t c #727274", +"u c #BFBFBE", +"v c #D0D4D7", +"w c #BEC3C6", +"x c #B6BABD", +"y c #B2B6BC", +"z c #AEB4B9", +"A c #909499", +"B c #86888D", +"C c #57585C", +"D c #3F3F3F", +"E c #4B4B4A", +"F c #343434", +"G c #414141", +"H c #28292B", +"I c #2F3032", +"J c #232226", +"K c #343438", +"L c #201F22", +"M c #3D3D3F", +"N c #8F8F90", +"O c #B9B8BA", +"P c #C9C9CB", +"Q c #B8B8B8", +"R c #8B8D8E", +"S c #D3D7DA", +"T c #B9BDC1", +"U c #B3B7BB", +"V c #AAAEB2", +"W c #A3A9AD", +"X c #9FA3A8", +"Y c #83878B", +"Z c #747578", +"` c #5B5B5D", +" . c #434343", +".. c #505050", +"+. c #424242", +"@. c #373737", +"#. c #353637", +"$. c #323335", +"%. c #2F3133", +"&. c #323235", +"*. c #353537", +"=. c #3C3C3E", +"-. c #39393A", +";. c #302F30", +">. c #464546", +",. c #4A4A4C", +"'. c #F3F3F4", +"). c #D3D4D6", +"!. c #D0D2D5", +"~. c #E2E5E7", +"{. c #E2E4E6", +"]. c #4B4A4B", +"^. c #4F4F4F", +"/. c #BCBFBF", +"(. c #B6BABF", +"_. c #A7ACB0", +":. c #9FA4A8", +"<. c #9CA0A4", +"[. c #8B8F92", +"}. c #797A7D", +"|. c #6A6A6A", +"1. c #595958", +"2. c #454545", +"3. c #3D3D3D", +"4. c #363636", +"5. c #323334", +"6. c #303133", +"7. c #333436", +"8. c #3D3E40", +"9. c #333335", +"0. c #2C2C2D", +"a. c #3A3A3A", +"b. c #373738", +"c. c #3B3B3E", +"d. c #3B3B3F", +"e. c #A0A0A1", +"f. c #E5E7E8", +"g. c #D0D2D3", +"h. c #CED0D2", +"i. c #D7DADC", +"j. c #E3E6E8", +"k. c #E0E4E7", +"l. c #DADEE1", +"m. c #D7DCE0", +"n. c #D4DADC", +"o. c #DCE0E1", +"p. c #999898", +"q. c #2A2A2B", +"r. c #656668", +"s. c #B0B6BA", +"t. c #A1A5AA", +"u. c #999BA0", +"v. c #919297", +"w. c #757679", +"x. c #666667", +"y. c #5A5A5B", +"z. c #505051", +"A. c #3B3B3C", +"B. c #3C3C3C", +"C. c #393939", +"D. c #2F3031", +"E. c #363739", +"F. c #363638", +"G. c #313136", +"H. c #35353B", +"I. c #38383E", +"J. c #38373C", +"K. c #3D3C41", +"L. c #2F2F31", +"M. c #636363", +"N. c #BDBFBF", +"O. c #AEB2B4", +"P. c #B3B7BA", +"Q. c #CACED1", +"R. c #D1D6D9", +"S. c #D9DDE0", +"T. c #DBDFE2", +"U. c #D6DADD", +"V. c #D1D5D8", +"W. c #CED2D5", +"X. c #D3D6D8", +"Y. c #DADDDE", +"Z. c #616364", +"`. c #2C2D2D", +" + c #8D8F94", +".+ c #9B9EA4", +"++ c #919296", +"@+ c #7A7B7F", +"#+ c #6B6C6D", +"$+ c #4E4E51", +"%+ c #474748", +"&+ c #333333", +"*+ c #424241", +"=+ c #40403F", +"-+ c #222223", +";+ c #2D2E30", +">+ c #333438", +",+ c #37383C", +"'+ c #39383C", +")+ c #434247", +"!+ c #575659", +"~+ c #4D4D4D", +"{+ c #B1B1B1", +"]+ c #C6C6C7", +"^+ c #BBBDC0", +"/+ c #A4A6A9", +"(+ c #A6A9AC", +"_+ c #BDC1C4", +":+ c #BBBFC2", +"<+ c #BABEC1", +"[+ c #C8CCCF", +"}+ c #D2D6D9", +"|+ c #D2D7DA", +"1+ c #D5D9DC", +"2+ c #D4D7DA", +"3+ c #D2D5D7", +"4+ c #D7D9DB", +"5+ c #D4D6D9", +"6+ c #C9CED0", +"7+ c #BFC4C7", +"8+ c #939395", +"9+ c #3F3F41", +"0+ c #5B5D5F", +"a+ c #7D7E82", +"b+ c #8B8C8F", +"c+ c #6D6E70", +"d+ c #5A5A5C", +"e+ c #333332", +"f+ c #3E3E3D", +"g+ c #313133", +"h+ c #2E2E30", +"i+ c #2D2E31", +"j+ c #2E2F31", +"k+ c #343538", +"l+ c #3D3D40", +"m+ c #454648", +"n+ c #535353", +"o+ c #515151", +"p+ c #353534", +"q+ c #AAAAA9", +"r+ c #CCCDCC", +"s+ c #7F8184", +"t+ c #999B9E", +"u+ c #9A9C9F", +"v+ c #96989D", +"w+ c #9CA0A3", +"x+ c #A6ABAE", +"y+ c #AEB2B5", +"z+ c #ADB0B2", +"A+ c #B5B6B9", +"B+ c #B6B8BC", +"C+ c #C3C5C9", +"D+ c #CDCFD4", +"E+ c #CED1D4", +"F+ c #D7D8DB", +"G+ c #D1D3D5", +"H+ c #CFD1D3", +"I+ c #E0E0E2", +"J+ c #E4E5E7", +"K+ c #D4D6D8", +"L+ c #BCBFC3", +"M+ c #B5B8BC", +"N+ c #BBBEC2", +"O+ c #A8AAAC", +"P+ c #77787A", +"Q+ c #3B3C3F", +"R+ c #3A3B3C", +"S+ c #666768", +"T+ c #606062", +"U+ c #515153", +"V+ c #4A4A4B", +"W+ c #353536", +"X+ c #2E2E2F", +"Y+ c #2D2D2F", +"Z+ c #2A2B2B", +"`+ c #2F2F30", +" @ c #424243", +".@ c #514F4E", +"+@ c #535252", +"@@ c #48494A", +"#@ c #403F3D", +"$@ c #51514C", +"%@ c #434244", +"&@ c #424143", +"*@ c #E9E8EA", +"=@ c #646567", +"-@ c #565757", +";@ c #2C2D2F", +">@ c #7A7E7E", +",@ c #979B9F", +"'@ c #95989E", +")@ c #9DA1A5", +"!@ c #9FA3A6", +"~@ c #A0A4A7", +"{@ c #A9ABAD", +"]@ c #AEAFB1", +"^@ c #B2B3B5", +"/@ c #C0C1C5", +"(@ c #CECFD4", +"_@ c #D3D4D7", +":@ c #D2D3D5", +"<@ c #C9CACC", +"[@ c #CCCDCF", +"}@ c #D6D7D9", +"|@ c #DEDFE0", +"1@ c #D9DADC", +"2@ c #AEAFB4", +"3@ c #A7AAAE", +"4@ c #A3A7AA", +"5@ c #9EA2A5", +"6@ c #9D9FA2", +"7@ c #4D4E4E", +"8@ c #181918", +"9@ c #404041", +"0@ c #58585B", +"a@ c #323234", +"b@ c #444242", +"c@ c #43423F", +"d@ c #4B4B47", +"e@ c #504E50", +"f@ c #302C39", +"g@ c #100A20", +"h@ c #6A6871", +"i@ c #C0C0C0", +"j@ c #727475", +"k@ c #4D5153", +"l@ c #414547", +"m@ c #55585A", +"n@ c #606163", +"o@ c #424342", +"p@ c #191A19", +"q@ c #6B6F6F", +"r@ c #A2A7A9", +"s@ c #93989B", +"t@ c #9FA2A5", +"u@ c #A2A4A6", +"v@ c #ADAEB0", +"w@ c #BDBEC0", +"x@ c #C0C1C4", +"y@ c #CDCED0", +"z@ c #CECFD1", +"A@ c #D5D6D8", +"B@ c #D4D5D7", +"C@ c #CECFD0", +"D@ c #BFC0C2", +"E@ c #B5B6B7", +"F@ c #B1B2B5", +"G@ c #A8A9AD", +"H@ c #A0A3A7", +"I@ c #9A9EA1", +"J@ c #979A9D", +"K@ c #939498", +"L@ c #8A8B8B", +"M@ c #666767", +"N@ c #282828", +"O@ c #1C1C1E", +"P@ c #49494A", +"Q@ c #494949", +"R@ c #454548", +"S@ c #4F4F51", +"T@ c #4B4B4B", +"U@ c #3D3E3D", +"V@ c #555555", +"W@ c #434148", +"X@ c #2D2633", +"Y@ c #1B1327", +"Z@ c #201732", +"`@ c #120C1F", +" # c #969599", +".# c #C2C2C2", +"+# c #9A999D", +"@# c #393A3D", +"## c #303134", +"$# c #424346", +"%# c #45464A", +"&# c #4C4E52", +"*# c #505257", +"=# c #5B5E63", +"-# c #686C70", +";# c #636368", +"># c #0B0B0C", +",# c #484848", +"'# c #A1A2A3", +")# c #969799", +"!# c #9E9EA0", +"~# c #A1A2A4", +"{# c #A3A4A6", +"]# c #CBCCCE", +"^# c #CED0CF", +"/# c #D0D1D1", +"(# c #C3C4C4", +"_# c #C7C9CB", +":# c #BABBBF", +"<# c #B7B8BD", +"[# c #B0B1B4", +"}# c #ABACB0", +"|# c #A5A6AA", +"1# c #9C9FA4", +"2# c #93969B", +"3# c #898A8E", +"4# c #78797A", +"5# c #636365", +"6# c #070708", +"7# c #303030", +"8# c #4C4C4C", +"9# c #444445", +"0# c #3A3A3C", +"a# c #343331", +"b# c #5D5A59", +"c# c #585256", +"d# c #21162B", +"e# c #22162D", +"f# c #24182F", +"g# c #261A32", +"h# c #25192F", +"i# c #2D2531", +"j# c #AEAEAE", +"k# c #737373", +"l# c #252525", +"m# c #151515", +"n# c #585859", +"o# c #2C2C2E", +"p# c #16151A", +"q# c #424347", +"r# c #404146", +"s# c #46474B", +"t# c #494A4E", +"u# c #4F5155", +"v# c #55595E", +"w# c #717379", +"x# c #797B7E", +"y# c #2C2D2E", +"z# c #79797B", +"A# c #9B9B9D", +"B# c #9F9FA2", +"C# c #A0A1A3", +"D# c #BABBBD", +"E# c #C3C4C6", +"F# c #C9CBCC", +"G# c #C3C4C5", +"H# c #BABBBE", +"I# c #B9BABF", +"J# c #B3B4B8", +"K# c #AFB0B4", +"L# c #A7A8AC", +"M# c #9FA0A4", +"N# c #979A9F", +"O# c #919398", +"P# c #8E8F94", +"Q# c #636467", +"R# c #606162", +"S# c #5D5D5E", +"T# c #4C4C4B", +"U# c #0C0C0C", +"V# c #3D3D3C", +"W# c #333437", +"X# c #444248", +"Y# c #54505B", +"Z# c #2A2336", +"`# c #170B27", +" $ c #291C37", +".$ c #2A1D34", +"+$ c #281D32", +"@$ c #2A1E33", +"#$ c #251B2D", +"$$ c #4B454F", +"%$ c #5B5C5C", +"&$ c #696969", +"*$ c #000000", +"=$ c #0C0C0D", +"-$ c #161717", +";$ c #121214", +">$ c #38373B", +",$ c #35363A", +"'$ c #37383B", +")$ c #414247", +"!$ c #434448", +"~$ c #47484B", +"{$ c #4B4D52", +"]$ c #525559", +"^$ c #595C60", +"/$ c #62656B", +"($ c #6D6F74", +"_$ c #7A7E81", +":$ c #29282A", +"<$ c #48484A", +"[$ c #949597", +"}$ c #9FA0A2", +"|$ c #AAABAD", +"1$ c #BBBCBE", +"2$ c #BCBDC0", +"3$ c #B9B9BD", +"4$ c #B4B5B9", +"5$ c #B0B1B5", +"6$ c #ACADB1", +"7$ c #A6A7AB", +"8$ c #909297", +"9$ c #8D9196", +"0$ c #8F9296", +"a$ c #9D9EA2", +"b$ c #595A5C", +"c$ c #565655", +"d$ c #484846", +"e$ c #50504F", +"f$ c #161616", +"g$ c #353535", +"h$ c #3A3C3D", +"i$ c #2E263B", +"j$ c #221734", +"k$ c #2A1E38", +"l$ c #2E213A", +"m$ c #2E203A", +"n$ c #2E2139", +"o$ c #2D2136", +"p$ c #2E2236", +"q$ c #291F30", +"r$ c #69656D", +"s$ c #CDCDCE", +"t$ c #727374", +"u$ c #59595A", +"v$ c #191C1D", +"w$ c #131518", +"x$ c #131417", +"y$ c #151619", +"z$ c #121314", +"A$ c #0D0E10", +"B$ c #0B0C0E", +"C$ c #252629", +"D$ c #1F2021", +"E$ c #0F1010", +"F$ c #323337", +"G$ c #3A3B3F", +"H$ c #343539", +"I$ c #444547", +"J$ c #464749", +"K$ c #4B4C50", +"L$ c #505155", +"M$ c #58595D", +"N$ c #5D6064", +"O$ c #65696C", +"P$ c #696D71", +"Q$ c #757779", +"R$ c #6F6F71", +"S$ c #343537", +"T$ c #232324", +"U$ c #767675", +"V$ c #A7A8A9", +"W$ c #B2B3B7", +"X$ c #B9BABC", +"Y$ c #B8B9BB", +"Z$ c #B1B2B4", +"`$ c #A7A8AB", +" % c #A1A2A6", +".% c #97989C", +"+% c #8E8F93", +"@% c #9DA1A4", +"#% c #919496", +"$% c #6E6E6F", +"%% c #575757", +"&% c #373636", +"*% c #3A3B3B", +"=% c #111214", +"-% c #3B3C3E", +";% c #3A3C3E", +">% c #323036", +",% c #30223D", +"'% c #30233C", +")% c #31243E", +"!% c #32243E", +"~% c #31253D", +"{% c #31253B", +"]% c #32263A", +"^% c #34273C", +"/% c #33283A", +"(% c #747479", +"_% c #E7E7E7", +":% c #8B8A8C", +"<% c #504F52", +"[% c #232427", +"}% c #1B1B1E", +"|% c #242528", +"1% c #1B1E21", +"2% c #17191D", +"3% c #16171C", +"4% c #0A0B0D", +"5% c #161719", +"6% c #1B1D1E", +"7% c #070908", +"8% c #252627", +"9% c #393A3F", +"0% c #16161A", +"a% c #444548", +"b% c #4A4B4D", +"c% c #4D4E52", +"d% c #525357", +"e% c #5B5D60", +"f% c #5F6366", +"g% c #64686A", +"h% c #68696B", +"i% c #717274", +"j% c #727375", +"k% c #585858", +"l% c #1A1A1A", +"m% c #A7A7AB", +"n% c #B3B4B7", +"o% c #B6B7B9", +"p% c #B3B4B6", +"q% c #B4B5B7", +"r% c #A9AAAC", +"s% c #AFB0B2", +"t% c #A4A5A8", +"u% c #B6B7BA", +"v% c #8A8B8D", +"w% c #5E5F61", +"x% c #494A4B", +"y% c #3D3E41", +"z% c #3B3D3F", +"A% c #34303B", +"B% c #362843", +"C% c #352841", +"D% c #362942", +"E% c #372A42", +"F% c #372B40", +"G% c #372C40", +"H% c #362A40", +"I% c #423847", +"J% c #6E6E71", +"K% c #959495", +"L% c #464645", +"M% c #353539", +"N% c #343338", +"O% c #2B2B30", +"P% c #2D2E33", +"Q% c #2C2D32", +"R% c #16161B", +"S% c #1B1A20", +"T% c #1A1C21", +"U% c #15171D", +"V% c #0F1014", +"W% c #060709", +"X% c #191A1D", +"Y% c #2C2D30", +"Z% c #080808", +"`% c #1A1B1A", +" & c #444549", +".& c #414246", +"+& c #515254", +"@& c #494A4C", +"#& c #4E4F53", +"$& c #575B5E", +"%& c #5E6265", +"&& c #5E6062", +"*& c #808083", +"=& c #99999A", +"-& c #9F9F9F", +";& c #202225", +">& c #949598", +",& c #AAABAF", +"'& c #949698", +")& c #202021", +"!& c #A3A4A7", +"~& c #96979B", +"{& c #3E3E3E", +"]& c #2B2B2D", +"^& c #353142", +"/& c #392B47", +"(& c #3A2C46", +"_& c #3A2D47", +":& c #3A2E47", +"<& c #3B2F47", +"[& c #3C3045", +"}& c #3C3145", +"|& c #3A2D44", +"1& c #4A414D", +"2& c #A3A5A3", +"3& c #8F8C8A", +"4& c #939298", +"5& c #212526", +"6& c #2B2C2B", +"7& c #3C3A3C", +"8& c #787982", +"9& c #30343B", +"0& c #22262D", +"a& c #24282E", +"b& c #1D2125", +"c& c #171A1F", +"d& c #191A1E", +"e& c #15161A", +"f& c #0D0D11", +"g& c #131517", +"h& c #1E1F21", +"i& c #313236", +"j& c #2A2A2F", +"k& c #3F4044", +"l& c #58595E", +"m& c #404145", +"n& c #505152", +"o& c #535357", +"p& c #5A5B5F", +"q& c #646368", +"r& c #767779", +"s& c #8F9092", +"t& c #919294", +"u& c #87888A", +"v& c #868789", +"w& c #A5A6A8", +"x& c #4C4D50", +"y& c #1A1C1C", +"z& c #6E7070", +"A& c #949496", +"B& c #A7A7A9", +"C& c #B9BCBF", +"D& c #A6AAAD", +"E& c #7A7D81", +"F& c #1E1E1E", +"G& c #2A2929", +"H& c #262726", +"I& c #2A2C2B", +"J& c #353635", +"K& c #3B3B3A", +"L& c #393A3A", +"M& c #3A3043", +"N& c #3D314B", +"O& c #3F324D", +"P& c #40334C", +"Q& c #41344A", +"R& c #403349", +"S& c #423648", +"T& c #413546", +"U& c #45394D", +"V& c #433F4B", +"W& c #E0DFE1", +"X& c #676764", +"Y& c #131413", +"Z& c #484947", +"`& c #222326", +" * c #252426", +".* c #5F6267", +"+* c #6F7278", +"@* c #373A41", +"#* c #181B20", +"$* c #1E2126", +"%* c #191B20", +"&* c #14151A", +"** c #141519", +"=* c #18191D", +"-* c #0E0F0F", +";* c #111212", +">* c #1B1C1F", +",* c #2D2F32", +"'* c #36373B", +")* c #3C3D41", +"!* c #47484C", +"~* c #4B4D4E", +"{* c #46484A", +"]* c #65666A", +"^* c #717276", +"/* c #808185", +"(* c #818284", +"_* c #7E7F81", +":* c #7A7B7D", +"<* c #808183", +"[* c #86888A", +"}* c #303131", +"|* c #616365", +"1* c #141414", +"2* c #131313", +"3* c #101010", +"4* c #171817", +"5* c #252826", +"6* c #373938", +"7* c #434444", +"8* c #3C3A3F", +"9* c #3E3249", +"0* c #463751", +"a* c #453652", +"b* c #463852", +"c* c #473850", +"d* c #48394F", +"e* c #483A4E", +"f* c #47394B", +"g* c #493D4E", +"h* c #39343E", +"i* c #6A696C", +"j* c #3A393D", +"k* c #212325", +"l* c #201F21", +"m* c #323438", +"n* c #4A4D53", +"o* c #6B6D74", +"p* c #424449", +"q* c #14171C", +"r* c #171A1E", +"s* c #1B1D21", +"t* c #111416", +"u* c #0F0F14", +"v* c #1C1D21", +"w* c #191A1C", +"x* c #303135", +"y* c #434447", +"z* c #48494B", +"A* c #48494C", +"B* c #7F8081", +"C* c #6F7074", +"D* c #76777B", +"E* c #727377", +"F* c #737476", +"G* c #747577", +"H* c #78797B", +"I* c #7A7A7C", +"J* c #868788", +"K* c #9C9D9F", +"L* c #7E8081", +"M* c #161617", +"N* c #0A0B0B", +"O* c #131314", +"P* c #121211", +"Q* c #0B0B0B", +"R* c #0D0D0D", +"S* c #0F0F0F", +"T* c #111111", +"U* c #131412", +"V* c #1B1C1B", +"W* c #262727", +"X* c #2D2D2D", +"Y* c #1D1E1E", +"Z* c #434443", +"`* c #3E3F3F", +" = c #3B393F", +".= c #433551", +"+= c #4F3D59", +"@= c #4E3D59", +"#= c #4D3D58", +"$= c #4D3D55", +"%= c #4E3E55", +"&= c #4D3F54", +"*= c #4C3F52", +"== c #3F3443", +"-= c #868188", +";= c #626262", +">= c #4E4D4F", +",= c #212125", +"'= c #212222", +")= c #101012", +"!= c #616368", +"~= c #484B50", +"{= c #191B1F", +"]= c #121217", +"^= c #1B1E22", +"/= c #15151A", +"(= c #0A0B0F", +"_= c #1E1F23", +":= c #292A2E", +"<= c #2D2E32", +"[= c #38393A", +"}= c #39393B", +"|= c #3F4042", +"1= c #4F5051", +"2= c #6C6C6D", +"3= c #9C9C9D", +"4= c #696B6D", +"5= c #6B6C70", +"6= c #6B6C6F", +"7= c #696A6C", +"8= c #747473", +"9= c #898989", +"0= c #858586", +"a= c #565858", +"b= c #343636", +"c= c #131312", +"d= c #040404", +"e= c #121312", +"f= c #111110", +"g= c #5E5E5D", +"h= c #444545", +"i= c #1C1C1C", +"j= c #323433", +"k= c #3E403F", +"l= c #3E403E", +"m= c #403B43", +"n= c #4F3F5E", +"o= c #574463", +"p= c #554560", +"q= c #55445E", +"r= c #55445D", +"s= c #53455B", +"t= c #524458", +"u= c #544557", +"v= c #322A37", +"w= c #DDDBDD", +"x= c #6D6E6E", +"y= c #201F24", +"z= c #1D1F1E", +"A= c #292A2D", +"B= c #292A2F", +"C= c #2D2D32", +"D= c #26282D", +"E= c #595C61", +"F= c #474A4F", +"G= c #181A1F", +"H= c #0B0B10", +"I= c #212327", +"J= c #25262A", +"K= c #28292D", +"L= c #2E2F33", +"M= c #2A2C2C", +"N= c #6B6C6B", +"O= c #525255", +"P= c #4F5153", +"Q= c #55585B", +"R= c #56595C", +"S= c #5C5D61", +"T= c #616266", +"U= c #5D5E62", +"V= c #646568", +"W= c #6E6F70", +"X= c #797A7A", +"Y= c #171917", +"Z= c #131512", +"`= c #0C0D0B", +" - c #030303", +".- c #11110F", +"+- c #0F0F10", +"@- c #1B1B1B", +"#- c #3D3F3E", +"$- c #413949", +"%- c #624E74", +"&- c #5F4D6B", +"*- c #604D69", +"=- c #614E69", +"-- c #604D68", +";- c #5D4B64", +">- c #594A5A", +",- c #625661", +"'- c #4A494C", +")- c #2B2A2C", +"!- c #1A1A1D", +"~- c #1F2121", +"{- c #1A1B1D", +"]- c #38393C", +"^- c #26272B", +"/- c #1E2025", +"(- c #46484D", +"_- c #46494D", +":- c #1C1C21", +"<- c #171B1F", +"[- c #1D1F23", +"}- c #202124", +"|- c #232429", +"1- c #232428", +"2- c #28282D", +"3- c #444645", +"4- c #595A59", +"5- c #37383A", +"6- c #4B4D4F", +"7- c #4F5255", +"8- c #525558", +"9- c #57595D", +"0- c #5B5C60", +"a- c #5B5C5D", +"b- c #555557", +"c- c #363738", +"d- c #090909", +"e- c #0E0E0E", +"f- c #161815", +"g- c #121412", +"h- c #131414", +"i- c #090809", +"j- c #0A0A0A", +"k- c #010101", +"l- c #020202", +"m- c #060606", +"n- c #292A2A", +"o- c #1F1F20", +"p- c #3C3D3D", +"q- c #3F413F", +"r- c #4F425C", +"s- c #725C83", +"t- c #6C5878", +"u- c #6D5875", +"v- c #6D5873", +"w- c #6A5870", +"x- c #67596B", +"y- c #5A555E", +"z- c #414346", +"A- c #999A9C", +"B- c #6D6D6E", +"C- c #191919", +"D- c #1E2020", +"E- c #151719", +"F- c #282A2E", +"G- c #242428", +"H- c #2C2D31", +"I- c #38383D", +"J- c #24292D", +"K- c #1D1F22", +"L- c #1D1E22", +"M- c #27282B", +"N- c #2B2B2E", +"O- c #333435", +"P- c #353638", +"Q- c #404143", +"R- c #434446", +"S- c #47484A", +"T- c #4C4D4F", +"U- c #565759", +"V- c #545558", +"W- c #404043", +"X- c #1F1F1F", +"Y- c #0F100F", +"Z- c #1F2122", +"`- c #222421", +" ; c #1F2226", +".; c #191A1A", +"+; c #161818", +"@; c #070807", +"#; c #171718", +"$; c #16171A", +"%; c #18181B", +"&; c #373736", +"*; c #3B3B3D", +"=; c #69577A", +"-; c #80668C", +";; c #806489", +">; c #7E6883", +",; c #736576", +"'; c #5E575F", +"); c #4D4C4C", +"!; c #5B5B59", +"~; c #6F6F6F", +"{; c #292929", +"]; c #1A1919", +"^; c #1C1E1D", +"/; c #151518", +"(; c #27282C", +"_; c #2A2B2F", +":; c #28292C", +"<; c #202023", +"[; c #2C2C2F", +"}; c #303234", +"|; c #1F2024", +"1; c #373939", +"2; c #424444", +"3; c #212323", +"4; c #313234", +"5; c #38393B", +"6; c #424345", +"7; c #2F3131", +"8; c #0B0C0C", +"9; c #252425", +"0; c #2E302C", +"a; c #333431", +"b; c #3D363E", +"c; c #232726", +"d; c #242625", +"e; c #202321", +"f; c #1E1F1F", +"g; c #070707", +"h; c #050505", +"i; c #211F22", +"j; c #282A2D", +"k; c #37353C", +"l; c #8E779D", +"m; c #8D7496", +"n; c #806F82", +"o; c #645E66", +"p; c #514C4D", +"q; c #5F5C58", +"r; c #7F7F78", +"s; c #767777", +"t; c #191B1A", +"u; c #191C1B", +"v; c #18191B", +"w; c #323338", +"x; c #222328", +"y; c #2B2C2E", +"z; c #363639", +"A; c #2D3134", +"B; c #212528", +"C; c #222225", +"D; c #1A1C1A", +"E; c #282A2C", +"F; c #1C1C1F", +"G; c #202223", +"H; c #282A2B", +"I; c #272829", +"J; c #393A3C", +"K; c #46474A", +"L; c #343536", +"M; c #1B1B1C", +"N; c #111312", +"O; c #202024", +"P; c #222321", +"Q; c #2B2D28", +"R; c #44433D", +"S; c #37313F", +"T; c #3A2E50", +"U; c #37294B", +"V; c #2C2E2C", +"W; c #282A29", +"X; c #262827", +"Y; c #232425", +"Z; c #4C4D4D", +"`; c #383938", +" > c #5B595D", +".> c #908198", +"+> c #6A606D", +"@> c #504E4F", +"#> c #5B5B58", +"$> c #807F7B", +"%> c #6D6D6C", +"&> c #161817", +"*> c #151618", +"=> c #2B2C2F", +"-> c #36383C", +";> c #1D1E21", +">> c #2A2C2F", +",> c #2B2F33", +"'> c #2C2F32", +")> c #1B1C20", +"!> c #17181A", +"~> c #1B1C1E", +"{> c #222325", +"]> c #2A2A2C", +"^> c #0B0C0D", +"/> c #030404", +"(> c #2B2C2C", +"_> c #1F1F17", +":> c #413F3F", +"<> c #423E4A", +"[> c #261C3E", +"}> c #322450", +"|> c #362554", +"1> c #2F2345", +"2> c #323430", +"3> c #313232", +"4> c #303231", +"5> c #2B2D2C", +"6> c #606061", +"7> c #787878", +"8> c #323231", +"9> c #1B1A1A", +"0> c #3F403C", +"a> c #817A7A", +"b> c #ABA9A8", +"c> c #B9B9B8", +"d> c #8D8C87", +"e> c #1F1D1B", +"f> c #171719", +"g> c #1A1C1B", +"h> c #0E0E10", +"i> c #212225", +"j> c #252628", +"k> c #3A3B40", +"l> c #23262A", +"m> c #313237", +"n> c #303237", +"o> c #202025", +"p> c #1D1E20", +"q> c #121315", +"r> c #2A2B2D", +"s> c #232325", +"t> c #09090C", +"u> c #030406", +"v> c #141518", +"w> c #2B2C2D", +"x> c #302E32", +"y> c #423C4E", +"z> c #281D42", +"A> c #281947", +"B> c #33264D", +"C> c #3B2B55", +"D> c #372A4A", +"E> c #32342E", +"F> c #333533", +"G> c #363837", +"H> c #2F302F", +"I> c #2A2A2A", +"J> c #313131", +"K> c #282825", +"L> c #3F3F40", +"M> c #30322D", +"N> c #52514F", +"O> c #444446", +"P> c #9B9C9E", +"Q> c #838486", +"R> c #161615", +"S> c #1A1A19", +"T> c #171717", +"U> c #34373A", +"V> c #2D3033", +"W> c #2D2F33", +"X> c #1E201E", +"Y> c #191B1B", +"Z> c #181919", +"`> c #151514", +" , c #1B1B1A", +"., c #29292B", +"+, c #292727", +"@, c #353237", +"#, c #2E2B40", +"$, c #271D42", +"%, c #251742", +"&, c #2F1F4A", +"*, c #312249", +"=, c #35264F", +"-, c #3A2B52", +";, c #3E2C5C", +">, c #362D47", +",, c #353431", +"', c #2E2E2E", +"), c #232323", +"!, c #050504", +"~, c #060605", +"{, c #212121", +"], c #232224", +"^, c #141514", +"/, c #353435", +"(, c #2F2F2D", +"_, c #585A5F", +":, c #858789", +"<, c #A4A5A5", +"[, c #616161", +"}, c #242424", +"|, c #141314", +"1, c #0F0E11", +"2, c #25252A", +"3, c #26272C", +"4, c #303537", +"5, c #313538", +"6, c #26292C", +"7, c #212124", +"8, c #212322", +"9, c #1B1D1C", +"0, c #191B19", +"a, c #181816", +"b, c #121210", +"c, c #010100", +"d, c #1A191C", +"e, c #2B2B29", +"f, c #2E2F2B", +"g, c #272431", +"h, c #2E2A40", +"i, c #1D1639", +"j, c #1F173F", +"k, c #281C45", +"l, c #2C1F47", +"m, c #30224A", +"n, c #32254D", +"o, c #382A52", +"p, c #3C2E57", +"q, c #433161", +"r, c #372F43", +"s, c #353533", +"t, c #020203", +"u, c #010102", +"v, c #1B1A1B", +"w, c #2C2C29", +"x, c #545651", +"y, c #5A5A58", +"z, c #484745", +"A, c #B6B4B3", +"B, c #A7A7A7", +"C, c #1D1D1C", +"D, c #0D0C0F", +"E, c #1E1D22", +"F, c #191D20", +"G, c #303336", +"H, c #35373A", +"I, c #2F3033", +"J, c #242527", +"K, c #232524", +"L, c #1E1F20", +"M, c #1A1D1C", +"N, c #191A18", +"O, c #060604", +"P, c #29282F", +"Q, c #201D2F", +"R, c #221D37", +"S, c #211B3C", +"T, c #1A163A", +"U, c #211A42", +"V, c #261C44", +"W, c #2C1E46", +"X, c #30214A", +"Y, c #34254E", +"Z, c #362851", +"`, c #3D2D57", +" ' c #42325C", +".' c #493768", +"+' c #37323F", +"@' c #363635", +"#' c #2B2B2C", +"$' c #323333", +"%' c #282929", +"&' c #1D1E1D", +"*' c #0C0A0A", +"=' c #1F1C1E", +"-' c #3B3C3A", +";' c #383C43", +">' c #2F2C2B", +",' c #0E0F0D", +"'' c #58595A", +")' c #0A0A0B", +"!' c #28282B", +"~' c #242529", +"{' c #2A2C30", +"]' c #373B3E", +"^' c #191C1E", +"/' c #2E3034", +"(' c #232426", +"_' c #262729", +":' c #202123", +"<' c #1C1E1F", +"[' c #131212", +"}' c #080807", +"|' c #1E1E25", +"1' c #1A1936", +"2' c #1C1736", +"3' c #1C1639", +"4' c #1E183D", +"5' c #1F1A3F", +"6' c #231C43", +"7' c #291B45", +"8' c #2E1F48", +"9' c #32234C", +"0' c #372851", +"a' c #3C2C57", +"b' c #42305D", +"c' c #49345E", +"d' c #4F3A71", +"e' c #333039", +"f' c #383738", +"g' c #212422", +"h' c #272928", +"i' c #222423", +"j' c #2F3230", +"k' c #222221", +"l' c #020302", +"m' c #343947", +"n' c #1B2639", +"o' c #030000", +"p' c #060609", +"q' c #505252", +"r' c #4F4F4D", +"s' c #050506", +"t' c #1C1B1F", +"u' c #1E1E22", +"v' c #292E2F", +"w' c #35393D", +"x' c #24252A", +"y' c #1F1F22", +"z' c #1D1D2E", +"A' c #181836", +"B' c #1B1733", +"C' c #1D1738", +"D' c #1F193E", +"E' c #21193F", +"F' c #271C44", +"G' c #2B1E47", +"H' c #31224B", +"I' c #392A53", +"J' c #3E2F5A", +"K' c #453360", +"L' c #4B3662", +"M' c #523F74", +"N' c #323034", +"O' c #0C0C0B", +"P' c #0D0C0C", +"Q' c #35302F", +"R' c #31353E", +"S' c #3C7390", +"T' c #1A2026", +"U' c #000500", +"V' c #040304", +"W' c #727473", +"X' c #08090A", +"Y' c #17181C", +"Z' c #1F2222", +"`' c #1F2322", +" ) c #303338", +".) c #24272B", +"+) c #27282A", +"@) c #212224", +"#) c #1E1E1F", +"$) c #111011", +"%) c #1D1C2C", +"&) c #181739", +"*) c #1C1637", +"=) c #1D1739", +"-) c #1E193D", +";) c #231841", +">) c #2B1C45", +",) c #2E2048", +"') c #32244D", +")) c #3C2C56", +"!) c #41325D", +"~) c #483663", +"{) c #4F3A67", +"]) c #523F71", +"^) c #323230", +"/) c #0B0C0B", +"() c #292B2A", +"_) c #2B2E2D", +":) c #282B2A", +"<) c #2D2E2D", +"[) c #5B5B5B", +"}) c #050606", +"|) c #090807", +"1) c #0B0A0C", +"2) c #181514", +"3) c #31373E", +"4) c #3D769B", +"5) c #93AAAE", +"6) c #040302", +"7) c #050405", +"8) c #010301", +"9) c #EBEBEB", +"0) c #1C1D1E", +"a) c #1F1F23", +"b) c #35383C", +"c) c #353A3D", +"d) c #22272A", +"e) c #111013", +"f) c #0F0D10", +"g) c #1A1B2F", +"h) c #1B163A", +"i) c #1C1738", +"j) c #1E183A", +"k) c #20173D", +"l) c #271B43", +"m) c #2C1D46", +"n) c #352550", +"o) c #392A56", +"p) c #3E2E5A", +"q) c #45345E", +"r) c #4C3A64", +"s) c #533D6B", +"t) c #4E3E65", +"u) c #323431", +"v) c #343634", +"w) c #2D2F2E", +"x) c #282A28", +"y) c #292A28", +"z) c #262A2B", +"A) c #3E3E3B", +"B) c #0A0B07", +"C) c #070706", +"D) c #070506", +"E) c #29292C", +"F) c #44677D", +"G) c #9BAFB6", +"H) c #2B2928", +"I) c #30302F", +"J) c #1C1D1F", +"K) c #1E1E20", +"L) c #191B1E", +"M) c #1F2225", +"N) c #262B2D", +"O) c #212629", +"P) c #27272B", +"Q) c #121013", +"R) c #181A2C", +"S) c #1B173B", +"T) c #20173A", +"U) c #23183D", +"V) c #2A1C45", +"W) c #30234B", +"X) c #362751", +"Y) c #3B2D55", +"Z) c #403159", +"`) c #46365F", +" ! c #4E3B66", +".! c #57426D", +"+! c #49395D", +"@! c #333430", +"#! c #2F3130", +"$! c #151717", +"%! c #2D2F2F", +"&! c #030403", +"*! c #020100", +"=! c #040303", +"-! c #0A0F12", +";! c #0F1315", +">! c #1F1F1E", +",! c #1A1C1E", +"'! c #2B2D31", +")! c #2E3033", +"!! c #25272B", +"~! c #24272A", +"{! c #0E0E0F", +"]! c #1A182D", +"^! c #1E1739", +"/! c #1F1537", +"(! c #23163C", +"_! c #27183F", +":! c #2C1C46", +"~ c #0B0D0D", +",~ c #1A1B18", +"'~ c #190F31", +")~ c #22153A", +"!~ c #25173A", +"~~ c #2A1C40", +"{~ c #2C1E42", +"]~ c #312248", +"^~ c #332549", +"/~ c #382A4D", +"(~ c #3C2A53", +"_~ c #493B5D", +":~ c #4A4259", +"<~ c #404142", +"[~ c #2C2F26", +"}~ c #27282D", +"|~ c #090B0B", +"1~ c #1B1C1A", +"2~ c #1A1131", +"3~ c #21163A", +"4~ c #26173B", +"5~ c #2D1F43", +"6~ c #312348", +"7~ c #34254B", +"8~ c #3A2C51", +"9~ c #463D59", +"0~ c #3D3A44", +"a~ c #363735", +"b~ c #434340", +"c~ c #3A3534", +"d~ c #222021", +"e~ c #1C1E23", +"f~ c #26272A", +"g~ c #292A2C", +"h~ c #090A0A", +"i~ c #1E201F", +"j~ c #191234", +"k~ c #23173A", +"l~ c #26193C", +"m~ c #291D3D", +"n~ c #2C1C41", +"o~ c #33244C", +"p~ c #3A314B", +"q~ c #3A373F", +"r~ c #343533", +"s~ c #4B4A49", +"t~ c #403D3D", +"u~ c #1E1D1E", +"v~ c #080A0B", +"w~ c #1C1E1E", +"x~ c #1C1337", +"y~ c #23193B", +"z~ c #271A3C", +"A~ c #271A43", +"B~ c #322A49", +"C~ c #35363D", +"D~ c #2D2F30", +"E~ c #413F3D", +"F~ c #423C39", +"G~ c #1F1439", +"H~ c #231839", +"I~ c #261F3E", +"J~ c #33323A", +"K~ c #33342D", +"L~ c #31322F", +"M~ c #54534B", +"N~ c #1A1B1C", +"O~ c #232328", +"P~ c #19181F", +"Q~ c #241F40", +"R~ c #292534", +"S~ c #333331", +"T~ c #2F322B", +"U~ c #4E4A4B", +"V~ c #101111", +"W~ c #1F1E21", +"X~ c #09090B", +"Y~ c #34332E", +"Z~ c #444342", +"`~ c #464642", +" ", +" ", +" ", +" . + @ # $ ", +" % & * = - ; > - , ", +" ' ) ! ~ { ] ^ / ( _ : < [ ", +" } | 1 2 3 4 5 6 7 8 9 0 a b c d e ", +" f g h i j k l m n o 8 0 a p q r s t u ", +" v w x y z A B C D E F G m m ^ H I J K L M N O ", +" P Q $ R S T U V W X Y Z ` ...n +.@.#.$.%.&.*.=.-.;.>.,.'. ", +" ).!.~.{.P ].^./.(._.:.<.[.}.|.1. .2.3.4.5.6.7.8.9.0.a.4.b.c.d.e. ", +" f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.4.B.C.D.I 7.E.F.G.H.I.J.K.L.M. ", +" N.O.P.Q.R.S.T.l.U.V.R.W.X.Y.Z.`. +.+++@+#+` $+%+7 &+*+=+-+;+I 7.>+>+,+'+)+!+~+{+ ", +" ]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+2+8+9+0+a+b+c+d+,.G +.3.e+f+g+h+i+j+k+l+m+n+o+o+p+q+ ", +" r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+G B.W+X+Y+Z+`+ @.@+@@@#@$@%@&@ ", +" *@| =@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@1 2@3@4@5@6@7@8@9@0@^.+.B.b.g+a@G o+^.b@c@d@e@f@g@h@ ", +" i@j@k@l@m@n@o@p@q@r@s@w+t@u@v@w@x@y@z@A@B@C@y@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@B.A.R@S@T@a.U@V@W@X@Y@Z@`@ # ", +" .# +#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]@]#<@^#/#(#_#:#<#[#}#|#1#2#2#K@3#4#5#F.6#7#8#8#9#0#a#b#c#d#e#f#g#h#i# ", +" j#k#l#m#n#o#p#,+q#r#s#t#u#v#=#w#x#y#`+z#A#B#C#~#D#E#F#G#w@H#I#J#K#L#M#H@N#O#P#Q#R#S#d T#U#V#@#W#X#Y#Z#`# $.$+$@$#$$$ ", +" %$&$A.; *$=$-$>#;$>$,$'$)$!$~${$]$^$/$($_$d+:$<$[$}$!#|$1$2$2$3$4$5$6$7$L#M#8$9$0$a$b$n#c$d$e$f$g$h$$.i$j$k$l$m$n$o$p$q$r$ ", +" s$t$u$F.v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$G@W$D#X$Y$Z$v@`$ %.%+%@%~@#%$%%%- f+&%*%=%-%;%>%,%'%)%!%~%{%]%^%/%(% ", +" _%} :%<%,+[%}%|%1%2%3%=%4%5%6%7%8%9%0%,$a%$.b%b%c%d%e%f%g%h%i%j%k%l%9#m%J#n%o%p%q%r%s%t%7$u%v%w%x%3.C.7 F 7 L.q y%z%A%B%C%C%D%E%F%G%H%I%J% ", +" K%- L%M%N%O%P%Q%R%S%T%U%V%5%x$W%X%Y%Z%`% &.&q#+&;@@&#&d%$&^$%&&&Q#*&=&-&T$;&>&,&q%Z$'&P+)&!&~&$##./ F 4.g$g$@.{&l%]&8.;%^&/&(&_&:&<&[&}&|&1&2& ", +" 3&4&5&6&7&8&9&0&a&b&c&d&e&f&g&h&B$d&i&j&G$k& &s#l&m&@@n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&E&%+F&G&H&I&J&@.@.@.4./ E$K&3.L&M&N&O&P&Q&R&S&T&U&V&W& ", +" X&Y&Z&`& *.*+*@*#*$*%*&***=*-*;*`&>*,*,+'*)*.&!*K$l&~*{*]*^*/*(*_*:*<*_*[*.%4#}*=.A&|*#.D$1*2*3*4*5*6*U@4.8 g$@.3*7*B.8*9*0*a*b*c*d*e*f*g*h* ", +" i*l#j*k*l*m*n*o*p*q*r*s*t*u*v*w*w*x*i&x*E.d.4 y*z*A*%$B*C*D*E*i%F*G*H*I*J*~&K*L*M*N*O*P*Q*R*S*T*U*V*W*7 D @.7 X*Y*Z*`* =.=+=@=#=$=%=&=*===-= ", +" ;=>=,='=)=Q%P%9%!=~={=]=^=/=(=_=:=i+<=F$[=}=o#|=J$1=2=3=4=5=6=7=6=c+8=9=0=a=b=p c=d=Q*Q*R*3*T*e=f=g=h=i=4.3.a.o j=k=l=m=n=o=p=q=r=s=t=u=v=w= ", +" x=Y+y=z=A=Q%B=C=D=E=F=G=H=v*I=J=J=K=L=<=A=M=N=m+O=P=Q=R=S=T=U=V=h%W=X=a.E$Y=Z=`=Z% -R*U#S*S*; Q*.-+-+-1*@-3.{&F&U@#-k=$-%-&-*-=---;->-,-'- ", +" , )-!-~-{-]-^-O%Q%/-(-_-:-<-[-}-|-1-1-2-F$3-4-4#5-6-7-8-9-C 0-a-b-c-d-e-@-f-g-h-i-j-e-S*R*e-j-k-l- -m-Z%3*; n-o-l=p-q-r-s-t-u-v-w-x-y-z-A- ", +" B-X*C-D-E-F$>+F-G-H-1-I-q#J-K-L->*M-F-N-O-P-|=Q-R-S-T-+&U-V-W-X-Y-=%Z-`- ;z=.;+;@;R*S*S*; d-l-k-k-l- -l-m-#;$;%;&;$#*;=;-;;;>;,;';);!; ", +" ~;{;];^;/;(;_;,+:;J=J=<;[;};|%_=|;1;2;3;4;P-5;8.6;@&T-I$7;+;8;C-9;0;a;b;c;d;e;f;g;T*; ; R*d=k-k-*$k-l-l-h;Y*T-8.i;j;k;l;m;n;o;p;q;r; ", +" s;I&t;u;v;w;x;y;z;A;B;C;)&D;E;}-F;G;H;I;;@7.J;m+K;L;M;S*N;O;P;Q;R;S;T;U;V;I&W;X;m-m#; 3*m-l-k-*$k-*$k-l- -6#Y;Z;<%`; >.>+>@>#>$> ", +" %>V;&>t;*>=>->;>>>,>'>)>~-D;!>~>*>{-{>H ;+P-Q-]>^>/>m#(>`._>:><>[>}>|>1>2>3>4>5>Z%i=f$Z%d-d=k-k-k-*$*$l-l-l-m-S*6>7>8>9>0>a>b>c> ", +" d>e>f>g>h>i>j>k>l>j;m>n>o>{-p>!>5%q>p>r>y;s>t>u>v>w>8 m x>y>z>A>}>B>C>D>E>F>G>H>S*I>( -j-l-k-l-k-*$k-l- -d=Z%J>K>=$L>M>E$N>O>P>Q> ", +" %>R>S>T>s O%i>:;U>V>B;W>x*F;X>Y>Z>`>U*P*g;g; ,.,8 +,@,#,$,%,&,*,=,-,;,>,,,g$/ {;( ',),1*e-d=k-k-l-k-l- - -m-; i=!,~,d-{,],^,/,(,_,:,<, ", +" [,},|,1,2,K=|;3,4,5,6,J=7,8,9,0,a,b,c,d,e,f,j>g,h,i,j,k,l,m,n,o,p,q,r,s,C.B.F&@-^ ^ m T>l-*$k-l- -l-l-l-S*f$d=l-k-t,u,e=@.v,w,x,y,z,A, ", +" B,C,D,E,G-:=,*F,G,H,I,J,K,L,M,N,P*O,0.P,Q,R,S,T,U,V,W,X,Y,Z,`, '.'+'@'C.D T>X-#'m $'%'&'Q**$d= - - -d=( Z%h; -k-l-*'='*$-';'>','*$'' ", +" L%)'!'d&~'{']'^'/'x*('_':'<'i=['}'|'1'2'3'4'5'6'7'8'9'0'a'b'c'd'e'f'7 3.S*g'5>h'i'j'3>g$F&*$d=Z%m-2*T> -d=m- -Z%k'l'z,m'n'o'p'*$q' ", +" r's't':=u'G;v'w'x'=>('_'('y'_ ; d-z'A'B'C'D'E'F'G'H'Y,I'J'K'L'M'N'7 C.&+O'X;I&h'W*I&X*4.@.{;Q*l-Q*Q*Z%m-h;d=d-_ P'Q'R'S'T'U'V'*$W' ", +" E X'F;Y'_;Z'`' ) ).)J,+)|%@)#)$)Q*%)&)*)=)-);)>),)')0'))!)~){)])^)@.4.^ /)6&5>()_):)<)(>] [)l%d=g;R*O'm-})|)1)2)3)4)5)6)7)8)d- ", +" 9)*+M*0)O@v;<=a)x'b)c)d)j;J=[%G;e)f)g)h)i)j)k)l)m)X,n)o)p)q)r)s)t)u)v)F },-*w)X;x)y)z)A) Q*R*c,B)g;N*C)D)E)F)G)H)*$l-*$N@ ", +" I)#;J)K)L)<=_;M)N)O)P)K=^-('1,Q)R)S)i)T)U)V)l,W)X)Y)Z)`) !.!+!@!#!F X-$!:)z=%! *$*$*$*$m-&!*$k-*!u,=!-!;!g;*$*$*$*$*$*$*$*$*$ ", +" >!`%>* *,!'!)!!!~!K=:=:=C${!|,]!^!/!(!_!:![%}-`&(;K=:=_;B$`%T!U!V!W!X!Y!G!Z!`! ~.~+~@~#~$~%~ *$*$*$ *$*$*$ ", +" &~*~=~J,p -~(;:=;~>~,~'~)~!~~~{~]~^~/~(~_~:~<><~[~ *$*$*$*$*$*$ *$*$*$ *$*$*$ ", +" e+Y;p>D$|%3,}~B=|~1~2~3~4~~~5~6~7~8~9~0~a~b~ *$*$*$*$*$*$*$*$ *$*$*$ *$*$*$ ", +" c~d~e~`&f~g~2-h~i~j~k~l~m~n~o~p~q~r~s~ *$*$*$*$*$*$*$*$ *$*$*$*$ *$*$*$*$ ", +" t~u~('J,H A=v~w~x~y~z~A~B~C~D~E~ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ ", +" F~h&('H f~N*6%G~H~I~J~K~L~M~ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ ", +" h'N~f~O~=$P~Q~R~S~T~U~ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ ", +" V~o-W~X~j>X+Y~ *$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" Z~;$`~ *$*$*$*$ *$*$*$*$ ", +" *$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ ", +" *$*$*$*$ *$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$*$ *$*$*$*$*$*$ *$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$ *$*$*$*$*$ *$*$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$ *$*$*$*$ *$*$*$*$*$*$*$ *$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$ *$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$ *$*$*$*$ *$*$*$*$ *$*$*$ *$*$*$*$ *$*$*$*$ ", +" *$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ *$*$*$ *$*$*$ *$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$*$ *$*$*$ *$*$*$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$*$ *$*$ *$*$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ *$*$*$ *$*$ *$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$*$ *$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$ *$*$ *$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$ *$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$ *$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$ *$*$*$*$*$*$*$*$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$*$ *$*$*$*$*$ *$*$*$*$ ", +" *$*$*$*$*$ *$*$*$*$*$ ", +" *$*$*$*$*$*$ *$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$*$*$*$*$*$*$*$ ", +" *$*$*$*$*$*$*$ ", +" ", +" ", +" "}; diff --git a/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.cpp b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.cpp new file mode 100644 index 0000000000..8917f1580d --- /dev/null +++ b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.cpp @@ -0,0 +1,163 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +// Qmitk +#include "QmitkToFScreenshotMaker.h" + +// Qt +#include +#include +#include + +#include +#include + +#include +#include + +const std::string QmitkToFScreenshotMaker::VIEW_ID = "org.mitk.views.tofscreenshotmaker"; + +QmitkToFScreenshotMaker::QmitkToFScreenshotMaker() + : QmitkAbstractView(), + m_SavingCounter(0) +{ +// m_ToFImageGrabber = mitk::ToFImageGrabber::New(); +} + +QmitkToFScreenshotMaker::~QmitkToFScreenshotMaker() +{ +} + +void QmitkToFScreenshotMaker::SetFocus() +{ +} + +void QmitkToFScreenshotMaker::CreateQtPartControl( QWidget *parent ) +{ + // create GUI widgets from the Qt Designer's .ui file + m_Controls.setupUi( parent ); + connect( (QObject*)(m_Controls.m_MakeScreenshot), SIGNAL(clicked()), this, SLOT(OnMakeScreenshotClicked()) ); + + connect( m_Controls.m_ConnectedDeviceServiceListWidget, SIGNAL(ServiceSelectionChanged(us::ServiceReferenceU)), this, SLOT(OnSelectCamera())); + + std::string filter = ""; +// std::string filter = "(&(IsActive=true))"; + + m_Controls.m_ConnectedDeviceServiceListWidget->Initialize("ToFImageSourceName", filter); + + std::string defaultPath = "/tmp/"; +#ifdef _WIN32 + defaultPath = "C:\tmp\"; +#endif + m_Controls.m_PathToSaveFiles->setText(defaultPath.c_str()); +} + +void QmitkToFScreenshotMaker::OnSelectCamera() +{ + //Update gui accordingly + mitk::ToFImageGrabber* source = static_cast(m_Controls.m_ConnectedDeviceServiceListWidget->GetSelectedService()); + mitk::ToFCameraDevice* device = source->GetCameraDevice(); +// m_Controls.m_MakeScreenshot->setEnabled(device->IsCameraActive()); + + //usually you want to save depth data + m_Controls.m_SaveDepth->setChecked(true); + m_Controls.m_SaveDepth->setEnabled(true); + + //If the device provides an amplitude (or infrared) image, we propably want to save it + bool amplitude = false; + device->GetBoolProperty("HasAmplitudeImage", amplitude); + m_Controls.m_SaveAmplitude->setChecked(amplitude); + m_Controls.m_SaveAmplitude->setEnabled(amplitude); + //If the device provides an intensity image, we propably want to save it + bool intensity = false; + device->GetBoolProperty("HasIntensityImage", intensity); + m_Controls.m_SaveIntensity->setChecked(intensity); + m_Controls.m_SaveIntensity->setEnabled(intensity); + + //If the device provides an RGB image, we propably want to save it + bool color = false; + device->GetBoolProperty("HasRGBImage", color); + m_Controls.m_SaveColor->setChecked(color); + m_Controls.m_SaveColor->setEnabled(color); + + //If the device provides Raw image, we propably want to save it + bool raw = false; + device->GetBoolProperty("HasRawImage", raw); + m_Controls.m_SaveRaw->setChecked(raw); + m_Controls.m_SaveRaw->setEnabled(raw); + + //todo: where do i get correct file extensions? + mitk::ImageWriter::Pointer imageWriter = mitk::ImageWriter::New(); + std::vector fileExtensions = imageWriter->GetPossibleFileExtensions(); + QStringList extensions; + for( unsigned int i = 0; i < fileExtensions.size(); ++i) + { + extensions.append(QString(fileExtensions.at(i).c_str())); + } + this->UpdateFileExtensionComboBox(true, m_Controls.m_DepthFormat, extensions, ".nrrd"); //usually you want to save depth data + this->UpdateFileExtensionComboBox(amplitude, m_Controls.m_AmplitudeFormat, extensions, ".nrrd"); + this->UpdateFileExtensionComboBox(intensity, m_Controls.m_IntensityFormat, extensions, ".nrrd"); + this->UpdateFileExtensionComboBox(color, m_Controls.m_ColorFormat, extensions, ".png"); //png is nice default for calibration + this->UpdateFileExtensionComboBox(raw, m_Controls.m_RawFormat, extensions, ".nrrd"); +} + +void QmitkToFScreenshotMaker::UpdateFileExtensionComboBox(bool active, QComboBox* box, QStringList fileExentions, const char* preferredFormat) +{ + box->clear(); + box->setEnabled(active); + box->addItems(fileExentions); + int index = box->findText(preferredFormat); + if ( index != -1 ) { // -1 for not found + box->setCurrentIndex(index); + } +} + +void QmitkToFScreenshotMaker::OnMakeScreenshotClicked() +{ + mitk::ToFImageGrabber* source = static_cast(m_Controls.m_ConnectedDeviceServiceListWidget->GetSelectedService()); + + source->Update(); + + //### Save Images + this->SaveImage(source->GetOutput(0), m_Controls.m_SaveDepth->isChecked(), + m_Controls.m_PathToSaveFiles->text().toStdString(), std::string("Depth_"), + m_Controls.m_DepthFormat->currentText().toStdString()); + this->SaveImage(source->GetOutput(1), m_Controls.m_SaveAmplitude->isChecked(), + m_Controls.m_PathToSaveFiles->text().toStdString(), std::string("Amplitude_"), + m_Controls.m_AmplitudeFormat->currentText().toStdString()); + this->SaveImage(source->GetOutput(2), m_Controls.m_SaveIntensity->isChecked(), + m_Controls.m_PathToSaveFiles->text().toStdString(), std::string("Intensity_"), + m_Controls.m_IntensityFormat->currentText().toStdString()); + this->SaveImage(source->GetOutput(3), m_Controls.m_SaveColor->isChecked(), + m_Controls.m_PathToSaveFiles->text().toStdString(), std::string("Color_"), + m_Controls.m_ColorFormat->currentText().toStdString()); + //todo, where is the raw data? + + //todo what about the surface or pre-processed data? + m_SavingCounter++; + MITK_INFO << m_SavingCounter; +} + +void QmitkToFScreenshotMaker::SaveImage(mitk::Image::Pointer image, bool saveImage, std::string path, std::string name, std::string extension) +{ + if(saveImage) + { + std::stringstream outdepthimage; + outdepthimage << path << name<< m_SavingCounter << extension; + MITK_INFO << outdepthimage.str(); + mitk::IOUtil::SaveImage( image, outdepthimage.str() ); + } +} diff --git a/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.h b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.h new file mode 100644 index 0000000000..330915185b --- /dev/null +++ b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMaker.h @@ -0,0 +1,91 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +#ifndef QmitkToFScreenshotMaker_h +#define QmitkToFScreenshotMaker_h + + +#include +#include + +#include + +#include + + +/*! + \brief QmitkToFScreenshotMaker + + \sa QmitkFunctionality + \ingroup Functionalities +*/ +class QmitkToFScreenshotMaker : public QmitkAbstractView +{ + // this is needed for all Qt objects that should have a Qt meta-object + // (everything that derives from QObject and wants to have signal/slots) + Q_OBJECT + + public: + + static const std::string VIEW_ID; + + QmitkToFScreenshotMaker(); + ~QmitkToFScreenshotMaker(); + + void SetFocus(); + + virtual void CreateQtPartControl(QWidget *parent); + + +protected slots: + + /*! + \brief Slot called when the "Make screenshot" button is pressed. + */ + void OnMakeScreenshotClicked(); + + void OnSelectCamera(); + + protected: + + Ui::QmitkToFScreenshotMakerControls m_Controls; + + private: + + /** + * @brief UpdateFileExtensionComboBox + * @param active + * @param box + * @param fileExentions + * @param preferredFormat + */ + void UpdateFileExtensionComboBox(bool active, QComboBox* box, QStringList fileExentions, const char *preferredFormat); + + /** + * @brief SaveImage + * @param image + * @param saveImage + * @param path + * @param name + * @param extension + */ + void SaveImage(mitk::Image::Pointer image, bool saveImage, std::string path, std::string name, std::string extension); + + int m_SavingCounter; + mitk::ToFImageGrabber::Pointer m_ToFImageGrabber; +}; + +#endif // _QmitkToFScreenshotMaker_H_INCLUDED diff --git a/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMakerControls.ui b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMakerControls.ui new file mode 100644 index 0000000000..14f22632d2 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.tofutil/src/internal/QmitkToFScreenshotMakerControls.ui @@ -0,0 +1,161 @@ + + + QmitkToFScreenshotMakerControls + + + + 0 + 0 + 466 + 452 + + + + + 0 + 0 + + + + QmitkTemplate + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + false + + + Depth + + + + + + + false + + + + + + + false + + + Amplidute/infra red + + + + + + + false + + + Intensity + + + + + + + false + + + Color + + + + + + + false + + + Raw + + + + + + + false + + + + + + + false + + + + + + + false + + + + + + + false + + + + + + + + + Which data to save in which format... + + + + + + + true + + + Make Screenshot + + + + + + + + + + <html><head/><body><p>Usage information: </p><p><br/>Select a camera below. If the camera is active, the Make Screenshot button will become enabled. Select the data including format you want to save at the given path. Note you can only select data which is provided by the device. Screenshots will be saved at the respective path with a counter indicating the order.</p></body></html> + + + true + + + + + + + + + QmitkServiceListWidget + QWidget +
QmitkServiceListWidget.h
+ 1 +
+
+ + +
diff --git a/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp index 5a4c6d5d7e..9139b93ec1 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp +++ b/Plugins/org.mitk.gui.qt.tofutil/src/internal/mitkPluginActivator.cpp @@ -1,37 +1,39 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkPluginActivator.h" #include #include "QmitkToFUtilView.h" #include "QmitkToFDeviceGeneration.h" +#include "QmitkToFScreenshotMaker.h" namespace mitk { void PluginActivator::start(ctkPluginContext* context) { BERRY_REGISTER_EXTENSION_CLASS(QmitkToFUtilView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkToFDeviceGeneration, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkToFScreenshotMaker, context) } void PluginActivator::stop(ctkPluginContext* context) { Q_UNUSED(context) } } Q_EXPORT_PLUGIN2(org_mitk_gui_qt_tofutil, mitk::PluginActivator)