rendermodes.h File Reference

Central "variable-declaration-place". Most of the global variables through which the modules and/or threads communicate, are declared here. Every "PHDVR-file" includes rendermodes.h. More...

#include <SDL/SDL.h>
#include <SDL/SDL_thread.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include "cursor.h"

Data Structures

struct  _rendersurf
struct  _vec4f
struct  _tfunc
struct  _opacity_node
struct  _color_node

Defines

#define ADDITIONAL_BOUND
#define ABH
#define MIN_DENSITY
#define CUTTING_PLANE
#define CUTTING_SPHERE
#define ABSTRACT
#define REAL3D
#define CUT_SPHERE_INSIDE
#define CUT_SPHERE_OUTSIDE
#define LEFT_FACE
#define RIGHT_FACE
#define TOP_FACE
#define BOTTOM_FACE
#define FRONT_FACE
#define BACK_FACE
#define MAX_ICS_SURFS
#define MAX_ISO_SURFS
#define _normalize_lensto(v1, len)
#define _normalize_FAST(v1)
#define _normalize(v1)
#define _dotprod(v1, v2, dot)
#define _crossprod(v1, v2, vcross)
#define PI
#define FPS_UPDATE_INTERVAL
#define EPS
#define FP_SHIFT
#define FP_MUL
#define FP_DIV
#define SKY
#define SKYC
#define SKYZBUF
#define NEAR_RT
#define NUM_MODES
#define FHRT_NOIP_ADAPT
#define FHRT_NOIP_FINE
#define FHRT_ISOVAL_ADAPT
#define FHRT_ISOVAL_FINE
#define FHRT_MAXIP_ADAPT
#define FHRT_MAXIP_FINE
#define FHRT_AVG_ADAPT
#define FHRT_AVG_FINE
#define FHRT_RBS_ADAPT
#define FHRT_RBS_FINE
#define FHRT_ICS_ADAPT
#define FHRT_ICS_FINE
#define SLICE_RT
#define SOFT_SHADOW
#define HARD_SHADOW
#define phABS(x)
#define GTK_COLORSET(parentWindow, widgetName, color_to_set)
#define GTK_COLORGET(colorbutton, return_var_for_color)
#define LINEAR_FLOAT_IPOL_i01(fact, val1, val2, fipoled)
#define LINEAR_FLOAT_IPOL(fact, val1, val2, fipoled)
#define BILIN_FLOAT_IPOL_i01(fact1, fact2, f11, f12, f21, f22, fipoled)
#define BILIN_FLOAT_IPOL(fact1, fact2, f11, f12, f21, f22, fipoled)
#define lineDDA(x0, y0, xEnd, yEnd, color, screen_data)
#define FAST_CLEAR_KERNEL(start_exp, dw_cnt_exp, val32)
#define FAST_CLEAR(start_exp, dw_cnt_exp, val32)
#define FAST_BLIT(src_exp, dst_exp, dw_cnt_exp)
#define SLICE_PLUS
#define SLICE_MINUS
#define BILINEAR_IPOL(fact1, fact2, c11, c12, c21, c22, filtered_val)
#define SHADEFACTOR
#define MAX_SLICE_DIST
#define NUM_SLICE_CASES
#define SLICE_XY
#define SLICE_XZ
#define SLICE_YZ
#define SLICE_ARB
#define SLICE_EPS
#define TRILIN
#define BILIN
#define MIP_LVL
#define HULL
#define HULL_ADVANCE_FHRT_NOIP_ADAPT
#define HULL_ADVANCE_FHRT_NOIP_FINE
#define HULL_ADVANCE_FHRT_ISOVAL_ADAPT
#define HULL_ADVANCE_FHRT_EQUI_ISO_ADAPT

Typedefs

typedef unsigned int uint32_t
typedef unsigned short int uint16_t
typedef _rendersurf rendersurf
typedef _vec4f vec4f
typedef _tfunc tfunc
typedef _opacity_node opacity_node
typedef _color_node color_node

Functions

void fhrt_noip_adapt (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
 Generate rays to cover the screen.
void fhrt_noip_fine (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
 Generate rays to cover the screen.
void fhrt_isoval_adapt (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
 Generate rays to cover the screen.
void fhrt_isoval_fine (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
 Generate rays to cover the screen.
void fhvrc (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
void slice_rt (rendersurf *rtsurf, uint32_t *voxel)
 Render slices by raytracing.
void getinput (void)
 Input-handler.

Variables

vec4f * vdata_grad
opacity_node * opacity_nodes
opacity_node * grabbed_opacity_node
color_node * color_nodes
color_node * grabbed_color_node
float ipos []
SDL_Surface * sky
uint32_t * sdata
uint32_t * sketch_tex [5]
uint32_t sketch_w_m1
uint32_t sketch_h_m1
uint32_t curr_sc_x
uint32_t curr_sc_y
uint32_t sketch_sc_x_off
uint32_t sketch_sc_y_off
unsigned char pencil_sketch
SDL_Thread * shadow_thread
SDL_Thread * render3d_threadptr
int stop_shadow_thread
int shadow_thread_running
float shadowProgress
int load_thread_running
SDL_Surface * screen
uint32_t * filter_screen
uint32_t * fake_screen
int taking_screenshot
rendersurf rtsurf
rendersurf tfsurf
uint32_t xsiz
uint32_t ysiz
uint32_t zsiz
uint32_t * voxel
uint32_t sc_x
uint32_t sc_y
uint32_t view_dist
float fsc_x
float fsc_y
float ratio_kipp
int faceshade
int coarseness
int coarseness_mipavg
int coarseness_rbsics
int faint_whisps
int preshading
int rbs_dissolve
int ics_dissolve
int rbs_alpha_correction
int ics_alpha_correction
int current_cutting_obj
int abstract_vs_3d_cutview
int cut_sphere_side
float plane_normal [4]
uint32_t plane_color
float plane_radius
float sphere_center [4]
uint32_t sphere_color
uint32_t bb_color
int active_surfs [MAX_ICS_SURFS]
int active_surfs_colors [MAX_ICS_SURFS]
int active_surfs_isovals [MAX_ICS_SURFS]
int active_surfs_hits [MAX_ICS_SURFS]
int active_surfs_tfcol [MAX_ICS_SURFS]
float active_surfs_thicknesses [MAX_ICS_SURFS]
GtkProgressBar * progressBar
GtkProgressBar * progressBarShadow
GtkProgressBar * progressBarSmoothenShadow
GtkProgressBar * progressBarSmoothenData
static __inline long long c1
float * tf_opacity
uint32_t * tf_color
uint32_t tf_histo [1<< 12]
uint32_t max_histo
uint32_t showFPS
GtkWindow * GUI_toplevelwindow
GtkWidget * GUIwindow
GtkWidget * cs
GtkWidget * fs
uint32_t cs_color
uint32_t cs_color_currsel
GMainLoop * ml
int GUIdone
int GUIactive
char last_fname [FILENAME_MAX]
int color_sel_active
uint32_t step_isoval
float thickness_isoval
float rbs_grad_dep
char ipol3d
float step_size
float shadow_step_size
int shadow_type
int edge_detection
int edge_color
int toonshading
float edge_detect_greed
 fsc_y
 ratio_kipp
float fsc_ratio
float recip_fsc_ratio
float hrecip_fsc_ratio
float recip_fscx_ratio
float recip_fscy
int rendermode
int faceshade
unsigned char diffborder
 unsigned char diffborder=10;
int refresh
int lobound
int hibound
float vol_diag_len
float sp_d
float sp_n [4]
int slice_dir
int slice_center
int slice_use_tf
float slice_cam [4]
float slice_cam_str [4]
float slice_cam_up [4]
float slice_cam_for [4]
float slice_dist
uint32_t curr_slice_xy_z
uint32_t curr_slice_xz_y
uint32_t curr_slice_yz_x
int slice_filter
uint32_t xsiz_mip
uint32_t ysiz_mip
uint32_t zsiz_mip
uint32_t * vdata_mip
uint32_t lightcolor
float light_pos [4]
float light_for [4]
float light_up [4]
float light_str [4]
float phong_exponent
float Iamb
float Idiff
float Ispec
float Isum
float HdotN
float Iamb_factor
float Idiff_factor
float Ispec_factor
float ipol_normal [4]
float halfvec [4]
float view [4]
int use_occlusion_data


Detailed Description

Central "variable-declaration-place". Most of the global variables through which the modules and/or threads communicate, are declared here. Every "PHDVR-file" includes rendermodes.h.


Function Documentation

void fhrt_isoval_adapt rendersurf *  rtsurf,
uint32_t *  voxel,
float *  ipos,
float *  ifor,
float *  iup,
float *  istr
 

Generate rays to cover the screen.

A simple adaptive raycasting-scheme is followed here. If the colors of adjacent coarse-grid-scanpoint differ too much, then new rays are cast. This happens "recursively" until either small enough blocks are reached, or the pixels don't differ too much and can therefore be filled with the "unique" color of the 4 adjacents pixels.

Parameters:
rtsurf Pointer to surface to draw to.
voxel Pointer to the 3D dataset.
ipos Pointer to the camera-position.
ifor Pointer to the camera-viewvector.
iup Pointer to the camera-upvector.
istr Pointer to the camera-strafevector.

void fhrt_isoval_fine rendersurf *  rtsurf,
uint32_t *  voxel,
float *  ipos,
float *  ifor,
float *  iup,
float *  istr
 

Generate rays to cover the screen.

A ray is generated for every pixel.

Parameters:
rtsurf Pointer to surface to draw to.
voxel Pointer to the 3D dataset.
ipos Pointer to the camera-position.
ifor Pointer to the camera-viewvector.
iup Pointer to the camera-upvector.
istr Pointer to the camera-strafevector.

void fhrt_noip_adapt rendersurf *  rtsurf,
uint32_t *  voxel,
float *  ipos,
float *  ifor,
float *  iup,
float *  istr
 

Generate rays to cover the screen.

A simple adaptive raycasting-scheme is followed here. If the colors of adjacent coarse-grid-scanpoint differ too much, then new rays are cast. This happens "recursively" until either small enough blocks are reached, or the pixels don't differ too much and can therefore be filled with the "unique" color of the 4 adjacents pixels.

Parameters:
rtsurf Pointer to surface to draw to.
voxel Pointer to the 3D dataset.
ipos Pointer to the camera-position.
ifor Pointer to the camera-viewvector.
iup Pointer to the camera-upvector.
istr Pointer to the camera-strafevector.

void fhrt_noip_fine rendersurf *  rtsurf,
uint32_t *  voxel,
float *  ipos,
float *  ifor,
float *  iup,
float *  istr
 

Generate rays to cover the screen.

A ray is generated for every pixel.

Parameters:
rtsurf Pointer to surface to draw to.
voxel Pointer to the 3D dataset.
ipos Pointer to the camera-position.
ifor Pointer to the camera-viewvector.
iup Pointer to the camera-upvector.
istr Pointer to the camera-strafevector.

void getinput void   ) 
 

Input-handler.

Polls the input-devices. Keyboard, Mouse and Window-manager-events are handled here.

void slice_rt rendersurf *  rtsurf,
uint32_t *  voxel
[inline]
 

Render slices by raytracing.

Parameters:
rtsurf Pointer to the memory-area to draw to.
voxel Pointer to the voxel-dataset.


Generated on Wed Dec 13 08:40:13 2006 for PHDVR - Direct Volume Renderer by  doxygen 1.4.6