Home Hierarchy Members Alphabetical Related Pages

Background Class Reference
[Standard Node Types]

#include <background.h>

Inherits Node.

Inheritance diagram for Background:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Background (const char *name="")
virtual ~Background ()
virtual unsigned int nbFields () const
virtual FieldHandle field (const std::string &n)
virtual FieldHandle field (const unsigned int i)
virtual bool isSetToDefaultValue (const unsigned int i) const
virtual unsigned int nbEventsIn () const
virtual EventInHandle eventIn (const std::string &n)
virtual EventInHandle eventIn (const unsigned int i)
virtual unsigned int nbEventsOut () const
virtual EventOutHandle eventOut (const std::string &n)
virtual EventOutHandle eventOut (const unsigned int i)
const char * typeName () const
virtual Nodeduplicate () const
virtual Nodeduplicate (std::map< const Node *, Node * > &) const

Public Attributes

Exposed Fields
A field that is capable of receiving events via an eventIn to change its value(s), and generating events via an eventOut when its value(s) change.

MFFloat groundAngle
MFColor groundColor
MFString backUrl
MFString bottomUrl
MFString frontUrl
MFString leftUrl
MFString rightUrl
MFString topUrl
MFFloat skyAngle
MFColor skyColor
Events In
EventIn< SFBoolset_bind
EventIn< MFFloatset_groundAngle
EventIn< MFColorset_groundColor
EventIn< MFStringset_backUrl
EventIn< MFStringset_bottomUrl
EventIn< MFStringset_frontUrl
EventIn< MFStringset_leftUrl
EventIn< MFStringset_rightUrl
EventIn< MFStringset_topUrl
EventIn< MFFloatset_skyAngle
EventIn< MFColorset_skyColor
Events Out
EventOut< SFBoolisBound
EventOut< MFFloatgroundAngle_changed
EventOut< MFColorgroundColor_changed
EventOut< MFStringbackUrl_changed
EventOut< MFStringbottomUrl_changed
EventOut< MFStringfrontUrl_changed
EventOut< MFStringleftUrl_changed
EventOut< MFStringrightUrl_changed
EventOut< MFStringtopUrl_changed
EventOut< MFFloatskyAngle_changed
EventOut< MFColorskyColor_changed

Detailed Description

Here is the documentation for this node type, from the ISO standard.

+6.5 Background

The Background node is used to specify a colour backdrop that simulates ground and sky, as well as a background texture, or panorama, that is placed behind all geometry in the scene and in front of the ground and sky. Background nodes are specified in the local coordinate system and are affected by the accumulated rotation of their ancestors as described below.

Background nodes are bindable nodes as described in 4.6.10, Bindable children nodes. There exists a Background stack, in which the top-most Background on the stack is the currently active Background. To move a Background to the top of the stack, a TRUE value is sent to the set_bind eventIn. Once active, the Background is then bound to the browsers view. A FALSE value sent to set_bind removes the Background from the stack and unbinds it from the browser's view. More detail on the bind stack is described in 4.6.10, Bindable children nodes.

The backdrop is conceptually a partial sphere (the ground) enclosed inside of a full sphere (the sky) in the local coordinate system with the viewer placed at the centre of the spheres. Both spheres have infinite radius and each is painted with concentric circles of interpolated colour perpendicular to the local Y-axis of the sphere. The Background node is subject to the accumulated rotations of its ancestors' transformations. Scaling and translation transformations are ignored. The sky sphere is always slightly farther away from the viewer than the ground partial sphere causing the ground to appear in front of the sky where they overlap.

The skyColor field specifies the colour of the sky at various angles on the sky sphere. The first value of the skyColor field specifies the colour of the sky at 0.0 radians representing the zenith (i.e., straight up from the viewer). The skyAngle field specifies the angles from the zenith in which concentric circles of colour appear. The zenith of the sphere is implicitly defined to be 0.0 radians, the natural horizon is at /2 radians, and the nadir (i.e., straight down from the viewer) is at radians. skyAngle is restricted to non-decreasing values in the range [0.0, ]. There shall be one more skyColor value than there are skyAngle values. The first colour value is the colour at the zenith, which is not specified in the skyAngle field. If the last skyAngle is less than pi, then the colour band between the last skyAngle and the nadir is clamped to the last skyColor. The sky colour is linearly interpolated between the specified skyColor values.

The groundColor field specifies the colour of the ground at the various angles on the ground partial sphere. The first value of the groundColor field specifies the colour of the ground at 0.0 radians representing the nadir (i.e., straight down from the user). The groundAngle field specifies the angles from the nadir that the concentric circles of colour appear. The nadir of the sphere is implicitly defined at 0.0 radians. groundAngle is restricted to non-decreasing values in the range [0.0, /2]. There shall be one more groundColor value than there are groundAngle values. The first colour value is for the nadir which is not specified in the groundAngle field. If the last groundAngle is less than /2, the region between the last groundAngle and the equator is non-existant. The ground colour is linearly interpolated between the specified groundColor values.

The backUrl, bottomUrl, frontUrl, leftUrl, rightUrl, and topUrl fields specify a set of images that define a background panorama between the ground/sky backdrop and the scene's geometry. The panorama consists of six images, each of which is mapped onto a face of an infinitely large cube contained within the backdrop spheres and centred in the local coordinate system. The images are applied individually to each face of the cube. On the front, back, right, and left faces of the cube, when viewed from the origin looking down the negative Z-axis with the Y-axis as the view up direction, each image is mapped onto the corresponding face with the same orientation as if the image were displayed normally in 2D (backUrl to back face, frontUrl to front face, leftUrl to left face, and rightUrl to right face). On the top face of the cube, when viewed from the origin looking along the +Y-axis with the +Z-axis as the view up direction, the topUrl image is mapped onto the face with the same orientation as if the image were displayed normally in 2D. On the bottom face of the box, when viewed from the origin along the negative Y-axis with the negative Z-axis as the view up direction, the bottomUrl image is mapped onto the face with the same orientation as if the image were displayed normally in 2D.

Figure 6.1 illustrates the Background node backdrop and background textures.

Alpha values in the panorama images (i.e., two or four component images) specify that the panorama is semi-transparent or transparent in regions, allowing the groundColor and skyColor to be visible.

See 4.6.11, Texture maps, for a general description of texture maps.

Often, the bottomUrl and topUrl images will not be specified, to allow sky and ground to show. The other four images may depict surrounding mountains or other distant scenery. Browsers shall support the JPEG (see 2.[JPEG]) and PNG (see 2.[PNG]) image file formats, and in addition, may support any other image format (e.g., CGM) that can be rendered into a 2D image. Support for the GIF (see E.[GIF]) format is recommended (including transparency) . More detail on the url fields can be found in 4.5, VRML and the World Wide Web.

Background node

Figure 6.1 -- Background node

Panorama images may be one component (greyscale), two component (greyscale plus alpha), three component (full RGB colour), or four-component (full RGB colour plus alpha).

Ground colours, sky colours, and panoramic images do not translate with respect to the viewer, though they do rotate with respect to the viewer. That is, the viewer can never get any closer to the background, but can turn to examine all sides of the panorama cube, and can look up and down to see the concentric rings of ground and sky (if visible).

Background nodes are not affected by Fog nodes. Therefore, if a Background node is active (i.e., bound) while a Fog node is active, then the Background node will be displayed with no fogging effects. It is the author's responsibility to set the Background values to match the Fog values (e.g., ground colours fade to fog colour with distance and panorama images tinted with fog colour). Background nodes are not affected by light sources.

--- VRML separator bar ---


Constructor & Destructor Documentation

Background const char *  name = ""  ) 
 

Construct a node with all its fields set to default value, which is equivalent to the code below:

      skyColor.push_back(SFColor(0,0,0));

~Background  )  [virtual]
 

Virtual destructor, does nothing


Member Function Documentation

wrl::Node * duplicate std::map< const Node *, Node * > &   )  const [virtual]
 

Implements Node.

wrl::Node * duplicate  )  const [virtual]
 

Returns a deep copy of this node, that is a fully independant node with all children (if any) also copied. This is mainly useful for instanciating protos.

Implements Node.

wrl::Node::EventInHandle eventIn const unsigned int  n  )  [virtual]
 

Return a handle on the i th event in of the node or a "unknown" typed handle if there is no such node. Here is how i is related to fields:

  • 0 : set_bind
  • 1 : set_groundAngle
  • 2 : set_groundColor
  • 3 : set_backUrl
  • 4 : set_bottomUrl
  • 5 : set_frontUrl
  • 6 : set_leftUrl
  • 7 : set_rightUrl
  • 8 : set_topUrl
  • 9 : set_skyAngle
  • 10 : set_skyColor

This function is useful, with nbEventsIn() if you want to traverse all events in of a Node.

Implements Node.

wrl::Node::EventInHandle eventIn const std::string &  n  )  [virtual]
 

Return a handle on the event in named n of the node or a "unknown" typed handle if there is no such event. Valid names are:

  • set_bind
  • set_groundAngle
  • set_groundColor
  • set_backUrl
  • set_bottomUrl
  • set_frontUrl
  • set_leftUrl
  • set_rightUrl
  • set_topUrl
  • set_skyAngle
  • set_skyColor

Implements Node.

wrl::Node::EventOutHandle eventOut const unsigned int  n  )  [virtual]
 

Return a handle on the i th event out of the node or a "unknown" typed handle if there is no such node. Here is how i is related to fields:

  • 0 : isBound
  • 1 : groundAngle_changed
  • 2 : groundColor_changed
  • 3 : backUrl_changed
  • 4 : bottomUrl_changed
  • 5 : frontUrl_changed
  • 6 : leftUrl_changed
  • 7 : rightUrl_changed
  • 8 : topUrl_changed
  • 9 : skyAngle_changed
  • 10 : skyColor_changed This function is useful, with nbEventsOut() if you want to traverse all events in of a Node.

Implements Node.

wrl::Node::EventOutHandle eventOut const std::string &  n  )  [virtual]
 

Return a handle on the event out named n of the node or a "unknown" typed handle if there is no such event. Valid names are:

  • isBound
  • groundAngle_changed
  • groundColor_changed
  • backUrl_changed
  • bottomUrl_changed
  • frontUrl_changed
  • leftUrl_changed
  • rightUrl_changed
  • topUrl_changed
  • skyAngle_changed
  • skyColor_changed

Implements Node.

wrl::Node::FieldHandle field const unsigned int  n  )  [virtual]
 

Return a handle on the i th field of the node or a "unknown" typed handle if there is no such node. Here is how i is related to fields:

  • 0 : groundAngle
  • 1 : groundColor
  • 2 : backUrl
  • 3 : bottomUrl
  • 4 : frontUrl
  • 5 : leftUrl
  • 6 : rightUrl
  • 7 : topUrl
  • 8 : skyAngle
  • 9 : skyColor This function is useful, with nbFields() if you want to traverse all fields of a Node.

Implements Node.

wrl::Node::FieldHandle field const std::string &  n  )  [virtual]
 

Return a handle on the field named n of the node or a "unknown" typed handle if there is no such field. Valid names are:

  • groundAngle
  • groundColor
  • backUrl
  • bottomUrl
  • frontUrl
  • leftUrl
  • rightUrl
  • topUrl
  • skyAngle
  • skyColor

Implements Node.

bool isSetToDefaultValue const unsigned int  i  )  const [virtual]
 

Implements Node.

unsigned int nbEventsIn  )  const [inline, virtual]
 

Returns the number of events in for this node type.

Implements Node.

unsigned int nbEventsOut  )  const [inline, virtual]
 

Returns the number of events out for this node type.

Implements Node.

unsigned int nbFields  )  const [inline, virtual]
 

Returns the number of fields (exposed or not) for this node type.

Implements Node.

const char * typeName  )  const [inline, virtual]
 

Returns "Background". Useful for printing.

Implements Node.


Member Data Documentation

MFString backUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> backUrl_changed
 

Changed event associated to exposedField backUrl

MFString bottomUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> bottomUrl_changed
 

Changed event associated to exposedField bottomUrl

MFString frontUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> frontUrl_changed
 

Changed event associated to exposedField frontUrl

MFFloat groundAngle
 

See Detailed Description for meaning of this field. Default value is set to MFFloat default value

EventOut<MFFloat> groundAngle_changed
 

Changed event associated to exposedField groundAngle

MFColor groundColor
 

See Detailed Description for meaning of this field. Default value is set to MFColor default value

EventOut<MFColor> groundColor_changed
 

Changed event associated to exposedField groundColor

EventOut<SFBool> isBound
 

See Detailed Description for meaning of this event.

MFString leftUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> leftUrl_changed
 

Changed event associated to exposedField leftUrl

MFString rightUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> rightUrl_changed
 

Changed event associated to exposedField rightUrl

EventIn<MFString> set_backUrl
 

Set event associated to exposedField backUrl

EventIn<SFBool> set_bind
 

See Detailed Description for meaning of this event.

EventIn<MFString> set_bottomUrl
 

Set event associated to exposedField bottomUrl

EventIn<MFString> set_frontUrl
 

Set event associated to exposedField frontUrl

EventIn<MFFloat> set_groundAngle
 

Set event associated to exposedField groundAngle

EventIn<MFColor> set_groundColor
 

Set event associated to exposedField groundColor

EventIn<MFString> set_leftUrl
 

Set event associated to exposedField leftUrl

EventIn<MFString> set_rightUrl
 

Set event associated to exposedField rightUrl

EventIn<MFFloat> set_skyAngle
 

Set event associated to exposedField skyAngle

EventIn<MFColor> set_skyColor
 

Set event associated to exposedField skyColor

EventIn<MFString> set_topUrl
 

Set event associated to exposedField topUrl

MFFloat skyAngle
 

See Detailed Description for meaning of this field. Default value is set to MFFloat default value

EventOut<MFFloat> skyAngle_changed
 

Changed event associated to exposedField skyAngle

MFColor skyColor
 

See Detailed Description for meaning of this field. Default value is set to

           skyColor.push_back(SFColor(0,0,0));

EventOut<MFColor> skyColor_changed
 

Changed event associated to exposedField skyColor

MFString topUrl
 

See Detailed Description for meaning of this field. Default value is set to MFString default value

EventOut<MFString> topUrl_changed
 

Changed event associated to exposedField topUrl


Generated on 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!