00001 #include "vuSphericViewFilterFactory.h"
00002 #include "SphericViewFilter/vuSphVwFlt_Blend.h"
00003 #include "SphericViewFilter/vuSphVwFlt_Fourier.h"
00004 #include "SphericViewFilter/vuSphVwFlt_Lazy.h"
00005 #include "SphericViewFilter/vuSphVwFlt_Black.h"
00006
00007 template <int S, class T> vuSphericViewFilter<S,T> *
00008 vuSphericViewFilterFactory<S,T>::getFilter(dword idx)
00009 {
00010 static vuString *filterNames = NULL;
00011 static dword count = 0;
00012
00013 if (filterNames == NULL)
00014 vuSphericViewFilterFactory<S,T>::getFilterNames(filterNames, count);
00015
00016 if (idx < count)
00017 return getFilter(filterNames[idx]);
00018 else
00019 return NULL;
00020 }
00021
00022 template <int S, class T> vuSphericViewFilter<S,T> *
00023 vuSphericViewFilterFactory<S,T>::getFilter(const vuString &filterName)
00024 {
00025 if (filterName == "Blend")
00026 return new vuSphVwFlt_Blend<S,T>("Blend");
00027 else if (filterName == "Fourier")
00028 return new vuSphVwFlt_Fourier<S,T>("Fourier");
00029 else if (filterName == "Lazy")
00030 return new vuSphVwFlt_Lazy<S,T>("Lazy");
00031 else if (filterName == "Black")
00032 return new vuSphVwFlt_Black<S,T>("Black");
00033 else
00034 return NULL;
00035 }
00036
00037 template <int S, class T> void vuSphericViewFilterFactory<S,T>::
00038 getFilterNames(vuString* &filterNames, dword &numberOfNames)
00039 {
00040 static const dword count = 4;
00041 static const vuString result[count] = { "Blend",
00042 "Fourier",
00043 "Lazy",
00044 "Black" };
00045
00046 filterNames = (vuString *)result;
00047 numberOfNames = count;
00048 }