| Home | Download | Screen shots | Discussion | Documentation |
|---|
#include <openvrml/viewer.h>
Inheritance diagram for openvrml::viewer:

Public Types | |
| 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... | |
| typedef long | object_t |
| An object handle. | |
| typedef long | texture_object_t |
| An texture object handle. | |
Public Member Functions | |
| virtual | ~viewer ()=0 throw () |
| Destroy. | |
| openvrml::browser * | browser () const throw () |
| rendering_mode | mode () |
| Get the rendering mode. | |
| double | frame_rate () |
| Get the frame rate. | |
| void | reset_user_navigation () |
| Return view to the last bound Viewpoint. | |
| object_t | begin_object (const char *id, bool retain=false) |
| Begin a display list. | |
| void | end_object () |
| End a display list. | |
| 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) |
| Insert a background into a display list. | |
| object_t | insert_box (const vec3f &size) |
| Insert a box into a display list. | |
| object_t | insert_cone (float height, float radius, bool bottom, bool side) |
| Insert a cone into a display list. | |
| object_t | insert_cylinder (float height, float radius, bool bottom, bool side, bool top) |
| Insert a cylinder into a display list. | |
| 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) |
| Insert an elevation grid into a display list. | |
| object_t | insert_extrusion (unsigned int mask, const std::vector< vec3f > &spine, const std::vector< vec2f > &cross_section, const std::vector< rotation > &orientation, const std::vector< vec2f > &scale) |
| Insert an extrusion into a display list. | |
| 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) |
| Insert a line set into a display list. | |
| object_t | insert_point_set (const std::vector< vec3f > &coord, const std::vector< color > &color) |
| Insert a point set into a display list. | |
| 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) |
| Insert a shell into a display list. | |
| object_t | insert_sphere (float radius) |
| Insert a sphere into a display list. | |
| object_t | insert_dir_light (float ambient_intensity, float intensity, const color &color, const vec3f &direction) |
| Insert a directional light into a display list. | |
| object_t | insert_point_light (float ambient_intensity, const vec3f &attenuation, const color &color, float intensity, const vec3f &location, float radius) |
| Insert a point light into a display list. | |
| 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) |
| Insert a point light into a display list. | |
| object_t | insert_reference (object_t existing_object) |
| Insert a reference to an existing object into a display list. | |
| void | remove_object (object_t ref) |
| Remove an object from the display list. | |
| void | enable_lighting (bool val) |
| Enable/disable lighting. | |
| void | set_fog (const color &color, float visibility_range, const char *type) |
| Set the fog. | |
| void | set_color (const color &rgb, float a=1.0) |
| Set the color. | |
| void | set_material (float ambient_intensity, const color &diffuse_color, const color &emissive_color, float shininess, const color &specular_color, float transparency) |
| Set the material. | |
| void | set_material_mode (size_t tex_components, bool geometry_color) |
| Set the material mode. | |
| void | set_sensitive (node *object) |
| Indicate that a node should be sensitive to the pointing device. | |
| texture_object_t | insert_texture (const image &img, bool repeat_s, bool repeat_t, bool retainHint=false) |
| Create a texture object. | |
| void | insert_texture_reference (texture_object_t ref, size_t components) |
| Insert a texture into the display list from an existing handle. | |
| void | remove_texture_object (texture_object_t ref) |
| Remove a texture from the display list. | |
| void | set_texture_transform (const vec2f ¢er, float rotation, const vec2f &scale, const vec2f &translation) |
| Set the texture transform. | |
| void | set_frustum (float field_of_view, float avatar_size, float visibility_limit) |
| Set the frustum. | |
| void | set_viewpoint (const vec3f &position, const rotation &orientation, float avatar_size, float visibility_limit) |
| Set the viewpoint. | |
| void | transform (const mat4f &mat) |
| Transform the modelview. | |
| void | transform_points (size_t nPoints, vec3f *point) const |
Transform points by the current modelview matrix. | |
| const openvrml::frustum & | frustum () const |
| The frustum. | |
| void | frustum (const openvrml::frustum &f) |
| Set the frustum. | |
| bounding_volume::intersection | intersect_view_volume (const bounding_volume &bvolume) const |
| Intersect the given bounding volume with the view volume. | |
| void | draw_bounding_sphere (const bounding_sphere &bs, bounding_volume::intersection intersection) |
| Draw a bounding sphere. | |
Protected Member Functions | |
| viewer () throw () | |
| Construct. | |
| virtual bounding_volume::intersection | do_intersect_view_volume (const bounding_volume &bvolume) const |
| Intersect the given bounding volume with the view volume. | |
| virtual const openvrml::frustum & | do_frustum () const |
| virtual void | do_frustum (const openvrml::frustum &f) |
| Set the frustum. | |
Protected Attributes | |
| openvrml::frustum | frustum_ |
| The frustum. | |
Private Member Functions | |
| virtual rendering_mode | do_mode ()=0 |
| Get the rendering mode. | |
| virtual double | do_frame_rate ()=0 |
| Get the frame rate. | |
| virtual void | do_reset_user_navigation ()=0 |
| Return view to the last bound Viewpoint. | |
| virtual object_t | do_begin_object (const char *id, bool retain=false)=0 |
| Begin a display list. | |
| virtual void | do_end_object ()=0 |
| End a display list. | |
| virtual object_t | do_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 | do_insert_box (const vec3f &size)=0 |
| Insert a box into a display list. | |
| virtual object_t | do_insert_cone (float height, float radius, bool bottom, bool side)=0 |
| Insert a cone into a display list. | |
| virtual object_t | do_insert_cylinder (float height, float radius, bool bottom, bool side, bool top)=0 |
| Insert a cylinder into a display list. | |
| virtual object_t | do_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 | do_insert_extrusion (unsigned int mask, 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 | do_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 | do_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 | do_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 | do_insert_sphere (float radius)=0 |
| Insert a sphere into a display list. | |
| virtual object_t | do_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 | do_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 | do_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 | do_insert_reference (object_t existing_object)=0 |
| Insert a reference to an existing object into a display list. | |
| virtual void | do_remove_object (object_t ref)=0 |
| Remove an object from the display list. | |
| virtual void | do_enable_lighting (bool val)=0 |
| Enable/disable lighting. | |
| virtual void | do_set_fog (const color &color, float visibility_range, const char *type)=0 |
| Set the fog. | |
| virtual void | do_set_color (const color &rgb, float a=1.0)=0 |
| Set the color. | |
| virtual void | do_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 | do_set_material_mode (size_t tex_components, bool geometry_color)=0 |
| Set the material mode. | |
| virtual void | do_set_sensitive (node *object)=0 |
| Indicate that a node should be sensitive to the pointing device. | |
| virtual texture_object_t | do_insert_texture (const image &img, bool repeat_s, bool repeat_t, bool retainHint=false)=0 |
| Create a texture object. | |
| virtual void | do_insert_texture_reference (texture_object_t ref, size_t components)=0 |
| Insert a texture into the display list from an existing handle. | |
| virtual void | do_remove_texture_object (texture_object_t ref)=0 |
| Remove a texture from the display list. | |
| virtual void | do_set_texture_transform (const vec2f ¢er, float rotation, const vec2f &scale, const vec2f &translation)=0 |
| Set the texture transform. | |
| virtual void | do_set_frustum (float field_of_view, float avatar_size, float visibility_limit)=0 |
| virtual void | do_set_viewpoint (const vec3f &position, const rotation &orientation, float avatar_size, float visibility_limit)=0 |
| Set the viewpoint. | |
| virtual void | do_transform (const mat4f &mat)=0 |
| Transform the modelview. | |
| virtual void | do_transform_points (size_t nPoints, vec3f *point) const=0 |
Transform points by the current modelview matrix. | |
| virtual void | do_draw_bounding_sphere (const bounding_sphere &bs, bounding_volume::intersection intersection)=0 |
| Draw a bounding sphere. | |
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.
| openvrml::viewer::~viewer | ( | ) | throw () [pure virtual] |
| openvrml::viewer::viewer | ( | ) | throw () [protected] |
| openvrml::viewer::rendering_mode openvrml::viewer::mode | ( | ) |
| double openvrml::viewer::frame_rate | ( | ) |
| void openvrml::viewer::reset_user_navigation | ( | ) |
Return view to the last bound Viewpoint.
This function delegates to viewer::do_reset_user_navigation.
| openvrml::viewer::object_t openvrml::viewer::begin_object | ( | const char * | id, | |
| bool | retain = false | |||
| ) |
Begin a display list.
| [in] | id | object identifier. |
| [in] | retain | whether the object should be retained for reuse. |
viewer::do_begin_object.
| void openvrml::viewer::end_object | ( | ) |
End a display list.
This function delegates to viewer::do_end_object.
| openvrml::viewer::object_t openvrml::viewer::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 | |||
| ) |
Insert a background into a display list.
This function delegates to viewer::do_insert_background.
| [in] | ground_angle | ground angles. |
| [in] | ground_color | ground colors. |
| [in] | sky_angle | sky angles. |
| [in] | sky_color | sky colors. |
| [in] | front | front texture. |
| [in] | back | back texture. |
| [in] | left | left texture. |
| [in] | right | right texture. |
| [in] | top | top texture. |
| [in] | bottom | bottom texture. |
| openvrml::viewer::object_t openvrml::viewer::insert_box | ( | const vec3f & | size | ) |
Insert a box into a display list.
This function delegates to viewer::do_insert_box.
| [in] | size | box dimensions. |
| openvrml::viewer::object_t openvrml::viewer::insert_cone | ( | float | height, | |
| float | radius, | |||
| bool | bottom, | |||
| bool | side | |||
| ) |
Insert a cone into a display list.
This function delegates to viewer::do_insert_cone.
| [in] | height | height. |
| [in] | radius | radius at base. |
| [in] | bottom | show the bottom. |
| [in] | side | show the side. |
| openvrml::viewer::object_t openvrml::viewer::insert_cylinder | ( | float | height, | |
| float | radius, | |||
| bool | bottom, | |||
| bool | side, | |||
| bool | top | |||
| ) |
Insert a cylinder into a display list.
This function delegates to viewer::do_insert_cylinder.
| [in] | height | height. |
| [in] | radius | radius. |
| [in] | bottom | show the bottom. |
| [in] | side | show the side. |
| [in] | top | show the top. |
| openvrml::viewer::object_t openvrml::viewer::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 | |||
| ) |
Insert an elevation grid into a display list.
This function delegates to viewer::do_insert_elevation_grid.
| [in] | mask | |
| [in] | height | height field. |
| [in] | x_dimension | vertices in the x direction. |
| [in] | z_dimension | vertices in the z direction. |
| [in] | x_spacing | distance between vertices in the x direction. |
| [in] | z_spacing | distance between vertices in the z direction. |
| [in] | color | colors. |
| [in] | normal | normals. |
| [in] | tex_coord | texture coordinates. |
| openvrml::viewer::object_t openvrml::viewer::insert_extrusion | ( | unsigned int | mask, | |
| const std::vector< vec3f > & | spine, | |||
| const std::vector< vec2f > & | cross_section, | |||
| const std::vector< rotation > & | orientation, | |||
| const std::vector< vec2f > & | scale | |||
| ) |
Insert an extrusion into a display list.
This function delegates to viewer::do_insert_extrusion.
| [in] | mask | |
| [in] | spine | spine points. |
| [in] | cross_section | cross-sections. |
| [in] | orientation | cross-section orientations. |
| [in] | scale | cross-section scales. |
| openvrml::viewer::object_t openvrml::viewer::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 | |||
| ) |
Insert a line set into a display list.
This function delegates to viewer::do_insert_line_set.
| [in] | coord | coordinates. |
| [in] | coord_index | coordinate indices. |
| [in] | color_per_vertex | whether colors are applied per-vertex or per-face. |
| [in] | color | colors. |
| [in] | color_index | color indices. |
| openvrml::viewer::object_t openvrml::viewer::insert_point_set | ( | const std::vector< vec3f > & | coord, | |
| const std::vector< color > & | color | |||
| ) |
Insert a point set into a display list.
This function delegates to viewer::insert_point_set.
| [in] | coord | points. |
| [in] | color | colors. |
| openvrml::viewer::object_t openvrml::viewer::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 | |||
| ) |
Insert a shell into a display list.
This function delegates to viewer::do_insert_shell.
| [in] | mask | |
| [in] | coord | coordinates. |
| [in] | coord_index | coordinate indices. |
| [in] | color | colors. |
| [in] | color_index | color indices. |
| [in] | normal | normals. |
| [in] | normal_index | normal indices. |
| [in] | tex_coord | texture coordinates. |
| [in] | tex_coord_index | texture coordinate indices. |
| openvrml::viewer::object_t openvrml::viewer::insert_sphere | ( | float | radius | ) |
Insert a sphere into a display list.
This function delegates to viewer::do_insert_sphere.
| [in] | radius | sphere radius. |
| openvrml::viewer::object_t openvrml::viewer::insert_dir_light | ( | float | ambient_intensity, | |
| float | intensity, | |||
| const color & | color, | |||
| const vec3f & | direction | |||
| ) |
Insert a directional light into a display list.
This function delegates to viewer::do_insert_dir_light.
| [in] | ambient_intensity | ambient intensity. |
| [in] | intensity | intensity. |
| [in] | color | color. |
| [in] | direction | direction. |
| openvrml::viewer::object_t openvrml::viewer::insert_point_light | ( | float | ambient_intensity, | |
| const vec3f & | attenuation, | |||
| const color & | color, | |||
| float | intensity, | |||
| const vec3f & | location, | |||
| float | radius | |||
| ) |
Insert a point light into a display list.
This function delegates to viewer::do_insert_point_light.
| [in] | ambient_intensity | ambient intensity. |
| [in] | attenuation | attenuation. |
| [in] | color | color. |
| [in] | intensity | intensity. |
| [in] | location | location. |
| [in] | radius | radius. |
| openvrml::viewer::object_t openvrml::viewer::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 | |||
| ) |
Insert a point light into a display list.
This function delegates to viewer::do_insert_spot_light.
| [in] | ambient_intensity | ambient intensity. |
| [in] | attenuation | attenuation. |
| [in] | beam_width | beam width. |
| [in] | color | color. |
| [in] | cut_off_angle | cut-off angle. |
| [in] | direction | direction. |
| [in] | intensity | intensity. |
| [in] | location | location. |
| [in] | radius | radius. |
| openvrml::viewer::object_t openvrml::viewer::insert_reference | ( | object_t | existing_object | ) |
Insert a reference to an existing object into a display list.
This function delegates to viewer::do_insert_reference.
| void openvrml::viewer::remove_object | ( | object_t | ref | ) |
Remove an object from the display list.
This function delegates to viewer::do_remove_object.
| [in] | ref | object handle. |
| void openvrml::viewer::enable_lighting | ( | bool | val | ) |
Enable/disable lighting.
This function delegates to viewer::do_enable_lighting.
| [in] | val | whether lighting should be enabled. |
| void openvrml::viewer::set_fog | ( | const color & | color, | |
| float | visibility_range, | |||
| const char * | type | |||
| ) |
| void openvrml::viewer::set_color | ( | const color & | rgb, | |
| float | a = 1.0 | |||
| ) |
Set the color.
This function delegates to viewer::do_set_color.
| [in] | rgb | red, green, and blue components. |
| [in] | a | alpha (transparency) component. |
| void openvrml::viewer::set_material | ( | float | ambient_intensity, | |
| const color & | diffuse_color, | |||
| const color & | emissive_color, | |||
| float | shininess, | |||
| const color & | specular_color, | |||
| float | transparency | |||
| ) |
| void openvrml::viewer::set_material_mode | ( | size_t | tex_components, | |
| bool | geometry_color | |||
| ) |
Set the material mode.
This function delegates to viewer::do_set_material_mode.
| [in] | tex_components | texture components. |
| [in] | geometry_color | geometry color. |
| void openvrml::viewer::set_sensitive | ( | node * | object | ) |
Indicate that a node should be sensitive to the pointing device.
This function delegates to viewer::do_set_sensitive.
| [in] | object | a node. |
| openvrml::viewer::texture_object_t openvrml::viewer::insert_texture | ( | const image & | img, | |
| bool | repeat_s, | |||
| bool | repeat_t, | |||
| bool | retainHint = false | |||
| ) |
Create a texture object.
This function delegates to viewer::do_insert_texture.
| [in] | img | image. |
| [in] | repeat_s | repeat in the S direction. |
| [in] | repeat_t | repeat in the T direction. |
| [in] | retainHint | whether the texture is likely to be reused. |
| void openvrml::viewer::insert_texture_reference | ( | texture_object_t | ref, | |
| size_t | components | |||
| ) |
Insert a texture into the display list from an existing handle.
This function delegates to viewer::do_insert_texture_reference.
| [in] | ref | texture handle. |