\hypertarget{class_c_u_d_a_ray_casting_1_1_render}{
\section{CUDARayCasting::Render Class Reference}
\label{class_c_u_d_a_ray_casting_1_1_render}\index{CUDARayCasting::Render@{CUDARayCasting::Render}}
}


Opengl \hyperlink{class_c_u_d_a_ray_casting_1_1_render}{Render} tailored specifically for CUDARayCasting test. It can render these 2d geometry:
\begin{DoxyItemize}
\item Points
\item Lines
\item Curves It only supports a material being a configurable emissive color. 
\end{DoxyItemize} 


{\ttfamily \#include $<$Render.h$>$}\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a5a12bf5e67227267b2eda66c00387ce2}{
\hyperlink{class_c_u_d_a_ray_casting_1_1_render_a5a12bf5e67227267b2eda66c00387ce2}{Render} (int width, int height)}
\label{class_c_u_d_a_ray_casting_1_1_render_a5a12bf5e67227267b2eda66c00387ce2}

\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_ac885087516e6ea998e4de1e139f8031c}{
\hyperlink{class_c_u_d_a_ray_casting_1_1_render_ac885087516e6ea998e4de1e139f8031c}{$\sim$Render} (void)}
\label{class_c_u_d_a_ray_casting_1_1_render_ac885087516e6ea998e4de1e139f8031c}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
void \hyperlink{class_c_u_d_a_ray_casting_1_1_render_a442d954608359b22f99981c3a263aa22}{Initialize} (boost::shared\_\-array$<$ unsigned char $>$ dataPtr, int texWidth, int texHeight, int texDepth, boost::shared\_\-array$<$ float $>$ transferFunctionPtr, int transferFunctionWidth, float step, int stepNumber, const \hyperlink{class_c_u_d_a_ray_casting_1_1_matrix4x4}{Matrix4x4} \&viewMatrix, const \hyperlink{class_c_u_d_a_ray_casting_1_1_matrix4x4}{Matrix4x4} \&volumeMatrix, const \hyperlink{class_c_u_d_a_ray_casting_1_1_vector3}{Vector3} \&bboxMin, const \hyperlink{class_c_u_d_a_ray_casting_1_1_vector3}{Vector3} \&bboxMax)
\begin{DoxyCompactList}\small\item\em Loads a default opengl configuration. \item\end{DoxyCompactList}\item 
void \hyperlink{class_c_u_d_a_ray_casting_1_1_render_a1600480e42a7c5610e2c5c676e129419}{Reshape} (int width, int height)
\begin{DoxyCompactList}\small\item\em Reshapes opengl viewport and initialize states. \item\end{DoxyCompactList}\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_aea42e7281c4007185e26f52cf09f936b}{
void \hyperlink{class_c_u_d_a_ray_casting_1_1_render_aea42e7281c4007185e26f52cf09f936b}{BeginFrame} (void)}
\label{class_c_u_d_a_ray_casting_1_1_render_aea42e7281c4007185e26f52cf09f936b}

\begin{DoxyCompactList}\small\item\em Begins render frame. \item\end{DoxyCompactList}\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a81b0cb50cfb713e9cf01b96ee290c0eb}{
void \hyperlink{class_c_u_d_a_ray_casting_1_1_render_a81b0cb50cfb713e9cf01b96ee290c0eb}{EndFrame} (void)}
\label{class_c_u_d_a_ray_casting_1_1_render_a81b0cb50cfb713e9cf01b96ee290c0eb}

\begin{DoxyCompactList}\small\item\em Ends render frame. \item\end{DoxyCompactList}\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_aafccfef2307f69aa91d3ff6d7bead0a8}{
void {\bfseries DrawVolume} (void)}
\label{class_c_u_d_a_ray_casting_1_1_render_aafccfef2307f69aa91d3ff6d7bead0a8}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_ad5c37d15fa6065ef6816b46ea015ea95}{
void {\bfseries UpdateTransferFunction} (void)}
\label{class_c_u_d_a_ray_casting_1_1_render_ad5c37d15fa6065ef6816b46ea015ea95}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_ac5624f34ca3b73fd78ef5ffc4ee1f3da}{
void {\bfseries SetStep} (float step)}
\label{class_c_u_d_a_ray_casting_1_1_render_ac5624f34ca3b73fd78ef5ffc4ee1f3da}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a03ecfaef61c889fedce2df236bad4499}{
void {\bfseries SetStepNumber} (int stepNumber)}
\label{class_c_u_d_a_ray_casting_1_1_render_a03ecfaef61c889fedce2df236bad4499}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a87b02c3748a67ca064f25183c33043d0}{
void {\bfseries DrawString} (const std::string \&s, int x, int y, const \hyperlink{class_c_u_d_a_ray_casting_1_1_vector3}{Vector3} \&color)}
\label{class_c_u_d_a_ray_casting_1_1_render_a87b02c3748a67ca064f25183c33043d0}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_ad957bcd86bf28bb91ab964dcdefdab98}{
void {\bfseries SetCamera} (const \hyperlink{class_c_u_d_a_ray_casting_1_1_matrix4x4}{Matrix4x4} \&viewMatrix)}
\label{class_c_u_d_a_ray_casting_1_1_render_ad957bcd86bf28bb91ab964dcdefdab98}

\item 
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a15dfd6a62ca19a099a414299b300c6ed}{
void {\bfseries SetVolumeMatrix} (const \hyperlink{class_c_u_d_a_ray_casting_1_1_matrix4x4}{Matrix4x4} \&volumeMatrix)}
\label{class_c_u_d_a_ray_casting_1_1_render_a15dfd6a62ca19a099a414299b300c6ed}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Opengl \hyperlink{class_c_u_d_a_ray_casting_1_1_render}{Render} tailored specifically for CUDARayCasting test. It can render these 2d geometry:
\begin{DoxyItemize}
\item Points
\item Lines
\item Curves It only supports a material being a configurable emissive color. 
\end{DoxyItemize}

\subsection{Member Function Documentation}
\hypertarget{class_c_u_d_a_ray_casting_1_1_render_a442d954608359b22f99981c3a263aa22}{
\index{CUDARayCasting::Render@{CUDARayCasting::Render}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!CUDARayCasting::Render@{CUDARayCasting::Render}}
\subsubsection[{Initialize}]{\setlength{\rightskip}{0pt plus 5cm}void Render::Initialize (boost::shared\_\-array$<$ unsigned char $>$ {\em dataPtr}, \/  int {\em texWidth}, \/  int {\em texHeight}, \/  int {\em texDepth}, \/  boost::shared\_\-array$<$ float $>$ {\em transferFunctionPtr}, \/  int {\em transferFunctionWidth}, \/  float {\em step}, \/  int {\em stepNumber}, \/  const {\bf Matrix4x4} \& {\em viewMatrix}, \/  const {\bf Matrix4x4} \& {\em volumeMatrix}, \/  const {\bf Vector3} \& {\em bboxMin}, \/  const {\bf Vector3} \& {\em bboxMax})}}
\label{class_c_u_d_a_ray_casting_1_1_render_a442d954608359b22f99981c3a263aa22}


Loads a default opengl configuration. 
\begin{DoxyParams}{Parameters}
\item[{\em width}]render window width \item[{\em height}]render window height \end{DoxyParams}
\begin{DoxyNote}{Note}
It's very ugly to have a separete method for initialization and don't use the constructor. 
\end{DoxyNote}


glewGetErrorString(err)

TODO Check CUDA capabilities \hypertarget{class_c_u_d_a_ray_casting_1_1_render_a1600480e42a7c5610e2c5c676e129419}{
\index{CUDARayCasting::Render@{CUDARayCasting::Render}!Reshape@{Reshape}}
\index{Reshape@{Reshape}!CUDARayCasting::Render@{CUDARayCasting::Render}}
\subsubsection[{Reshape}]{\setlength{\rightskip}{0pt plus 5cm}void Render::Reshape (int {\em width}, \/  int {\em height})}}
\label{class_c_u_d_a_ray_casting_1_1_render_a1600480e42a7c5610e2c5c676e129419}


Reshapes opengl viewport and initialize states. 
\begin{DoxyParams}{Parameters}
\item[{\em width}]render window width \item[{\em height}]render window height \end{DoxyParams}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
src/CUDARayCasting/\hyperlink{_render_8h}{Render.h}\item 
src/CUDARayCasting/\hyperlink{_render_8cpp}{Render.cpp}\end{DoxyCompactItemize}
