Home Hierarchy Members Alphabetical Related Pages

GeoViewpoint Class Reference
[Standard Node Types]

#include <geoviewpoint.h>

Inherits Node.

Inheritance diagram for GeoViewpoint:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 GeoViewpoint (const char *name="")
virtual ~GeoViewpoint ()
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.

SFFloat fieldOfView
SFBool headlight
SFBool jump
MFString navType
Fields
A property or attribute of a node. Each node type has a fixed set of fields. Fields may contain various kinds of data and one or many values. Each field has a default value.

SFString description
SFNode geoOrigin
MFString geoSystem
SFRotation orientation
SFString position
SFFloat speedFactor
Events In
EventIn< SFBoolset_bind
EventIn< SFStringset_orientation
EventIn< SFStringset_position
EventIn< SFFloatset_fieldOfView
EventIn< SFBoolset_headlight
EventIn< SFBoolset_jump
EventIn< MFStringset_navType
Events Out
EventOut< SFTimebindTime
EventOut< SFBoolisBound
EventOut< SFFloatfieldOfView_changed
EventOut< SFBoolheadlight_changed
EventOut< SFBooljump_changed
EventOut< MFStringnavType_changed

Detailed Description

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

6.31 GeoViewpoint

The GeoViewpoint node allows the specification of a viewpoint in terms of a geospatial coordinate.

This node can be used wherever a Viewpoint node can be used and also can combine GeoViewpoint and Viewpoint nodes in the same scene. The fieldOfView, jump, description, set_bind, bindTime, and isBound fields and events have the same behaviour as the standard Viewpoint node. Note that when a GeoViewpoint node is bound, it overrides the currently bound Viewpoint and NavigationInfo nodes in the scene.

The geoOrigin field is used to specify a local coordinate frame for extended precision as described in 4.15.5 Dealing with high-precision coordinates.

The geoSystem field is used to define the spatial reference frame and is described in 4.15.3, Encoding a spatial reference frame.

The position string is used to define the actual coordinate that locates the viewpoint. It should be provided in a format consistent with that specified for the particular geoSystem (see 4.15.4, Encoding geospatial coordinates). There is also a set_position eventIn which can be routed from the geovalue_changed eventOut of a GeoPositionInterpolator node in order to animate the position of the GeoViewpoint.

The orientation string defines a relative orientation from the local orientation frame that is defined by the position field. By default, the orientation of the viewpoint will always be aligned such that the +Y axis is the up vector for the local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east. Therefore, if a GeoViewpoint that always looks straight down is to be created, no matter where on the planet the viewer may be looking, an orientation value of [ 1 0 0 -1.57 ] should be specifed. The set_orientation eventIn can be wired to the value_changed eventOut of a standard OrientationInterpolator in order to animate the orientation of the GeoViewpoint.

The navType field is used to specify the navigation type that is to be bound when this GeoViewpoint node is bound. The acceptable values for this field are the same as those for the type field of the NavigationInfo field node, e.g. "EXAMINE", "WALK", "FLY", or "ANY".

The headlight field is used to specify whether the browser shall turn on a headlight when this viewpoint is bound. A headlight is a directional light that always points in the direction that the user is looking.

The GeoViewpoint node may be implemented as if there is an embedded NavigationInfo node that is bound and unbound with the GeoViewpoint node. As such, a VRML browser shall internally set the speed, avatarSize, and visibilityLimit fields of such a NavigationInfo node to an appropriate value for the viewpoint's elevation. The VRML browser shall also continually update the speed field as the user moves in order to support elevation scaled velocity (see 4.15.6, Geospatial navigation issues). It is recommended that the speed of user interaction be defined as ( elev / 10.0 ) m/s, where elev is the elevation of the viewer above the WGS84 ellipsoid in units of metres. It is also recommended that the same scale factor be applied to the avatarSize vector and visibilityLimit value so that both the near and far clipping planes are updated.

The speedFactor field of the GeoViewpoint node is used as a multiplier to the elevation-based velocity that the node sets internally, i.e. this is a relative value and not an absolute speed as in the case for the NavigationInfo field of the same name.

--- VRML separator bar ---


Constructor & Destructor Documentation

GeoViewpoint const char *  name = ""  ) 
 

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

  fieldOfView = 0.785398;
  headlight = true;
  jump = true;
  
  description = string("");
  
  orientation.setAxisAndAngle(0,0,1,0);
  position = string("0 0 100000");
  speedFactor = 1;

~GeoViewpoint  )  [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_orientation
  • 2 : set_position
  • 3 : set_fieldOfView
  • 4 : set_headlight
  • 5 : set_jump
  • 6 : set_navType

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_orientation
  • set_position
  • set_fieldOfView
  • set_headlight
  • set_jump
  • set_navType

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 : bindTime
  • 1 : isBound
  • 2 : fieldOfView_changed
  • 3 : headlight_changed
  • 4 : jump_changed
  • 5 : navType_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:

  • bindTime
  • isBound
  • fieldOfView_changed
  • headlight_changed
  • jump_changed
  • navType_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 : fieldOfView
  • 1 : headlight
  • 2 : jump
  • 3 : navType
  • 4 : description
  • 5 : geoOrigin
  • 6 : geoSystem
  • 7 : orientation
  • 8 : position
  • 9 : speedFactor 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:

  • fieldOfView
  • headlight
  • jump
  • navType
  • description
  • geoOrigin
  • geoSystem
  • orientation
  • position
  • speedFactor

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 "GeoViewpoint". Useful for printing.

Implements Node.


Member Data Documentation

EventOut<SFTime> bindTime
 

See Detailed Description for meaning of this event.

SFString description
 

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

       description = string("");

SFFloat fieldOfView
 

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

       fieldOfView = 0.785398;

EventOut<SFFloat> fieldOfView_changed
 

Changed event associated to exposedField fieldOfView

SFNode geoOrigin
 

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

MFString geoSystem
 

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

SFBool headlight
 

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

       headlight = true;

EventOut<SFBool> headlight_changed
 

Changed event associated to exposedField headlight

EventOut<SFBool> isBound
 

See Detailed Description for meaning of this event.

SFBool jump
 

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

       jump = true;

EventOut<SFBool> jump_changed
 

Changed event associated to exposedField jump

MFString navType
 

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

EventOut<MFString> navType_changed
 

Changed event associated to exposedField navType

SFRotation orientation
 

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

       orientation.setAxisAndAngle(0,0,1,0);

SFString position
 

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

       position = string("0 0 100000");

EventIn<SFBool> set_bind
 

See Detailed Description for meaning of this event.

EventIn<SFFloat> set_fieldOfView
 

Set event associated to exposedField fieldOfView

EventIn<SFBool> set_headlight
 

Set event associated to exposedField headlight

EventIn<SFBool> set_jump
 

Set event associated to exposedField jump

EventIn<MFString> set_navType
 

Set event associated to exposedField navType

EventIn<SFString> set_orientation
 

See Detailed Description for meaning of this event.

EventIn<SFString> set_position
 

See Detailed Description for meaning of this event.

SFFloat speedFactor
 

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


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