Subclass of itk::Histogram, specialized for a mitk::UnstructuredGrid. More...
#include <mitkUnstructuredGridHistogram.h>
Public Member Functions | |
mitkClassMacro (UnstructuredGridHistogram, itk::Statistics::Histogram< double >) | |
void | Initialize (mitk::UnstructuredGrid *) |
void | SetUsePointData () |
void | SetUseCellData () |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
UnstructuredGridHistogram () | |
virtual | ~UnstructuredGridHistogram () |
Protected Attributes | |
bool | m_UsePointData |
Subclass of itk::Histogram, specialized for a mitk::UnstructuredGrid.
Definition at line 30 of file mitkUnstructuredGridHistogram.h.
mitk::UnstructuredGridHistogram::UnstructuredGridHistogram | ( | ) | [inline, protected] |
Definition at line 43 of file mitkUnstructuredGridHistogram.h.
: m_UsePointData(true) {}
mitk::UnstructuredGridHistogram::~UnstructuredGridHistogram | ( | ) | [protected, virtual] |
Definition at line 28 of file mitkUnstructuredGridHistogram.cpp.
{ }
void mitk::UnstructuredGridHistogram::Initialize | ( | mitk::UnstructuredGrid * | ugrid ) |
Definition at line 32 of file mitkUnstructuredGridHistogram.cpp.
References mitk::UnstructuredGrid::GetVtkUnstructuredGrid(), and int().
{ const int numBins = 20; vtkUnstructuredGrid* vtkUGrid = ugrid->GetVtkUnstructuredGrid(); double* range = vtkUGrid->GetScalarRange(); SizeType size; MeasurementVectorType lowerBound; MeasurementVectorType upperBound; size.Fill(numBins); lowerBound[0] = range[0]; upperBound[0] = range[1]; double length = upperBound[0] - lowerBound[0]; this->Superclass::Initialize(size, lowerBound, upperBound); vtkDataArray* data; if (m_UsePointData) data = vtkUGrid->GetPointData()->GetScalars(); else data = vtkUGrid->GetCellData()->GetScalars(); if (data == 0) return; if (m_UsePointData) { vtkIdList* cellIds = vtkIdList::New(); for (vtkIdType pointId = 0; pointId < vtkUGrid->GetNumberOfPoints(); pointId++) { vtkUGrid->GetPointCells(pointId, cellIds); double numIds = (double)cellIds->GetNumberOfIds(); double scalar = data->GetComponent(pointId, 0); //MITK_INFO << "scalar value: " << scalar; int bin = numBins - 1; if (scalar != upperBound[0]) bin = (int)(((double)numBins)*(scalar-lowerBound[0])/length); //MITK_INFO << " bin: " << bin << std::endl; this->IncreaseFrequency(bin, scalar/numIds); cellIds->Reset(); } cellIds->Delete(); } else { for (vtkIdType cellId = 0; cellId < vtkUGrid->GetNumberOfCells(); cellId++) { double scalar = data->GetComponent(cellId, 0); //MITK_INFO << "scalar value: " << scalar; int bin = numBins - 1; if (scalar != upperBound[0]) bin = (int)(((double)numBins)*(scalar-lowerBound[0])/length); //MITK_INFO << " bin: " << bin << std::endl; this->IncreaseFrequency(bin, scalar); } } }
mitk::UnstructuredGridHistogram::mitkClassMacro | ( | UnstructuredGridHistogram | , |
itk::Statistics::Histogram< double > | |||
) |
static Pointer mitk::UnstructuredGridHistogram::New | ( | ) | [static] |
void mitk::UnstructuredGridHistogram::SetUseCellData | ( | ) | [inline] |
Definition at line 40 of file mitkUnstructuredGridHistogram.h.
{ m_UsePointData = false; }
void mitk::UnstructuredGridHistogram::SetUsePointData | ( | ) | [inline] |
Definition at line 39 of file mitkUnstructuredGridHistogram.h.
{ m_UsePointData = true; }
bool mitk::UnstructuredGridHistogram::m_UsePointData [protected] |
Definition at line 47 of file mitkUnstructuredGridHistogram.h.