00001 #include "vuTFunc/vuTFDesign.h" 00002 #include "Volume/Regular/Unimodal/3d/1B/Intensity/Raycast/Raycast.h" 00003 #include "vuLightfield/vuSphericView.h" 00004 #include "vuMisc/vuUDSphere.h" 00005 00006 00007 class Scanner 00008 { 00009 public: 00010 Scanner(const char *fileName, dword width, dword height, dword views); 00011 ~Scanner(); 00012 00013 void loadTFuncFromFile(const char *fileName); 00014 00015 void lazyCalculateAndDisplay(const char *fileName); 00016 void lazyCalculateAndLog(const char *fileName); 00017 00018 private: 00019 vuUDSphere *m_Sphere ; // Uniform Distribution in Sphere 00020 vu1112113 *m_Raycast; // raycaster 00021 vuTFDesign m_TransFunct; // Transfer function 00022 bool m_isComputed; // is lightfield already computed 00023 dword m_Width; // width of each view 00024 dword m_Height; // height of each view 00025 dword m_Views; // number of views 00026 00027 void _initTransferFunction(); 00028 void _renderView(dword i, vuSphericView3B *view, bool verbose=true); 00029 word _numberOfDigits(word number); 00030 void _lazyCalculate(const char *fileName, bool display); 00031 void _calcViewVectors(vuVector& lookAt, vuVector& up, vuVector& right); 00032 };