cmtkImageToImageRGB.h

Go to the documentation of this file.
00001 /*
00002 //
00003 //  Copyright 1997-2009 Torsten Rohlfing
00004 //
00005 //  Copyright 2004-2010 SRI International
00006 //
00007 //  This file is part of the Computational Morphometry Toolkit.
00008 //
00009 //  http://www.nitrc.org/projects/cmtk/
00010 //
00011 //  The Computational Morphometry Toolkit is free software: you can
00012 //  redistribute it and/or modify it under the terms of the GNU General Public
00013 //  License as published by the Free Software Foundation, either version 3 of
00014 //  the License, or (at your option) any later version.
00015 //
00016 //  The Computational Morphometry Toolkit is distributed in the hope that it
00017 //  will be useful, but WITHOUT ANY WARRANTY; without even the implied
00018 //  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019 //  GNU General Public License for more details.
00020 //
00021 //  You should have received a copy of the GNU General Public License along
00022 //  with the Computational Morphometry Toolkit.  If not, see
00023 //  <http://www.gnu.org/licenses/>.
00024 //
00025 //  $Revision: 2398 $
00026 //
00027 //  $LastChangedDate: 2010-10-05 14:54:37 -0700 (Tue, 05 Oct 2010) $
00028 //
00029 //  $LastChangedBy: torstenrohlfing $
00030 //
00031 */
00032 
00033 #ifndef __cmtkImageToImageRGB_h_included_
00034 #define __cmtkImageToImageRGB_h_included_
00035 
00036 #include <cmtkconfig.h>
00037 
00038 #include <Pipeline/cmtkMultiFilter.h>
00039 
00040 #include <Pipeline/cmtkColormap.h>
00041 #include <Pipeline/cmtkImage.h>
00042 #include <Pipeline/cmtkImageRGB.h>
00043 #include <Base/cmtkMacros.h>
00044 
00045 namespace
00046 cmtk
00047 {
00048 
00051 
00054 class ImageToImageRGB : 
00056   public MultiFilter<ImageRGB> 
00057 {
00058 public:
00060   static ImageToImageRGB* New() { return new ImageToImageRGB; }
00061 
00063   typedef enum {
00065     AlphaModeNone,
00067     AlphaModeConst
00068   } igsAlphaMode;
00069   
00075   igsClassParameter(igsAlphaMode,AlphaMode);
00076   
00078   igsClassParameter(bool,CheckerboxPadding);
00079 
00081   virtual void Execute();
00082 
00084   void SetInput( Image *const image );
00085 
00087   void SetColormap( Colormap *const colormap );
00088 
00089 protected:
00091   ImageToImageRGB();
00092 
00096   virtual ~ImageToImageRGB();
00097 
00098 private:
00100   Image *m_Image;
00101 
00103   Colormap *m_Colormap;
00104 
00106   typedef MultiFilter<ImageRGB> Superclass;
00107 
00109   template<class T> void MarkPaddingData( const unsigned int dimsx, const unsigned int dimsy, T *const rgba, const TypedArray* data ) const;
00110 };
00111 
00113 
00114 } // namespace cmtk
00115 
00116 #endif // #ifndef __cmtkImageToImageRGB_h_included_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines