]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/DefaultTraits.h
...
[FrontAlgorithms.git] / lib / fpa / Image / DefaultTraits.h
diff --git a/lib/fpa/Image/DefaultTraits.h b/lib/fpa/Image/DefaultTraits.h
new file mode 100644 (file)
index 0000000..c2b8295
--- /dev/null
@@ -0,0 +1,69 @@
+// =========================================================================
+// @author Leonardo Florez Valencia
+// @email florez-l@javeriana.edu.co
+// =========================================================================
+
+#ifndef __fpa__Image__DefaultTraits__h__
+#define __fpa__Image__DefaultTraits__h__
+
+#include <vector>
+#include <itkConceptChecking.h>
+#include <itkImageToImageFilter.h>
+
+#include <fpa/Base/MarksInterfaceWithCollisions.h>
+#include <fpa/Base/SeedsInterface.h>
+
+namespace fpa
+{
+  namespace Image
+  {
+    /**
+     */
+    template< class _TInputImage, class _TOutputImage, class _TFrontId >
+    class DefaultTraits
+    {
+    public:
+      typedef DefaultTraits Self;
+      typedef _TInputImage  TInputImage;
+      typedef _TOutputImage TOutputImage;
+      typedef _TFrontId     TFrontId;
+      itkStaticConstMacro( Dimension, unsigned int, TInputImage::ImageDimension );
+
+      typedef typename TInputImage::IndexType        TVertex;
+      typedef typename TInputImage::PixelType        TInputValue;
+      typedef typename TInputImage::PointType        TPoint;
+      typedef typename TOutputImage::PixelType       TOutputValue;
+      typedef typename TVertex::LexicographicCompare TCompare;
+
+      typedef std::vector< TVertex > TNeighborhood;
+
+      typedef fpa::Base::SeedsInterface< TVertex, TPoint, TInputValue, TOutputValue, TFrontId, TCompare > TSeedsInterface;
+      typedef fpa::Base::MarksInterfaceWithCollisions< TVertex > TMarksInterface;
+      typedef itk::ImageToImageFilter< TInputImage, TOutputImage > TFilter;
+
+      typedef typename TSeedsInterface::TNode  TNode;
+      typedef typename TSeedsInterface::TNodes TNodes;
+      typedef typename TSeedsInterface::TSeed  TSeed;
+      typedef typename TSeedsInterface::TSeeds TSeeds;
+
+    public:
+      itkConceptMacro(
+        Check_SameDimension,
+        ( itk::Concept::SameDimension< TInputImage::ImageDimension, TOutputImage::ImageDimension > )
+        );
+
+    private:
+      // Purposely not implemented.
+      DefaultTraits( );
+      DefaultTraits( const Self& other );
+      virtual ~DefaultTraits( );
+      Self& operator=( const Self& other );
+    };
+
+  } // ecapseman
+
+} // ecapseman
+
+#endif // __fpa__Image__DefaultTraits__h__
+
+// eof - $RCSfile$