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.
1.7.2