1. 04 Mar, 2019 1 commit
    • lassoan's avatar
      ENH: Reworked markups fiducials and added line, angle, and curves · 6289b334
      lassoan authored
      - New markups: angle, line, open curve, closed curve
      - Speed improvement: thousands of markup points can be visualized and interactively manipulated (previously, the limit was about 50-100 points)
      - Live preview: preview of markup position and label is shown during placement in all views, current point is highlighted in all views
      - Slide on surface: in 3D views, markups are kept on visible surfaces (previously, placement was done on visible surface, but adjustments were simply constrained to the view plane)
      - Improved keyboard shortcuts:
        - LeftClick to jump to control point
        - LeftClick-and-drag: translate control point
        - Delete: delete highlighted markup
        - Ctrl-LeftClick: insert point along line
        - MiddleClick-and-drag: translate widget (experimental)
      - Labels in 3D can no longer be partially obscured by 3D geometry (sometimes labels are visible when the corresponding markup is not visible anymore, but this will be fixed soon)
      - Point picking in 3D views is unstable
      Infrastructure improvements:
      - Focus management is centralized (interactor style queries all the displayable managers if they can process the event and then forwards the event for processing to the most suitable one). This allows much faster event management than using VTK's picking manager.
      - Interaction events are converted to vtkEventData type (originally introduced for virtual reality), which can carry all important metadata with them (display and world position, key modifiers, associated view and data nodes, etc.). This allows processing all kinds of interaction events (mouse, keyboard, virtual reality, any new interaction devices, etc.) using the same framework and modules have easy access to lots of metadata in all interaction events.
      - Maximum number of markups can be specified for markups fiducials (e.g., if it is set to 1 then the markup node can be used for getting a single point from the user).
      - Any point can be placed again (no user interface for this yet) - this can be used for predefining markup names and then place them.
      - Keyboard shortcuts are configurable (no user interface yet) - flexible module/application specific keyboard mapping is feasible (VTK's event translator does not support event translation with modifiers, widget-state-dependent shortcuts, etc.)
      - No more synchronization needed between MRML and widget states: widget states are directly stored in MRML, including point positions (as vtkPolyData) - in local and world coordinate system. This removed lots of synchronization overhead and potential for bugs.
      Note that this first set of changes is just a beginning of a number of new features and improvements.
      Co-authored-by: Andras Lasso's avatarAndras Lasso <lasso@queensu.ca>
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27974 3bd1e089-480b-0410-8dfb-8563597acbee
  2. 01 Mar, 2019 1 commit
    • lassoan's avatar
      BUG: Fix mouse cursor in Segment Editor · 4f2e0807
      lassoan authored
      Since recent updates in VTK Qt widget, when a Segment Editor effect was active the mouse cursor remained the default arrow cursor.
      Fixed by adding setViewCursor() method that calls appropriate method to change the cursor shape, and calling this method from Segment Editor.
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27971 3bd1e089-480b-0410-8dfb-8563597acbee
  3. 12 Feb, 2019 1 commit
  4. 11 Feb, 2019 1 commit
  5. 09 Feb, 2019 1 commit
    • pieper's avatar
      ENH: add option to save plot contents as svg · 13dc03cb
      pieper authored
      Allows a command like:
      will create a file /tmp/awesome.svg
      TODO: this can be connected to a GUI element (button in the plot
      controller widget that opens a save-as dialog).
      From: Steve Pieper <pieper@isomics.com>
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27961 3bd1e089-480b-0410-8dfb-8563597acbee
  6. 08 Feb, 2019 1 commit
  7. 06 Feb, 2019 1 commit
  8. 01 Feb, 2019 1 commit
  9. 26 Jan, 2019 1 commit
  10. 21 Jan, 2019 2 commits
  11. 30 Dec, 2018 1 commit
    • cpinter's avatar
      ENH: Improve automatic oversampling calculation · 8b119430
      cpinter authored
      Relative structure size was calculated based on the volume of the whole image instead of a single voxel. With this change the size of a single voxel is considered for the RSS measure (cubic root of the ratio of the structure volume and the volume of one voxel in the reference image, i.e. the number of voxels the structure spans on average along each axis). The fuzzy sets have also been updated.
      This fixes the problem with very low or very high resolution images.
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27675 3bd1e089-480b-0410-8dfb-8563597acbee
  12. 28 Dec, 2018 1 commit
  13. 23 Dec, 2018 1 commit
  14. 17 Dec, 2018 1 commit
    • lassoan's avatar
      BUG: Fix error: AddMRMLDisplayableManagerEvent - eventId:16004 already added · 393509c2
      lassoan authored
      Since some refactoring in related code, such errors appeared in the log:
      ERROR: In C:\SAB\P\Slicer-0\Libs\MRML\DisplayableManager\vtkMRMLAbstractDisplayableManager.cxx, line 801
      vtkMRMLAbstractDisplayableManager (000001F5B12AC5E0): AddMRMLDisplayableManagerEvent - eventId:16004 already added
      The problem was that vtkMRMLAbstractDisplayableManager::AddMRMLDisplayableManagerEvent used GetSize() to get number of values in this->Internal->MRMLDisplayableNodeObservableEvents array. GetSize() returns the array capacity, not the actual number of values in the array. As elements are added to an array, capacity is increased exponentially (0, 1, 3, 7, ...) while actual size is increased linearly (0, 1, 2, ...), so uninitialized values were read from the array's buffer (which sometimes contained ID of already added events).
      I've checked all other uses of GetSize() in the code based and fixed them (except errors in Charts classes, as they will be removed soon anyway).
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27663 3bd1e089-480b-0410-8dfb-8563597acbee
  15. 16 Dec, 2018 2 commits
  16. 15 Dec, 2018 1 commit
  17. 14 Dec, 2018 3 commits
  18. 11 Dec, 2018 2 commits
  19. 06 Dec, 2018 3 commits
    • cpinter's avatar
      ENH: Add subject hierarchy filter by node type · 7daf5377
      cpinter authored
      - Subject hierarchy can now filter items based on the node types of their associated data nodes.
        - NodeTypes is a list of MRML node class names that are accepted (including all subclasses)
        - HideChildNodeTypes list allows excluding subclasses that NodeTypes would otherwise allow
      - Propagate new filters to SH tree view and combobox widgets
      - Fix issue where an item was shown because of its virtual branch content although the item was rejected by a filter
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27615 3bd1e089-480b-0410-8dfb-8563597acbee
    • jcfr's avatar
      ENH: Add MRMLSliceNode property to allow show/hide of reformat widget outline · f0961601
      jcfr authored
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27613 3bd1e089-480b-0410-8dfb-8563597acbee
    • jcfr's avatar
      COMP: Fix configuration warning setting CMP0074 to NEW · 8b9ea758
      jcfr authored
      This commit updates build system of external projects and Slicer to address
      warnings like the following:
        CMake Warning (dev) at CMakeLists.txt:393 (FIND_PACKAGE):
          Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
          Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
          command to set the policy and suppress this warning.
          CMake variable ZLIB_ROOT is set to:
          For compatibility, CMake is ignoring the variable.
        This warning is for project developers.  Use -Wno-dev to suppress it.
      List of ITK changes:
      $ git shortlog a44f430b3e..87f5d83f15 --no-merges
      Jean-Christophe Fillion-Robin (1):
            COMP: Set CMP0074 to NEW [backport]
      List of LibArchive changes:
      $ git shortlog 944ab1d0..0737ce70 --no-merges
      Jean-Christophe Fillion-Robin (1):
            cmake: Set CMP0074 to NEW
      List of curl changes:
      $ git shortlog 0722f23..c5e0ea129 --no-merges
      Simon Warta (1):
            [backport] cmake: Replace invalid UTF-8 byte sequence
      Note that the fix has not been integrated to curl because the version
      used is using its own FindZLIB module that is not using ZLIB_ROOT.
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27609 3bd1e089-480b-0410-8dfb-8563597acbee
  20. 05 Dec, 2018 4 commits
  21. 04 Dec, 2018 3 commits
  22. 01 Dec, 2018 1 commit
    • pieper's avatar
      ENH: set associated node for fiducial on volume · f1b55fc9
      pieper authored
      As described by @smrolfe in this issue [1], the associated
      node ID for for a markup fiducial was being set when selecting
      a model, but not when selecting a model.
      This commit adds a path to detect when a volume has
      been used for the pick and sets the node id accordingly.
      TODO: the mapping between the picked vtkDataSet and the
      associated MRML node should not be hard-coded.  The current
      solution is able to rely on the abstract display node interface
      and searching for nodes by classname (string), but a better
      solution would create some abstract methods.  This would allow
      support for Segmentations and other loadable node types without
      hard coding them here.
      [1] https://discourse.slicer.org/t/vtkmrmlmodeldisplayablemanager-issue/4709
      Thanks: Sara Rolfe <smrolfe@u.washington.edu>
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27588 3bd1e089-480b-0410-8dfb-8563597acbee
  23. 25 Nov, 2018 2 commits
  24. 16 Nov, 2018 1 commit
  25. 13 Nov, 2018 2 commits
  26. 08 Nov, 2018 1 commit