Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OptiXDisplayDevice Class Reference

FileRenderer subclass to exports VMD scenes to OptiX. More...

#include <OptiXDisplayDevice.h>

Inheritance diagram for OptiXDisplayDevice:

FileRenderer DisplayDevice List of all members.

Public Methods

 OptiXDisplayDevice (VMDApp *, int interactive)
 constructor ... initialize some variables. More...

virtual ~OptiXDisplayDevice (void)
 destructor. More...

void write_header (void)
 write the header info. This is an alias for prepare3D. More...

void write_trailer (void)
 write any trailer info. This is called by update. More...


Static Public Methods

unsigned int device_count (void)
 wrap OptiXRenderer to eliminate overly broad inclusion of OptiX headers. More...


Protected Methods

void send_cylinder_buffer (void)
void send_sphere_buffer (void)
void send_triangle_buffer (void)
void cylinder (float *, float *, float rad, int filled)
 draw a cylinder, with optional caps. More...

void sphere (float *xyzr)
 draw a sphere. More...

void sphere_array (int num, int res, float *centers, float *radii, float *colors)
 draw a sphere array. More...

void text (float *pos, float size, float thickness, const char *str)
 draw text at specified location. More...

void triangle (const float *, const float *, const float *, const float *, const float *, const float *)
 single color triangle with interpolated surface normals. More...

void tricolor (const float *xyz1, const float *xyz2, const float *xyz3, const float *n1, const float *n2, const float *n3, const float *c1, const float *c2, const float *c3)
 triangle with interpolated surface normals and vertex colors. More...

void trimesh_c4u_n3b_v3f (unsigned char *c, signed char *n, float *v, int numfacets)
 triangle mesh built from a vertex array. More...

void trimesh_c4u_n3f_v3f (unsigned char *c, float *n, float *v, int numfacets)
 triangle mesh built from a vertex array. More...

void trimesh_c4n3v3 (int numverts, float *cnv, int numfacets, int *facets)
 triangle mesh built from a vertex array and facet vertex index arrays. More...

void trimesh_n3b_v3f (signed char *n, float *v, int numfacets)
void trimesh_n3f_v3f (float *n, float *v, int numfacets)
 triangle mesh built from a vertex array. More...

void trimesh_n3fopt_v3f (float *n, float *v, int numfacets)
 flat-shaded triangle mesh built from a vertex array, if this routine isn't overridden, it has the same behavior as trimesh_n3f_v3f(), but if it is, the FileRenderer subclass can choose to skip storing surface normals in favor of on-the-fly facet normal calculation or something similar, for greater memory efficiency. More...

void tristrip (int numverts, const float *cnv, int numstrips, const int *vertsperstrip, const int *facets)
 triangle strips built from a vertex array and vertex index arrays. More...


Detailed Description

FileRenderer subclass to exports VMD scenes to OptiX.

Definition at line 87 of file OptiXDisplayDevice.h.


Constructor & Destructor Documentation

OptiXDisplayDevice::OptiXDisplayDevice VMDApp  ,
int    interactive
 

constructor ... initialize some variables.

Definition at line 101 of file OptiXDisplayDevice.C.

References FileRenderer::aasamples, NameList< int >::add_name, FileRenderer::aosamples, FileRenderer::curformat, FileRenderer::formats, FileRenderer::has_aa, PROFILE_POP_RANGE, PROFILE_PUSH_RANGE, DisplayDevice::vmdapp, and wkf_timer_create.

OptiXDisplayDevice::~OptiXDisplayDevice void    [virtual]
 

destructor.

Definition at line 134 of file OptiXDisplayDevice.C.

References PROFILE_POP_RANGE, PROFILE_PUSH_RANGE, and wkf_timer_destroy.


Member Function Documentation

void OptiXDisplayDevice::cylinder float *   ,
float *   ,
float    rad,
int    filled
[protected, virtual]
 

draw a cylinder, with optional caps.

Reimplemented from FileRenderer.

Definition at line 195 of file OptiXDisplayDevice.C.

References ResizeArray< float >::append, ResizeArray< float >::append2, ResizeArray< float >::append2x3, ResizeArray< float >::append3, FileRenderer::colorIndex, CYLINDER_LEADINGCAP, CYLINDER_TRAILINGCAP, Matrix4::mat, FileRenderer::matData, FileRenderer::materialIndex, NULL, ResizeArray< float >::num, FileRenderer::scale_factor, send_cylinder_buffer, Stack< Matrix4 >::top, and FileRenderer::transMat.

unsigned int OptiXDisplayDevice::device_count void    [static]
 

wrap OptiXRenderer to eliminate overly broad inclusion of OptiX headers.

Definition at line 145 of file OptiXDisplayDevice.C.

References OptiXRenderer::device_count.

Referenced by FileRenderList::FileRenderList.

void OptiXDisplayDevice::send_cylinder_buffer void    [protected]
 

Definition at line 167 of file OptiXDisplayDevice.C.

References OptiXRenderer::cylinder_array_color, ResizeArray< float >::num, and OptiXRenderer::ring_array_color.

Referenced by cylinder, and write_trailer.

void OptiXDisplayDevice::send_sphere_buffer void    [protected]
 

Definition at line 256 of file OptiXDisplayDevice.C.

References ResizeArray< float >::num, and OptiXRenderer::sphere_array_color.

Referenced by sphere, and write_trailer.

void OptiXDisplayDevice::send_triangle_buffer void    [protected]
 

Definition at line 416 of file OptiXDisplayDevice.C.

References FileRenderer::matData, ResizeArray< float >::num, and OptiXRenderer::trimesh_n3f_v3f.

Referenced by triangle, and write_trailer.

void OptiXDisplayDevice::sphere float *    xyzr [protected, virtual]
 

draw a sphere.

Reimplemented from FileRenderer.

Definition at line 273 of file OptiXDisplayDevice.C.

References ResizeArray< float >::append, ResizeArray< float >::append3, FileRenderer::colorIndex, Matrix4::mat, FileRenderer::matData, FileRenderer::materialIndex, NULL, ResizeArray< float >::num, FileRenderer::scale_factor, send_sphere_buffer, OptiXRenderer::sphere_array_color, Stack< Matrix4 >::top, and FileRenderer::transMat.

void OptiXDisplayDevice::sphere_array int    num,
int    res,
float *    centers,
float *    radii,
float *    colors
[protected, virtual]
 

draw a sphere array.

Reimplemented from FileRenderer.

Definition at line 313 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, FileRenderer::nearest_index, FileRenderer::scale_factor, OptiXRenderer::sphere_array_color, FileRenderer::super_set_color, Stack< Matrix4 >::top, and FileRenderer::transMat.

void OptiXDisplayDevice::text float *    pos,
float    size,
float    thickness,
const char *    str
[protected, virtual]
 

draw text at specified location.

Reimplemented from FileRenderer.

Definition at line 347 of file OptiXDisplayDevice.C.

References ResizeArray::append2x3, ResizeArray::append3, FileRenderer::colorIndex, OptiXRenderer::cylinder_array, DEFAULT_RADIUS, hersheyDrawInitLetter, hersheyDrawNextLine, FileRenderer::matData, FileRenderer::materialIndex, NULL, ResizeArray::num, size, OptiXRenderer::sphere_array, Stack< Matrix4 >::top, FileRenderer::transMat, DisplayDevice::x, and DisplayDevice::y.

void OptiXDisplayDevice::triangle const float *    a,
const float *    b,
const float *    c,
const float *    n1,
const float *    n2,
const float *    n3
[protected, virtual]
 

single color triangle with interpolated surface normals.

Reimplemented from FileRenderer.

Definition at line 431 of file OptiXDisplayDevice.C.

References ResizeArray< float >::append3x3, FileRenderer::colorIndex, Matrix4::mat, FileRenderer::materialIndex, NULL, send_triangle_buffer, Stack< Matrix4 >::top, and FileRenderer::transMat.

void OptiXDisplayDevice::tricolor const float *    a,
const float *    b,
const float *    c,
const float *    n1,
const float *    n2,
const float *    n3,
const float *    c1,
const float *    c2,
const float *    c3
[protected, virtual]
 

triangle with interpolated surface normals and vertex colors.

Reimplemented from FileRenderer.

Definition at line 456 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, Stack< Matrix4 >::top, FileRenderer::transMat, OptiXRenderer::tricolor_list, and vec_copy.

void OptiXDisplayDevice::trimesh_c4n3v3 int    numverts,
float *    cnv,
int    numfacets,
int *    facets
[protected, virtual]
 

triangle mesh built from a vertex array and facet vertex index arrays.

Reimplemented from FileRenderer.

Definition at line 493 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_c4n3v3.

void OptiXDisplayDevice::trimesh_c4u_n3b_v3f unsigned char *    c,
signed char *    n,
float *    v,
int    numfacets
[protected, virtual]
 

triangle mesh built from a vertex array.

Reimplemented from FileRenderer.

Definition at line 478 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, n, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_c4u_n3b_v3f.

void OptiXDisplayDevice::trimesh_c4u_n3f_v3f unsigned char *    c,
float *    n,
float *    v,
int    numfacets
[protected, virtual]
 

triangle mesh built from a vertex array.

Reimplemented from FileRenderer.

Definition at line 486 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, n, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_c4u_n3f_v3f.

void OptiXDisplayDevice::trimesh_n3b_v3f signed char *    n,
float *    v,
int    numfacets
[protected, virtual]
 

Reimplemented from FileRenderer.

Definition at line 501 of file OptiXDisplayDevice.C.

References FileRenderer::colorIndex, FileRenderer::matData, FileRenderer::materialIndex, n, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_n3b_v3f.

void OptiXDisplayDevice::trimesh_n3f_v3f float *    n,
float *    v,
int    numfacets
[protected, virtual]
 

triangle mesh built from a vertex array.

Reimplemented from FileRenderer.

Definition at line 508 of file OptiXDisplayDevice.C.

References FileRenderer::colorIndex, FileRenderer::matData, FileRenderer::materialIndex, n, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_n3f_v3f.

void OptiXDisplayDevice::trimesh_n3fopt_v3f float *    n,
float *    v,
int    numfacets
[protected, virtual]
 

flat-shaded triangle mesh built from a vertex array, if this routine isn't overridden, it has the same behavior as trimesh_n3f_v3f(), but if it is, the FileRenderer subclass can choose to skip storing surface normals in favor of on-the-fly facet normal calculation or something similar, for greater memory efficiency.

Reimplemented from FileRenderer.

Definition at line 514 of file OptiXDisplayDevice.C.

References FileRenderer::colorIndex, FileRenderer::matData, FileRenderer::materialIndex, n, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::trimesh_v3f.

void OptiXDisplayDevice::tristrip int    numverts,
const float *    cnv,
int    numstrips,
const int *    vertsperstrip,
const int *    facets
[protected, virtual]
 

triangle strips built from a vertex array and vertex index arrays.

Reimplemented from FileRenderer.

Definition at line 520 of file OptiXDisplayDevice.C.

References FileRenderer::materialIndex, Stack< Matrix4 >::top, FileRenderer::transMat, and OptiXRenderer::tristrip.

void OptiXDisplayDevice::write_header void    [virtual]
 

write the header info. This is an alias for prepare3D.

Reimplemented from FileRenderer.

Definition at line 641 of file OptiXDisplayDevice.C.

References FileRenderer::aasamples, DisplayDevice::ao_enabled, FileRenderer::aosamples, DisplayDevice::CUE_EXP, DisplayDevice::CUE_EXP2, DisplayDevice::CUE_LINEAR, DisplayDevice::dof_enabled, OptiXRenderer::dof_on, QuickSurf::free_gpu_memory, DisplayDevice::get_ao_ambient, DisplayDevice::get_ao_direct, DisplayDevice::get_cue_density, DisplayDevice::get_cue_end, DisplayDevice::get_cue_start, DisplayDevice::get_dof_fnumber, DisplayDevice::get_dof_focal_dist, DisplayDevice::NUM_CUE_MODES, VMDApp::qsurf, OptiXRenderer::RT_FOG_EXP, OptiXRenderer::RT_FOG_EXP2, OptiXRenderer::RT_FOG_LINEAR, OptiXRenderer::RT_FOG_NONE, OptiXRenderer::set_aa_samples, OptiXRenderer::set_ao_ambient, OptiXRenderer::set_ao_direct, OptiXRenderer::set_ao_samples, OptiXRenderer::set_camera_dof_fnumber, OptiXRenderer::set_camera_dof_focal_dist, OptiXRenderer::set_cue_mode, OptiXRenderer::setup_context, DisplayDevice::shadows_enabled, OptiXRenderer::shadows_on, DisplayDevice::vmdapp, wkf_timer_start, DisplayDevice::xSize, and DisplayDevice::ySize.

void OptiXDisplayDevice::write_trailer void    [virtual]
 

write any trailer info. This is called by update.

Reimplemented from FileRenderer.

Definition at line 727 of file OptiXDisplayDevice.C.

References OptiXRenderer::destroy_scene, VMDApp::display, DisplayDevice::eyeDist, DisplayDevice::eyePos, DisplayDevice::eyeSep, FileRenderer::my_filename, NULL, DisplayDevice::ORTHOGRAPHIC, DisplayDevice::PERSPECTIVE, DisplayDevice::projection, OptiXRenderer::render_to_file, OptiXRenderer::render_to_videostream, OptiXRenderer::RT_ORTHOGRAPHIC, OptiXRenderer::RT_PERSPECTIVE, send_cylinder_buffer, send_sphere_buffer, send_triangle_buffer, OptiXRenderer::set_camera_projection, OptiXRenderer::set_camera_stereo_convergence_dist, OptiXRenderer::set_camera_stereo_eyesep, OptiXRenderer::set_camera_zoom, VideoStream::srv_connected, strupcmp, DisplayDevice::supports_gui, VMDApp::uivs, DisplayDevice::vmdapp, DisplayDevice::vSize, wkf_timer_stop, wkf_timer_time, wkf_timer_timenow, and DisplayDevice::zDist.


The documentation for this class was generated from the following files:
Generated on Tue Apr 23 04:25:46 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002