Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxExportExtraIdentMaskSum.h

00001 /*
00002  *  Copyright (c) 2002, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Dennis Koelma (koelma@wins.uva.nl)
00007  *
00008  */
00009 
00010 #ifndef HxExportExtraIdentMaskSum_h
00011 #define HxExportExtraIdentMaskSum_h
00012 
00013 #include "HxClassName.h"
00014 #include "HxSizes.h"
00015 #include "HxCategories.h"
00016 #include "HxTagList.h"
00017 
00018 
00022 template<class ResultT, class ImValT, class ExtraValT>
00023 class HxExportExtraIdentMaskSum
00024 {
00025 public:
00027     typedef HxTagTransInVar     TransVarianceCategory;
00028 
00030     typedef HxTag1Phase         PhaseCategory;
00031 
00032 
00034                         HxExportExtraIdentMaskSum(HxTagList& tags);
00035 
00037                         ~HxExportExtraIdentMaskSum();
00038 
00040     void                doIt(const ImValT& imV, const ExtraValT& extraV);
00041 
00043     static HxString     className();
00044 
00045 private:
00046     HxTagList&          _tags;
00047     ExtraValT           _maskVal;
00048     ResultT             _result;
00049 };
00050 
00051 template<class ResultT, class ImValT, class ExtraValT>
00052 
00053 HxExportExtraIdentMaskSum<ResultT,ImValT,ExtraValT>::HxExportExtraIdentMaskSum(HxTagList& tags) : _tags(tags)
00054 {
00055     _maskVal = HxGetTag<int>(tags, "maskVal");
00056     _result = HxScalarInt(0);
00057 }
00058 
00059 template<class ResultT, class ImValT, class ExtraValT>
00060 HxExportExtraIdentMaskSum<ResultT,ImValT,ExtraValT>::~HxExportExtraIdentMaskSum()
00061 {
00062     HxAddTag(_tags, "result", HxValue(_result));
00063 }
00064 
00065 template<class ResultT, class ImValT, class ExtraValT>
00066 inline void
00067 HxExportExtraIdentMaskSum<ResultT,ImValT,ExtraValT>::doIt(const ImValT& imV,
00068                                                   const ExtraValT& extraV)
00069 {
00070     if (extraV == _maskVal) {
00071         _result += imV;
00072     }
00073 }
00074 
00075 template<class ResultT, class ImValT, class ExtraValT>
00076 inline HxString
00077 HxExportExtraIdentMaskSum<ResultT,ImValT,ExtraValT>::className()
00078 {
00079     return HxString("identMaskSum");
00080 }
00081 
00082 
00083 #endif

Generated on Mon Jan 27 15:48:42 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001