Tachyon (current)  Current Main Branch
Macros | Functions
parametric.cpp File Reference

Parametric surface plotting example scene. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "ProfileHooks.h"
#include "stb_image_write.h"
#include "TachyonOptiX.h"

Go to the source code of this file.

Macros

#define STB_IMAGE_WRITE_IMPLEMENTATION
 

Functions

void HSItoRGB (float h, float s, float i, float &r, float &g, float &b)
 
template<typename F >
float * parametric_lambda (int udiv, float umin, float umax, int vdiv, float vmin, float vmax, F function)
 
float * parametric_grid_verts (const char *surftype, int udiv, int vdiv, int &wrapmesh)
 
float * parametric_grid_colors3f (int udiv, int vdiv)
 
float * parametric_grid_colors4f (int udiv, int vdiv)
 
int * parametric_quadmesh_indices (int udiv, int vdiv, int wrapmesh)
 
int * parametric_trimesh_indices (int udiv, int vdiv, int wrapmesh)
 
int * parametric_wiremesh_indices (int udiv, int vdiv, int wrapmesh)
 
void gen_trimesh (TachyonOptiX *rt, int udiv, int vdiv, int wrapmesh, float *coords, float *colors, int *trimesh_indices, int mat)
 
void gen_quadmesh (TachyonOptiX *rt, int udiv, int vdiv, int wrapmesh, float *coords, float *colors, int *quadmesh_indices, int mat)
 
void gen_spheresurf (TachyonOptiX *rt, int udiv, int vdiv, float *coords, float radius, float *colors, int mat)
 
void gen_wiremesh (TachyonOptiX *rt, int udiv, int vdiv, int wrapmesh, float *coords, float radius, float *colors, int *wiremesh_indices, int mat)
 
void gen_floor (TachyonOptiX *rt, float width, float height, float length, int mat)
 
void print_coords (float *coords, int numpts, int count)
 
int main (int argc, const char **argv)
 

Detailed Description

Parametric surface plotting example scene.

Definition in file parametric.cpp.

Macro Definition Documentation

◆ STB_IMAGE_WRITE_IMPLEMENTATION

#define STB_IMAGE_WRITE_IMPLEMENTATION

Definition at line 28 of file parametric.cpp.

Function Documentation

◆ gen_floor()

void gen_floor ( TachyonOptiX rt,
float  width,
float  height,
float  length,
int  mat 
)

◆ gen_quadmesh()

void gen_quadmesh ( TachyonOptiX rt,
int  udiv,
int  vdiv,
int  wrapmesh,
float *  coords,
float *  colors,
int *  quadmesh_indices,
int  mat 
)

◆ gen_spheresurf()

void gen_spheresurf ( TachyonOptiX rt,
int  udiv,
int  vdiv,
float *  coords,
float  radius,
float *  colors,
int  mat 
)

◆ gen_trimesh()

void gen_trimesh ( TachyonOptiX rt,
int  udiv,
int  vdiv,
int  wrapmesh,
float *  coords,
float *  colors,
int *  trimesh_indices,
int  mat 
)

◆ gen_wiremesh()

void gen_wiremesh ( TachyonOptiX rt,
int  udiv,
int  vdiv,
int  wrapmesh,
float *  coords,
float  radius,
float *  colors,
int *  wiremesh_indices,
int  mat 
)

◆ HSItoRGB()

void HSItoRGB ( float  h,
float  s,
float  i,
float &  r,
float &  g,
float &  b 
)

Definition at line 38 of file parametric.cpp.

References M_PI.

Referenced by parametric_grid_colors3f(), and parametric_grid_colors4f().

◆ main()

int main ( int  argc,
const char **  argv 
)

static methods for querying OptiX-supprted GPU hardware independent of whether we actually have an active context.

Definition at line 742 of file parametric.cpp.

References TachyonOptiX::add_directional_light(), TachyonOptiX::add_material(), TachyonOptiX::camera_dof_enable(), TachyonOptiX::device_count(), TachyonOptiX::framebuffer_clear(), TachyonOptiX::framebuffer_colorspace(), TachyonOptiX::framebuffer_download_rgb4u(), TachyonOptiX::framebuffer_get_size(), TachyonOptiX::framebuffer_resize(), gen_floor(), gen_quadmesh(), gen_spheresurf(), gen_trimesh(), gen_wiremesh(), TachyonOptiX::optix_version(), parametric_grid_colors3f(), parametric_grid_verts(), parametric_quadmesh_indices(), parametric_trimesh_indices(), parametric_wiremesh_indices(), print_coords(), TachyonOptiX::print_raystats_info(), PROFILE_INITIALIZE, PROFILE_POP_RANGE, PROFILE_PUSH_RANGE, PROFILE_START, TachyonOptiX::render(), TachyonOptiX::RT_BACKGROUND_TEXTURE_SKY_SPHERE, RT_COLORSPACE_sRGB, TachyonOptiX::RT_FOG_NONE, TachyonOptiX::RT_PERSPECTIVE, TachyonOptiX::RT_VERB_MIN, TachyonOptiX::RT_VERB_TIMING, TachyonOptiX::set_aa_samples(), TachyonOptiX::set_ao_ambient(), TachyonOptiX::set_ao_direct(), TachyonOptiX::set_ao_maxdist(), TachyonOptiX::set_ao_samples(), TachyonOptiX::set_bg_color(), TachyonOptiX::set_bg_color_grad_bot(), TachyonOptiX::set_bg_color_grad_top(), TachyonOptiX::set_bg_gradient(), TachyonOptiX::set_bg_gradient_botval(), TachyonOptiX::set_bg_gradient_topval(), TachyonOptiX::set_bg_mode(), TachyonOptiX::set_camera_dof_fnumber(), TachyonOptiX::set_camera_dof_focal_dist(), TachyonOptiX::set_camera_lookat(), TachyonOptiX::set_camera_pos(), TachyonOptiX::set_camera_stereo_convergence_dist(), TachyonOptiX::set_camera_stereo_eyesep(), TachyonOptiX::set_camera_type(), TachyonOptiX::set_camera_zoom(), TachyonOptiX::set_cue_mode(), TachyonOptiX::set_verbose_mode(), TachyonOptiX::shadows_enable(), stbi_flip_vertically_on_write(), and stbi_write_png().

◆ parametric_grid_colors3f()

float* parametric_grid_colors3f ( int  udiv,
int  vdiv 
)

Definition at line 378 of file parametric.cpp.

References HSItoRGB().

Referenced by main().

◆ parametric_grid_colors4f()

float* parametric_grid_colors4f ( int  udiv,
int  vdiv 
)

Definition at line 406 of file parametric.cpp.

References HSItoRGB().

◆ parametric_grid_verts()

float* parametric_grid_verts ( const char *  surftype,
int  udiv,
int  vdiv,
int &  wrapmesh 
)

Definition at line 75 of file parametric.cpp.

References M_PI, and parametric_lambda().

Referenced by main().

◆ parametric_lambda()

template<typename F >
float* parametric_lambda ( int  udiv,
float  umin,
float  umax,
int  vdiv,
float  vmin,
float  vmax,
function 
)

Definition at line 48 of file parametric.cpp.

Referenced by parametric_grid_verts().

◆ parametric_quadmesh_indices()

int* parametric_quadmesh_indices ( int  udiv,
int  vdiv,
int  wrapmesh 
)

Definition at line 435 of file parametric.cpp.

Referenced by main().

◆ parametric_trimesh_indices()

int* parametric_trimesh_indices ( int  udiv,
int  vdiv,
int  wrapmesh 
)

Definition at line 467 of file parametric.cpp.

Referenced by main().

◆ parametric_wiremesh_indices()

int* parametric_wiremesh_indices ( int  udiv,
int  vdiv,
int  wrapmesh 
)

Definition at line 502 of file parametric.cpp.

Referenced by main().

◆ print_coords()

void print_coords ( float *  coords,
int  numpts,
int  count 
)

Definition at line 721 of file parametric.cpp.

Referenced by main().