Home | Download | Screen shots | Discussion | Documentation |
---|
Public Types | |
typedef long | object_t |
An object handle. | |
typedef long | texture_object_t |
An texture object handle. | |
enum | { mask_none = 0, mask_ccw = 1, mask_convex = 2, mask_solid = 4, mask_bottom = 8, mask_top = 16, mask_side = 32, mask_color_per_vertex = 64, mask_normal_per_vertex = 128 } |
enum | rendering_mode { draw_mode, pick_mode } |
The rendering mode. More... | |
Public Member Functions | |
virtual | ~viewer ()=0 throw () |
Destroy. | |
openvrml::browser * | browser () const throw () |
virtual rendering_mode | mode ()=0 |
Get the rendering mode. | |
virtual double | frame_rate ()=0 |
Get the frame rate. | |
virtual void | reset_user_navigation ()=0 |
Return view to the last bound Viewpoint. | |
virtual object_t | begin_object (const char *id, bool retain=false)=0 |
Begin a display list. | |
virtual void | end_object ()=0 |
End a display list. | |
virtual object_t | insert_background (const std::vector< float > &ground_angle, const std::vector< color > &ground_color, const std::vector< float > &sky_angle, const std::vector< color > &sky_color, const image &front, const image &back, const image &left, const image &right, const image &top, const image &bottom)=0 |
Insert a background into a display list. | |
virtual object_t | insert_box (const vec3f &size)=0 |
Insert a box into a display list. | |
virtual object_t | insert_cone (float height, float radius, bool bottom, bool side)=0 |
Insert a cone into a display list. | |
virtual object_t | insert_cylinder (float height, float radius, bool bottom, bool side, bool top)=0 |
Insert a cylinder into a display list. | |
virtual object_t | insert_elevation_grid (unsigned int mask, const std::vector< float > &height, int32 x_dimension, int32 z_dimension, float x_spacing, float z_spacing, const std::vector< color > &color, const std::vector< vec3f > &normal, const std::vector< vec2f > &tex_coord)=0 |
Insert an elevation grid into a display list. | |
virtual object_t | insert_extrusion (unsigned int, const std::vector< vec3f > &spine, const std::vector< vec2f > &cross_section, const std::vector< rotation > &orientation, const std::vector< vec2f > &scale)=0 |
Insert an extrusion into a display list. | |
virtual object_t | insert_line_set (const std::vector< vec3f > &coord, const std::vector< int32 > &coord_index, bool color_per_vertex, const std::vector< color > &color, const std::vector< int32 > &color_index)=0 |
Insert a line set into a display list. | |
virtual object_t | insert_point_set (const std::vector< vec3f > &coord, const std::vector< color > &color)=0 |
Insert a point set into a display list. | |
virtual object_t | insert_shell (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)=0 |
Insert a shell into a display list. | |
virtual object_t | insert_sphere (float radius)=0 |
Insert a sphere into a display list. | |
virtual object_t | insert_dir_light (float ambient_intensity, float intensity, const color &color, const vec3f &direction)=0 |
Insert a directional light into a display list. | |
virtual object_t | insert_point_light (float ambient_intensity, const vec3f &attenuation, const color &color, float intensity, const vec3f &location, float radius)=0 |
Insert a point light into a display list. | |
virtual object_t | insert_spot_light (float ambient_intensity, const vec3f &attenuation, float beam_width, const color &color, float cut_off_angle, const vec3f &direction, float intensity, const vec3f &location, float radius)=0 |
Insert a point light into a display list. | |
virtual object_t | insert_reference (object_t existing_object)=0 |
Insert a reference to an existing object into a display list. | |
virtual void | remove_object (object_t ref)=0 |
Remove an object from the display list. | |
virtual void | enable_lighting (bool val)=0 |
Enable/disable lighting. | |
virtual void | set_fog (const color &color, float visibility_range, const char *type)=0 |
Set the fog. | |
virtual void | set_color (const color &rgb, float a=1.0)=0 |
Set the color. | |
virtual void | set_material (float ambient_intensity, const color &diffuse_color, const color &emissive_color, float shininess, const color &specular_color, float transparency)=0 |
Set the material. | |
virtual void | set_material_mode (size_t tex_components, bool geometry_color)=0 |
Set the material mode. | |
virtual void | set_sensitive (node *object)=0 |
Indicate that a node should be sensitive to the pointing device. | |
virtual texture_object_t | insert_texture (const image &img, bool repeat_s, bool repeat_t, bool retainHint=false)=0 |
Create a texture object. | |
virtual void | insert_texture_reference (texture_object_t ref, size_t components)=0 |
Insert a texture into the display list from an existing handle. | |
virtual void | remove_texture_object (texture_object_t ref)=0 |
Remove a texture from the display list. | |
virtual void | set_texture_transform (const vec2f ¢er, float rotation, const vec2f &scale, const vec2f &translation)=0 |
Set the texture transform. | |
virtual void | set_viewpoint (const vec3f &position, const rotation &orientation, float field_of_view, float avatar_size, float visibility_limit)=0 |
Set the viewpoint. | |
virtual void | transform (const mat4f &mat)=0 |
Transform the modelview. | |
virtual void | transform_points (size_t nPoints, vec3f *point) const =0 |
Transform points by the current modelview matrix. | |
virtual const openvrml::frustum & | frustum () const |
virtual void | frustum (const openvrml::frustum &f) |
Set the frustum. | |
virtual bounding_volume::intersection | intersect_view_volume (const bounding_volume &bvolume) const |
virtual void | draw_bounding_sphere (const bounding_sphere &bs, bounding_volume::intersection intersection)=0 |
Draw a bounding sphere. | |
Protected Member Functions | |
viewer () throw () | |
Construct. | |
Protected Attributes | |
openvrml::frustum | frustum_ |
The frustum. | |
Private Attributes | |
openvrml::browser * | browser_ |
A pointer to the browser with which the viewer is currently associated. | |
Friends | |
class | browser |
A pointer to the browser with which the viewer is currently associated. |
|
An object handle.
|
|
An texture object handle.
|
|
The rendering mode.
|
|
Destroy.
Implemented in openvrml::gl::viewer. |
|
Construct.
Reimplemented in openvrml::gl::viewer. |
|
Get the rendering mode.
Implemented in openvrml::gl::viewer. |
|
Get the frame rate.
Implemented in openvrml::gl::viewer. |
|
Return view to the last bound Viewpoint.
Implemented in openvrml::gl::viewer. |
|
Begin a display list.
Implemented in openvrml::gl::viewer. |
|
End a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a background into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a box into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a cone into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a cylinder into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert an elevation grid into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert an extrusion into a display list.
|
|
Insert a line set into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a point set into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a shell into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a sphere into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a directional light into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a point light into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a point light into a display list.
Implemented in openvrml::gl::viewer. |
|
Insert a reference to an existing object into a display list.
|
|
Remove an object from the display list.
|
|
Enable/disable lighting.
Implemented in openvrml::gl::viewer. |
|
Set the fog.
Implemented in openvrml::gl::viewer. |
|
Set the color.
Implemented in openvrml::gl::viewer. |
|
Set the material.
Implemented in openvrml::gl::viewer. |
|
Set the material mode.
Implemented in openvrml::gl::viewer. |
|
Indicate that a node should be sensitive to the pointing device.
Implemented in openvrml::gl::viewer. |
|
Create a texture object.
Implemented in openvrml::gl::viewer. |
|
Insert a texture into the display list from an existing handle.
|
|
Remove a texture from the display list.
|
|
Set the texture transform.
Implemented in openvrml::gl::viewer. |
|
Set the viewpoint.
Implemented in openvrml::gl::viewer. |
|
Transform the modelview.
Make the modelview matrix the result of multiplying
Implemented in openvrml::gl::viewer. |
|
Transform
Implemented in openvrml::gl::viewer. |
|
|
|
Set the frustum.
|
|
Intersect the given bounding volume with the view volume. This goes into the viewer to provide a hook for systems that use non-standard view volumes. Most subclasses should be able to use the default implementation provided here. If your view volume is so strange that there's no way to cull to is, then reimplement to always return bounding_volume::inside.
|
|
Draw a bounding sphere. Used for debugging view culling. Probably should be draw_bounding_volume and handle axis_aligned_bounding_boxes as well.
Implemented in openvrml::gl::viewer. |
|
A pointer to the
|
|
A pointer to the
|
|
The frustum.
|