]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Base/Algorithm.h
...
[FrontAlgorithms.git] / lib / fpa / Base / Algorithm.h
index 5a02d6ebc2e0843a0e6d0bdb1132983c3c22a173..785b818ea8be76bdf3290896cf8c95f63b41bf55 100644 (file)
@@ -8,7 +8,6 @@
 
 #include <fpa/Config.h>
 
-#include <vector>
 #include <itkObject.h>
 #include <itkEventObject.h>
 
@@ -18,28 +17,28 @@ namespace fpa
   {
     /**
      */
-    template< class _TFilter, class _TMarksInterface, class _TSeedsInterface >
+    template< class _TTraits >
     class Algorithm
-      : public _TFilter,
-        public _TMarksInterface,
-        public _TSeedsInterface
+      : public _TTraits::TFilter,
+        public _TTraits::TMarksInterface,
+        public _TTraits::TSeedsInterface
     {
     public:
-      typedef Algorithm                       Self;
-      typedef _TFilter                        Superclass;
-      typedef _TMarksInterface                TMarksInterface;
-      typedef _TSeedsInterface                TSeedsInterface;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef typename _TSeedsInterface::TInputValue  TInputValue;
-      typedef typename _TSeedsInterface::TOutputValue TOutputValue;
-      typedef typename _TSeedsInterface::TNode        TNode;
-      typedef typename _TSeedsInterface::TNodes       TNodes;
-      typedef typename _TSeedsInterface::TSeeds       TSeeds;
-      typedef typename _TSeedsInterface::TVertex      TVertex;
-
-      typedef std::vector< TVertex > TNeighborhood;
+      typedef _TTraits                          TTraits;
+      typedef typename TTraits::TFilter         Superclass;
+      typedef typename TTraits::TMarksInterface TMarksInterface;
+      typedef typename TTraits::TSeedsInterface TSeedsInterface;
+      typedef Algorithm                         Self;
+      typedef itk::SmartPointer< Self >         Pointer;
+      typedef itk::SmartPointer< const Self >   ConstPointer;
+
+      typedef typename TTraits::TInputValue   TInputValue;
+      typedef typename TTraits::TOutputValue  TOutputValue;
+      typedef typename TTraits::TNeighborhood TNeighborhood;
+      typedef typename TTraits::TNode         TNode;
+      typedef typename TTraits::TNodes        TNodes;
+      typedef typename TTraits::TSeeds        TSeeds;
+      typedef typename TTraits::TVertex       TVertex;
 
       /**
        */