]> Creatis software - cpPlugins.git/commitdiff
Merge branch 'master' of ssh://git.creatis.insa-lyon.fr/cpPlugins
authorLeonardo Florez <leonardo@iMac-de-Andrea.local>
Thu, 16 Feb 2017 21:13:05 +0000 (16:13 -0500)
committerLeonardo Florez <leonardo@iMac-de-Andrea.local>
Thu, 16 Feb 2017 21:13:05 +0000 (16:13 -0500)
32 files changed:
dependencies/cpPlugins_ThirdParty_Install_linux.sh [new file with mode: 0755]
dependencies/qt-4.8.6_MAC.patch [moved from dependencies/qt-4.8.6.patch with 100% similarity]
lib/cpExtensions/Algorithms/SkeletonWriter.hxx
lib/cpExtensions/DataStructures/Skeleton.h
lib/cpExtensions/DataStructures/Skeleton.hxx
lib/cpInstances/DataObjects/Image.h
lib/cpInstances/DataObjects/Mesh.h
lib/cpInstances/DataObjects/PolyLineParametricPath.h
lib/cpInstances/DataObjects/Simple3DCurve.h
lib/cpInstances/DataObjects/Skeleton.h
lib/cpPlugins/Config.h.in
lib/cpPlugins/Interface/Loader.h
lib/cpPlugins/Pipeline/Object.h
lib/cpPlugins/Pipeline/Port.h
lib/cpPlugins/Pipeline/ProcessObject.h
lib/cpPlugins/Pipeline/Widget.h
plugins/GenericPlugins/DataReproducer.h
plugins/IO/ImageJSkeletonWriter.h
plugins/ITKIO/DicomSeriesReader.h
plugins/ITKIO/ImageReader.h
plugins/ITKIO/ImageWriter.h
plugins/ITKImageInterpolators/BSplineInterpolateImageFunction.h
plugins/ITKImageInterpolators/InterpolateImageFunction.h
plugins/ITKImageInterpolators/LinearInterpolateImageFunction.h
plugins/VTKIO/MeshReader.h
plugins/VTKIO/MeshWriter.h
plugins/VTKWidgets/LineWidget.h
plugins/VTKWidgets/SeedWidget.h
plugins/VTKWidgets/SplineWidget.h
plugins/cpExtensions/PolyLineParametricPathWriter.h
plugins/cpExtensions/SkeletonReader.h
plugins/cpExtensions/SkeletonWriter.h

diff --git a/dependencies/cpPlugins_ThirdParty_Install_linux.sh b/dependencies/cpPlugins_ThirdParty_Install_linux.sh
new file mode 100755 (executable)
index 0000000..a2c92dc
--- /dev/null
@@ -0,0 +1,317 @@
+#!/bin/bash
+
+## ====================================
+## == Some base configuration values ==
+## ====================================
+
+cmake_min_version="3.0"
+qt_min_version="4.8"
+number_of_cores=`grep -c ^processor /proc/cpuinfo`
+number_of_threads=`expr $number_of_cores / 2`
+
+## =================================
+## == Compare two version strings ==
+## =================================
+
+function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
+
+## ==============================
+## == Try to locate base tools ==
+## ==============================
+
+gpp_exe=`which g++`
+if [ -z "gpp_exe" ]; then
+    echo "ERROR: \"g++\" program was not found."
+    echo "ERROR: Please install \"g++\""
+fi
+
+make_exe=`which make`
+if [ -z "$make_exe" ]; then
+    echo "ERROR: \"make\" program was not found."
+    echo "ERROR: Please install \"make\""
+fi
+
+## ===============
+## == Verify Qt ==
+## ===============
+
+read -p "Do you want to use Qt4.8? [y/N] " -n 1 -r
+echo
+if [[ $REPLY =~ ^[Yy]$ ]]; then
+    cont=true
+    qmake_exe=`which qmake`
+    while [ $cont == true ]; do
+        if [ -z "$qmake_exe" ]; then
+            read -e -p "Please provide a valid location for qmake: " tmp
+            eval tmp=$tmp
+            qmake_exe=`readlink -f $tmp`
+        fi
+        read -p "I am going to use \"$qmake_exe\" as the entry tool for Qt. Is this ok? [y/N] " -n 1 -r
+        echo
+        if [[ $REPLY =~ ^[Nn]$ ]]; then
+            qmake_exe=""
+        else
+            cont=false
+        fi
+    done
+    qt_version=`$qmake_exe -v | grep Using\ Qt\ version | sed 's/Using\ Qt\ version\ //g'`
+    if version_gt $qt_min_version $qt_version; then
+        echo "FATAL ERROR: your Qt version is $qt_version, but needed version should be at least $qt_min_version"
+    fi
+fi
+
+## ==================
+## == Verify cmake ==
+## ==================
+
+cmake_qt_options="--no-qt-gui"
+if [ -x "$qmake_exe" ]; then
+    cmake_qt_options="--qt-gui --qt-qmake=$qmake_exe"
+fi
+
+cont=true
+cmake_exe=`which cmake`
+while [ $cont == true ]; do
+    if [ -z "$cmake_exe" ]; then
+        read -e -p "Please provide a valid location for cmake: " tmp
+        eval tmp=$tmp
+        cmake_exe=`readlink -f $tmp`
+    fi
+    read -p "I am going to use \"$cmake_exe\". Is this ok? [y/N] " -n 1 -r
+    echo
+    if [[ $REPLY =~ ^[Nn]$ ]]; then
+        cmake_exe=""
+    else
+        cont=false
+    fi
+done
+if [ -z $cmake_exe ]; then
+    echo "FATAL ERROR: cmake is really needed to build cpPlugins."
+    exit 1
+fi
+
+cmake_mime=`file -bzk --mime-type $cmake_exe`
+if [ "$cmake_mime" != "application/x-executable" ]; then
+    echo "WARNING: I will try to compile cmake..."
+    if [[ -f $cmake_exe ]]; then
+        if [ "$cmake_mime" == "application/x-tar" ]; then
+            sub_mime=`file -b --mime-type $cmake_exe`
+            if [ $sub_mime == "application/gzip" ]; then
+                cmake_source_dir=`dirname $cmake_exe`/`basename $cmake_exe .tar.gz`
+                cmake_binary_dir=`dirname $cmake_exe`/`basename $cmake_exe .tar.gz`-build
+                echo -n "==> Extracting cmake sources... "
+                rm -rf $cmake_source_dir $cmake_binary_dir
+                mkdir -p $cmake_source_dir $cmake_binary_dir
+                tar xzf $cmake_exe -C $cmake_source_dir --strip-components=1
+                echo "done."
+            fi
+        fi
+    elif [[ -d $cmake_exe ]]; then
+        cmake_source_dir="$cmake_exe"
+        cmake_binary_dir="$cmake_exe"-build
+    else
+        echo "FATAL ERROR: $cmake_exe is not a valid file/directory"
+        exit 1
+    fi
+
+    read -e -p "==> Please provide instalation location for \"cmake\": " tmp
+    eval tmp=$tmp
+    cmake_prefix=`readlink -f $tmp`
+
+    echo "==> Configuring sources... "
+    cd $cmake_binary_dir
+    $cmake_source_dir/bootstrap --prefix=$cmake_prefix $cmake_qt_options
+    echo "==> Configuring sources... done."
+
+    echo "==> Compiling sources..."
+    cd $cmake_binary_dir
+    make -j$number_of_threads
+    echo "==> Compiling sources... done."
+
+    echo "==> Installing package..."
+    cd $cmake_binary_dir
+    make -j install
+    echo "==> Installing package... done."
+    cmake_exe=$cmake_binary_dir/bin/cmake
+fi
+cmake_version=`$cmake_exe --version | grep version | sed 's/cmake\ version\ //g'`
+
+if version_gt $cmake_min_version $cmake_version; then
+    echo "FATAL ERROR: your cmake version is $cmake_version, but needed version should be at least $cmake_min_version"
+fi
+
+## ===============
+## == Build VTK ==
+## ===============
+
+cont=true
+vtk_sources=""
+while [ $cont == true ]; do
+    if [ -z "$vtk_sources" ]; then
+        read -e -p "Please provide a valid location for VTK: " tmp
+        eval tmp=$tmp
+        vtk_sources=`readlink -f $tmp`
+    fi
+    read -p "I am going to use \"$vtk_sources\". Is this ok? [y/N] " -n 1 -r
+    echo
+    if [[ $REPLY =~ ^[Nn]$ ]]; then
+        vtk_sources=""
+    else
+        cont=false
+    fi
+done
+if [ -z $vtk_sources ]; then
+    echo "FATAL ERROR: VTK is really needed to build cpPlugins."
+    exit 1
+fi
+
+echo "Now, I will try to compile VTK..."
+vtk_mime=`file -bzk --mime-type $vtk_sources`
+if [[ -f $vtk_sources ]]; then
+    if [ "$vtk_mime" == "application/x-tar" ]; then
+        sub_mime=`file -b --mime-type $vtk_sources`
+        if [ $sub_mime == "application/gzip" ]; then
+            vtk_source_dir=`dirname $vtk_sources`/`basename $vtk_sources .tar.gz`
+            vtk_binary_dir=`dirname $vtk_sources`/`basename $vtk_sources .tar.gz`-build
+            echo -n "==> Extracting VTK sources... "
+            rm -rf $vtk_source_dir $vtk_binary_dir
+            mkdir -p $vtk_source_dir $vtk_binary_dir
+            tar xzf $vtk_sources -C $vtk_source_dir --strip-components=1
+            echo "done."
+        fi
+    fi
+elif [[ -d $vtk_sources ]]; then
+    vtk_source_dir="$vtk_sources"
+    vtk_binary_dir="$vtk_sources"-build
+else
+    echo "FATAL ERROR: $vtk_sources is not a valid file/directory"
+    exit 1
+fi
+
+read -e -p "==> Please provide instalation location for \"VTK\": " tmp
+eval tmp=$tmp
+vtk_prefix=`readlink -f $tmp`
+
+vtk_build_type=MinSizeRel
+
+echo "==> Configuring sources... "
+cd $vtk_binary_dir
+if [ -x "$qmake_exe" ]; then
+    $cmake_exe \
+        -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+        -DBUILD_DOCUMENTATION:BOOL=OFF \
+        -DBUILD_EXAMPLES:BOOL=OFF \
+        -DBUILD_SHARED_LIBS:BOOL=ON \
+        -DBUILD_TESTING:BOOL=OFF \
+        -DQT_QMAKE_EXECUTABLE:PATH=$qmake_exe \
+        -DCMAKE_BUILD_TYPE:STRING=$vtk_build_type \
+        -DModule_vtkGUISupportQt:BOOL=ON \
+        -DModule_vtkGUISupportQtOpenGL:BOOL=ON \
+        -DModule_vtkGUISupportQtSQL:BOOL=OFF \
+        -DModule_vtkGUISupportQtWebkit:BOOL=OFF \
+        -DCMAKE_INSTALL_PREFIX:PATH=$vtk_prefix \
+        $vtk_source_dir
+else
+    $cmake_exe \
+        -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+        -DBUILD_DOCUMENTATION:BOOL=OFF \
+        -DBUILD_EXAMPLES:BOOL=OFF \
+        -DBUILD_SHARED_LIBS:BOOL=ON \
+        -DBUILD_TESTING:BOOL=OFF \
+        -DCMAKE_BUILD_TYPE:STRING=$build_type \
+        -DCMAKE_INSTALL_PREFIX:PATH=$vtk_prefix \
+        $vtk_source_dir
+fi
+echo "==> Configuring sources... done."
+
+echo "==> Compiling sources..."
+cd $vtk_binary_dir
+make -j$number_of_threads
+echo "==> Compiling sources... done."
+
+echo "==> Installing package..."
+cd $vtk_binary_dir
+make -j install
+echo "==> Installing package... done."
+
+## ===============
+## == Build ITK ==
+## ===============
+
+cont=true
+itk_sources=""
+while [ $cont == true ]; do
+    if [ -z "$itk_sources" ]; then
+        read -e -p "Please provide a valid location for ITK: " tmp
+        eval tmp=$tmp
+        itk_sources=`readlink -f $tmp`
+    fi
+    read -p "I am going to use \"$itk_sources\". Is this ok? [y/N] " -n 1 -r
+    echo
+    if [[ $REPLY =~ ^[Nn]$ ]]; then
+        itk_sources=""
+    else
+        cont=false
+    fi
+done
+if [ -z $itk_sources ]; then
+    echo "FATAL ERROR: ITK is really needed to build cpPlugins."
+    exit 1
+fi
+
+echo "Now, I will try to compile ITK..."
+itk_mime=`file -bzk --mime-type $itk_sources`
+if [[ -f $itk_sources ]]; then
+    if [ "$itk_mime" == "application/x-tar" ]; then
+        sub_mime=`file -b --mime-type $itk_sources`
+        if [ $sub_mime == "application/gzip" ]; then
+            itk_source_dir=`dirname $itk_sources`/`basename $itk_sources .tar.gz`
+            itk_binary_dir=`dirname $itk_sources`/`basename $itk_sources .tar.gz`-build
+            echo -n "==> Extracting ITK sources... "
+            rm -rf $itk_source_dir $itk_binary_dir
+            mkdir -p $itk_source_dir $itk_binary_dir
+            tar xzf $itk_sources -C $itk_source_dir --strip-components=1
+            echo "done."
+        fi
+    fi
+elif [[ -d $itk_sources ]]; then
+    itk_source_dir="$itk_sources"
+    itk_binary_dir="$itk_sources"-build
+else
+    echo "FATAL ERROR: $itk_sources is not a valid file/directory"
+    exit 1
+fi
+
+read -e -p "==> Please provide instalation location for \"ITK\": " tmp
+eval tmp=$tmp
+itk_prefix=`readlink -f $tmp`
+
+itk_build_type=MinSizeRel
+
+echo "==> Configuring sources... "
+cd $itk_binary_dir
+$cmake_exe \
+    -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+    -DBUILD_DOCUMENTATION:BOOL=OFF \
+    -DBUILD_EXAMPLES:BOOL=OFF \
+    -DBUILD_SHARED_LIBS:BOOL=ON \
+    -DBUILD_TESTING:BOOL=OFF \
+    -DCMAKE_BUILD_TYPE:STRING=$itk_build_type \
+    -DModule_ITKReview:BOOL=ON \
+    -DModule_ITKVtkGlue:BOOL=OFF \
+    -DModule_ParabolicMorphology:BOOL=ON \
+    -DCMAKE_INSTALL_PREFIX:PATH=$itk_prefix \
+    $itk_source_dir
+echo "==> Configuring sources... done."
+
+echo "==> Compiling sources..."
+cd $itk_binary_dir
+make -j$number_of_threads
+echo "==> Compiling sources... done."
+
+echo "==> Installing package..."
+cd $itk_binary_dir
+make -j install
+echo "==> Installing package... done."
+
+## eof - $RCSfile$
index 76e05c117bdba8e356660d74c04ad7d37656d76a..15093f66301660e4b3999864814c293eed9bbf21 100644 (file)
@@ -5,6 +5,8 @@
 #ifndef __cpExtensions__Algorithms__SkeletonWriter__hxx__
 #define __cpExtensions__Algorithms__SkeletonWriter__hxx__
 
+#include <fstream>
+
 // -------------------------------------------------------------------------
 template< class _TSkeleton >
 const _TSkeleton* cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >::
@@ -66,11 +68,53 @@ void cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >::
 GenerateData( )
 {
   const TSkeleton* sk = this->GetInput( );
-  std::stringstream out;
-  out << TSkeleton::Dimension << std::endl;
-
-  // Write
   auto mIt = sk->BeginEdgesRows( );
+  auto rIt = mIt->second.begin( );
+  auto eIt = rIt->second.begin( );
+  auto path = *eIt;
+
+  // Write base information
+  std::stringstream out1, out2;
+  out1 << TSkeleton::Dimension << std::endl;
+  auto spa = path->GetSpacing( );
+  for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
+    out1 << spa[ d ] << " ";
+  out1 << std::endl;
+  auto dir = path->GetDirection( );
+  for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
+    for( unsigned int e = 0; e < TSkeleton::Dimension; ++e )
+      out1 << dir[ d ][ e ] << " ";
+  out1 << std::endl;
+  auto ori = path->GetOrigin( );
+  for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
+    out1 << ori[ d ] << " ";
+  out1 << std::endl;
+
+  // End points
+  auto end_points = sk->GetEndPoints( );
+  out1 << end_points.size( ) << std::endl;
+  for( auto point : end_points )
+  {
+    for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
+      out1 << point[ d ] << " ";
+    out1 << std::endl;
+
+  } // rof
+
+  // Bifurcations
+  auto bifurcations = sk->GetBifurcations( );
+  out1 << bifurcations.size( ) << std::endl;
+  for( auto point : bifurcations )
+  {
+    for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
+      out1 << point[ d ] << " ";
+    out1 << std::endl;
+
+  } // rof
+
+  // Write paths
+  unsigned long pathCount = 0;
+  mIt = sk->BeginEdgesRows( );
   for( ; mIt != sk->EndEdgesRows( ); ++mIt )
   {
     auto rIt = mIt->second.begin( );
@@ -80,46 +124,34 @@ GenerateData( )
       for( ; eIt != rIt->second.end( ); ++eIt )
       {
         auto path = *eIt;
+        pathCount++;
         unsigned int size = path->GetSize( );
-        auto spa = path->GetSpacing( );
-        auto ori = path->GetOrigin( );
-        auto dir = path->GetDirection( );
-        out << size << std::endl;
-        for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
-          out << spa[ d ] << " ";
-        out << std::endl;
-        for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
-          out << ori[ d ] << " ";
-        out << std::endl;
-        for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
-          for( unsigned int e = 0; e < TSkeleton::Dimension; ++e )
-          out << dir[ d ][ e ] << " ";
-        out << std::endl;
-
+        out2 << size << std::endl;
         for( unsigned int i = 0; i < path->GetSize( ); ++i )
         {
           auto v = path->GetVertex( i );
           for( unsigned int d = 0; d < TSkeleton::Dimension; ++d )
-            out << v[ d ] << " ";
+            out2 << v[ d ] << " ";
 
         } // rof
-        out << std::endl;
+        out2 << std::endl;
 
       } // rof
 
     } // rof
 
   } // rof
-  out << "0" << std::endl;
-
-  /* TODO
-     if( !( cpExtensions::Write( out.str( ), this->m_FileName ) ) )
-     itkExceptionMacro(
-     << "Unable to write skeleton to \""
-     << this->m_FileName
-     << "\""
-     );
-  */
+  out1 << pathCount << std::endl << out2.str( );
+
+  // Real write
+  std::ofstream file_stream( this->m_FileName.c_str( ), std::ofstream::binary );
+  if( !file_stream )
+    itkExceptionMacro(
+      << "Unable to write skeleton to \""
+      << this->m_FileName
+      << "\""
+      );
+  file_stream.write( out1.str( ).c_str( ), out1.str( ).size( ) );
 }
 
 #endif // __cpExtensions__Algorithms__SkeletonWriter__hxx__
index 9d0bd9b6296fabe2ab70993346984bda11054aa3..671b8acc529f282c7fd1427dddb5d497ec1d1a25 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <cpExtensions/DataStructures/Graph.h>
 #include <cpExtensions/DataStructures/PolyLineParametricPath.h>
+#include <vector>
 
 namespace cpExtensions
 {
@@ -35,6 +36,9 @@ namespace cpExtensions
       void AddBranch( TPath* path );
       const TPath* GetBranch( const TIndex& a, const TIndex& b ) const;
 
+      std::vector< TIndex > GetEndPoints( ) const;
+      std::vector< TIndex > GetBifurcations( ) const;
+
     protected:
       Skeleton( );
       virtual ~Skeleton( );
index e6635ae25c38c169e980bf854d22489757ce6600..12f463f3796055dd017ac03255623102e5e5839c 100644 (file)
@@ -38,6 +38,42 @@ GetBranch( const TIndex& a, const TIndex& b ) const
     return( null_path );
 }
 
+// -------------------------------------------------------------------------
+template< unsigned int _VDim >
+std::vector< typename cpExtensions::DataStructures::Skeleton< _VDim >::TIndex >
+cpExtensions::DataStructures::Skeleton< _VDim >::
+GetEndPoints( ) const
+{
+  std::vector< TIndex > res;
+  auto mIt = this->BeginEdgesRows( );
+  for( ; mIt != this->EndEdgesRows( ); ++mIt )
+  {
+    unsigned long count = mIt->second.size( );
+    if( count == 1 )
+      res.push_back( mIt->first );
+
+  } // rof
+  return( res );
+}
+
+// -------------------------------------------------------------------------
+template< unsigned int _VDim >
+std::vector< typename cpExtensions::DataStructures::Skeleton< _VDim >::TIndex >
+cpExtensions::DataStructures::Skeleton< _VDim >::
+GetBifurcations( ) const
+{
+  std::vector< TIndex > res;
+  auto mIt = this->BeginEdgesRows( );
+  for( ; mIt != this->EndEdgesRows( ); ++mIt )
+  {
+    unsigned long count = mIt->second.size( );
+    if( count > 1 )
+      res.push_back( mIt->first );
+
+  } // rof
+  return( res );
+}
+
 // -------------------------------------------------------------------------
 template< unsigned int _VDim >
 cpExtensions::DataStructures::Skeleton< _VDim >::
index a3ee5efa5cd426bb4c016460e460b644e690f58f..7a4a387a2e962d41af44e907bb0f0c21400ff770 100644 (file)
@@ -31,15 +31,15 @@ namespace cpInstances
       cpPlugins_Compatibility_Macro;
 
     public:
-      virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
-      virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+      virtual void SetITK( itk::LightObject* o ) override;
+      virtual void SetVTK( vtkObjectBase* o ) override;
 
     protected:
       Image( );
       virtual ~Image( );
 
-      virtual void _UpdateITK( ) const cpPlugins_OVERRIDE;
-      virtual void _UpdateVTK( ) const cpPlugins_OVERRIDE;
+      virtual void _UpdateITK( ) const override;
+      virtual void _UpdateVTK( ) const override;
 
       template< class _TImage >
       inline void _ITK_2_VTK_0( _TImage* image ) const;
index fa658ed5a3a605f09f0a0b4396be971bf08f457a..f15c1b4e372bb5a35de7bcb63186f056b3f06f5d 100644 (file)
@@ -28,8 +28,8 @@ namespace cpInstances
       cpPlugins_Compatibility_Macro;
 
     public:
-      virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
-      virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+      virtual void SetITK( itk::LightObject* o ) override;
+      virtual void SetVTK( vtkObjectBase* o ) override;
 
     protected:
       Mesh( );
index b563d411ca11c1cbf1b2861daed9fa3ee444ef4f..49e30a0e00b95c283a0edd527b6ce3d765369ab0 100644 (file)
@@ -28,8 +28,8 @@ namespace cpInstances
     cpPlugins_Compatibility_Macro;
 
   public:
-    virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+    virtual void SetITK( itk::LightObject* o ) override;
+    virtual void SetVTK( vtkObjectBase* o ) override;
 
   protected:
     PolyLineParametricPath( );
index 5ea0047bf8a7d9a0ae59c31f0f1b5aad8b9bac22..e1e7ab53e7c15c5cef6dfaded06e10c1e472c8b0 100644 (file)
@@ -33,13 +33,13 @@ namespace cpInstances
       cpPlugins_Compatibility_Macro;
 
     public:
-      virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+      virtual void SetVTK( vtkObjectBase* o ) override;
 
     protected:
       Simple3DCurve( );
       virtual ~Simple3DCurve( );
 
-      virtual void _UpdateVTK( ) const cpPlugins_OVERRIDE;
+      virtual void _UpdateVTK( ) const override;
 
       template< class _TCurve >
       inline void _ITK_2_VTK( _TCurve* curve ) const;
index 16592a685348aa9fcb731613de72e469e9b4519e..18d4731171b4ef147821c57b9b689a9d8a99c4a2 100644 (file)
@@ -28,8 +28,8 @@ namespace cpInstances
       cpPlugins_Compatibility_Macro;
 
     public:
-      virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
-      virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+      virtual void SetITK( itk::LightObject* o ) override;
+      virtual void SetVTK( vtkObjectBase* o ) override;
 
     protected:
       Skeleton( );
index c10ee8d0b8dff20054da7cc54b8f97523b42b972..4e58a1d334576b4d23ddd44844aac41787491f1b 100644 (file)
  * Language related macros
  * =========================================================================
  */
-#if __cplusplus >= 201103L
-#  define cpPlugins_OVERRIDE override
-#  define cpPlugins_DELETE_FUNCTION =delete
-#  define cpPlugins_NULLPTR  nullptr
-#  define cpPlugins_NOEXCEPT noexcept
-#  define cpPlugins_HAS_CXX11_STATIC_ASSERT
-#  define cpPlugins_HAS_CXX11_RVREF
-#else // __cplusplus >= 201103L
-#  define cpPlugins_OVERRIDE
-#  define cpPlugins_DELETE_FUNCTION
-#  define cpPlugins_NULLPTR  NULL
-#  define cpPlugins_NOEXCEPT throw()
-#endif // __cplusplus >= 201103L
+/* TODO
+   #if __cplusplus >= 201103L
+   #  define override override
+   #  define cpPlugins_DELETE_FUNCTION =delete
+   #  define cpPlugins_NULLPTR  nullptr
+   #  define cpPlugins_NOEXCEPT noexcept
+   #  define cpPlugins_HAS_CXX11_STATIC_ASSERT
+   #  define cpPlugins_HAS_CXX11_RVREF
+   #else // __cplusplus >= 201103L
+   #  define override
+   #  define cpPlugins_DELETE_FUNCTION
+   #  define cpPlugins_NULLPTR  NULL
+   #  define cpPlugins_NOEXCEPT throw()
+   #endif // __cplusplus >= 201103L
+*/
 
 /*
  * =========================================================================
@@ -92,9 +94,9 @@
 
 #define cpPlugins_Id_Macro( _class, _category )                         \
   public:                                                               \
-  virtual const char* GetClassName( ) const cpPlugins_OVERRIDE          \
+  virtual const char* GetClassName( ) const override          \
   { return( #_class ); }                                                \
-  virtual const char* GetClassCategory( ) const cpPlugins_OVERRIDE      \
+  virtual const char* GetClassCategory( ) const override      \
   { return( #_category ); }
 
 #define cpPluginsObject( _cls, _scls, _cat )                            \
   itkNewMacro( Self );                                                  \
   itkTypeMacro( _cls, _scls );                                          \
   public:                                                               \
-  virtual const char* GetClassName( ) const cpPlugins_OVERRIDE          \
+  virtual const char* GetClassName( ) const override          \
   { return( #_cls ); }                                                  \
-  virtual const char* GetClassCategory( ) const cpPlugins_OVERRIDE      \
+  virtual const char* GetClassCategory( ) const override      \
   { return( #_cat ); }                                                  \
   protected:                                                            \
   _cls( );                                                              \
   virtual ~_cls( );                                                     \
-  virtual void _GenerateData( ) cpPlugins_OVERRIDE;                     \
+  virtual void _GenerateData( ) override;                     \
   private:                                                              \
   _cls( const Self& );                                                  \
   Self& operator=( const Self& )
 #define cpPlugins_Compatibility_Macro                           \
   virtual bool IsCompatible(                                    \
     const DataObject* other                                     \
-    ) const cpPlugins_OVERRIDE                                  \
+    ) const override                                  \
   {                                                             \
     return( dynamic_cast< const Self* >( other ) != NULL );     \
   }
index 115196c235f409034797623d512bf13925434d75..84a18195be6d562e968d30a1578c3a53c0047ffb 100644 (file)
@@ -23,8 +23,7 @@ namespace cpPlugins
       typedef void ( *TCreatorFunc )( itk::LightObject::Pointer& ptr, const std::string& c, const std::string& f );
       typedef std::tuple< void*, TContentsFunc, TCreatorFunc > THandlers;
       typedef std::map< std::string, THandlers > TLibraries;
-      typedef std::map< std::string, std::map< std::string, std::string > >
-      TFiltersToLibrariesReferences;
+      typedef std::map< std::string, std::map< std::string, std::string > > TFiltersToLibrariesReferences;
 
     public:
       Loader( );
index c920abb4abb1c26079f415969b09e3f94ecd6f8a..4f2b2bd67fe8dfbca2c016a9d4caa797e50d2621 100644 (file)
@@ -35,7 +35,7 @@ namespace cpPlugins
       const float& GetViewY( ) const;
       void SetViewCoords( float x, float y );
 
-      virtual void Modified( ) const cpPlugins_OVERRIDE;
+      virtual void Modified( ) const override;
 
       virtual void SetITK( itk::LightObject* o );
       virtual void SetVTK( vtkObjectBase* o );
index db912ff94d2a5cc12c4fd8dc4f5fecb15851287a..98d81e784abb3283ffa99dfd69429d7b7ecafd18 100644 (file)
@@ -49,12 +49,12 @@ namespace cpPlugins
       SingleDataPort( bool required = true );
       virtual ~SingleDataPort( );
 
-      virtual void Add( DataObject* o ) cpPlugins_OVERRIDE;
-      virtual DataObject* Get( unsigned int i = 0 ) cpPlugins_OVERRIDE;
-      virtual const DataObject* Get( unsigned int i = 0 ) const cpPlugins_OVERRIDE;
-      virtual unsigned int Size( ) const cpPlugins_OVERRIDE;
-      virtual bool IsValid( ) const cpPlugins_OVERRIDE;
-      virtual void Clear( ) cpPlugins_OVERRIDE;
+      virtual void Add( DataObject* o ) override;
+      virtual DataObject* Get( unsigned int i = 0 ) override;
+      virtual const DataObject* Get( unsigned int i = 0 ) const override;
+      virtual unsigned int Size( ) const override;
+      virtual bool IsValid( ) const override;
+      virtual void Clear( ) override;
 
     protected:
       DataObject::Pointer m_Data;
@@ -105,12 +105,12 @@ namespace cpPlugins
       MultipleInputsPort( bool required = true );
       virtual ~MultipleInputsPort( );
 
-      virtual void Add( DataObject* o ) cpPlugins_OVERRIDE;
-      virtual DataObject* Get( unsigned int i = 0 ) cpPlugins_OVERRIDE;
-      virtual const DataObject* Get( unsigned int i = 0 ) const cpPlugins_OVERRIDE;
-      virtual unsigned int Size( ) const cpPlugins_OVERRIDE;
-      virtual bool IsValid( ) const cpPlugins_OVERRIDE;
-      virtual void Clear( ) cpPlugins_OVERRIDE;
+      virtual void Add( DataObject* o ) override;
+      virtual DataObject* Get( unsigned int i = 0 ) override;
+      virtual const DataObject* Get( unsigned int i = 0 ) const override;
+      virtual unsigned int Size( ) const override;
+      virtual bool IsValid( ) const override;
+      virtual void Clear( ) override;
 
       void Delete( unsigned int id );
 
index 569222237aa7af5a23b40b9ca122e881b225c98f..c2ce34ca52f74a7193b62d05603322def895de50 100644 (file)
@@ -104,7 +104,7 @@ namespace cpPlugins
       void Disconnect( );
 
       // Pipeline execution
-      virtual void Modified( ) const cpPlugins_OVERRIDE;
+      virtual void Modified( ) const override;
       virtual void Update( );
 
       // Qt dialog creation
index 91ef571a9b570630a9cb9280d8c0dc889ef88ab1..5d355943d0d37af09c927094182f492f9eb38aa6 100644 (file)
@@ -25,8 +25,8 @@ namespace cpPlugins
       cpPlugins_Id_Macro( Widget, Object );
 
     public:
-      virtual void AddInteractor( vtkRenderWindowInteractor* i ) cpPlugins_OVERRIDE;
-      virtual bool IsInteractive( ) cpPlugins_OVERRIDE;
+      virtual void AddInteractor( vtkRenderWindowInteractor* i ) override;
+      virtual bool IsInteractive( ) override;
 
       virtual void EnabledOn( );
       virtual void EnabledOff( );
index 9bfcbc1b417c5b88d5fc07c70a2fc2bde69c5006..e61c45392975b069079e8dcb4afbd98e7794bcb8 100644 (file)
@@ -20,10 +20,10 @@ namespace cpPlugins_GenericPlugins
   public:
     virtual void AddInput(
       const std::string& n, cpPlugins::Pipeline::DataObject* o
-      ) cpPlugins_OVERRIDE;
+      ) override;
     virtual void SetInput(
       const std::string& n, cpPlugins::Pipeline::DataObject* o
-      ) cpPlugins_OVERRIDE;
+      ) override;
   };
 
 } // ecapseman
index 6adffbf7b290629dc87f3dbd7efe9b1cbe7ca563..5c72e5d4e26eea19f2fa92a8724919f5a1747cf9 100644 (file)
@@ -14,7 +14,7 @@ namespace cpPluginsIO
     cpPluginsObject( ImageJSkeletonWriter, cpPlugins::BaseObjects::ProcessObject, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< class _TSkeleton >
index 349fe7ac0b05acc5525f81d43a763139bff8db71..b1419d3124e9be72e60a0ece60e851d11969ff54 100644 (file)
@@ -13,7 +13,7 @@ namespace cpPluginsITKIO
     cpPluginsObject( DicomSeriesReader, ImageReader, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
   };
 
 } // ecapseman
index 0e566d6868df7b0c3d41c22179b6e360fcdd1e6a..80b8a029028e8591fff2101d8c6411dc3c67c94b 100644 (file)
@@ -16,7 +16,7 @@ namespace cpPluginsITKIO
     cpPluginsObject( ImageReader, cpPlugins::Pipeline::ProcessObject, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< unsigned int _Dim >
index 1c0a1310e5780535d918de363dc286c907117f2f..4f63885de5846ad72ba04a207bf1c3de5f356046 100644 (file)
@@ -14,7 +14,7 @@ namespace cpPluginsITKIO
     cpPluginsObject( ImageWriter, cpPlugins::Pipeline::ProcessObject, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< class _TImage >
index bb0ee9fff59b689f47d028f44c1cd888bffa8b4c..79ac05ec5cdb57bf96fd401ecccb3a15e098f929 100644 (file)
@@ -21,7 +21,7 @@ namespace cpPluginsITKImageInterpolators
     virtual void CreateInterpolator(
       itk::LightObject* image,
       const std::string& precision_type
-      ) cpPlugins_OVERRIDE;
+      ) override;
 
   protected:
     template< class _TImage >
index d3fd440cfe09b969befca89057c1eb434aa9d4a5..ebf8f52272fd9db0b09ab032f61d33ade072fa4d 100644 (file)
@@ -22,8 +22,8 @@ namespace cpPluginsITKImageInterpolators
     cpPlugins_Id_Macro( InterpolateImageFunction, ImageInterpolators );
 
   public:
-    virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+    virtual void SetITK( itk::LightObject* o ) override;
+    virtual void SetVTK( vtkObjectBase* o ) override;
 
   protected:
     InterpolateImageFunction( );
@@ -36,7 +36,7 @@ namespace cpPluginsITKImageInterpolators
       ) = 0;
 
   protected:
-    virtual void _GenerateData( ) cpPlugins_OVERRIDE;
+    virtual void _GenerateData( ) override;
 
   private:
     // Purposely not implemented.
index a6fa94c40181acc27aaff2b6846110e68c194e11..d13d4b70e93157cfa9135b5a0b1fd98d4ecc952d 100644 (file)
@@ -21,7 +21,7 @@ namespace cpPluginsITKImageInterpolators
     virtual void CreateInterpolator(
       itk::LightObject* image,
       const std::string& precision_type
-      ) cpPlugins_OVERRIDE;
+      ) override;
 
   protected:
     template< class _TImage >
index 69f9b8d21e65cce8e2aa6ad13fa99f1480e8e3ce..e75cb7d46ef28fee364fc2d3707404df37f6bbef 100644 (file)
@@ -14,7 +14,7 @@ namespace cpPluginsVTKIO
     cpPluginsObject( MeshReader, cpPlugins::Pipeline::ProcessObject, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
   };
 
 } // ecapseman
index 2278b01682ec9480ed9410e105edb816674592b0..05c14deafc6e3c0c26c24652dae0bc7e752e6b52 100644 (file)
@@ -14,7 +14,7 @@ namespace cpPluginsVTKIO
     cpPluginsObject( MeshWriter, cpPlugins::Pipeline::ProcessObject, IO );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
   };
 
 } // ecapseman
index ed1624097f94257feb5f081199bb61f78cb7cfaf..6c83cc5b73cd85a7549295f76f726ffbe8695912 100644 (file)
@@ -20,9 +20,9 @@ namespace cpPluginsVTKWidgets
     cpPluginsObject( LineWidget, cpPlugins::Pipeline::Widget, Widgets );
 
   public:
-    virtual void Clear( ) cpPlugins_OVERRIDE;
-    virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
-    virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
+    virtual void Clear( ) override;
+    virtual void SetEnabled( bool v ) override;
+    virtual bool GetEnabled( ) const override;
 
   protected:
     typedef std::set< vtkProp* > TProps;
index 0c70d35031aed700d54dccf0c95d6c58a80d6619..b99facedcbfb20ca3daa16bb8179e095b4888b7f 100644 (file)
@@ -41,9 +41,9 @@ namespace cpPluginsVTKWidgets
     typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor;
 
   public:
-    virtual void Clear( ) cpPlugins_OVERRIDE;
-    virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
-    virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
+    virtual void Clear( ) override;
+    virtual void SetEnabled( bool v ) override;
+    virtual bool GetEnabled( ) const override;
 
   protected:
     /**
@@ -55,7 +55,7 @@ namespace cpPluginsVTKWidgets
       static TCallback* New( );
       virtual void Execute(
         vtkObject* caller, unsigned long id, void* data
-        ) cpPlugins_OVERRIDE;
+        ) override;
       void SetSeeds( vtkPolyData* seeds );
 
     protected:
index 682232334227ca41d8f7a103e39019189a27f720..b17e08c5b8df281591027706ee0c98ba234cfeb9 100644 (file)
@@ -30,9 +30,9 @@ namespace cpPluginsVTKWidgets
     cpPluginsObject( SplineWidget, cpPlugins::Pipeline::Widget, Widgets );
 
   public:
-    virtual void Clear( ) cpPlugins_OVERRIDE;
-    virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
-    virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
+    virtual void Clear( ) override;
+    virtual void SetEnabled( bool v ) override;
+    virtual bool GetEnabled( ) const override;
 
   protected:
     bool m_Configured;
index 2794132a1021f8837140c0add3a8ed27df501f98..e398b9e3d15834e4513bd15da129814d3fb722cf 100644 (file)
@@ -18,7 +18,7 @@ namespace cpPluginscpExtensions
       );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< class _TPolyLineParametricPath >
index 3490682041294e7125b002d5300bd22c01606e53..59852e09b0462a34b8e88a116b2e88f391264523 100644 (file)
@@ -18,7 +18,7 @@ namespace cpPluginscpExtensions
       );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< unsigned int _VDim >
index 920ae01d488fd3c2704e1bdd7b07096a44295630..f355c87a44688e90ec8d7993e9ea63a8cfac79f7 100644 (file)
@@ -18,7 +18,7 @@ namespace cpPluginscpExtensions
       );
 
   public:
-    virtual QDialog* CreateQDialog( ) cpPlugins_OVERRIDE;
+    virtual QDialog* CreateQDialog( ) override;
 
   protected:
     template< class _TSkeleton >