Eigene Dateien/Vis/src/VSliceRenderer.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #ifndef __v_slice_renderer_h
00004 #define __v_slice_renderer_h
00005 
00006 #include "VRenderer.h"
00007 
00008 class VFramebufferObject;
00009 
00010 class VSliceRenderer : public VRenderer
00011 {
00012 public:
00013 
00017         VSliceRenderer();
00018 
00023         VSliceRenderer(VVolume * volume);
00024 
00028         ~VSliceRenderer()
00029         {
00030         }
00031 
00035         void draw();
00036 
00040         void processInput(guiInput input);
00041         
00046         void setActiveSaggitalSlice(int s)
00047         {
00048                 m_active_saggital = s;
00049         }
00050 
00055         void setActiveCorronalSlice(int s)
00056         {
00057                 m_active_corronal = s;
00058         }
00059 
00064         void setActiveTransversalSlice(int s)
00065         {
00066                 m_active_transversal = s;
00067         }
00068 
00073         void activate_tf(int v)
00074         {
00075                 m_tf_activated = v;
00076         }
00077 
00082         activeSlice getSliceMode()
00083         {
00084                 return m_ActiveSlice;
00085         }
00086 
00091         void setSliceMode(activeSlice mode)
00092         {
00093                  m_ActiveSlice = mode;
00094         }
00095 
00100         void setVolume(VVolume * volume)
00101         {
00102                 m_Volume = volume;
00103         }
00104 
00108         void loadProgram()
00109         {
00110                 m_Program_with_tf = VProgram(VVertexShader("shader/slice_vertex.glsl"), VFragmentShader("shader/slicetf_fragment.glsl"));
00111                 m_Program_without_tf = VProgram(VFragmentShader("shader/slice_fragment.glsl"));
00112                 m_ProgramLoaded = true;
00113         }
00114 
00119         bool getProgramLoaded()
00120         {
00121                 return m_ProgramLoaded;
00122         }
00123 
00128         void setTransferFunctionHandle(unsigned int handle)
00129         {
00130                 m_TransferFunctionHandle = handle;
00131         }
00132 
00133 private:
00134 
00138         void drawSaggitalSlice();
00139 
00143         void drawCorronalSlice();
00144 
00148         void drawTransversalSlice();
00149 
00153         void drawAllSlices();
00154 
00155         activeSlice m_ActiveSlice;      
00156         int m_active_saggital;          
00157         int m_active_corronal;          
00158         int m_active_transversal;       
00159         int m_tf_activated;                     
00161         VProgram m_Program_with_tf;             
00162         VProgram m_Program_without_tf;  
00164         bool m_ProgramLoaded;           
00166         unsigned int m_TransferFunctionHandle;  
00168 };
00169 
00170 #endif //__v_slice_renderer_h

Generated on Wed Dec 5 05:15:09 2007 for VolRendering by  doxygen 1.5.4