openvrml::gl::viewer Class Reference

Abstract class for display of VRML models using OpenGL/Mesa. More...

#include <openvrml/gl/viewer.h>

Inheritance diagram for openvrml::gl::viewer:

List of all members.

Classes

struct  event_info
 Input event. More...
struct  light_info
 Light information. More...
class  modelview_matrix_stack
 Encapsulates an extended modelview matrix stack. More...

Public Types

enum  { max_lights = 8 }
enum  light_type {
  light_unused,
  light_directional,
  light_positional
}
 Light type. More...
enum  event_type {
  event_key_down,
  event_mouse_move,
  event_mouse_click,
  event_mouse_drag,
  event_mouse_release
}
 Event type. More...

Public Member Functions

 viewer ()
 Construct a viewer for the specified browser.
virtual ~viewer () throw ()
 Destroy.
void update (double time=0.0)
 Update the scene.
virtual void redraw ()
 Redraw the scene.
void resize (size_t width, size_t height)
 Resize the viewport.
void input (event_info *e)
 Handle an event generated from user input.

Protected Types

enum  cursor_style {
  cursor_inherit,
  cursor_info,
  cursor_cycle,
  cursor_up_down,
  cursor_crosshair
}
 Cursor style. More...
enum  { maxsensitive = 1000 }

Protected Member Functions

void initialize ()
 Initialize.
void shutdown ()
 Shut down.
void begin_geometry ()
 Reset per-geometry attributes.
void end_geometry ()
 Reset attributes changed during geometry insertion.
void step (float, float, float)
 Translate the user view.
void zoom (float)
 Zoom.
void rotate (const openvrml::rotation &rot) throw ()
 Rotate the user view.
void handleKey (int)
 Handle keypresses.
void handleButton (event_info *e)
 Handle mouse button up/down.
void handleMouseDrag (int, int)
 Handle mouse dragging.
bool checkSensitive (int x, int y, event_type event)
void post_redraw ()
 Called to indicate to the windowing system that a redraw is necessary.
void set_cursor (cursor_style c)
 Called to set the cursor style.
void swap_buffers ()
 Called to indicate to the windowing system that the front and back buffers should be swapped.
void set_timer (double interval)
 Set a delay.

Protected Attributes

modelview_matrix_stack modelview_matrix_stack_
 Modelview matrix stack.
bool gl_initialized
 Indicate whether OpenGL has been initialized for rendering.
bool blend
 Indicate whether alpha blending is enabled.
bool lit
 Indicate whether lighting is enabled.
bool texture
 Indicate whether texture mapping is enabled.
bool wireframe
 Indicate whether wireframe mode is enabled.
size_t win_width
 Window width.
size_t win_height
 Window height.
color background
 Background color.
size_t objects
 Number of objects.
size_t nested_objects
 Number of nested objects.
GLUtesselator * tesselator
 GLU tesselation object.
size_t sensitive
 Count of sensitive nodes.
size_t active_sensitive
 Count of active sensitive nodes.
size_t over_sensitive
 Count of sensitive nodes the mouse is over.
nodesensitive_object [maxsensitive]
 Sensitive nodes.
bool select_mode
 Indicate whether the renderer is in select mode.
double select_z
 Window z-coordinate of last selection.
light_info light_info_ [max_lights]
 light_info for the lights in the scene.
int beginx
 Mouse drag start x-coordinate.
int beginy
 Mouse drag start y-coordinate.
bool rotating
 Whether the viewer is in the process of rotating.
bool scaling
 Whether the viewer is in the process of scaling.
bool translating
 Whether the viewer is in the process of translating.
bool draw_bounding_spheres
 Whether to draw bounding spheres.
double render_time
 Updated at the end of redraw with the time redraw took to execute.
double render_time1
 Rendering time for the previous cycle.

Private Member Functions

virtual rendering_mode do_mode ()
 Rendering mode.
virtual double do_frame_rate ()
 Frame rate.
virtual void do_reset_user_navigation ()
 Reset the user view to the position and orientation of the currently bound Viewpoint node.
virtual void do_begin_object (const char *id, bool retain)
 Begin a display list.
virtual void do_end_object ()
 End of group scope.
virtual void do_insert_background (const background_node &n)
 Insert a background into a display list.
virtual void do_insert_box (const geometry_node &n, const vec3f &size)
 Insert a box into a display list.
virtual void do_insert_cone (const geometry_node &n, float height, float radius, bool bottom, bool side)
 Insert a cone into a display list.
virtual void do_insert_cylinder (const geometry_node &n, float height, float radius, bool bottom, bool side, bool top)
 Insert a cylinder into a display list.
virtual void do_insert_elevation_grid (const geometry_node &n, unsigned int mask, const std::vector< float > &height, int32 xDimension, int32 zDimension, float xSpacing, float zSpacing, const std::vector< color > &color, const std::vector< vec3f > &normal, const std::vector< vec2f > &texCoord)
 Insert an elevation grid into a display list.
virtual void do_insert_extrusion (const geometry_node &n, unsigned int mask, const std::vector< vec3f > &spine, const std::vector< vec2f > &crossSection, const std::vector< openvrml::rotation > &orientation, const std::vector< vec2f > &scale)
 Insert an extrusion into a display list.
virtual void do_insert_line_set (const geometry_node &n, const std::vector< vec3f > &coord, const std::vector< int32 > &coordIndex, bool colorPerVertex, const std::vector< color > &color, const std::vector< int32 > &colorIndex)
 Insert a line set into a display list.
virtual void do_insert_point_set (const geometry_node &n, const std::vector< vec3f > &coord, const std::vector< color > &color)
 Insert a point set into a display list.
virtual void do_insert_shell (const geometry_node &n, unsigned int mask, const std::vector< vec3f > &coord, const std::vector< int32 > &coordIndex, const std::vector< color > &color, const std::vector< int32 > &colorIndex, const std::vector< vec3f > &normal, const std::vector< int32 > &normalIndex, const std::vector< vec2f > &texCoord, const std::vector< int32 > &texCoordIndex)
 Insert a shell into a display list.
virtual void do_insert_sphere (const geometry_node &n, float radius)
 Insert a sphere into a display list.
virtual void do_insert_dir_light (float ambientIntensity, float intensity, const color &color, const vec3f &direction)
 Insert a directional light into a display list.
virtual void do_insert_point_light (float ambientIntensity, const vec3f &attenuation, const color &color, float intensity, const vec3f &location, float radius)
 Insert a point light into a display list.
virtual void do_insert_spot_light (float ambientIntensity, const vec3f &attenuation, float beamWidth, const color &color, float cutOffAngle, const vec3f &direction, float intensity, const vec3f &location, float radius)
 Insert a point light into a display list.
virtual void do_remove_object (const node &ref)
 Remove an object from the display list.
virtual void do_enable_lighting (bool)
 Enable/disable lighting.
virtual void do_set_color (const color &rgb, float a=1.0)
 Set the color.
virtual void do_set_fog (const color &color, float visibilityRange, const char *type)
 Set the fog.
virtual void do_set_material (float ambientIntensity, const color &diffuseColor, const color &emissiveColor, float shininess, const color &specularColor, float transparency)
 Set the material.
virtual void do_set_material_mode (size_t tex_components, bool geometry_color)
 Set the material mode.
virtual void do_set_sensitive (node *object)
 Indicate that a node should be sensitive to the pointing device.
virtual void do_insert_texture (const texture_node &n, bool retainHint=false)
 Create a texture object.
virtual void do_remove_texture_object (const texture_node &n)
 Remove a texture from the display list.
virtual void do_set_texture_transform (const vec2f &center, float rotation, const vec2f &scale, const vec2f &translation)
 Set the texture transform.
virtual void do_set_viewpoint (const vec3f &position, const openvrml::rotation &orientation, float avatarSize, float visibilityLimit)
 Set the viewpoint.
virtual void do_transform (const mat4f &mat)
 Multiply the current modelview matrix by mat.
virtual void do_transform_points (size_t nPoints, vec3f *point) const
 Transform points by the current modelview matrix.
virtual void do_draw_bounding_sphere (const bounding_sphere &bs, bounding_volume::intersection intersection)
 Draw a bounding sphere.
virtual void do_post_redraw ()=0
 Called to indicate to the windowing system that a redraw is necessary.
virtual void do_set_cursor (cursor_style c)=0
 Called to set the cursor style.
virtual void do_swap_buffers ()=0
 Called to indicate to the windowing system that the front and back buffers should be swapped.
virtual void do_set_timer (double interval)=0
 Set a delay.

Detailed Description

Abstract class for display of VRML models using OpenGL/Mesa.

A window-system specific subclass needs to redefine the pure virtual methods.


Member Enumeration Documentation

anonymous enum
Enumerator:
max_lights 

Maximum number of lights in a scene.

Light type.

Enumerator:
light_unused 

Unused.

light_directional 

Directional.

light_positional 

Positional.

Event type.

Enumerator:
event_key_down 

Key down.

event_mouse_move 

Mouse movement.

event_mouse_click 

Mouse button click.

event_mouse_drag 

Mouse drag.

event_mouse_release 

Mouse button release.

Cursor style.

Enumerator:
cursor_inherit 

Inherit the parent's cursor style.

cursor_info 

Pointing hand.

cursor_cycle 

Arrows rotating in a circle.

cursor_up_down 

Bidirectional pointing up and down.

cursor_crosshair 

Crosshair.

anonymous enum [protected]
Enumerator:
maxsensitive 

Maximum number of sensitive nodes.


Constructor & Destructor Documentation

openvrml::gl::viewer::viewer ( )

Construct a viewer for the specified browser.

Reimplemented from openvrml::viewer.

openvrml::gl::viewer::~viewer ( ) throw () [virtual]

Destroy.

Implements openvrml::viewer.


Member Function Documentation

void openvrml::gl::viewer::initialize ( ) [protected]

Initialize.

void openvrml::gl::viewer::shutdown ( ) [protected]

Shut down.

void openvrml::gl::viewer::begin_geometry ( ) [protected]

Reset per-geometry attributes.

Called after the appearance/material has been set.

void openvrml::gl::viewer::end_geometry ( ) [protected]

Reset attributes changed during geometry insertion.

void openvrml::gl::viewer::step ( float  x,
float  y,
float  z 
) [protected]

Translate the user view.

Parameters:
[in]xtranslation vector x component.
[in]ytranslation vector y component.
[in]ztranslation vector z component.
void openvrml::gl::viewer::zoom ( float  z) [protected]

Zoom.

Parameters:
[in]zamount to zoom.
void openvrml::gl::viewer::rotate ( const openvrml::rotation rot) throw () [protected]

Rotate the user view.

Parameters:
[in]rotrotation.
void openvrml::gl::viewer::handleKey ( int  key) [protected]

Handle keypresses.

Parameters:
[in]keykey identifier.
void openvrml::gl::viewer::handleButton ( event_info e) [protected]

Handle mouse button up/down.

Parameters:
[in]eevent data.
void openvrml::gl::viewer::handleMouseDrag ( int  x,
int  y 
) [protected]

Handle mouse dragging.

Parameters:
[in]xpointer x-coordinate.
[in]ypointer y-coordinate.
bool openvrml::gl::viewer::checkSensitive ( int  x,
int  y,
event_type  event 
) [protected]

Check for pickable objects.

void openvrml::gl::viewer::post_redraw ( ) [protected]

Called to indicate to the windowing system that a redraw is necessary.

void openvrml::gl::viewer::set_cursor ( cursor_style  c) [protected]

Called to set the cursor style.

Parameters:
[in]ccursor style identifier.
void openvrml::gl::viewer::swap_buffers ( ) [protected]

Called to indicate to the windowing system that the front and back buffers should be swapped.

void openvrml::gl::viewer::set_timer ( double  interval) [protected]

Set a delay.

Parameters:
[in]intervalmilliseconds to delay.
void openvrml::gl::viewer::update ( double  time = 0.0)

Update the scene.

update is called from a timer callback and from checkSensitive.

Parameters:
[in]timecurrent time.
void openvrml::gl::viewer::redraw ( ) [virtual]

Redraw the scene.

void openvrml::gl::viewer::resize ( size_t  width,
size_t  height 
)

Resize the viewport.

Parameters:
[in]widthnew width.
[in]heightnew height.
void openvrml::gl::viewer::input ( event_info e)

Handle an event generated from user input.

Parameters:
[in]eevent data.
openvrml::gl::viewer::rendering_mode openvrml::gl::viewer::do_mode ( ) [private, virtual]

Rendering mode.

Returns:
the rendering_mode.

Implements openvrml::viewer.

double openvrml::gl::viewer::do_frame_rate ( ) [private, virtual]

Frame rate.

Returns:
the frame rate.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_reset_user_navigation ( ) [private, virtual]

Reset the user view to the position and orientation of the currently bound Viewpoint node.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_begin_object ( const char *  id,
bool  retain 
) [private, virtual]

Begin a display list.

begin_object and end_object should correspond to grouping_nodes. Group-level scoping for directional lights, anchors, sensors are handled here. Display lists can optionally be created (but the retain flag is just a hint, not guaranteed). Retained objects can be referred to later to avoid duplicating geometry. OpenGL doesn't allow nested objects. The top-down approach of putting entire groups in display lists is faster for static scenes but uses more memory and means that if anything is changed, the whole object must be tossed.

The bottom-up model wraps each piece of geometry in a dlist but requires traversal of the entire scene graph to reference each dlist. The decision about what groups to stuff in an object is punted to the object itself, as it can decide whether it is mutable.

The OpenGL viewer never puts objects in display lists, so the retain hint is ignored.

Parameters:
[in]idnot used.
[in]retainnot used.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_end_object ( ) [private, virtual]

End of group scope.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_background ( const background_node n) [private, virtual]

Insert a background into a display list.

Parameters:
[in]na background_node.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_box ( const geometry_node n,
const vec3f size 
) [private, virtual]

Insert a box into a display list.

Parameters:
[in]nthe geometry_node corresponding to the box.
[in]sizebox dimensions.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_cone ( const geometry_node n,
float  height,
float  radius,
bool  bottom,
bool  side 
) [private, virtual]

Insert a cone into a display list.

Parameters:
[in]nthe geometry_node corresponding to the cone.
[in]heightheight.
[in]radiusradius at base.
[in]bottomshow the bottom.
[in]sideshow the side.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_cylinder ( const geometry_node n,
float  height,
float  radius,
bool  bottom,
bool  side,
bool  top 
) [private, virtual]

Insert a cylinder into a display list.

Parameters:
[in]nthe geometry_node corresponding to the cylinder.
[in]heightheight.
[in]radiusradius.
[in]bottomshow the bottom.
[in]sideshow the side.
[in]topshow the top.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_elevation_grid ( const geometry_node node,
unsigned int  mask,
const std::vector< float > &  height,
int32  xDimension,
int32  zDimension,
float  xSpacing,
float  zSpacing,
const std::vector< color > &  color,
const std::vector< vec3f > &  normal,
const std::vector< vec2f > &  texCoord 
) [private, virtual]

Insert an elevation grid into a display list.

Parameters:
[in]nodethe geometry_node corresponding to the elevation grid.
[in]mask
[in]heightheight field.
[in]xDimensionvertices in the x direction.
[in]zDimensionvertices in the z direction.
[in]xSpacingdistance between vertices in the x direction.
[in]zSpacingdistance between vertices in the z direction.
[in]colorcolors.
[in]normalnormals.
[in]texCoordtexture coordinates.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_extrusion ( const geometry_node n,
unsigned int  mask,
const std::vector< vec3f > &  spine,
const std::vector< vec2f > &  crossSection,
const std::vector< openvrml::rotation > &  orientation,
const std::vector< vec2f > &  scale 
) [private, virtual]

Insert an extrusion into a display list.

Parameters:
[in]nthe geometry_node corresponding to the extrusion.
[in]mask
[in]spinespine points.
[in]crossSectioncross-sections.
[in]orientationcross-section orientations.
[in]scalecross-section scales.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_line_set ( const geometry_node n,
const std::vector< vec3f > &  coord,
const std::vector< int32 > &  coordIndex,
bool  colorPerVertex,
const std::vector< color > &  color,
const std::vector< int32 > &  colorIndex 
) [private, virtual]

Insert a line set into a display list.

Parameters:
[in]nthe geometry_node corresponding to the line set.
[in]coordcoordinates.
[in]coordIndexcoordinate indices.
[in]colorPerVertexwhether colors are applied per-vertex or per- face.
[in]colorcolors.
[in]colorIndexcolor indices.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_point_set ( const geometry_node n,
const std::vector< vec3f > &  coord,
const std::vector< color > &  color 
) [private, virtual]

Insert a point set into a display list.

Parameters:
[in]nthe geometry_node corresponding to the point set.
[in]coordpoints.
[in]colorcolors.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_shell ( const geometry_node n,
unsigned int  mask,
const std::vector< vec3f > &  coord,
const std::vector< int32 > &  coord_index,
const std::vector< color > &  color,
const std::vector< int32 > &  color_index,
const std::vector< vec3f > &  normal,
const std::vector< int32 > &  normal_index,
const std::vector< vec2f > &  tex_coord,
const std::vector< int32 > &  tex_coord_index 
) [private, virtual]

Insert a shell into a display list.

Parameters:
[in]nthe geometry_node corresponding to the shell.
[in]mask
[in]coordcoordinates.
[in]coord_indexcoordinate indices.
[in]colorcolors.
[in]color_indexcolor indices.
[in]normalnormals.
[in]normal_indexnormal indices.
[in]tex_coordtexture coordinates.
[in]tex_coord_indextexture coordinate indices.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_sphere ( const geometry_node n,
float  radius 
) [private, virtual]

Insert a sphere into a display list.

Parameters:
[in]nthe geometry_node corresponding to the sphere.
[in]radiussphere radius.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_dir_light ( float  ambientIntensity,
float  intensity,
const color color,
const vec3f direction 
) [private, virtual]

Insert a directional light into a display list.

Parameters:
[in]ambientIntensityambient intensity.
[in]intensityintensity.
[in]colorcolor.
[in]directiondirection.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_point_light ( float  ambientIntensity,
const vec3f attenuation,
const color color,
float  intensity,
const vec3f location,
float  radius 
) [private, virtual]

Insert a point light into a display list.

Parameters:
[in]ambientIntensityambient intensity.
[in]attenuationattenuation.
[in]colorcolor.
[in]intensityintensity.
[in]locationlocation.
[in]radiusradius.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_spot_light ( float  ambientIntensity,
const vec3f attenuation,
float  beamWidth,
const color color,
float  cutOffAngle,
const vec3f direction,
float  intensity,
const vec3f location,
float  radius 
) [private, virtual]

Insert a point light into a display list.

Parameters:
[in]ambientIntensityambient intensity.
[in]attenuationattenuation.
[in]beamWidthbeam width.
[in]colorcolor.
[in]cutOffAnglecut-off angle.
[in]directiondirection.
[in]intensityintensity.
[in]locationlocation.
[in]radiusradius.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_remove_object ( const node ref) [private, virtual]

Remove an object from the display list.

Parameters:
[in]refobject handle.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_enable_lighting ( bool  val) [private, virtual]

Enable/disable lighting.

Parameters:
[in]valwhether lighting should be enabled.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_color ( const color rgb,
float  a = 1.0 
) [private, virtual]

Set the color.

Parameters:
[in]rgbred, green, and blue components.
[in]aalpha (transparency) component.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_fog ( const color color,
float  visibilityRange,
const char *  type 
) [private, virtual]

Set the fog.

Parameters:
[in]colorfog color.
[in]visibilityRangethe distance at which objects are fully obscured by fog.
[in]typefog type.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_material ( float  ambientIntensity,
const color diffuseColor,
const color emissiveColor,
float  shininess,
const color specularColor,
float  transparency 
) [private, virtual]

Set the material.

Parameters:
[in]ambientIntensityambient intensity.
[in]diffuseColordiffuse color.
[in]emissiveColoremissive color.
[in]shininessshininess.
[in]specularColorspecular color.
[in]transparencytransparency.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_material_mode ( size_t  tex_components,
bool  geometry_color 
) [private, virtual]

Set the material mode.

Note:
This hack is necessary because setting the color mode needs to know about the appearance (presence & components of texture) and the geometry (presence of colors). Putting this stuff in either insert_texture or insert_<geometry> causes problems when the texture or geometry node is USE'd with a different context.
Parameters:
[in]tex_componentstexture components.
[in]geometry_colorgeometry color.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_sensitive ( node object) [private, virtual]

Indicate that a node should be sensitive to the pointing device.

Parameters:
[in]objecta node.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_insert_texture ( const texture_node n,
bool  retainHint = false 
) [private, virtual]

Create a texture object.

Parameters:
[in]ntexture.
[in]retainHintwhether the texture is likely to be reused.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_remove_texture_object ( const texture_node ref) [private, virtual]

Remove a texture from the display list.

Parameters:
[in]reftexture handle.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_texture_transform ( const vec2f center,
float  rotation,
const vec2f scale,
const vec2f translation 
) [private, virtual]

Set the texture transform.

Texture coordinate transform Tc' = -C x S x R x C x T x Tc

Parameters:
[in]centercenter.
[in]rotationrotation.
[in]scalescale.
[in]translationtranslation.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_set_viewpoint ( const vec3f position,
const openvrml::rotation orientation,
float  avatarSize,
float  visibilityLimit 
) [private, virtual]

Set the viewpoint.

Parameters:
[in]positionposition.
[in]orientationorientation.
[in]avatarSizeavatar size.
[in]visibilityLimitvisiblity limit.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_transform ( const mat4f mat) [private, virtual]

Multiply the current modelview matrix by mat.

Parameters:
[in]mata matrix.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_transform_points ( size_t  nPoints,
vec3f point 
) const [private, virtual]

Transform points by the current modelview matrix.

Parameters:
[in]nPointsnumber of points.
[in]pointpointer to the first point in an array.

Implements openvrml::viewer.

void openvrml::gl::viewer::do_draw_bounding_sphere ( const bounding_sphere bs,
bounding_volume::intersection  intersection 
) [private, virtual]

Draw a bounding sphere.

Used for debugging view culling. Probably should be draw_bounding_volume and handle axis_aligned_bounding_boxes as well.

Parameters:
[in]bsa bounding sphere; if max, will not be drawn
[in]intersectionone of the bvolume intersection test constants, or 4 to draw in unique way. (useful for debugging)

Implements openvrml::viewer.

void openvrml::gl::viewer::do_post_redraw ( ) [private, pure virtual]

Called to indicate to the windowing system that a redraw is necessary.

void openvrml::gl::viewer::do_set_cursor ( cursor_style  c) [private, pure virtual]

Called to set the cursor style.

Parameters:
[in]ccursor style identifier.
void openvrml::gl::viewer::do_swap_buffers ( ) [private, pure virtual]

Called to indicate to the windowing system that the front and back buffers should be swapped.

void openvrml::gl::viewer::do_set_timer ( double  interval) [private, pure virtual]

Set a delay.

Parameters:
[in]intervalmilliseconds to delay.

Member Data Documentation

Indicate whether OpenGL has been initialized for rendering.

bool openvrml::gl::viewer::blend [protected]

Indicate whether alpha blending is enabled.

bool openvrml::gl::viewer::lit [protected]

Indicate whether lighting is enabled.

Indicate whether texture mapping is enabled.

Indicate whether wireframe mode is enabled.

size_t openvrml::gl::viewer::win_width [protected]

Window width.

Window height.

Background color.

size_t openvrml::gl::viewer::objects [protected]

Number of objects.

Number of nested objects.

GLUtesselator * openvrml::gl::viewer::tesselator [protected]

GLU tesselation object.

size_t openvrml::gl::viewer::sensitive [protected]

Count of sensitive nodes.

Count of active sensitive nodes.

Count of sensitive nodes the mouse is over.

openvrml::node * openvrml::gl::viewer::sensitive_object[openvrml::gl::viewer::maxsensitive] [protected]

Sensitive nodes.

Indicate whether the renderer is in select mode.

double openvrml::gl::viewer::select_z [protected]

Window z-coordinate of last selection.

light_info for the lights in the scene.

Mouse drag start x-coordinate.

Mouse drag start y-coordinate.

Whether the viewer is in the process of rotating.

Whether the viewer is in the process of scaling.

Whether the viewer is in the process of translating.

Whether to draw bounding spheres.

Updated at the end of redraw with the time redraw took to execute.

Rendering time for the previous cycle.