00001 //------------------------------------------------------------------------ 00002 // 00003 // Joe Kniss 00004 // 9-17-02 00005 // ________ ____ ___ 00006 // | \ / | / / 00007 // +---+ \/ |/ / 00008 // +--+| |\ /| < 00009 // | || | \ / | |\ \ 00010 // | | \/ | | \ \ 00011 // \_____| |__| \__\ 00012 // Copyright 2002 00013 // Joe Michael Kniss 00014 // <<< jmk@cs.utah.edu >>> 00015 // "All Your Base are Belong to Us" 00016 //------------------------------------------------------------------------- 00017 00018 //VolRenLit.h 00019 00020 /// A volume renderer that handles lighting. 00021 /// especially half angle light transport 00022 00023 #ifndef __VOLREN_LIT_DOT_H 00024 #define __VOLREN_LIT_DOT_H 00025 00026 #include <renderable/Renderable.h> 00027 #include <mathGutz.h> 00028 #include <volren/VolRenBase.h> 00029 00030 class VolRenAlgBase; 00031 00032 class VolRenLit : public VolRenBase 00033 { 00034 public: 00035 VolRenLit(); 00036 virtual ~VolRenLit(); 00037 00038 virtual void init(); 00039 00040 protected: 00041 00042 virtual void drawDef(const gutz::RenderEvent &re); 00043 00044 ///////////////////////////////////////////////////////////// 00045 /// get the slice axis 00046 virtual 00047 gutz::vec3f genSliceAxis(unsigned int light, gutz::vec3f volCtr); 00048 00049 private: 00050 00051 }; 00052 00053 //========== NOTES =========================================== 00054 // Standard brick vertex ordering: 00055 // 00056 // (011) (111) 00057 // 6 +---------+ 7 Where 1's are the size of the brick 00058 // /| /| allong that axis 00059 // / | / | 00060 // (001)/ |(101) / | 00061 // 4 +---------+ 5 | 00062 // | | | |(110) z axis 00063 // | 2 +-----+---+ 3 ^ 00064 // | /(010) | / | y axis 00065 // | / | / | / 00066 // |/ |/ |/ 00067 // 0 +---------+ 1 +-------> x axis 00068 // (000) (100) 00069 // 00070 00071 #endif 00072