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

mitk::CameraVisualization Class Reference

CameraVisualization controls the camera according to the spatial information of the navigation data. More...

#include <mitkCameraVisualization.h>

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

List of all members.

Public Types

typedef CameraVisualization Self
typedef
NavigationDataToNavigationDataFilter 
Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual void SetDirectionOfProjectionInToolCoordinates (mitk::Vector3D _arg)
 sets the direction of projection of the camera of the renderer in tool coordinates
virtual void SetViewUpInToolCoordinates (mitk::Vector3D _arg)
 sets the view up vector of the camera of the renderer in tool coordinates
virtual void SetFocalLength (float _arg)
 sets the focal length of the camera
virtual void SetViewAngle (float _arg)
 sets the view angle of the camera of the renderer which angular height of the camera view measured in degrees (cf. vtkCamera)
virtual mitk::Vector3D GetDirectionOfProjectionInToolCoordinates () const
 returns the direction of projection of the camera of the renderer in tool coordinates
virtual mitk::Vector3D GetViewUpInToolCoordinates () const
 returns the view up vector of the camera of the renderer in tool coordinates
virtual float GetFocalLength () const
 returns the focal length of the camera
virtual float GetViewAngle () const
 returns the view angle of the camera of the renderer which angular height of the camera view measured in degrees (cf. vtkCamera)
virtual void SetRenderer (mitk::BaseRenderer *renderer)
 sets renderer that visualizes the navigation data
virtual const mitk::BaseRendererGetRenderer ()
 returns the renderer that visualizes the navigation data
virtual void SetParameters (const mitk::PropertyList *p)
 Set all filter parameters as the PropertyList p.
mitk::PropertyList::ConstPointer GetParameters () const
 Get all filter parameters as a PropertyList.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 CameraVisualization ()
virtual ~CameraVisualization ()
virtual void GenerateData ()
 filter execute method

Protected Attributes

mitk::BaseRenderer::Pointer m_Renderer
 renderer that visualizes the navigation data-
Vector3D m_DirectionOfProjectionInToolCoordinates
 vector of the direction of projection in tool coordinates
Vector3D m_ViewUpInToolCoordinates
 view up vector in tool coordinates
float m_FocalLength
 focal length of the camera: distance between camera position and focal point.
float m_ViewAngle
 view angle of the camera: angular height of the camera view measured in degrees.

Detailed Description

CameraVisualization controls the camera according to the spatial information of the navigation data.

Documentation The camera of the renderer will be placed at the position of the navigation data and oriented according to its orientation and the camera specific information "direction of projection", "view up", "focal length", "view angle"

Definition at line 33 of file mitkCameraVisualization.h.


Member Typedef Documentation

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

Reimplemented from mitk::NavigationDataToNavigationDataFilter.

Definition at line 36 of file mitkCameraVisualization.h.

typedef itk::SmartPointer<Self> mitk::CameraVisualization::Pointer

Reimplemented from mitk::NavigationDataToNavigationDataFilter.

Definition at line 36 of file mitkCameraVisualization.h.

Reimplemented from mitk::NavigationDataToNavigationDataFilter.

Definition at line 36 of file mitkCameraVisualization.h.

Reimplemented from mitk::NavigationDataToNavigationDataFilter.

Definition at line 36 of file mitkCameraVisualization.h.


Constructor & Destructor Documentation

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

Definition at line 41 of file mitkCameraVisualization.cpp.

{

}

Member Function Documentation

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

filter execute method

Documentation positions and orients camera according to the position and orientation hold in the NavigationData

Definition at line 47 of file mitkCameraVisualization.cpp.

References mitk::NavigationData::GetOrientation(), mitk::NavigationData::GetPosition(), mitk::NavigationData::Graft(), and mitk::NavigationData::IsDataValid().

{
  // check if renderer was set
  if (m_Renderer.IsNull())
    itkExceptionMacro(<< "Renderer was not properly set");

  /* update outputs with tracking data from tools */
  unsigned int numberOfOutputs = this->GetNumberOfOutputs();
  for (unsigned int i = 0; i < numberOfOutputs ; ++i)
  {
    mitk::NavigationData* output = this->GetOutput(i);
    assert(output);
    const mitk::NavigationData* input = this->GetInput(i);
    assert(input);

    if (input->IsDataValid() == false)
    {
      continue;
    }
    output->Graft(input); // First, copy all information from input to output
  }

  const NavigationData* navigationData = this->GetInput();
  // get position from NavigationData to move the camera to this position
  Point3D cameraPosition = navigationData->GetPosition();

  //calculate the transform from the quaternions
  static itk::QuaternionRigidTransform<double>::Pointer quatTransform = itk::QuaternionRigidTransform<double>::New();

  mitk::NavigationData::OrientationType orientation = navigationData->GetOrientation();
  // convert mitk::Scalartype quaternion to double quaternion because of itk bug
  vnl_quaternion<double> doubleQuaternion(orientation.x(), orientation.y(), orientation.z(), orientation.r());
  quatTransform->SetIdentity();
  quatTransform->SetRotation(doubleQuaternion);
  quatTransform->Modified();

  /* because of an itk bug, the transform can not be calculated with float datatype. 
  To use it in the mitk geometry classes, it has to be transfered to mitk::ScalarType which is float */
  static AffineTransform3D::MatrixType m;
  mitk::TransferMatrix(quatTransform->GetMatrix(), m);

  Vector3D directionOfProjection = m*m_DirectionOfProjectionInToolCoordinates;
  directionOfProjection.Normalize();
  Point3D focalPoint = cameraPosition + m_FocalLength*directionOfProjection;
  // compute current view up vector
  Vector3D viewUp = m*m_ViewUpInToolCoordinates;

  m_Renderer->GetVtkRenderer()->GetActiveCamera()->SetPosition(cameraPosition[0],cameraPosition[1],cameraPosition[2]);
  m_Renderer->GetVtkRenderer()->GetActiveCamera()->SetFocalPoint(focalPoint[0],focalPoint[1],focalPoint[2]);
  m_Renderer->GetVtkRenderer()->GetActiveCamera()->SetViewUp(viewUp[0],viewUp[1],viewUp[2]);
  m_Renderer->GetVtkRenderer()->ResetCameraClippingRange();

  m_Renderer->RequestUpdate();
}
virtual const char* mitk::CameraVisualization::GetClassName (  ) const [virtual]
virtual mitk::Vector3D mitk::CameraVisualization::GetDirectionOfProjectionInToolCoordinates (  ) const [virtual]

returns the direction of projection of the camera of the renderer in tool coordinates

virtual float mitk::CameraVisualization::GetFocalLength (  ) const [virtual]

returns the focal length of the camera

mitk::PropertyList::ConstPointer mitk::CameraVisualization::GetParameters (  ) const [virtual]

Get all filter parameters as a PropertyList.

Documentation This method returns a PropertyList containing the following properties (name : data type):

Reimplemented from mitk::NavigationDataSource.

Definition at line 138 of file mitkCameraVisualization.cpp.

References mitk::Vector3DProperty::New(), and mitk::PropertyList::New().

{
  mitk::PropertyList::Pointer p = mitk::PropertyList::New();
  p->SetProperty("CameraVisualization_DirectionOfProjectionInToolCoordinates", mitk::Vector3DProperty::New(this->GetDirectionOfProjectionInToolCoordinates()));  // store DirectionOfProjectionInToolCoordinates parameter
  p->SetProperty("CameraVisualization_ViewUpInToolCoordinates", mitk::Vector3DProperty::New(this->GetViewUpInToolCoordinates()));  // store ViewUpInToolCoordinates parameter
  p->SetProperty("CameraVisualization_FocalLength", mitk::Vector3DProperty::New(this->GetFocalLength()));  // store FocalLength parameter
  p->SetProperty("CameraVisualization_ViewAngle", mitk::Vector3DProperty::New(this->GetViewAngle()));  // store ViewAngle parameter
  return mitk::PropertyList::ConstPointer(p);
}
const mitk::BaseRenderer * mitk::CameraVisualization::GetRenderer (  ) [virtual]

returns the renderer that visualizes the navigation data

Definition at line 113 of file mitkCameraVisualization.cpp.

{
  return m_Renderer;
}
virtual float mitk::CameraVisualization::GetViewAngle (  ) const [virtual]

returns the view angle of the camera of the renderer which angular height of the camera view measured in degrees (cf. vtkCamera)

virtual mitk::Vector3D mitk::CameraVisualization::GetViewUpInToolCoordinates (  ) const [virtual]

returns the view up vector of the camera of the renderer in tool coordinates

static Pointer mitk::CameraVisualization::New (  ) [static]
virtual void mitk::CameraVisualization::SetDirectionOfProjectionInToolCoordinates ( mitk::Vector3D  _arg ) [virtual]

sets the direction of projection of the camera of the renderer in tool coordinates

virtual void mitk::CameraVisualization::SetFocalLength ( float  _arg ) [virtual]

sets the focal length of the camera

void mitk::CameraVisualization::SetParameters ( const mitk::PropertyList p ) [virtual]

Set all filter parameters as the PropertyList p.

Documentation This method reads the following properties from the PropertyList (name : data type):

Reimplemented from mitk::NavigationDataSource.

Definition at line 119 of file mitkCameraVisualization.cpp.

References mitk::PropertyList::GetPropertyValue().

{
  if (p == NULL)
    return;
  mitk::Vector3D doP;
  if (p->GetPropertyValue<mitk::Vector3D>("CameraVisualization_DirectionOfProjectionInToolCoordinates", doP) == true)  // search for DirectionOfProjectionInToolCoordinates parameter
    this->SetDirectionOfProjectionInToolCoordinates(doP);   // apply if found;
  mitk::Vector3D vUp;
  if (p->GetPropertyValue<mitk::Vector3D>("CameraVisualization_ViewUpInToolCoordinates", vUp) == true)  // search for ViewUpInToolCoordinates parameter
    this->SetViewUpInToolCoordinates(vUp);   // apply if found;
  float fL;
  if (p->GetPropertyValue<float>("CameraVisualization_FocalLength", fL) == true)  // search for FocalLength parameter
    this->SetFocalLength(fL);   // apply if found;
  float vA;
  if (p->GetPropertyValue<float>("CameraVisualization_ViewAngle", vA) == true)  // search for ViewAngle parameter
    this->SetFocalLength(vA);   // apply if found;
}
void mitk::CameraVisualization::SetRenderer ( mitk::BaseRenderer renderer ) [virtual]

sets renderer that visualizes the navigation data

Definition at line 103 of file mitkCameraVisualization.cpp.

References mitk::BaseRenderer::GetVtkRenderer().

{
  m_Renderer = renderer;
  if (m_Renderer)
  {
    m_Renderer->GetVtkRenderer()->GetActiveCamera()->Zoom(0.4);
  }
}
virtual void mitk::CameraVisualization::SetViewAngle ( float  _arg ) [virtual]

sets the view angle of the camera of the renderer which angular height of the camera view measured in degrees (cf. vtkCamera)

virtual void mitk::CameraVisualization::SetViewUpInToolCoordinates ( mitk::Vector3D  _arg ) [virtual]

sets the view up vector of the camera of the renderer in tool coordinates


Member Data Documentation

vector of the direction of projection in tool coordinates

Definition at line 127 of file mitkCameraVisualization.h.

Referenced by CameraVisualization().

focal length of the camera: distance between camera position and focal point.

Definition at line 129 of file mitkCameraVisualization.h.

renderer that visualizes the navigation data-

Definition at line 125 of file mitkCameraVisualization.h.

view angle of the camera: angular height of the camera view measured in degrees.

Definition at line 130 of file mitkCameraVisualization.h.

view up vector in tool coordinates

Definition at line 128 of file mitkCameraVisualization.h.

Referenced by CameraVisualization().


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