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

mitk::VectorImageVtkGlyphMapper3D Class Reference

#include <mitkVectorImageVtkGlyphMapper3D.h>

Inheritance diagram for mitk::VectorImageVtkGlyphMapper3D:
Inheritance graph
[legend]
Collaboration diagram for mitk::VectorImageVtkGlyphMapper3D:
Collaboration graph
[legend]

List of all members.

Public Types

enum  GlyphType { LineGlyph, ArrowGlyph }
typedef VectorImageVtkGlyphMapper3D Self
typedef VtkMapper3D Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual void SetMaximumNumberOfPoints (unsigned int _arg)
virtual unsigned int GetMaximumNumberOfPoints ()
virtual void SetUseMaskPoints (bool _arg)
virtual bool GetUseMaskPoints ()
virtual void UseMaskPointsOn ()
virtual void UseMaskPointsOff ()
virtual void SetRandomMode (bool _arg)
virtual bool GetRandomMode ()
virtual void RandomModeOn ()
virtual void RandomModeOff ()
virtual vtkProp * GetVtkProp (mitk::BaseRenderer *renderer)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 VectorImageVtkGlyphMapper3D ()
virtual ~VectorImageVtkGlyphMapper3D ()
virtual void GenerateData ()
virtual void GenerateData (mitk::BaseRenderer *renderer)
ImageGetInput ()

Protected Attributes

vtkMaskedGlyph3Dm_Glyph3DGenerator
vtkActor * m_Glyph3DActor
vtkPolyDataMapper * m_Glyph3DMapper
GlyphType m_GlyphType
unsigned int m_MaximumNumberOfPoints
bool m_UseMaskPoints
bool m_RandomMode

Detailed Description

Definition at line 35 of file mitkVectorImageVtkGlyphMapper3D.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::VectorImageVtkGlyphMapper3D::ConstPointer

Reimplemented from mitk::VtkMapper3D.

Definition at line 38 of file mitkVectorImageVtkGlyphMapper3D.h.

Reimplemented from mitk::VtkMapper3D.

Definition at line 38 of file mitkVectorImageVtkGlyphMapper3D.h.

Reimplemented from mitk::VtkMapper3D.

Definition at line 38 of file mitkVectorImageVtkGlyphMapper3D.h.

Reimplemented from mitk::VtkMapper3D.

Definition at line 38 of file mitkVectorImageVtkGlyphMapper3D.h.


Member Enumeration Documentation

Enumerator:
LineGlyph 
ArrowGlyph 

Definition at line 42 of file mitkVectorImageVtkGlyphMapper3D.h.


Constructor & Destructor Documentation

mitk::VectorImageVtkGlyphMapper3D::VectorImageVtkGlyphMapper3D (  ) [protected]
mitk::VectorImageVtkGlyphMapper3D::~VectorImageVtkGlyphMapper3D (  ) [protected, virtual]

Destructor

Definition at line 55 of file mitkVectorImageVtkGlyphMapper3D.cpp.

{
  if ( m_Glyph3DMapper != NULL )
    m_Glyph3DMapper->Delete();
  if ( m_Glyph3DGenerator != NULL )
    m_Glyph3DGenerator->Delete();
}

Member Function Documentation

void mitk::VectorImageVtkGlyphMapper3D::GenerateData (  ) [protected, virtual]

Generate a vtkPolyData by creating vectors as glyphs

Reimplemented from mitk::Mapper.

Definition at line 67 of file mitkVectorImageVtkGlyphMapper3D.cpp.

References mitk::LookupTableProperty::New(), mitk::LookupTable::New(), and mitk::LookupTableProperty::SetLookupTable().

{
  //
  // get the input image...
  //
  mitk::Image::Pointer mitkImage = this->GetInput();
  if ( mitkImage.GetPointer() == NULL )
  {
    itkWarningMacro( << "VectorImage is null !" );
    return ;
  }

  //
  // make sure, that the input image is an vector image
  //
  if ( mitkImage->GetPixelType().GetNumberOfComponents() <= 1 )
  {
    itkWarningMacro( << "VectorImage has only one scalar component!" );
    return ;
  }

  vtkImageData* vtkImage = mitkImage->GetVtkImageData();

  //
  // make sure, that we have point data with more than 1 component (as vectors)
  //
  vtkPointData* pointData = vtkImage->GetPointData();
  if ( pointData == NULL )
  {
    itkWarningMacro( << "vtkImage->GetPointData() returns NULL!" );
    return ;
  }
  if ( pointData->GetNumberOfArrays() == 0 )
  {
    itkWarningMacro( << "vtkImage->GetPointData()->GetNumberOfArrays() is 0!" );
    return ;
  }
  else if ( pointData->GetArrayName( 0 ) == NULL )
  {
    vtkImage->GetPointData() ->GetArray( 0 ) ->SetName( "vector" );
  }

  if ( vtkImage->GetNumberOfPoints() != 0 )
  {

    //
    // create the glyph, which has to be shown at each point
    // of the masked image
    //
    vtkPolyData* glyph;
    if ( m_GlyphType == LineGlyph )
    {
      vtkLineSource * lineSource = vtkLineSource::New();
      lineSource->Update();
      glyph = lineSource->GetOutput();
    }
    else if ( m_GlyphType == ArrowGlyph )
    {
      vtkArrowSource * arrowSource = vtkArrowSource::New();
      arrowSource->Update();
      glyph = arrowSource->GetOutput();
    }
    else
    {
      // Use a vtkLineSource as default, if the GlyphType is
      // unknown
      itkWarningMacro( << "unknown glyph type!" );
      vtkLineSource * lineSource = vtkLineSource::New();
      lineSource->Update();
      glyph = lineSource->GetOutput();
    }
m_RandomMode = false;
m_UseMaskPoints = false;
m_MaximumNumberOfPoints = 80*80*80;
    //
    // set up the actual glyphing filter
    //
    m_Glyph3DGenerator->SetSource( glyph );
    m_Glyph3DGenerator->SetInput( vtkImage );
    //m_Glyph3DGenerator->SetInputConnection(m_Cutter->GetOutputPort());
    m_Glyph3DGenerator->SetInputArrayToProcess (1, 0,0, vtkDataObject::FIELD_ASSOCIATION_POINTS , "vector");

    //m_Glyph3DGenerator->SelectInputVectors( vtkImage->GetPointData() ->GetArray( 0 ) ->GetName() );
    m_Glyph3DGenerator->OrientOn();
    m_Glyph3DGenerator->SetVectorModeToUseVector();
    m_Glyph3DGenerator->SetScaleFactor( 0.00392156862745 );
    m_Glyph3DGenerator->SetScaleModeToScaleByVector();
    m_Glyph3DGenerator->SetUseMaskPoints( m_UseMaskPoints );
    m_Glyph3DGenerator->SetRandomMode( m_RandomMode );
    m_Glyph3DGenerator->SetMaximumNumberOfPoints( m_MaximumNumberOfPoints );
    m_Glyph3DGenerator->Update();
    m_Glyph3DMapper->SetInput( m_Glyph3DGenerator->GetOutput() );
    m_Glyph3DActor->SetMapper( m_Glyph3DMapper );

    if (GetDataNode()->GetProperty("LookupTable"))
    {
      mitk::LookupTable::Pointer mitkLookupTable = mitk::LookupTable::New();
      m_Glyph3DMapper->Update();
      mitkLookupTable->SetVtkLookupTable(dynamic_cast<vtkLookupTable*>(m_Glyph3DMapper->GetLookupTable()));
      mitk::LookupTableProperty::Pointer LookupTableProp = mitk::LookupTableProperty::New( mitkLookupTable );
      GetDataNode()->SetProperty( "LookupTable", LookupTableProp );
    }
    else
    {
      mitk::LookupTableProperty::Pointer mitkLutProp = dynamic_cast<mitk::LookupTableProperty*>(GetDataNode()->GetProperty("LookupTable"));
      if (mitkLutProp.IsNotNull())
        m_Glyph3DMapper->SetLookupTable( mitkLutProp->GetLookupTable()->GetVtkLookupTable() );

    }

    //vtkDataSetWriter* writer = vtkDataSetWriter::New();
    //writer->SetInput( vtkImage );
    //writer->SetFileName( "out.vtk" );
    //writer->Update();
  }
}
void mitk::VectorImageVtkGlyphMapper3D::GenerateData ( mitk::BaseRenderer renderer ) [protected, virtual]

This method is called, each time a specific renderer is updated.

Reimplemented from mitk::Mapper.

Definition at line 188 of file mitkVectorImageVtkGlyphMapper3D.cpp.

{
  if ( IsVisible( renderer ) == false )
  {
    if ( m_Glyph3DActor != NULL )
      m_Glyph3DActor->VisibilityOff();
    return ;
  }
  else
  {
    if ( m_Glyph3DActor != NULL )
      m_Glyph3DActor->VisibilityOn();
  }
}
virtual const char* mitk::VectorImageVtkGlyphMapper3D::GetClassName (  ) const [virtual]

Reimplemented from mitk::VtkMapper3D.

mitk::Image * mitk::VectorImageVtkGlyphMapper3D::GetInput ( void   ) [protected]

Returns the input data object of the given filter. In this case, a mitk::Image is returned.

Definition at line 208 of file mitkVectorImageVtkGlyphMapper3D.cpp.

{
  return const_cast<mitk::Image*>( dynamic_cast<mitk::Image*>( this->GetData() ) );
}
virtual unsigned int mitk::VectorImageVtkGlyphMapper3D::GetMaximumNumberOfPoints (  ) [virtual]
virtual bool mitk::VectorImageVtkGlyphMapper3D::GetRandomMode (  ) [virtual]
virtual bool mitk::VectorImageVtkGlyphMapper3D::GetUseMaskPoints (  ) [virtual]
vtkProp * mitk::VectorImageVtkGlyphMapper3D::GetVtkProp ( mitk::BaseRenderer renderer ) [virtual]

Implements mitk::VtkMapper3D.

Definition at line 47 of file mitkVectorImageVtkGlyphMapper3D.cpp.

{
  return m_Glyph3DActor;
}
static Pointer mitk::VectorImageVtkGlyphMapper3D::New (  ) [static]
virtual void mitk::VectorImageVtkGlyphMapper3D::RandomModeOff (  ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::RandomModeOn (  ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::SetMaximumNumberOfPoints ( unsigned int  _arg ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::SetRandomMode ( bool  _arg ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::SetUseMaskPoints ( bool  _arg ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::UseMaskPointsOff (  ) [virtual]
virtual void mitk::VectorImageVtkGlyphMapper3D::UseMaskPointsOn (  ) [virtual]

Member Data Documentation

Definition at line 85 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 84 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 86 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 88 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 89 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 91 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().

Definition at line 90 of file mitkVectorImageVtkGlyphMapper3D.h.

Referenced by VectorImageVtkGlyphMapper3D().


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