H3D API  2.4.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
H3D::X3DViewpointNode Class Referenceabstract

The X3DViewpointNode node defines a specific location in the local coordinate system from which the user may view the scene. More...

#include <H3D/X3DViewpointNode.h>

Inheritance diagram for H3D::X3DViewpointNode:
Inheritance graph

Classes

class  SFOrientation
 This field is used for the orientation field in order to reset the internal variables rel_pos and rel_orn used for H3DAPIs internal navigation. More...
 
class  SFPosition
 This field is used for the position field in order to reset the internal variables rel_pos and rel_orn used for H3DAPIs internal navigation. More...
 
class  SFSumRotation
 This field sums the value of the two SFRotation routed to it. More...
 
class  SFSumVec3f
 This field sums the value of the two SFVec3f routed to it. More...
 

Public Types

enum  EyeMode { MONO = 0 , LEFT_EYE = 1 , RIGHT_EYE = 2 , BOTH_EYE = 3 }
 Used with setupProjection function to indicate for which eye the frustum should be calculated. More...
 
- Public Types inherited from H3D::Node
typedef std::map< Node *, Node * > DeepCopyMap
 A map type used during a deep copy clone() to map from original nodes to cloned nodes.
 

Public Member Functions

 X3DViewpointNode (Inst< SFSetBind > _set_bind=0, Inst< SFVec3f > _centerOfRotation=0, Inst< SFString > _description=0, Inst< SFBool > _jump=0, Inst< SFNode > _metadata=0, Inst< SFOrientation > _orientation=0, Inst< SFPosition > _position=0, Inst< SFBool > _retainUserOffsets=0, Inst< SFTime > _bindTime=0, Inst< SFBool > _isBound=0, Inst< SFMatrix4f > _accForwardMatrix=0, Inst< SFMatrix4f > _accInverseMatrix=0, Inst< SFSumVec3f > _totalPosition=0, Inst< SFSumRotation > _totalOrientation=0)
 Constructor.
 
virtual ~X3DViewpointNode ()
 Destructor.
 
virtual void traverseSG (TraverseInfo &ti)
 Traverse the scenegraph. More...
 
virtual bool windowFromfieldOfView (H3DFloat width, H3DFloat height, H3DFloat clip_near, H3DFloat &top, H3DFloat &bottom, H3DFloat &right, H3DFloat &left)=0
 Calculates the top, bottom, right and left clipping values for the view frustum at the near plane. More...
 
virtual void toStackTop ()
 Move this instance to the stack top.
 
virtual void removeFromStack ()
 Remove the bindable node from the stack.
 
virtual void rotateAround (Rotation rotation, bool collision, Vec3f rotation_center)
 Function for rotating the viewpoint around rotation_center without changing the position or orientation fields. More...
 
virtual void rotateAroundSelf (Rotation rotation)
 without changing the position or orientation fields.
 
virtual void translate (Vec3f direction, bool collision, const vector< H3DFloat > &avatar_size, X3DChildNode *topNode)
 Function for translating the viewpoint with direction without changing the position or orientation fields. More...
 
virtual void moveTo (Vec3f new_pos)
 Function for moving the viewpoint to the new_pos without changing the position or orientation fields.
 
virtual bool detectCollision (const vector< H3DFloat > &avatar_size, X3DChildNode *topNode)
 Function for detecting collision between avatar and objects.
 
virtual void setupProjection (EyeMode eye_mode, H3DFloat width, H3DFloat height, H3DFloat clip_near, H3DFloat clip_far, StereoInfo *stereo_info=0, bool update_stereo_proj_shift=false)=0
 Adds a projection matrix to the current OpenGL matrix based on the viewpoint values. More...
 
virtual Matrix4f getProjectionMatrix (EyeMode eye_mode, H3DFloat width, H3DFloat height, H3DFloat clip_near, H3DFloat clip_far, StereoInfo *stereo_info=0, bool mirrored_in_y=false)
 Gets the projectionMatrix for this viewpoint, i.e. More...
 
virtual void setupViewMatrix (EyeMode eye_mode, StereoInfo *stereo_info=0, bool update_stereo_view_shift=false)
 Adds a view matrix to the current OpenGL matrix to transform from view coordinates (camera/viewpoint space) to world space. More...
 
virtual Matrix4f getViewMatrix (EyeMode eye_mode, StereoInfo *stereo_info=0)
 Gets the viewMatrix for this viewpoint, i.e. More...
 
bool isTopLevel ()
 True if this viewpoint node exists outside a ViewpointGroup.
 
bool inSceneGraph ()
 True if this viewpoint node exists in scene graph.
 
- Public Member Functions inherited from H3D::X3DBindableNode
 X3DBindableNode (const string &_bindable_stack_name, Inst< SFSetBind > _set_bind=0, Inst< SFNode > _metadata=0, Inst< SFTime > _bindTime=0, Inst< SFBool > _isBound=0)
 Constructor.
 
virtual ~X3DBindableNode ()
 Destructor.
 
virtual void initialize ()
 Initialize this bindable stack, toStackTop is done.
 
bool isStackTop ()
 Is this node at the top of the stack.
 
- Public Member Functions inherited from H3D::X3DChildNode
 X3DChildNode (Inst< SFNode > _metadata=0)
 Constructor.
 
- Public Member Functions inherited from H3D::X3DNode
 X3DNode (Inst< SFNode > _metadata=0)
 Constructor.
 
X3DMetadataObjectgetMetadataByName (const string &_name)
 Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Nodeclone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL)
 Returns a new instance of this node type with the same state as this one. More...
 
virtual ~Node ()
 Destructor.
 
X3DPrototypeInstancegetProtoInstanceParent ()
 If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More...
 
void setProtoInstanceParent (X3DPrototypeInstance *p)
 Set the X3DPrototypeInstance this node is the the root node if applicaple.
 
virtual void render ()
 the render() function is used for the depth-first rendering traversal of the scene-graph. More...
 
virtual bool lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result)
 Detect intersection between a line segment and the Node. More...
 
virtual void closestPoint (const Vec3f &p, NodeIntersectResult &result)
 Find closest point on Node to p. More...
 
virtual bool movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result)
 Detect collision between a moving sphere and the Node. More...
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
virtual FieldgetField (const string &_name) const
 return a pointer to the field specified by name within this instance
 
int addDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
int removeDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 

Static Public Member Functions

static X3DViewpointNodegetActive ()
 Convenience function to get the top of the X3DViewpointNode stack.
 
static const ViewpointList & getAllViewpoints ()
 Returns a list of all current X3DViewpointNode instances.
 
static bool viewpointsChanged ()
 True on any addition/deletion/in_scene_graph status change of viewpoints, reset once inquired.
 
- Static Public Member Functions inherited from H3D::X3DBindableNode
static X3DBindableNodegetActive (const string &bindable_stack_name)
 Returns the active bindable instance, i.e. More...
 
static const StackType & getStack (const string &bindable_stack_name)
 Get the stack for a given name.
 
static const StackMapType & getStackMap ()
 Return the map of all bindable nodes available.
 
- Static Public Member Functions inherited from H3D::Node
static unsigned int nrNodesAlive ()
 Returns the nr of nodes currently alive, i.e. nodes created but not destructed.
 
static int nrNodesCreated ()
 Returns the number of nodes created in total since the start of the program.
 

Public Attributes

H3DUniquePtr< SFVec3fcenterOfRotation
 The centerOfRotation field specifies a center about which to rotate the user's eyepoint when in EXAMINE mode. More...
 
H3DUniquePtr< SFStringdescription
 The description field specifies a textual description of the X3DViewpointNode node. More...
 
H3DUniquePtr< SFBooljump
 The jump field specifies whether the user's view "jumps" to the position and orientation of a bound X3DViewpointNode node or remains unchanged. More...
 
H3DUniquePtr< SFOrientationorientation
 Specifies the orientation of the X3DViewpointNode relative to the default orientation. More...
 
H3DUniquePtr< SFPositionposition
 Specifies the position of the X3DViewpointNode the local coordinate system. More...
 
H3DUniquePtr< SFBoolretainUserOffsets
 The retainUserOffsets field indicates whether a viewpoint needs to retain (TRUE) or reset to zero (FALSE) any prior user navigation offsets from defined viewpoint position, orientation. More...
 
H3DUniquePtr< SFMatrix4faccForwardMatrix
 The matrix from local space to global space. More...
 
H3DUniquePtr< SFMatrix4faccInverseMatrix
 The matrix from global space to the local space the X3DViewpointNode resides in. More...
 
H3DUniquePtr< SFSumVec3ftotalPosition
 Returns the sum of the field position and the internal field relPos used for navigation. More...
 
H3DUniquePtr< SFSumRotationtotalOrientation
 Returns the sum of the field orientation and the internal field relOrn used for navigation. More...
 
H3DUniquePtr< SFVec3frelPos
 Internal field that stores the relative offset from the position set by the user. More...
 
H3DUniquePtr< SFRotationrelOrn
 Internal field that stores the relative offset from the orientation set by the user. More...
 
- Public Attributes inherited from H3D::X3DBindableNode
H3DUniquePtr< SFSetBindset_bind
 Input field to bind or unbind the node. More...
 
H3DUniquePtr< SFTimebindTime
 The bindTime field is the time at which the Viewpoint node is bound or unbound. More...
 
H3DUniquePtr< SFBoolisBound
 Output field telling if this node is bound or not. More...
 
- Public Attributes inherited from H3D::X3DNode
H3DUniquePtr< SFNodemetadata
 Meta data about the node. More...
 

Protected Attributes

bool is_top_level
 True if the viewpooint exists outside a ViewpointGroup.
 
bool in_scene_graph
 True is the viewpoint exists in scene graph.
 

Additional Inherited Members

- Static Public Attributes inherited from H3D::X3DBindableNode
static H3DNodeDatabase database
 The H3DNodedatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DNode
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static NodegetClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 
- Static Protected Attributes inherited from H3D::X3DBindableNode
static StackMapType stack
 The bindable stack.
 

Detailed Description

The X3DViewpointNode node defines a specific location in the local coordinate system from which the user may view the scene.

X3DViewpointNode nodes are bindable children nodes (see X3DBindableNode) and thus there exists a X3DViewpointNode node stack in which the top-most X3DViewpointNode node on the stack is the currently active X3DViewpointNode node. If a TRUE value is sent to the set_bind field of a X3DViewpointNode node, it is moved to the top of the X3DViewpointNode node stack and activated. When a X3DViewpointNode node is at the top of the stack, the user's view is conceptually re-parented as a child of the X3DViewpointNode node. All subsequent changes to the X3DViewpointNode node's coordinate system change the user's view (e.g., changes to any ancestor transformation nodes or to the X3DViewpointNode node's position or orientation fields). Sending a set_bind FALSE event removes the X3DViewpointNode node from the stack and produces isBound FALSE and bindTime events. If the popped X3DViewpointNode node is at the top of the X3DViewpointNode stack, the user's view is re-parented to the next entry in the stack. When a X3DViewpointNode node is moved to the top of the stack, the existing top of stack X3DViewpointNode node sends an isBound FALSE event and is pushed down the stack.

An author can automatically move the user's view through the world by binding the user to a X3DViewpointNode node and then animating either the X3DViewpointNode node or the transformations above it. The bindTime field sends the time at which the X3DViewpointNode node is bound or unbound. This can happen:

The position and orientation fields of the X3DViewpointNode node specify relative locations in the local coordinate system. Position is relative to the coordinate system's origin (0,0,0), while orientation specifies a rotation relative to the default orientation. In the default position and orientation, the viewer is on the Z-axis looking down the Z-axis toward the origin with +X to the right and +Y straight up. X3DViewpointNode nodes are affected by the transformation hierarchy.

Navigation types (see NavigationInfo) that require a definition of a down vector (e.g., terrain following) shall use the negative Y-axis of the coordinate system of the currently bound X3DViewpointNode node. Likewise, navigation types that require a definition of an up vector shall use the positive Y-axis of the coordinate system of the currently bound X3DViewpointNode node. The orientation field of the X3DViewpointNode node does not affect the definition of the down or up vectors. This allows the author to separate the viewing direction from the gravity direction.

The jump field specifies whether the user's view "jumps" to the position and orientation of a bound X3DViewpointNode node or remains unchanged. This jump is instantaneous and discontinuous in that no collisions are performed and no ProximitySensor nodes are checked in between the starting and ending jump points. If the user's position before the jump is inside a ProximitySensor the exitTime of that sensor shall send the same timestamp as the bind field. Similarly, if the user's position after the jump is inside a ProximitySensor the enterTime of that sensor shall send the same timestamp as the bind field. Regardless of the value of jump at bind time, the relative viewing transformation between the user's view and the current X3DViewpointNode node shall be stored with the current X3DViewpointNode node for later use when un-jumping (i.e., popping the X3DViewpointNode node binding stack from a X3DViewpointNode node with jump TRUE). The following summarizes the bind stack rules (X3DBindableNode) with additional rules regarding X3DViewpointNode nodes:

The jump field may change after a X3DViewpointNode node is bound. The rules described above still apply. If jump was TRUE when the X3DViewpointNode node is bound, but changed to FALSE before the set_bind FALSE is sent, the X3DViewpointNode node does not un-jump during unbind. If jump was FALSE when the X3DViewpointNode node is bound, but changed to TRUE before the set_bind FALSE is sent, the X3DViewpointNode node does perform the un-jump during unbind.

Note that there are two other mechanisms that result in the binding of a new X3DViewpointNode:

Both of these mechanisms override the jump field value of the specified X3DViewpointNode node (#X3DViewpointNodeName) and assume that jump is TRUE when binding to the new X3DViewpointNode. The behaviour of the viewer transition to the newly bound X3DViewpointNode depends on the currently bound NavigationInfo node's type field value.

The fieldOfView field specifies a preferred minimum viewing angle from this X3DViewpointNode in radians. A small field of view roughly corresponds to a telephoto lens; a large field of view roughly corresponds to a wide-angle lens. The field of view shall be greater than zero and smaller than ?. The value of fieldOfView represents the minimum viewing angle in any direction axis perpendicular to the view. For example, a browser with a rectangular viewing projection shall have the following relationship:

display width tan(FOVhorizontal/2)
-----------— = --------------—
display height tan(FOVvertical/2)
where the smaller of display width or display height determines which angle equals the fieldOfView (the larger angle is computed using the relationship described above). The larger angle shall not exceed ? and may force the smaller angle to be less than fieldOfView in order to sustain the aspect ratio.

The description field specifies a textual description of the X3DViewpointNode node. This may be used by browser-specific user interfaces. If a X3DViewpointNode's description field is empty it is recommended that the browser not present this X3DViewpointNode in its browser-specific user interface.

The centerOfRotation field specifies a center about which to rotate the user's eyepoint when in EXAMINE mode. If the browser does not provide the ability to spin around the object in EXAMINE mode, or LOOKAT is not in the list of allowed navigation modes, this field shall be ignored.

The URL syntax ".../scene.wrl#X3DViewpointNodeName" specifies the user's initial view when loading "scene.wrl" to be the first X3DViewpointNode node in the X3D file that appears as DEF X3DViewpointNodeName X3DViewpointNode {...}. This overrides the first X3DViewpointNode node in the X3D file as the initial user view, and a set_bind TRUE message is sent to the X3DViewpointNode node named "X3DViewpointNodeName". If the X3DViewpointNode node named "X3DViewpointNodeName" is not found, the browser shall use the first X3DViewpointNode node in the X3D file (i.e. the normal default behaviour). The URL syntax "#X3DViewpointNodeName" (i.e. no file name) specifies a X3DViewpointNode within the existing X3D file. If this URL is loaded (e.g. Anchor node's url field or loadURL() method is invoked by a Script node), the X3DViewpointNode node named "X3DViewpointNodeName" is bound (a set_bind TRUE event is sent to this X3DViewpointNode node).

The retainUserOffsets field indicates whether a viewpoint needs to retain (TRUE) or reset to zero (FALSE) any prior user navigation offsets from defined viewpoint position, orientation. When an node of type X3DViewpointNode is bound, user navigation offsets are reinitialized if the associated retainUserOffsets is TRUE.

Internal routes:

Member Enumeration Documentation

◆ EyeMode

Used with setupProjection function to indicate for which eye the frustum should be calculated.

Enumerator
MONO 

Not a stereo mode, only one frustum is needed.

LEFT_EYE 

For the left eye.

RIGHT_EYE 

For the right eye.

BOTH_EYE 

Both eyes in a single pass.

Member Function Documentation

◆ getProjectionMatrix()

Matrix4f X3DViewpointNode::getProjectionMatrix ( EyeMode  eye_mode,
H3DFloat  width,
H3DFloat  height,
H3DFloat  clip_near,
H3DFloat  clip_far,
StereoInfo stereo_info = 0,
bool  mirrored_in_y = false 
)
virtual

Gets the projectionMatrix for this viewpoint, i.e.

the transformation matrix from view coordinates to orthogonal projection

References setupProjection().

◆ getViewMatrix()

Matrix4f X3DViewpointNode::getViewMatrix ( EyeMode  eye_mode,
StereoInfo stereo_info = 0 
)
virtual

Gets the viewMatrix for this viewpoint, i.e.

the transformation matrix from world coordinates to view coordinates.

References setupViewMatrix().

◆ rotateAround()

void X3DViewpointNode::rotateAround ( Rotation  rotation,
bool  collision,
Vec3f  rotation_center 
)
virtual

Function for rotating the viewpoint around rotation_center without changing the position or orientation fields.

Parameters
rotationThe rotation to be applied.
collisionIf true then collision between avatar and nodes will be considered. NOTE: Not used in current implementation.
rotation_centerThe center of rotation.

References orientation, position, relOrn, relPos, and Rotation().

Referenced by H3D::H3DNavigation::doNavigation().

◆ setupProjection()

virtual void H3D::X3DViewpointNode::setupProjection ( EyeMode  eye_mode,
H3DFloat  width,
H3DFloat  height,
H3DFloat  clip_near,
H3DFloat  clip_far,
StereoInfo stereo_info = 0,
bool  update_stereo_proj_shift = false 
)
pure virtual

Adds a projection matrix to the current OpenGL matrix based on the viewpoint values.

Parameters
[in]eye_modeThe eye to render for (LEFT_EYE, RIGHT_EYE or MONO).
[in]widthWidth of window in number of pixels.
[in]heightHeight of window in number of pixels.
[in]clip_nearDistance to near plane from viewpoint in meters.
[in]clip_farDistance to near plane from viewpoint in meters. -1 means infinity.
[in]stereo_infoStereo rendering parameters, used to specify e.g. interocular distance.
[in]update_stereo_proj_shiftDecides if stereo project shift variable will be calculated

Implemented in H3D::Viewpoint, and H3D::OrthoViewpoint.

Referenced by getProjectionMatrix(), H3D::FrameBufferTextureGenerator::render(), and H3D::H3DWindowNode::render().

◆ setupViewMatrix()

void X3DViewpointNode::setupViewMatrix ( EyeMode  eye_mode,
StereoInfo stereo_info = 0,
bool  update_stereo_view_shift = false 
)
virtual

Adds a view matrix to the current OpenGL matrix to transform from view coordinates (camera/viewpoint space) to world space.

This means e.g. setting up position and orientation of the viewpoint.

Parameters
[in]eye_modeThe eye to render for (LEFT_EYE, RIGHT_EYE or MONO).
[in]stereo_infoStereo rendering parameters, used to specify interocular distance
[in]update_stereo_view_shiftDecides if stereo view shift variable will be calculated

References accInverseMatrix, axis, BOTH_EYE, H3D::StereoInfo::getActive(), H3D::StereoInfo::headTilt, H3D::StereoInfo::interocularDistance, LEFT_EYE, H3D::StereoInfo::matrixViewShift, MONO, RIGHT_EYE, Rotation(), totalOrientation, totalPosition, and H3D::StereoInfo::updateViewShift().

Referenced by getViewMatrix(), H3D::FrameBufferTextureGenerator::render(), and H3D::H3DWindowNode::render().

◆ translate()

void X3DViewpointNode::translate ( Vec3f  direction,
bool  collision,
const vector< H3DFloat > &  avatar_size,
X3DChildNode topNode 
)
virtual

Function for translating the viewpoint with direction without changing the position or orientation fields.

Parameters
directionThe translation vector.
collisionIf true then collision between avatar and nodes will be considered.
avatar_sizeInformation about how the avatar is specified.
topNodeThe topmost node in the scenegraph containing objects with which collision should be detected. Only used if the collision argument is true.

References accForwardMatrix, H3D::Node::movingSphereIntersect(), orientation, position, relOrn, relPos, H3D::Node::NodeIntersectResult::result, Rotation(), and H3D::Node::NodeIntersectResult::transformResult().

Referenced by H3D::H3DNavigation::doNavigation().

◆ traverseSG()

void X3DViewpointNode::traverseSG ( TraverseInfo ti)
virtual

Traverse the scenegraph.

Saves the accumulated inverse matrix for later use when transforming the X3DViewpointNode in GLWindow.

Parameters
tiThe TraverseInfo object containing information about the traversal.

Reimplemented from H3D::Node.

References accForwardMatrix, accInverseMatrix, H3D::TraverseInfo::getAccForwardMatrix(), H3D::TraverseInfo::getAccInverseMatrix(), H3D::TraverseInfo::getUserData(), in_scene_graph, and is_top_level.

◆ windowFromfieldOfView()

virtual bool H3D::X3DViewpointNode::windowFromfieldOfView ( H3DFloat  width,
H3DFloat  height,
H3DFloat  clip_near,
H3DFloat top,
H3DFloat bottom,
H3DFloat right,
H3DFloat left 
)
pure virtual

Calculates the top, bottom, right and left clipping values for the view frustum at the near plane.

Must be implemented by all subclasses.

Parameters
[in]widthWidth of window in number of pixels.
[in]heightHeight of window in number of pixels.
[in]clip_nearDistance to near plane from viewpoint in meters.
[out]topThe top clipping value.
[out]bottomThe bottom clipping value.
[out]rightThe right clipping value.
[out]leftThe left clipping value.

Implemented in H3D::Viewpoint, and H3D::OrthoViewpoint.

Member Data Documentation

◆ accForwardMatrix

H3DUniquePtr< SFMatrix4f > H3D::X3DViewpointNode::accForwardMatrix

◆ accInverseMatrix

H3DUniquePtr< SFMatrix4f > H3D::X3DViewpointNode::accInverseMatrix

◆ centerOfRotation

H3DUniquePtr< SFVec3f > H3D::X3DViewpointNode::centerOfRotation

The centerOfRotation field specifies a center about which to rotate the user's eyepoint when in EXAMINE mode.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by H3D::H3DNavigation::doNavigation(), H3D::ProximitySensor::traverseSG(), and X3DViewpointNode().

◆ description

H3DUniquePtr< SFString > H3D::X3DViewpointNode::description

The description field specifies a textual description of the X3DViewpointNode node.

Access type: inputOutput
Default value: ""

Referenced by H3D::H3DWindowNode::render().

◆ jump

H3DUniquePtr< SFBool > H3D::X3DViewpointNode::jump

The jump field specifies whether the user's view "jumps" to the position and orientation of a bound X3DViewpointNode node or remains unchanged.

Access type: inputOutput
Default value: TRUE

Referenced by H3D::H3DNavigation::doNavigation(), removeFromStack(), toStackTop(), and X3DViewpointNode().

◆ orientation

H3DUniquePtr< SFOrientation > H3D::X3DViewpointNode::orientation

Specifies the orientation of the X3DViewpointNode relative to the default orientation.

Per default the viewer is on the Z-axis looking down the -Z-axis toward the origin with +X to the right and +Y straight up.

Access type: inputOutput
Default value: Rotation( 0, 0, 1, 0 )

Referenced by H3D::H3DNavigation::doNavigation(), removeFromStack(), rotateAround(), rotateAroundSelf(), toStackTop(), translate(), and X3DViewpointNode().

◆ position

H3DUniquePtr< SFPosition > H3D::X3DViewpointNode::position

Specifies the position of the X3DViewpointNode the local coordinate system.

Access type: inputOutput
Default value: Vec3f( 0, 0, 10 )

Referenced by H3D::H3DNavigation::doNavigation(), moveTo(), removeFromStack(), rotateAround(), toStackTop(), translate(), and X3DViewpointNode().

◆ relOrn

H3DUniquePtr< SFRotation > H3D::X3DViewpointNode::relOrn

Internal field that stores the relative offset from the orientation set by the user.

Set while navigating. The actual orientation of the viewpoint can be obtained through the totalOrientation field.

Referenced by H3D::H3DNavigation::doNavigation(), removeFromStack(), H3D::H3DWindowNode::render(), rotateAround(), rotateAroundSelf(), toStackTop(), translate(), H3D::X3DViewpointNode::SFPosition::update(), H3D::X3DViewpointNode::SFOrientation::update(), and X3DViewpointNode().

◆ relPos

H3DUniquePtr< SFVec3f > H3D::X3DViewpointNode::relPos

Internal field that stores the relative offset from the position set by the user.

Set while navigating. The actual position of the viewpoint can be obtained through the totalPosition field.

Referenced by H3D::H3DNavigation::doNavigation(), moveTo(), removeFromStack(), H3D::H3DWindowNode::render(), rotateAround(), toStackTop(), translate(), H3D::X3DViewpointNode::SFPosition::update(), H3D::X3DViewpointNode::SFOrientation::update(), and X3DViewpointNode().

◆ retainUserOffsets

H3DUniquePtr< SFBool > H3D::X3DViewpointNode::retainUserOffsets

The retainUserOffsets field indicates whether a viewpoint needs to retain (TRUE) or reset to zero (FALSE) any prior user navigation offsets from defined viewpoint position, orientation.

Access type: inputOutput
Default value: false

Referenced by toStackTop(), and X3DViewpointNode().

◆ totalOrientation

H3DUniquePtr< SFSumRotation > H3D::X3DViewpointNode::totalOrientation

◆ totalPosition

H3DUniquePtr< SFSumVec3f > H3D::X3DViewpointNode::totalPosition

The documentation for this class was generated from the following files: