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 }