Main Page   Class Overview   Pixels   Images   Geometry   Quick Index  

HxPixOpCategory.h

00001  /*
00002  *  Copyright (c) 2000, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Edo Poll                (poll@wins.uva.nl)
00007  */
00008 
00009 #ifndef HxPixOpCategory_h
00010 #define HxPixOpCategory_h
00011 
00012 #include "HxString.h"
00013 #include "HxClassName.h"
00014 
00015 /*
00016 Definition of the various kind of tag types.
00017 */
00018 
00019 // PhaseCategory
00020 
00022 struct HxPixOp1PhaseTag {
00024     HxString    toString() { return "1 phase"; }
00025 };
00026 
00028 struct HxPixOp2PhaseTag {
00030     HxString    toString() { return "2 phase"; }
00031 };
00032 
00034 struct HxPixOpNPhaseTag {
00036     HxString    toString() { return "N phase"; }
00037 };
00038 
00039 // TransVarianceCategory
00040 
00042 struct HxPixOpTransVarTag {
00044     HxString    toString() { return "Translation variant"; }
00045 };
00046 
00048 struct HxPixOpTransInVarTag {
00050     HxString    toString() { return "Translation invariant"; }
00051 };
00052 
00053 // DirectionCategory
00054 
00056 struct HxPixOpInTag {
00058     HxString    toString() { return "In"; }
00059 };
00060 
00062 struct HxPixOpOutTag {
00064     HxString    toString() { return "Out"; }
00065 };
00066 
00067 // Miscellanious predicates
00068 
00069 template<class T>
00070 class HxPixOpMakeName {
00071 public:
00072                 HxPixOpMakeName(HxString name);
00073                 operator HxString() { return _name; }
00074 private:
00075     HxString    _name;
00076 };
00077 
00078 template<class T>
00079 inline
00080 HxPixOpMakeName<T>::HxPixOpMakeName(HxString name)
00081     : _name(name)
00082 {
00083     _name += "<";
00084     _name += HxClassName<T>();
00085     _name += ">";
00086 }
00087 
00088 #endif

Generated on Tue Jan 8 13:59:15 2002 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001