CameraVisualization controls the camera according to the spatial information of the navigation data. More...
#include <mitkCameraVisualization.h>
Public Types | |
typedef CameraVisualization | Self |
typedef NavigationDataToNavigationDataFilter | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
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::BaseRenderer * | GetRenderer () |
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. |
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.
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.
mitk::CameraVisualization::CameraVisualization | ( | ) | [protected] |
Definition at line 28 of file mitkCameraVisualization.cpp.
References m_DirectionOfProjectionInToolCoordinates, and m_ViewUpInToolCoordinates.
: NavigationDataToNavigationDataFilter(), m_Renderer(NULL), m_FocalLength(10.0), m_ViewAngle(30.0) { // initialize members m_DirectionOfProjectionInToolCoordinates[0] = 0; m_DirectionOfProjectionInToolCoordinates[1] = 0; m_DirectionOfProjectionInToolCoordinates[2] = -1; m_ViewUpInToolCoordinates[0] = 1; m_ViewUpInToolCoordinates[1] = 0; m_ViewUpInToolCoordinates[2] = 0; }
mitk::CameraVisualization::~CameraVisualization | ( | ) | [protected, virtual] |
Definition at line 41 of file mitkCameraVisualization.cpp.
{ }
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] |
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
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] |
Referenced by mitkCameraVisualizationTest(), and QmitkToolPairNavigationView::SetupIGTPipeline().
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
Vector3D mitk::CameraVisualization::m_DirectionOfProjectionInToolCoordinates [protected] |
vector of the direction of projection in tool coordinates
Definition at line 127 of file mitkCameraVisualization.h.
Referenced by CameraVisualization().
float mitk::CameraVisualization::m_FocalLength [protected] |
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.
float mitk::CameraVisualization::m_ViewAngle [protected] |
view angle of the camera: angular height of the camera view measured in degrees.
Definition at line 130 of file mitkCameraVisualization.h.
Vector3D mitk::CameraVisualization::m_ViewUpInToolCoordinates [protected] |
view up vector in tool coordinates
Definition at line 128 of file mitkCameraVisualization.h.
Referenced by CameraVisualization().