XdkWrl: GeoViewpoint Class Reference

Home | Hierarchy | Members | Alphabetical | Related Pages

# GeoViewpoint Class Reference
[Standard Node Types]

`#include <geoviewpoint.h>`

Inherits Node.

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 (unsigned int i)
virtual bool | isSetToDefaultValue (unsigned int i) const
virtual unsigned int | nbEventsIn () const
virtual EventInHandle | eventIn (const std::string &n)
virtual EventInHandle | eventIn (unsigned int i)
virtual unsigned int | nbEventsOut () const
virtual EventOutHandle | eventOut (const std::string &n)
virtual EventOutHandle | eventOut (unsigned int i)
const char * | typeName () const
virtual Node * | duplicate () const
virtual Node * | duplicate (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< SFBool > | set_bind
EventIn< SFString > | set_orientation
EventIn< SFString > | set_position
EventIn< SFFloat > | set_fieldOfView
EventIn< SFBool > | set_headlight
EventIn< SFBool > | set_jump
EventIn< MFString > | set_navType
Events Out
EventOut< SFTime > | bindTime
EventOut< SFBool > | isBound
EventOut< SFFloat > | fieldOfView_changed
EventOut< SFBool > | headlight_changed
EventOut< SFBool > | jump_changed
EventOut< MFString > | navType_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.

## 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.785398f;
      headlight = true;
      jump = true;

      description = string("");

      orientation.setAxisAndAngle(0,0,1,0);
      position = string("0 0 100000");
      speedFactor = 1.0f;

~GeoViewpoint | ( |  | ) | `[virtual]`

Virtual destructor, does nothing

## Member Function Documentation

unsigned int nbFields | ( |  | ) | const`[inline, virtual]`

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

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.

wrl::Node::FieldHandle field | ( | 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.

bool isSetToDefaultValue | ( | 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.

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::EventInHandle eventIn | ( | 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.

unsigned int nbEventsOut | ( |  | ) | const`[inline, virtual]`

Returns the number of events out for this node type.

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::EventOutHandle eventOut | ( | 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.

const char * typeName | ( |  | ) | const`[inline, virtual]`

Returns `"GeoViewpoint"`. Useful for printing.

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.

virtual Node* duplicate | ( | std::map< const Node *, Node * > & |  | ) | const`[virtual]`

Implements Node.

## Member Data Documentation

SFFloat fieldOfView

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

           fieldOfView = 0.785398f;

SFBool headlight

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

           headlight = true;

SFBool jump

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

           jump = true;

MFString navType

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

SFString description

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

           description = string("");

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

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");

SFFloat speedFactor

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

           speedFactor = 1.0f;

EventIn<SFBool> set_bind

See Detailed Description for meaning of this event.

EventIn<SFString> set_orientation

See Detailed Description for meaning of this event.

EventIn<SFString> set_position

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

EventOut<SFTime> bindTime

See Detailed Description for meaning of this event.

EventOut<SFBool> isBound

See Detailed Description for meaning of this event.

EventOut<SFFloat> fieldOfView_changed

Changed event associated to exposedField fieldOfView

EventOut<SFBool> headlight_changed

Changed event associated to exposedField headlight

EventOut<SFBool> jump_changed

Changed event associated to exposedField jump

EventOut<MFString> navType_changed

Changed event associated to exposedField navType

Generated on 5 Jan 2007 with version 1.5.1. |