Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkBloxBoundaryProfileItem.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkBloxBoundaryProfileItem.h,v $
00005   Language:  C++
00006   Date:      $Date: 2008-10-07 12:04:39 $
00007   Version:   $Revision: 1.17 $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even 
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 #ifndef __itkBloxBoundaryProfileItem_h
00018 #define __itkBloxBoundaryProfileItem_h
00019 
00020 #include "itkBloxBoundaryPointItem.h"
00021 #include "itkBloxItem.h"
00022 
00023 namespace itk
00024 {
00025 template <unsigned int TImageDimension>
00026 class ITK_EXPORT BloxBoundaryProfileItem : public BloxItem
00027 {
00028 public:
00030   itkTypeMacro( BloxBoundaryProfileItem, BloxItem );
00031 
00033   typedef Point<double, TImageDimension> PositionType;
00034 
00037   typedef CovariantVector<double, TImageDimension> GradientType;
00038 
00040   typedef vnl_vector<double> VectorType;
00041 
00043   typedef BloxBoundaryPointItem<TImageDimension> BPItemType;
00044 
00046   void SetBoundaryPoint(BPItemType * point);
00047 
00049   void SetLowerIntensity(double lowerIntensity);
00050   double GetLowerIntensity(void);
00052 
00054   void SetUpperIntensity(double upperIntensity);
00055   double GetUpperIntensity(void);
00057 
00059   void SetMean(double mean);
00060   double GetMean(void);
00062 
00064   void SetProfileLength(unsigned int profileLength);
00065   unsigned int GetProfileLength(void);
00067 
00069   void SetMeanNormalized(void);
00070   double GetMeanNormalized(void);
00072 
00074   void SetStandardDeviation(double standardDeviation);
00075   double GetStandardDeviation(void);
00077 
00079   void SetStandardDeviationNormalized(void);
00080 
00081   double GetStandardDeviationNormalized(void);
00082 
00084   void SetOptimalBoundaryLocation(VectorType spatialFunctionOriginVector, 
00085                                                       VectorType orientation);
00086 
00087   PositionType GetOptimalBoundaryLocation(void);
00088 
00090   void SetGradient(GradientType * gradient);
00091   GradientType * GetGradient();
00093 
00094   void SetGradient2(GradientType gradient) {m_Gradient2 = gradient;}
00095   GradientType GetGradient2() {return m_Gradient2;}
00096 
00097   BloxBoundaryProfileItem();
00098   ~BloxBoundaryProfileItem();
00099 
00100 private:
00102   double m_LowerIntensity;
00103 
00105   double m_UpperIntensity;
00106 
00108   unsigned int m_ProfileLength;
00109 
00111   double m_Mean;
00112 
00114   double m_MeanNormalized;
00115 
00117   double m_StandardDeviation;
00118 
00120   double m_StandardDeviationNormalized;
00121 
00123   BPItemType * m_BoundaryPoint;
00124 
00126   PositionType m_OptimalBoundaryLocation;
00127 
00129   GradientType * m_Gradient;
00130 
00131   GradientType m_Gradient2;
00132 
00133 };
00134 
00135 } // end namespace itk
00136 
00137 // Define instantiation macro for this template.
00138 #define ITK_TEMPLATE_BloxBoundaryProfileItem(_, EXPORT, x, y) namespace itk { \
00139   _(1(class EXPORT BloxBoundaryProfileItem< ITK_TEMPLATE_1 x >)) \
00140   namespace Templates { typedef BloxBoundaryProfileItem< ITK_TEMPLATE_1 x > \
00141                                BloxBoundaryProfileItem##y; } \
00142   }
00143 
00144 #if ITK_TEMPLATE_EXPLICIT
00145 # include "Templates/itkBloxBoundaryProfileItem+-.h"
00146 #endif
00147 
00148 #if ITK_TEMPLATE_TXX
00149 # include "itkBloxBoundaryProfileItem.txx"
00150 #endif
00151 
00152 #endif
00153 

Generated at Tue Sep 15 02:25:33 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000