Difference between revisions of "Documentation/Labs"

From Slicer Wiki
Jump to: navigation, search
(Add image stacks lab)
(13 intermediate revisions by 4 users not shown)
Line 30: Line 30:
 
* [[{{FULLPAGENAME}}/Sequences|Sequences]]
 
* [[{{FULLPAGENAME}}/Sequences|Sequences]]
 
* [[{{FULLPAGENAME}}/Improving Markups|Improving Markups]]
 
* [[{{FULLPAGENAME}}/Improving Markups|Improving Markups]]
 +
* [[{{FULLPAGENAME}}/Surface Toolbox update|Surface Toolbox update]]
 +
* [[{{FULLPAGENAME}}/SampleDataModuleImprovements|Sample Data Module Improvements]]
 +
* [[{{FULLPAGENAME}}/BuildSystem_ImproveCMakeConfigurationTime|BuildSystem: Improve CMake configuration time]]
  
 
== Libraries ==
 
== Libraries ==
 
* [[{{FULLPAGENAME}}/VTK-Orientation|Design: Addition of orientation to VTK data structures]]
 
* [[{{FULLPAGENAME}}/VTK-Orientation|Design: Addition of orientation to VTK data structures]]
 +
* [[{{FULLPAGENAME}}/VTK-String|Design: Make VTK strings encoding aware]]
  
 
== Python ==
 
== Python ==
Line 40: Line 44:
  
 
== Compilers & IDE ==
 
== Compilers & IDE ==
* Modernize to c++11
+
* [[{{FULLPAGENAME}}/ModernizeC++|Modernize to c++11 and beyond]]
 
 
'''The use of auto'''
 
 
 
  run-clang-tidy.py -checks=-*,modernize-use-auto  -header-filter=.* -fix
 
 
 
The automatic fix use auto in cases where static_cast is used:
 
 
 
  - int a = static_cast<int>(something);
 
  + auto a = static_cast<int>(something);
 
 
 
No much gain on this particular case, however, when using iterators and other verbose types, it really helps readability.
 
 
 
The change should be discussed with the main developers to reach a consensus. VTK and ITK are using auto in a lot of cases.
 
 
 
 
 
 
 
'''Move not implemented constructors and assignment operators to the public interface'''
 
 
 
Now that we use = delete, we don't need the constructors and assignment operator to be in the private interface.
 
Moving them to the public interface is better. Including better integrations with IDE's.
 
 
 
 
 
'''Other modernizers'''
 
  clang-tidy --list-checks -checks='*' | grep "modernize"
 
    modernize-avoid-bind
 
    modernize-deprecated-headers
 
    modernize-loop-convert
 
    modernize-make-shared
 
    modernize-make-unique
 
    modernize-pass-by-value
 
    modernize-raw-string-literal
 
    modernize-redundant-void-arg
 
    modernize-replace-auto-ptr
 
    modernize-replace-random-shuffle
 
    modernize-return-braced-init-list
 
    modernize-shrink-to-fit
 
    modernize-unary-static-assert
 
    modernize-use-auto # ToDiscuss
 
    modernize-use-bool-literals
 
    modernize-use-default-member-init
 
    modernize-use-emplace # easy!
 
    modernize-use-equals-default # DONE
 
    modernize-use-equals-delete # DONE
 
    modernize-use-noexcept
 
    modernize-use-nullptr # DONE
 
    modernize-use-override # DONE
 
    modernize-use-transparent-functors
 
    modernize-use-uncaught-exceptions
 
    modernize-use-using # Better style, to discuss.
 
 
 
Check https://github.com/InsightSoftwareConsortium/ITK/tree/master/Utilities/ITKv5Preparation for a list of commands used in the
 
ITKv5 transition.
 
  
 
== Virtual Machines ==
 
== Virtual Machines ==
Line 105: Line 57:
  
 
== Source code management ==
 
== Source code management ==
* [[{{FULLPAGENAME}}/TransitionToGit|Transition to Git]]
+
* [[{{FULLPAGENAME}}/TransitionToGit|Transition to GitHub as authoritative version control system]]
  
 
== Extension ==
 
== Extension ==
 
+
* [[{{FULLPAGENAME}}/ExtensionsServer|Extensions Server (also described as Extensions Manager or Catalog)]]
 
* [[{{FULLPAGENAME}}/ExtensionsFrameworkRoadmap|Extensions Framework Roadmap]]
 
* [[{{FULLPAGENAME}}/ExtensionsFrameworkRoadmap|Extensions Framework Roadmap]]
 
* [[{{FULLPAGENAME}}/CustomSlicerGenerator|Custom Slicer Generator]]
 
* [[{{FULLPAGENAME}}/CustomSlicerGenerator|Custom Slicer Generator]]
Line 118: Line 70:
 
* [[{{FULLPAGENAME}}/ApplicationUsageAnalytics|Application usage analytics]]
 
* [[{{FULLPAGENAME}}/ApplicationUsageAnalytics|Application usage analytics]]
 
* [[{{FULLPAGENAME}}/Plotting2DLineSegments|Plotting 2D Line Segments]]
 
* [[{{FULLPAGENAME}}/Plotting2DLineSegments|Plotting 2D Line Segments]]
 +
* [[{{FULLPAGENAME}}/Slicer_Visualization_module|Brain Connectome Visualization]]
  
 
== Packaging ==
 
== Packaging ==
* [[{{FULLPAGENAME}}/HomebrewCask|Homebrew Cask]
+
* [[{{FULLPAGENAME}}/HomebrewCask|Homebrew Cask]]
 +
 
 +
== Image Stacks ==
 +
* [[{{FULLPAGENAME}}/ImageStacks|Image Stacks]]
  
 
= Completed =
 
= Completed =

Revision as of 13:59, 1 October 2019

Home < Documentation < Labs

This is the place where we will keep track of our experiments and projects.

On-going

Roadmap

Internals

Libraries

Python

Compilers & IDE

Virtual Machines

Documentation

Tutorials

Source code management

Extension

Functionalities

Packaging

Image Stacks

Completed

Extension

Internals

Libraries

Python

Compilers & IDE

Modules

Tutorials testing

Debug

Internals


Abandoned