00001 #include "vuSphLfFlt_Nearest.h" 00002 00003 template <int SIZE, class TYPE> 00004 vuSphLfFlt_Nearest<SIZE,TYPE>::vuSphLfFlt_Nearest(const vuString& filterName) 00005 : vuSphericFilter<SIZE,TYPE>(filterName) 00006 { 00007 m_NumberOfViews = 1; 00008 } 00009 00010 template <int S, class T> void vuSphLfFlt_Nearest<S,T>:: 00011 calcFilteredViews(vuSphericView<S,T>**& views,dword& count) 00012 { 00013 CHECKNDELETE(views); 00014 count = 0; 00015 00016 if (m_volume == NULL) return; 00017 00018 dword *idxList = NULL; 00019 count = m_NumberOfViews; 00020 00021 if (!getNearestViews(idxList, count)) return; 00022 00023 views = new vuSphericView<S,T>*[count]; 00024 00025 for (dword i=0; i<count; i++) { 00026 views[i] = m_volume->getView(idxList[i]); 00027 } 00028 delete [] idxList; 00029 } 00030 00031 template <int SIZE, class TYPE> 00032 void vuSphLfFlt_Nearest<SIZE,TYPE>::setNumberOfViews(int numberOfViews) 00033 { 00034 if (numberOfViews < 0) numberOfViews = 1; 00035 m_NumberOfViews = numberOfViews; 00036 00037 if (m_volume == NULL) return; 00038 00039 if (m_volume->getNumberOfViews() < m_NumberOfViews) 00040 m_NumberOfViews = m_volume->getNumberOfViews(); 00041 } 00042 00043 00044 template <int SIZE, class TYPE> 00045 dword vuSphLfFlt_Nearest<SIZE,TYPE>::getNumberOfViews() 00046 { 00047 return m_NumberOfViews; 00048 }