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 }