View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0009837VTK(No Category)public2009-11-04 08:182013-04-05 19:57
ReporterU. Mennel 
Assigned ToFrançois Bertel 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0009837: transformation in vtkTDxInteractorStyleCamera is wrong
DescriptionvtkTDxInteractorStyleCamera, which comes with the 3d connexion device support, applies a counter-intuitive transformation. The default concatenation state is premultiply, so the rotation should be: translate(p); rotate; translate(-p); where p is the camera focal point. In addition, the whole transform should be inverted before applying to the camera to yield a more intuitive behavior. And, a little off topic, why the vtkTDxInteractorStyle is not derived from vtkInteractorObserver and reuses the mechanisms already provided there?
Appart from these issues the 3d connexion device is working greatly together with VTK!
TagsNo tags attached.
Project
Type
Attached Files

 Relationships

  Notes
(0018346)
François Bertel (developer)
2009-11-05 12:23

Fixed in rev 1.2 of vtkTDxInteractorStyleCamera.cxx (2009/11/05). Thanks for reporting the wrong order. The pre/post terms are really confusing, vtkTransform should talk about right/left matrix multiplication instead...


About the other questions:

vtkTDxInteractorStyleCamera is intended to move the camera, not the object.
I don't find it counter-intuitive. It follows the values return by the devices.
For example, the coordinate system on the space navigator matches the OpenGL
coordinate system: X axis goes from left to right, Y axis from bottom to top and Z axis from back to front.

For example, if you push to the right, you have a positive translation along the X axis, the camera move to the right, therefore the world move to the left. If you tilt to the left, you have a positive rotation around the Z axis for the camera, so the world tilt to the right.


You can always write another vtkTDxInteractorStyleCamera that match your taste better or play with the values on the vtkTDxInteractorStyleSettings object (for example, changing the sign of the sensitivity parameters will reverse the axes). Or write a vtkTDxInteractorStyleActor. There is no canonical solution or style.

The 3DConnexion GUI also allows you to reverse the axes or to switch axes meaning (like selecting with one will affect the translation along the Z-axis (they call that the zoom on the GUI even if it is not the correct term to use) )


vtkTDxInteractorStyle is not derived from vtkInteractorObserver because vtkInteractorObserver is tied to keyboard/mouse interaction (see methods like OnChar(), or GrabFocus() that don't make sense with a 3DConnexion device)

 Issue History
Date Modified Username Field Change
2009-11-04 08:18 U. Mennel New Issue
2009-11-05 11:56 François Bertel Status backlog => tabled
2009-11-05 11:56 François Bertel Assigned To => François Bertel
2009-11-05 12:23 François Bertel Note Added: 0018346
2009-11-05 12:23 François Bertel Status tabled => @80@
2009-11-05 12:23 François Bertel Resolution open => fixed
2011-06-16 13:11 Zack Galbreath Category => (No Category)
2013-04-05 19:57 Berk Geveci Status customer review => closed


Copyright © 2000 - 2018 MantisBT Team