00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkBloxCoreAtomItem.h,v $ 00005 Language: C++ 00006 Date: $Date: 2002/08/26 16:24:39 $ 00007 Version: $Revision: 1.9 $ 00008 00009 Copyright (c) 2002 Insight 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 __itkBloxCoreAtomItem_h 00018 #define __itkBloxCoreAtomItem_h 00019 00020 #include "vnl/vnl_vector_fixed.h" 00021 #include "itkBloxBoundaryPointItem.h" 00022 #include "itkBloxItem.h" 00023 00024 namespace itk 00025 { 00026 00038 template <unsigned int VImageDimension> 00039 class BloxCoreAtomItem: public BloxItem 00040 { 00041 public: 00043 typedef Point<double, VImageDimension> PositionType; 00044 00046 typedef BloxBoundaryPointItem<VImageDimension> BPItemType; 00047 00049 void SetBoundaryPointA(BPItemType* pointA) 00050 { m_BoundaryPointA = pointA; } 00051 00053 BPItemType* GetBoundaryPointA() 00054 { return m_BoundaryPointA; } 00055 00057 void SetBoundaryPointB(BPItemType* pointB) 00058 { m_BoundaryPointB = pointB; } 00059 00061 BPItemType* GetBoundaryPointB() 00062 { return m_BoundaryPointB; } 00063 00065 void SetCenterPosition(PositionType pos) 00066 { m_CenterPosition = pos; } 00067 00069 PositionType GetCenterPosition() 00070 {return m_CenterPosition; } 00071 00073 void SetDiameter(double diameter) 00074 { m_Diameter = diameter; } 00075 00077 double GetDiameter() 00078 {return m_Diameter; } 00079 00086 void CalcCenterAndDiameter(); 00087 00088 BloxCoreAtomItem(); 00089 ~BloxCoreAtomItem(); 00090 00091 private: 00093 PositionType m_CenterPosition; 00094 00097 double m_Diameter; 00098 00100 BPItemType* m_BoundaryPointA; 00101 00103 BPItemType* m_BoundaryPointB; 00104 00105 }; 00106 00107 } // end namespace itk 00108 00109 00110 #ifndef ITK_MANUAL_INSTANTIATION 00111 #include "itkBloxCoreAtomItem.txx" 00112 #endif 00113 00114 #endif