Wrapper class for VTK scalar opacity, gradient opacity, and color transfer functions. More...
#include <mitkTransferFunction.h>
Public Types | |
typedef std::vector< std::pair < double, double > > | ControlPoints |
typedef std::vector< std::pair < double, itk::RGBPixel < double > > > | RGBControlPoints |
typedef TransferFunction | Self |
typedef itk::DataObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
virtual void | SetMin (int _arg) |
Get/Set min/max of transfer function range for initialization. | |
virtual void | SetMax (int _arg) |
Get/Set min/max of transfer function range for initialization. | |
virtual int | GetMin () |
Get/Set min/max of transfer function range for initialization. | |
virtual int | GetMax () |
Get/Set min/max of transfer function range for initialization. | |
virtual vtkPiecewiseFunction * | GetScalarOpacityFunction () |
Get/Set wrapped vtk transfer function. | |
virtual vtkPiecewiseFunction * | GetGradientOpacityFunction () |
Get/Set wrapped vtk transfer function. | |
virtual vtkColorTransferFunction * | GetColorTransferFunction () |
Get/Set wrapped vtk transfer function. | |
virtual const HistogramGenerator::HistogramType * | GetHistogram () |
Get histogram used for transfer function initialization. | |
void | InitializeByMitkImage (const mitk::Image *image) |
Initialize transfer function based on the histogram of an mitk::Image. | |
void | InitializeByItkHistogram (const itk::Statistics::Histogram< double > *histogram) |
Initialize transfer function based on the specified histogram. | |
void | InitializeHistogram (const mitk::Image *image) |
Initialize the internal histogram and min/max range based on the specified mitk::Image. | |
void | SetScalarOpacityPoints (TransferFunction::ControlPoints points) |
Insert control points and values into the scalar opacity transfer function. | |
void | SetGradientOpacityPoints (TransferFunction::ControlPoints points) |
Insert control points and values into the gradient opacity transfer function. | |
void | SetRGBPoints (TransferFunction::RGBControlPoints rgbpoints) |
Insert control points and RGB values into the color transfer function. | |
void | AddScalarOpacityPoint (double x, double value) |
Add a single control point to the scalar opacity transfer function. | |
void | AddGradientOpacityPoint (double x, double value) |
Add a single control point to the gradient opacity transfer function. | |
void | AddRGBPoint (double x, double r, double g, double b) |
Add a single control point to the color opacity transfer function. | |
TransferFunction::ControlPoints & | GetScalarOpacityPoints () |
Get a copy of the scalar opacity transfer function control-points. | |
TransferFunction::ControlPoints & | GetGradientOpacityPoints () |
Get a copy of the gradient opacity transfer function control-points. | |
TransferFunction::RGBControlPoints & | GetRGBPoints () |
Get a copy of the color transfer function control-points. | |
int | RemoveScalarOpacityPoint (double x) |
Remove the specified control point from the scalar opacity transfer function. | |
int | RemoveGradientOpacityPoint (double x) |
Remove the specified control point from the gradient opacity transfer function. | |
int | RemoveRGBPoint (double x) |
Remove the specified control point from the color transfer function. | |
void | ClearScalarOpacityPoints () |
Removes all control points from the scalar opacity transfer function. | |
void | ClearGradientOpacityPoints () |
Removes all control points from the gradient opacity transfer function. | |
void | ClearRGBPoints () |
Removes all control points from the color transfer function. | |
bool | operator== (Self &other) |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
TransferFunction () | |
virtual | ~TransferFunction () |
Protected Attributes | |
vtkSmartPointer < vtkPiecewiseFunction > | m_ScalarOpacityFunction |
vtkSmartPointer < vtkPiecewiseFunction > | m_GradientOpacityFunction |
vtkSmartPointer < vtkColorTransferFunction > | m_ColorTransferFunction |
int | m_Min |
int | m_Max |
mitk::HistogramGenerator::HistogramType::ConstPointer | m_Histogram |
Wrapper class for VTK scalar opacity, gradient opacity, and color transfer functions.
Holds a copy of each of the three standard VTK transfer functions (scalar opacity, gradient opacity, color) and provides an interface for manipulating their control points. Each original function can be retrieved by a Get() method.
NOTE: Currently, transfer function initialization based on histograms or computed-tomography-presets is also provided by this class, but will likely be separated into a specific initializer class.
Definition at line 53 of file mitkTransferFunction.h.
typedef itk::SmartPointer<const Self> mitk::TransferFunction::ConstPointer |
Definition at line 60 of file mitkTransferFunction.h.
typedef std::vector<std::pair<double, double> > mitk::TransferFunction::ControlPoints |
Definition at line 56 of file mitkTransferFunction.h.
typedef itk::SmartPointer<Self> mitk::TransferFunction::Pointer |
Definition at line 60 of file mitkTransferFunction.h.
typedef std::vector<std::pair<double, itk::RGBPixel<double> > > mitk::TransferFunction::RGBControlPoints |
Definition at line 57 of file mitkTransferFunction.h.
Definition at line 60 of file mitkTransferFunction.h.
typedef itk::DataObject mitk::TransferFunction::Superclass |
Definition at line 60 of file mitkTransferFunction.h.
mitk::TransferFunction::TransferFunction | ( | ) | [protected] |
Definition at line 22 of file mitkTransferFunction.cpp.
References m_ColorTransferFunction, m_GradientOpacityFunction, m_ScalarOpacityFunction, and New().
{ TransferFunction::TransferFunction() { m_ScalarOpacityFunction = vtkSmartPointer<vtkPiecewiseFunction>::New(); m_ColorTransferFunction = vtkSmartPointer<vtkColorTransferFunction>::New(); m_GradientOpacityFunction = vtkSmartPointer<vtkPiecewiseFunction>::New(); m_ScalarOpacityFunction->Initialize(); m_ScalarOpacityFunction->AddPoint(0,1);
mitk::TransferFunction::~TransferFunction | ( | ) | [protected, virtual] |
Definition at line 39 of file mitkTransferFunction.cpp.
void mitk::TransferFunction::AddGradientOpacityPoint | ( | double | x, |
double | value | ||
) |
Add a single control point to the gradient opacity transfer function.
Definition at line 134 of file mitkTransferFunction.cpp.
Referenced by SetRGBPoints().
{
void mitk::TransferFunction::AddRGBPoint | ( | double | x, |
double | r, | ||
double | g, | ||
double | b | ||
) |
Add a single control point to the color opacity transfer function.
Definition at line 140 of file mitkTransferFunction.cpp.
References m_GradientOpacityFunction.
Referenced by AddScalarOpacityPoint().
{
void mitk::TransferFunction::AddScalarOpacityPoint | ( | double | x, |
double | value | ||
) |
Add a single control point to the scalar opacity transfer function.
Definition at line 128 of file mitkTransferFunction.cpp.
References AddRGBPoint().
Referenced by SetGradientOpacityPoints().
{ this->AddRGBPoint(rgbpoints[i].first, rgbpoints[i].second[0],
void mitk::TransferFunction::ClearGradientOpacityPoints | ( | ) |
Removes all control points from the gradient opacity transfer function.
Definition at line 213 of file mitkTransferFunction.cpp.
References m_ScalarOpacityFunction.
{
void mitk::TransferFunction::ClearRGBPoints | ( | ) |
Removes all control points from the color transfer function.
Definition at line 219 of file mitkTransferFunction.cpp.
References m_GradientOpacityFunction.
{
void mitk::TransferFunction::ClearScalarOpacityPoints | ( | ) |
Removes all control points from the scalar opacity transfer function.
Definition at line 207 of file mitkTransferFunction.cpp.
References m_ColorTransferFunction.
{
virtual const char* mitk::TransferFunction::GetClassName | ( | ) | const [virtual] |
virtual vtkColorTransferFunction* mitk::TransferFunction::GetColorTransferFunction | ( | ) | [virtual] |
Get/Set wrapped vtk transfer function.
Referenced by mitk::TransferFunctionPropertySerializer::Serialize().
virtual vtkPiecewiseFunction* mitk::TransferFunction::GetGradientOpacityFunction | ( | ) | [virtual] |
Get/Set wrapped vtk transfer function.
TransferFunction::ControlPoints & mitk::TransferFunction::GetGradientOpacityPoints | ( | ) |
Get a copy of the gradient opacity transfer function control-points.
Definition at line 160 of file mitkTransferFunction.cpp.
Referenced by mitk::TransferFunctionPropertySerializer::Serialize().
{ m_ScalarOpacityPoints.push_back( std::make_pair( data[i*2], data[i*2+1] )); } return m_ScalarOpacityPoints; } TransferFunction::ControlPoints &TransferFunction::GetGradientOpacityPoints() { // Retrieve data points from VTK transfer function and store them in a vector m_GradientOpacityPoints.clear();
virtual const HistogramGenerator::HistogramType* mitk::TransferFunction::GetHistogram | ( | ) | [virtual] |
Get histogram used for transfer function initialization.
virtual int mitk::TransferFunction::GetMax | ( | ) | [virtual] |
Get/Set min/max of transfer function range for initialization.
virtual int mitk::TransferFunction::GetMin | ( | ) | [virtual] |
Get/Set min/max of transfer function range for initialization.
TransferFunction::RGBControlPoints & mitk::TransferFunction::GetRGBPoints | ( | ) |
Get a copy of the color transfer function control-points.
Definition at line 174 of file mitkTransferFunction.cpp.
{ m_GradientOpacityPoints.push_back( std::make_pair( data[i*2], data[i*2+1] )); } return m_GradientOpacityPoints; } TransferFunction::RGBControlPoints &TransferFunction::GetRGBPoints() { // Retrieve data points from VTK transfer function and store them in a vector m_RGBPoints.clear(); vtkFloatingPointType *data = m_ColorTransferFunction->GetDataPointer();
virtual vtkPiecewiseFunction* mitk::TransferFunction::GetScalarOpacityFunction | ( | ) | [virtual] |
Get/Set wrapped vtk transfer function.
TransferFunction::ControlPoints & mitk::TransferFunction::GetScalarOpacityPoints | ( | ) |
Get a copy of the scalar opacity transfer function control-points.
Definition at line 146 of file mitkTransferFunction.cpp.
References m_ColorTransferFunction.
Referenced by mitk::TransferFunctionPropertySerializer::Serialize().
{ m_ColorTransferFunction->AddRGBPoint(x, r, g, b); } TransferFunction::ControlPoints &TransferFunction::GetScalarOpacityPoints() { // Retrieve data points from VTK transfer function and store them in a vector m_ScalarOpacityPoints.clear();
void mitk::TransferFunction::InitializeByItkHistogram | ( | const itk::Statistics::Histogram< double > * | histogram ) |
Initialize transfer function based on the specified histogram.
Definition at line 225 of file mitkTransferFunction.cpp.
References m_ColorTransferFunction.
{ m_ColorTransferFunction->RemoveAllPoints(); } void TransferFunction::InitializeByItkHistogram( const itk::Statistics::Histogram<double>* histogram) { m_Histogram = histogram; m_Min = (int)GetHistogram()->GetBinMin(0,0); m_Max = (int)GetHistogram()->GetBinMax(0, GetHistogram()->Size()-1); /* m_ScalarOpacityFunction->Initialize(); m_ScalarOpacityFunction->AddPoint(m_Min,0.0); m_ScalarOpacityFunction->AddPoint(0.0,0.0); m_ScalarOpacityFunction->AddPoint(m_Max,1.0); m_GradientOpacityFunction->Initialize(); m_GradientOpacityFunction->AddPoint(m_Min,0.0); m_GradientOpacityFunction->AddPoint(0.0,1.0); m_GradientOpacityFunction->AddPoint((m_Max*0.125),1.0); m_GradientOpacityFunction->AddPoint((m_Max*0.2),1.0); m_GradientOpacityFunction->AddPoint((m_Max*0.25),1.0);
void mitk::TransferFunction::InitializeByMitkImage | ( | const mitk::Image * | image ) |
Initialize transfer function based on the histogram of an mitk::Image.
Definition at line 252 of file mitkTransferFunction.cpp.
:" << m_Min << "/" << m_Max << std::endl; */ } void TransferFunction::InitializeByMitkImage( const Image * image ) { HistogramGenerator::Pointer histGen= HistogramGenerator::New(); histGen->SetImage(image); histGen->SetSize(256); histGen->ComputeHistogram(); m_Histogram = histGen->GetHistogram(); m_Min = (int)GetHistogram()->GetBinMin(0,0); m_Max = (int)GetHistogram()->GetBinMax(0, GetHistogram()->Size()-1); m_ScalarOpacityFunction->Initialize(); m_ScalarOpacityFunction->AddPoint(m_Min,0.0); m_ScalarOpacityFunction->AddPoint(0.0,0.0); m_ScalarOpacityFunction->AddPoint(m_Max,1.0); m_GradientOpacityFunction->Initialize(); m_GradientOpacityFunction->AddPoint(m_Min,0.0); m_GradientOpacityFunction->AddPoint(0.0,1.0); m_GradientOpacityFunction->AddPoint((m_Max*0.125),1.0); m_GradientOpacityFunction->AddPoint((m_Max*0.2),1.0);
void mitk::TransferFunction::InitializeHistogram | ( | const mitk::Image * | image ) |
Initialize the internal histogram and min/max range based on the specified mitk::Image.
Definition at line 280 of file mitkTransferFunction.cpp.
:" << m_Min << "/" << m_Max << std::endl; } void TransferFunction::InitializeHistogram( const Image * image ) {
static Pointer mitk::TransferFunction::New | ( | ) | [static] |
Referenced by mitk::TransferFunctionPropertyDeserializer::Deserialize(), main(), mitkTransferFunctionTest(), QmitkDiffusionTensorEstimation::SetDefaultNodeProperties(), mitk::VolumeDataVtkMapper3D::SetDefaultProperties(), mitk::GPUVolumeMapper3D::SetDefaultProperties(), and TransferFunction().
bool mitk::TransferFunction::operator== | ( | Self & | other ) |
Definition at line 43 of file mitkTransferFunction.cpp.
{ } bool TransferFunction::operator==(Self& other) { if ((m_Min != other.m_Min) || (m_Max != other.m_Max)) return false; bool sizes = (m_ScalarOpacityFunction->GetSize() == other.m_ScalarOpacityFunction->GetSize()) && (m_GradientOpacityFunction->GetSize() == other.m_GradientOpacityFunction->GetSize()) && (m_ColorTransferFunction->GetSize() == other.m_ColorTransferFunction->GetSize()); if (sizes == false) return false; for (int i = 0; i < m_ScalarOpacityFunction->GetSize(); i++ ) { double myVal[4]; double otherVal[4]; m_ScalarOpacityFunction->GetNodeValue(i, myVal); other.m_ScalarOpacityFunction->GetNodeValue(i, otherVal); bool equal = (myVal[0] == otherVal[0]) && (myVal[1] == otherVal[1]) && (myVal[2] == otherVal[2]) && (myVal[3] == otherVal[3]); if (equal == false) return false; } for (int i = 0; i < m_GradientOpacityFunction->GetSize(); i++ ) { double myVal[4]; double otherVal[4]; m_GradientOpacityFunction->GetNodeValue(i, myVal); other.m_GradientOpacityFunction->GetNodeValue(i, otherVal); bool equal = (myVal[0] == otherVal[0]) && (myVal[1] == otherVal[1]) && (myVal[2] == otherVal[2]) && (myVal[3] == otherVal[3]); if (equal == false) return false; } for (int i = 0; i < m_ColorTransferFunction->GetSize(); i++ ) { double myVal[6]; double otherVal[6]; m_ColorTransferFunction->GetNodeValue(i, myVal); other.m_ColorTransferFunction->GetNodeValue(i, otherVal); bool equal = (myVal[0] == otherVal[0]) // X && (myVal[1] == otherVal[1]) // R && (myVal[2] == otherVal[2]) // G
int mitk::TransferFunction::RemoveGradientOpacityPoint | ( | double | x ) |
Remove the specified control point from the gradient opacity transfer function.
Definition at line 195 of file mitkTransferFunction.cpp.
References m_ScalarOpacityFunction.
{
int mitk::TransferFunction::RemoveRGBPoint | ( | double | x ) |
Remove the specified control point from the color transfer function.
Definition at line 201 of file mitkTransferFunction.cpp.
References m_GradientOpacityFunction.
{
int mitk::TransferFunction::RemoveScalarOpacityPoint | ( | double | x ) |
Remove the specified control point from the scalar opacity transfer function.
Definition at line 189 of file mitkTransferFunction.cpp.
{ data[i*4+1], data[i*4+2], data[i*4+3] }; m_RGBPoints.push_back( std::make_pair( data[i*4], rgb )); }
void mitk::TransferFunction::SetGradientOpacityPoints | ( | TransferFunction::ControlPoints | points ) |
Insert control points and values into the gradient opacity transfer function.
Definition at line 108 of file mitkTransferFunction.cpp.
References AddScalarOpacityPoint().
{ this->AddScalarOpacityPoint(points[i].first, points[i].second); } }
virtual void mitk::TransferFunction::SetMax | ( | int | _arg ) | [virtual] |
Get/Set min/max of transfer function range for initialization.
virtual void mitk::TransferFunction::SetMin | ( | int | _arg ) | [virtual] |
Get/Set min/max of transfer function range for initialization.
void mitk::TransferFunction::SetRGBPoints | ( | TransferFunction::RGBControlPoints | rgbpoints ) |
Insert control points and RGB values into the color transfer function.
Definition at line 118 of file mitkTransferFunction.cpp.
References AddGradientOpacityPoint().
{ this->AddGradientOpacityPoint(points[i].first, points[i].second); } } void TransferFunction::SetRGBPoints(TransferFunction::RGBControlPoints rgbpoints)
void mitk::TransferFunction::SetScalarOpacityPoints | ( | TransferFunction::ControlPoints | points ) |
Insert control points and values into the scalar opacity transfer function.
Definition at line 98 of file mitkTransferFunction.cpp.
vtkSmartPointer<vtkColorTransferFunction> mitk::TransferFunction::m_ColorTransferFunction [protected] |
Wrapped VTK color transfer function
Definition at line 168 of file mitkTransferFunction.h.
Referenced by ClearScalarOpacityPoints(), GetScalarOpacityPoints(), InitializeByItkHistogram(), and TransferFunction().
vtkSmartPointer<vtkPiecewiseFunction> mitk::TransferFunction::m_GradientOpacityFunction [protected] |
Wrapped VTK gradient opacity transfer function
Definition at line 165 of file mitkTransferFunction.h.
Referenced by AddRGBPoint(), ClearRGBPoints(), RemoveRGBPoint(), and TransferFunction().
mitk::HistogramGenerator::HistogramType::ConstPointer mitk::TransferFunction::m_Histogram [protected] |
Specified or calculated histogram (used for initialization)
Definition at line 177 of file mitkTransferFunction.h.
int mitk::TransferFunction::m_Max [protected] |
Current range of transfer function (used for initialization)
Definition at line 174 of file mitkTransferFunction.h.
int mitk::TransferFunction::m_Min [protected] |
Current range of transfer function (used for initialization)
Definition at line 171 of file mitkTransferFunction.h.
vtkSmartPointer<vtkPiecewiseFunction> mitk::TransferFunction::m_ScalarOpacityFunction [protected] |
Wrapped VTK scalar opacity transfer function
Definition at line 162 of file mitkTransferFunction.h.
Referenced by ClearGradientOpacityPoints(), RemoveGradientOpacityPoint(), and TransferFunction().