1. 17 Apr, 2018 1 commit
    • lassoan's avatar
      ENH: Added new volume rendering quality option: Normal · e94653c8
      lassoan authored
      SetLockSampleDistanceToInputSpacing usually provides good quality rendering at acceptable speed, but on slow computers or in virtual reality views (where very high frame rate is needed), it is still necessary to allow choose between volume rendering speed and quality.
      
      Added a new option to clearly distinguish between quality settings:
      - adaptive: sampling computed from desired fps
      - normal: sampling computed from input volume
      - maximum quality: sampling computed from input volume, with 10x oversampling
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27153 3bd1e089-480b-0410-8dfb-8563597acbee
      e94653c8
  2. 16 Mar, 2018 1 commit
  3. 13 Mar, 2018 1 commit
    • pinter's avatar
      ENH: Added performance related options to GPU volume rendering · 4e01304f
      pinter authored
      - Added option to use the mapper's feature LockSampleDistanceToInputSpacing to calculate it internally instead of setting sampling distance manually. On by default. Only applies to GPU rendering in adaptive mode.
      - Added UseJittering option to GPU display node and the UI in advanced rendering properties (called Surface smoothing). If turned on, then uses random noise to remove the wood-grain artifact. Off by default.
      - Widened range of FPS slider for adaptive mode to accommodate for new virtual reality use cases (maximum used to be 20, now it is 100)
      - Removed empty "Misc" tab from Volume rendering module UI
      - Fixed ctkDoubleSlider related warning message
      - Modernized vtkMRMLVolumeRenderingDisplayNode to use node references and new property macros. This fixed several bugs as well (e.g. not reading/writing attributes). Removed the related test step from vtkMRMLVolumePropertyNodeTest1
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27072 3bd1e089-480b-0410-8dfb-8563597acbee
      4e01304f
  4. 10 Mar, 2018 1 commit
  5. 08 Mar, 2018 1 commit
  6. 24 Feb, 2018 1 commit
    • pinter's avatar
      ENH: Separated volume rendering preset combobox from module widget · f4b50114
      pinter authored
      The Volume Rendering module widget handled everything, which made the class quite big, and also prevented reusing the preset combobox in other modules or slicelets.
      
      - Added reusable qSlicerVolumeRenderingPresetComboBox class that contains the combobox and the shift slider
      - Added EffectiveRange member to vtkMRMLVolumePropertyNode. It sets a custom extent to the transfer functions so that only the meaningful part of it is shown (and not the long tails). Thus the shift slider is much less sensitive and is more user friendly
      - Added effectiveRange attribute to presets.xml. For now the effective range is between the second and last second points for CTs, first and second last for MRs
      - Removed calculation of transfer function extent based on volume scalar range. The effective range is always valid, and contains a meaningful range (if not then encompasses the transfer function bounds), so this is not necessary anymore (and the combobox class is also cleaner)
      - Instead of only moving the middle points of the transfer function, all the points are moved. This fixes the bug of squashing the transfer function if it was shifted beyond its extreme points (bounds)
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@26955 3bd1e089-480b-0410-8dfb-8563597acbee
      f4b50114
  7. 13 Aug, 2017 1 commit
  8. 24 Mar, 2017 1 commit
    • pinter's avatar
      STYLE: Indentation related changes · 4e0a67e3
      pinter authored
      1. vtkMRMLNode::Indent member seemed unused in the core, except from the also unused ROI list node, so the member was removed
      
      2. In WriteXML functions, the increasing indentation was added between the XML attributes, which did not have major effect on the top level, but for example in the scene view section, where indentation was increased, it made the nodes look like this:
      
        <Selection
          id="vtkMRMLSelectionNodeSingleton"    name="Selection"    hideFromEditors="true"    selectable="true"    selected="false"    singletonTag="Singleton"
      
      As the purpose of indentation is to add space in front of the _lines_, adding that space between the XML attributes seems unnecessary. With these changes, the same entry now looks like this:
      
        <Selection
          id="vtkMRMLSelectionNodeSingleton" name="Selection" hideFromEditors="true" selectable="true" selected="false"
      
      History:
      
      In the first implementation of `WriteXML()`, the name of the node (e.g vtkMRMLModelNode.cxx) was explicitly serialized and indented in the function by explicitly using `nIndent`.
      See r40 (COMP: added vtkITK and MRML libs). Code like this was used:
      
          vtkIndent i1(nIndent);
          of << i1 << "<Model";
      
          of << " id='" << this->ID << "'";
          if (this->Name && strcmp(this->Name, ""))
          {
            of << " name='" << this->Name << "'";
          }
          [...]
          if (this->Color && strcmp(this->Color, ""))
          {
            of << " color='" << this->Color << "'";
          }
      
      Then, this approach was reviewed in r133 (ENH: more transform functionality) by systematically calling the base class implementation of WriteXML() function.
      
      Code above was then updated like this:
      
         Superclass::WriteXML(of, nIndent);
         vtkIndent indent(nIndent);
      
         if (this->Color && strcmp(this->Color, ""))
         {
           of << indent << " color='" << this->Color << "'";
         }
      
      This commit simplifies the XML serialization and explicitly mark `indent` parameter as deprecated.
      
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@25870 3bd1e089-480b-0410-8dfb-8563597acbee
      4e0a67e3
  9. 20 Oct, 2016 1 commit
  10. 01 Sep, 2016 1 commit
  11. 31 Aug, 2016 1 commit
  12. 13 Jun, 2016 1 commit
  13. 01 Apr, 2016 1 commit
    • lassoan's avatar
      ENH: Simplified hiding of volume rendering display nodes · 4a97483f
      lassoan authored
      Volume rendering display node was set to be hidden at the lowest level of the class hierarchy:
      * vtkMRMLCPURayCastVolumeRenderingDisplayNode -> this->SetHideFromEditors(1);
      * vtkMRMLVolumeRenderingDisplayNode -> this->SetHideFromEditors(false);
      * vtkMRMLDisplayNode -> this->HideFromEditors = 1;
      * vtkMRMLNode -> this->HideFromEditors = 0;
      
      This was unnecessarily complex and confusing. Simplified it by removing HideFromEditors flag adjustment in all volume rendering display node base class and all children classes:
      * vtkMRMLDisplayNode -> this->HideFromEditors = 1;
      * vtkMRMLNode -> this->HideFromEditors = 0;
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@24997 3bd1e089-480b-0410-8dfb-8563597acbee
      4a97483f
  14. 31 Mar, 2016 1 commit
  15. 01 Dec, 2015 1 commit
    • jcfr's avatar
      STYLE: Remove VTKv5 support · e8a2e18e
      jcfr authored
      As discussed during the developer hangout of 2015-03-31, this commit
      removes support for VTKv5.
      
      Most of the h/cxx files have been updated automatically using the
      script "slicer_remove_vtk5_support.py" [1]. See below.
      
      The remaining of h/cxx, python and CMake files have been updated
      manually.
      
      
      slicer_remove_vtk5_support.py:
      cd ~/Project/Slicer
      ~/Download/slicer_remove_vtk5_support.py $(ack -l VTK_MAJOR_VERSION)
      
      [1] https://gist.github.com/jcfr/91d2f5d07c2a36320e48
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@24801 3bd1e089-480b-0410-8dfb-8563597acbee
      e8a2e18e
  16. 29 Sep, 2015 1 commit
    • naucoin's avatar
      BUG: fix volume property file extensions for saving · 4f65338f
      naucoin authored
      When fixing the repeated file extensions problem, the
      volume property files were missed. The problem
      came up when loading in a volume property file
      via add data (rather than a scene file) then
      trying to save it again. The node was named with
      the .vp file extension and then the file name
      was adjusted to add another .vp to the end. This
      fix changes the the name of the node to exclude
      the extension so it will save correctly.
      
      Added testing for the AddVolumePropertyFromFile
      method and added some checks to it for missing
      scene and file names. Added the supported
      write types as well.
      
      Issue #3956
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@24583 3bd1e089-480b-0410-8dfb-8563597acbee
      4f65338f
  17. 08 Mar, 2015 1 commit
  18. 19 Jan, 2015 3 commits
  19. 30 Oct, 2014 1 commit
  20. 18 Jul, 2014 1 commit
  21. 08 May, 2014 1 commit
  22. 02 May, 2014 1 commit
  23. 26 Mar, 2014 1 commit
    • hjohnson's avatar
      STYLE: Remove end of line spaces · a331fb08
      hjohnson authored
      Spaces at the end of lines can cause noise in patch sets
      when editors or git gobbles them up during other relatively
      minor changes to files.
      
      Removing end of line changes makes long term maintenance easier as
      well.
      
      When reviewing git histories or patch sets, the "--ignore-space-change"
      option can be useful in filtering out changes due only to spacing.
      
      i.e.
      git diff HEAD~2 --ignore-space-change
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@23021 3bd1e089-480b-0410-8dfb-8563597acbee
      a331fb08
  24. 23 Jul, 2013 1 commit
  25. 11 Jul, 2013 1 commit
  26. 26 Sep, 2012 1 commit
  27. 25 Sep, 2012 2 commits
  28. 21 Sep, 2012 1 commit
    • finetjul's avatar
      BUG: SceneView was not re-ID-ing some MRML nodes · 35485cb5
      finetjul authored
      When importing a scene view, if there are conflicts with the current
      scene, it updates the ID of its nodes (see
      vtkMRMLSceneViewNode::UpdateScene).
      But when changing the ID of a node, one needs to update the nodes that
      reference to these ID. This is done by
      vtkMRMLSceneViewNode::UpdateNodeReferences. But some nodes (e.g.
      vtkMRMLVolumeRenderingDisplayNode) were not propagating the id change to
      subclasses.
      This was the case of the view node ID being changed that wasn't applied
      to the volume rendering display node in a scene view node.
      Issue #1744
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@21027 3bd1e089-480b-0410-8dfb-8563597acbee
      35485cb5
  29. 17 Sep, 2012 1 commit
  30. 15 Sep, 2012 1 commit
  31. 29 Jun, 2012 1 commit
  32. 24 Jun, 2012 1 commit
  33. 14 Jun, 2012 1 commit
    • finetjul's avatar
      ENH: Redesign ModifiedSinceRead · be2d5e78
      finetjul authored
      ModifiedSinceRead can no longer be set externally, it's the nodes themselves that computes it based on the last time the data was stored and on the modifications.
      ModifiedSinceRead is no longer a vtkMRMLNode property but a vtkMRMLStorableNode property.
      The storage nodes have been cleaned-up (factorized) in the process.
      At exit time, the scene is checked to see if it has been modified or if its storable nodes have been modified since read/write.
      
      Some other changes:
      Removed vtkMRMLModelNode::GetDefaultWriteFileExtension() it is a duplicate from vtkMRMLModelStorageNdoe::GetDefaultWriteFileExtension()
      Removed vtkMRMLColorNode::AddColorName() as it is not used and increase code complexity
      Removed vtkMRMLAnnotation*StorageNode::WriteData(vtkMRMLNode* refNode) as it was doing the same than vtkMRMLAnnotationStorageNode::WriteData(vtkMRMLNode* refNode)
      
      Remaining issues:
      The check on the modified scene is not perfect and can be fine tuned.
      The loading of annotations are marking the nodes as ModifiedSinceRead but it shouldn't.
      The loading of a vtkMRMLVolumePropertyNode from within a scene load incorrectly marks the node as ModifiedSinceRead
      
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@20360 3bd1e089-480b-0410-8dfb-8563597acbee
      be2d5e78
  34. 07 Jun, 2012 1 commit
  35. 26 May, 2012 1 commit
  36. 12 Mar, 2012 1 commit
  37. 22 Feb, 2012 1 commit