#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 |
|
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.
|
|
Generate rays to cover the screen. A ray is generated for every pixel.
|
|
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.
|
|
Generate rays to cover the screen. A ray is generated for every pixel.
|
|
Input-handler. Polls the input-devices. Keyboard, Mouse and Window-manager-events are handled here. |
|
Render slices by raytracing.
|