1. 18 Nov, 2019 2 commits
    • Kitware Robot's avatar
      clang-format: reformat using clang-format-8 · ac76fe16
      Kitware Robot authored
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 8.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      ac76fe16
    • Kitware Robot's avatar
      clang-format: remove semicolons from definitions · 40f8c44d
      Kitware Robot authored
      clang-format treats them as declarations and formats accordingly.
      40f8c44d
  2. 22 Jul, 2019 1 commit
    • Ken Martin's avatar
      Add some support for volume rendering oriented volumes · 19883824
      Ken Martin authored
      This topic reqorks a number of areas to support oriented
      volumes in volume rendering. It also changes some code
      that computed the near view plane manually to instead
      use the plane defined by the camera. which hopefully
      will address some cave rendering issues in addition to
      being a bit more correct.
      19883824
  3. 07 Jan, 2018 1 commit
  4. 02 Jan, 2018 1 commit
    • Alvaro Sanchez's avatar
      Added support for multiple volume inputs in GPUVolumeRayCastMapper · a632f77e
      Alvaro Sanchez authored
      When multiple inputs are rendered through the same mapper, it is possible to
      composite overlapping areas correctly. Inputs are connected directly to
      the mapper and their parameters (transfer functions, transformations, etc.) are
      specified through standard vtkVolume instances. These vtkVolume instances are
      to be registered in a special vtkProp3D, vtkMultiVolume.  vtkMultiVolume
      represents a 3D space containing a set of vtkVolume instances which could be
      but are not necessarily overlapping, this instance computes the bounding-box
      containing all of its registered vtkVolumes.
      
      vtkGPUVolumeRayCastMapper prepares and keeps track of the inputs as they are
      allowed to be disconnected at any time. vtkOpenGLGPUVRCMapper's internals
      particular to an input (vtkVolumeTexture, OpenGL helper instances, etc.) have
      been promoted to a separate class vtkVolumeInputHelper. Other internals (such as
      ComputeBounds, ComputePointToCellMatrix and related variables) have been moved
      into vtkVolumeTexture as they are inherent to the texture definition (or
      some of its blocks during streaming).
      
      A separate code path is used when rendering multiple-inputs in order to
      facilitate the co-existance of these two modes (single/multiple), due to current
      feature incompatibilities with multiple inputs (e.g. texture-streaming, cropping,
      etc.). Splitting DoGPURender into various smaller routines improves code
      reusability between these two paths.
      
      A limited set of the mapper features are currently supported for multiple
      inputs:
      
        * Transfer functions: these are defined separately for per input.
          + 1D color
          + 1D scalar opacity
          + 1D gradient magnitude opacity
          + 2D scalar-gradient magnitude
      
        * Point and cell data
          + With the limitation that all of the inputs are assumed to share the same
          name/id.
      
        * Composite blending (front-to-back)
      
      Test cases:
      
        * TestGPURayCastMultiVolumeOverlapping
        * TestGPURayCastMultiVolumeTransfer2D
        * TestGPURayCastMultiVolumeAddRemove
        * TestGPURayCastMultiVolumeCellData
      a632f77e