1. 02 Oct, 2018 1 commit
    • Csaba Pinter's avatar
      ENH: Add timer in vtkInteractorStyle3D to allow for smooth flying · 8272090e
      Csaba Pinter authored
      Dolly translation speed can be specified in m/s, to achieve a constant flying speed that is not dependent on frame rate or physical scale. Default is 1.6666 m/s, which corresponds to walking speed (6 km/h). Do not dolly if left or right side of the trackpad is pressed instead of up/down.
      8272090e
  2. 01 Oct, 2018 1 commit
    • Csaba Pinter's avatar
      ENH: Use pose matrices instead of camera parameters for VR controllers · 803d3a32
      Csaba Pinter authored
      It is easier to manage controller pose as a matrix instead of the (pos,wxyz,ppos,wdir) variables that the ConvertPoseToWorldCoordinates function calculates. A function called ConvertOpenVRPoseToMatrices was added that calculates the matrix. It is used in various places in addition or instead of those variables.
      A PhysicalToWorldMatrixModified event is added to vtkOpenVRRenderWindow to enable notifications to the application when the physical scaling, translation, etc. changes.
      
      Small changes:
      - Fix incorrect sign of VR physical to world matrix translation
      - Fix gesture end event invocation (Trigger button release was checked instead of Grip, as it is done for press)
      - Add comments for physical to world ivars and controller pose camera style variables for easier understanding
      - Remove unused PoseTransform member variable from vtkOpenVRRenderWindowInteractor
      803d3a32
  3. 20 Sep, 2018 1 commit
    • Csaba Pinter's avatar
      ENH: Add functions to set VR physical geometry with matrix · ed74f20d
      Csaba Pinter authored
      - Get/SetPhysicalToWorldMatrix functions added to vtkOpenVRRenderWindow to handle the PhysicalTranslation etc. camera related geometry changes as a matrix
      - Refactored UpdateHMDMatrixPose code so that it is more understandable what happens under the hood when the camera is set. It works the very same way, but it is now better formalized and readable.
      Here's how setting the camera works:
      Scaling is applied through moving the camera closer to the focal point, because scaling of all actors is not feasible, and vtkCamera::ModelTransformMatrix is not supported throughout VTK (clipping issues etc.). To achieve this, a new coordinate system called NonScaledWorld is introduced. The relationship between Physical (in which the HMD pose is given by OpenVR) and NonScaledWorld is described by the PhysicalViewUp etc. member variables. After getting the HMD pose in Physical, those coordinates and axes are converted to the NonScaledWorld coordinate system, on which the PhysicalScaling trick of modifying the camera position is applied, resulting the World coordinate system.
      - Renamed incorrect distance variable to physical scale
      ed74f20d
  4. 17 Sep, 2018 1 commit
  5. 11 Jul, 2018 1 commit
  6. 26 Feb, 2018 1 commit
  7. 25 Feb, 2018 1 commit
    • Ken Martin's avatar
      Introduce opengl state management · 1e6e44cb
      Ken Martin authored
      This commit adds a vtkOpenGLState class that is used
      to save, restore and cache opengl state. In this commit
      the caching is disabled to ease rollout. Likewise only
      a few methods are being cached which can be expanded
      on later as desired.
      1e6e44cb
  8. 20 Oct, 2017 1 commit
    • Ken Martin's avatar
      update openvr support to better handle events · eb6bf099
      Ken Martin authored
      Includes support for trackpad event data
      
      Fix for new steam vr version that adds many events causing
      delays in butten response.
      
      Fixes picking when using multisamples.
      
      Better hardware picking by starting at the center pick point
      and working out.
      
      New menthods in the menuwidget and rep to rename/remove menu items
      
      Remap next pose control to left trigger so as to not overload
      the grip buttons.
      
      Handle higlighting of picked lines and polylines better.
      
      Fix issues with the panel representation when it is called
      before the controllers have been loaded.
      
      Fix an issue when hardware line width was being forced by the
      render window to a different value.
      
      Better handling of pose for unloaded or untracked devices.
      eb6bf099
  9. 04 Oct, 2017 1 commit
  10. 29 Aug, 2017 1 commit
  11. 25 Aug, 2017 1 commit
    • Jean-Baptiste Vimort's avatar
      ENH: Modification of the OpenVR class · 76526900
      Jean-Baptiste Vimort authored
      This commit is removing the usage of the SDL third library, that change allow to handle the openVRRenderingWindows with the same openGL context than the usual vtkRenderingWindows. As a consequence of this modification it's now possible to display an openVRRenderWindow and a regular vtkRenderWindow simultaneously
      
      Co-othors: Ken Martin; Jean-Chrisophe Fillion-Robin
      76526900
  12. 07 Aug, 2017 1 commit
    • Ken Martin's avatar
      overhaul the OpenVR support · df7a40e2
      Ken Martin authored
      Explicitly define the physical space transform with
      PhysicalScale
      PhysicalTranslation
      PhysicalViewUp
      PhysicalViewDirection
      
      Tons of event and interaction changes to use the new
      vtkEventData.
      
      Updated folower that keeps text vertical relative to the
      physical view up
      
      Scrollable menu widget and representation
      df7a40e2
  13. 09 May, 2017 1 commit
  14. 05 Apr, 2017 1 commit
    • Lucas Gandel's avatar
      Fix framebuffers and window size for VR · 6625c480
      Lucas Gandel authored
      This commit fixes the definition of framebuffers and windows sizes
      in vtkOpenVRRenderWindow. It gets rid of the RenderWidth/RenderHeight
      member variables and uses the one from vtkWindow instead (i.e int Size[2]).
      Size is now set with the value returned by GetRecommendedRenderTargetSize().
      6625c480
  15. 14 Mar, 2017 1 commit
  16. 17 Feb, 2017 1 commit
    • Ken Martin's avatar
      many fixes and new features · d47b9606
      Ken Martin authored
      Add floor option to show a floor
      
      completely rework the matrix and coordinate code
      to be cleaner and use standard VTK conventions (right handed)
      
      add support for a dashboard overlay with options to subclass
      and support for saving/loading camera poses and adjusting
      motion factors and scale factors.
      
      Improve the resetcameraclippingrange to work better for VR
      
      change how eye position is handled so that VolumeRendering
      will work properly
      
      Handle the case where poeple make the cubes invisible which
      results in a 308 error on loading the model.
      
      Add support for the user to specify the mapping of physical
      coordinates into world coordinate. Allows for different
      view up vectors other than the old code which was hard
      coded to Y.
      
      Add middle mouse support mapped to the grip button.
      
      Add some support for a hardware clipping plane.
      d47b9606
  17. 08 Dec, 2016 1 commit
    • Ken Martin's avatar
      Some openvr related bug and performance fixes · 0203dc6d
      Ken Martin authored
      There was a vsync issue that could cause significant performance
      issues and jitter in the VR display that was fixed.
      
      A sync point in the SaveGLState code was moved into
      External/vtkExternalOpenGLRenderWindow as that is the class
      that needs it.  A couple other minor performance improvements.
      0203dc6d
  18. 23 Sep, 2016 1 commit
  19. 29 Aug, 2016 1 commit
    • Ken Martin's avatar
      Add support for OpenVR and Oculus to VTK · a38815b8
      Ken Martin authored
      This topic adds support for VTK rendering using the
      oculus or OpenVR/Vive VR headsets. It also adds some
      core support classes that both these devices use to
      add support for 3D interaction events and picking via
      
        vtkRenderWindowInteractor3D
        vtkPropPicker3D
        vtkInteractorStyle3D
      
      These modules are designed to use the object factory
      mechanism to override the standard OpenGL RenderWindow.
      If needed, the override of the factory can be turned off
      Off is useful for apps that have a normal OpenGL window
      but may want to explicitly create an occulus or openVR
      window as a result of user input such as a menu option.
      
      This topic adds CMake find modules for SDL2, OculusSDK,
      and the OpenVR SDK.
      a38815b8