Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

vuSphericFilterFactory.cpp

Go to the documentation of this file.
00001 #include "vuSphericFilterFactory.h"
00002 
00003 template <int S, class T>
00004 vuSphericFilter<S,T> *vuSphericFilterFactory<S,T>::getFilter(dword idx)
00005 {
00006   static vuString *filterNames = NULL;
00007   static dword    count        = 0;
00008    
00009   if (filterNames == NULL)
00010     vuSphericFilterFactory<S,T>::getFilterNames(filterNames, count);
00011 
00012   if (idx < count)
00013     return getFilter(filterNames[idx]);
00014   else
00015     return NULL;
00016 }
00017 
00018 
00019 template <int S, class T> vuSphericFilter<S,T> *
00020 vuSphericFilterFactory<S,T>::getFilter(const vuString &filterName)
00021 {
00022   if (filterName == "BestMatch")
00023     return new vuSphLfFlt_BestMatch<S,T>("BestMatch");
00024   else if (filterName == "Line")
00025     return new vuSphLfFlt_Line<S,T>("Line");
00026   else if (filterName == "Triangle")
00027     return new vuSphLfFlt_Triangle<S,T>("Triangle");
00028   else if (filterName == "Z-Axis")
00029     return new vuSphLfFlt_Z_Axis<S,T>("Z-Axis");
00030   else if (filterName == "XZ-Axis")
00031     return new vuSphLfFlt_XZ_Axis<S,T>("XZ-Axis");
00032   else if (filterName == "XYZ-Axis")
00033     return new vuSphLfFlt_XYZ_Axis<S,T>("XYZ-Axis");
00034   else if (filterName == "All")
00035     return new vuSphLfFlt_All<S,T>("All");
00036   else if (filterName == "Fit Angle")
00037     return new vuSphLfFlt_FitAngle<S,T>("Fit Angle");
00038   else if (filterName == "Nearest")
00039     return new vuSphLfFlt_Nearest<S,T>("Nearest");
00040   else
00041     return NULL;
00042 }
00043 
00044 template <int S, class T>
00045 void vuSphericFilterFactory<S,T>::getFilterNames(vuString* &filterNames,
00046                                                  dword &numberOfNames)
00047 {
00048   static const dword    count         = 9;
00049   static const vuString result[count] = { "BestMatch", 
00050                                           "Line",
00051                                           "Triangle",
00052                                           "Z-Axis",
00053                                           "XZ-Axis",
00054                                           "XYZ-Axis",
00055                                           "All",
00056                                           "Fit Angle",
00057                                           "Nearest"};
00058  
00059 
00060   filterNames   = (vuString *)result;
00061   numberOfNames = count;
00062 }

Generated on Wed Dec 15 21:20:36 2004 for vuVolume by  doxygen 1.3.9.1