00001 /* Modified April 2002 00002 Modified by Christopher Steinbach 00003 00004 Modified to remove the ios::nocreate flag in the 00005 SGI-IRIX compile because it doesn't seem to be 00006 available for the SGIs 00007 00008 Modifed to work with the key framer dialog box. 00009 00010 Added drawpic and get camera and get image; 00011 */ 00012 00013 #ifndef _VUVOLUMEREGULARUNIMODAL3D1B1VALSPLAT_H_ 00014 #define _VUVOLUMEREGULARUNIMODAL3D1B1VALSPLAT_H_ 00015 00016 #include "../intensity.h" 00017 #include "glos.h" 00018 00019 #include <GL/gl.h> 00020 #include <GL/glu.h> 00021 00022 #include "vuImage.h" 00023 #include "vuSimpleTypes.h" 00024 #include "vuNormalTable.h" 00025 #include "vuVector.h" 00026 00027 //using namespace ns_vu1112113; 00028 00029 class vu1112111; 00030 typedef vu1112111 vuVolumeRegularUnimodal3d1B1ValSplat; 00031 00033 00046 class vu1112111 : public vu111211 00047 00048 { 00049 public: 00051 vu1112111(); 00053 vu1112111(const vu1112111& inst); 00055 virtual ~vu1112111(); 00056 00058 vu1112111& operator=(const vu1112111& rhs); 00059 00060 public: 00062 void setViewVectors(const vuVector& view,const vuVector& up,const vuVector& right); 00063 00065 void setFootprintSize(dword size); 00067 dword getFootprintSize() const; 00068 00070 void initOpenGL(void); 00072 void render(); 00073 00074 void drawPic (); 00075 00076 vuImage* getBuffer (); 00077 // void setBufferSize (); 00078 00080 virtual bool read(); 00081 00083 virtual bool readRaw(void); 00084 00085 private: 00087 void preprocess(void); 00088 00090 void computeSplat(void); 00092 double nelsonSplat(double r); 00093 00095 void drawSplatOrtho(float* pos); 00097 void drawSplatPerspective(float* pos); 00098 00099 private: 00100 vuNormalTable m_NTable; 00101 00102 #if defined(QUANTIZE_NORMALS) 00103 byte* m_Normals; 00104 #else 00105 float* m_Normals; 00106 #endif 00107 00108 vuImage m_ImgBuffer; 00109 00110 GLubyte* m_Footprint; 00111 dword m_FPSize; 00112 GLuint m_GLSplat; 00113 00114 vuVector m_View; 00115 vuVector m_Shift0; 00116 vuVector m_Shift1; 00117 vuVector m_Shift2; 00118 }; 00119 00120 #endif 00121 00122 00123