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

vuSphericViewFilter.h

Go to the documentation of this file.
00001 #ifndef __GENERAL_VU_SPHERIC_VIEW_FILTER_H__
00002 #define __GENERAL_VU_SPHERIC_VIEW_FILTER_H__
00003 
00004 #include "vuFixelMap.h"
00005 #include "vuSphericView.h"
00006 #include "vuCamera/vuCamera.h"
00007 #include "vuMisc/vuFilter.h"
00008 #include "vuMisc/vuProgressHandler.h"
00009 
00010 template <int SIZE, class TYPE>
00011 class vuSphericViewFilter : public vuFilter
00012 {
00013  public:
00014   vuSphericViewFilter();
00015   vuSphericViewFilter(const vuString& filterName);
00016 
00017   virtual ~vuSphericViewFilter();
00018 
00019   void setNumberOfViews(dword count);
00020   dword getNumberOfViews();
00021 
00022   vuSphericView<SIZE,TYPE>** getViews();
00023   vuSphericView<SIZE,TYPE>*getView(dword i);
00024   // returns -1, if view is not in filter other the local index
00025   int getIndexOfView(vuSphericView<SIZE,TYPE> *view);
00026 
00027   void setView(dword idx, vuSphericView<SIZE,TYPE> *view);
00028 
00029   virtual bool needPreprocessing()      = 0;
00030   virtual bool needViewsForFiltering()  = 0;
00031 
00032   virtual void filter(vuCamera *camera) = 0;
00033   virtual void preprocess(vuProgressHandler* handler=NULL);
00034  
00035   void initOpenGL(); 
00036   void glResize(dword width, dword height);
00037   void glRender();
00038 
00039 
00040   vuFixelMap<SIZE,TYPE> *getMap();
00041 
00042   void ensureImage(dword width=0, dword height=0);
00043   
00044  protected:
00045   dword                    m_NumberOfViews;
00046   vuSphericView<SIZE,TYPE> **m_Views;
00047   vuFixelMap<SIZE,TYPE>    *m_Image;
00048 
00049   dword m_Width;
00050   dword m_Height;
00051 
00052   void log(const char *msg);
00053 };
00054 
00055 template class vuSphericViewFilter<1,byte>;
00056 template class vuSphericViewFilter<2,byte>;
00057 template class vuSphericViewFilter<3,byte>;
00058 
00059 template class vuSphericViewFilter<1,float>;
00060 template class vuSphericViewFilter<2,float>;
00061 template class vuSphericViewFilter<3,float>;
00062 
00063 typedef vuSphericViewFilter<1,byte> vuSphericViewFilter1B;
00064 typedef vuSphericViewFilter<2,byte> vuSphericViewFilter2B;
00065 typedef vuSphericViewFilter<3,byte> vuSphericViewFilter3B;
00066 
00067 typedef vuSphericViewFilter<1,float> vuSphericViewFilter1F;
00068 typedef vuSphericViewFilter<2,float> vuSphericViewFilter2F;
00069 typedef vuSphericViewFilter<3,float> vuSphericViewFilter3F;
00070 
00071 #endif /* __GENERAL_VU_SPHERIC_VIEW_FILTER_H__ */

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