Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::UnstructuredGridHistogram Class Reference

Subclass of itk::Histogram, specialized for a mitk::UnstructuredGrid. More...

#include <mitkUnstructuredGridHistogram.h>

List of all members.

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

Detailed Description

Subclass of itk::Histogram, specialized for a mitk::UnstructuredGrid.

Definition at line 30 of file mitkUnstructuredGridHistogram.h.


Constructor & Destructor Documentation

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.

{
}

Member Function Documentation

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; }

Member Data Documentation

Definition at line 47 of file mitkUnstructuredGridHistogram.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines