Ocean
Ocean::Rendering::StereoView Class Reference

This class is the base class for all stereo views. More...

Inheritance diagram for Ocean::Rendering::StereoView:

Public Types

enum  StereoType { STEREO_TYPE_INVALID , STEREO_TYPE_QUADBUFFERED , STEREO_TYPE_ANAGLYPH }
 Definition of different stereo visualization types. More...
 
- Public Types inherited from Ocean::Rendering::View
typedef std::vector< BackgroundRefBackgrounds
 Definition of a vector holding background objects. More...
 
- Public Types inherited from Ocean::Rendering::Object
enum  ObjectType {
  TYPE_UNKNOWN , TYPE_ABSOLUTE_TRANSFORM , TYPE_ATTRIBUTE , TYPE_ATTRIBUTE_SET ,
  TYPE_BACKGROUND , TYPE_BILLBOARD , TYPE_BITMAP_FRAMEBUFFER , TYPE_BLEND_ATTRIBUTE ,
  TYPE_BOX , TYPE_CONE , TYPE_CYLINDER , TYPE_DEPTH_ATTRIBUTE ,
  TYPE_DIRECTIONAL_LIGHT , TYPE_FRAMEBUFFER , TYPE_FRAME_TEXTURE_2D , TYPE_GEOMETRY ,
  TYPE_GROUP , TYPE_INDEPENDENT_PRIMITIVE , TYPE_LIGHT_SOURCE , TYPE_LINES ,
  TYPE_LINE_STRIPS , TYPE_LOD , TYPE_MATERIAL , TYPE_NODE ,
  TYPE_OBJECT , TYPE_PARALLEL_VIEW , TYPE_PERSPECTIVE_VIEW , TYPE_PHANTOM_ATTRIBUTE ,
  TYPE_POINT_LIGHT , TYPE_POINTS , TYPE_PRIMITIVE , TYPE_PRIMITIVE_ATTRIBUTE ,
  TYPE_QUAD_STRIPS , TYPE_QUADS , TYPE_RENDERABLE , TYPE_SCENE ,
  TYPE_SHADER_PROGRAM , TYPE_SHAPE , TYPE_SKY_BACKGROUND , TYPE_SPHERE ,
  TYPE_SPOT_LIGHT , TYPE_STEREO_ATTRIBUTE , TYPE_STEREO_VIEW , TYPE_STRIP_PRIMITIVE ,
  TYPE_SWITCH , TYPE_TEXT , TYPE_TEXTURE , TYPE_TEXTURE_2D ,
  TYPE_MEDIA_TEXTURE_2D , TYPE_TEXTURE_FRAMEBUFFER , TYPE_TEXTURES , TYPE_TRANSFORM ,
  TYPE_TRIANGLE_FANS , TYPE_TRIANGLES , TYPE_TRIANGLE_STRIPS , TYPE_UNDISTORTED_BACKGROUND ,
  TYPE_VERTEX_SET , TYPE_VIEW , TYPE_WINDOW_FRAMEBUFFER
}
 Definition of different object type. More...
 
typedef std::unordered_map< ObjectId, unsigned int > ObjectIdMap
 Definition of a map holding object ids to reference counters. More...
 

Public Member Functions

virtual Scalar focusDistance () const
 Returns the focus distance of this view. More...
 
virtual bool eyesReversed () const
 Returns whether left and right image is reversed. More...
 
virtual StereoType stereoType () const
 Returns the stereo visualization type of this stereo view. More...
 
HomogenousMatrix4 transformation () const override
 Returns the transformation between the center of both views (device) and world. More...
 
virtual HomogenousMatrix4 leftTransformation () const
 Returns the position and orientation of the left view in world coordinates (the left extrinsic camera data, the inverse of the known View Matrix). More...
 
virtual HomogenousMatrix4 rightTransformation () const
 Returns the position and orientation of the right view in world coordinates (the right extrinsic camera data, the inverse of the known View Matrix). More...
 
virtual SquareMatrix4 leftProjectionMatrix () const
 Returns the left projection matrix. More...
 
virtual SquareMatrix4 rightProjectionMatrix () const
 Returns the right projection matrix. More...
 
virtual void setFocusDistance (const Scalar focus)
 Sets the focus distance of this view. More...
 
virtual void setEyesReversed (const bool reverse)
 Sets whether left and right image will be reversed. More...
 
virtual bool setStereoType (const StereoType type)
 Sets the stereo visualization type of this stereo view. More...
 
void setTransformation (const HomogenousMatrix4 &world_T_device) override
 Sets the position and orientation of the center between left and right view (device) in world coordinates. More...
 
virtual void setLeftTransformation (const HomogenousMatrix4 &world_T_leftView)
 Sets the position and orientation of the left view in world coordinates (the left extrinsic camera data, the inverse of the known View Matrix). More...
 
virtual void setRightTransformation (const HomogenousMatrix4 &world_T_rightView)
 Sets the position and orientation of the right view in world coordinates (the right extrinsic camera data, the inverse of the known View Matrix). More...
 
virtual void setLeftProjectionMatrix (const SquareMatrix4 &leftClip_T_leftView_)
 Sets the left projection matrix. More...
 
virtual void setRightProjectionMatrix (const SquareMatrix4 &rightClip_T_rightView_)
 Sets the right projection matrix. More...
 
ObjectType type () const override
 Returns the type of this object. More...
 
- Public Member Functions inherited from Ocean::Rendering::PerspectiveView
virtual Scalar fovX () const
 Returns the horizontal field of view in radian. More...
 
virtual bool setFovX (const Scalar fovx)
 Sets the horizontal field of view in radian. More...
 
virtual Scalar idealFovX (bool *validCamera=nullptr) const
 Calculates the ideal field of view matching to the current background. More...
 
virtual void updateToIdealFovX ()
 Updates the view's field of view to the ideal field of view matching with the current background. More...
 
virtual void setProjectionMatrix (const SquareMatrix4 &clip_T_view)
 Sets the projection matrix explicitly. More...
 
void fitCamera (const NodeRef &node=NodeRef()) override
 Fits the camera to a given node. More...
 
- Public Member Functions inherited from Ocean::Rendering::View
virtual Scalar aspectRatio () const
 Returns the aspect ratio of this view. More...
 
virtual Scalar nearDistance () const
 Returns the distance to the near clipping plane. More...
 
virtual Scalar farDistance () const
 Returns the distance to the far clipping plane. More...
 
virtual RGBAColor backgroundColor () const
 Returns the background color of the view. More...
 
virtual BackgroundRef background () const
 Returns the currently used background of the view. More...
 
virtual Backgrounds backgrounds () const
 Returns all defined background objects. More...
 
virtual bool useHeadlight () const
 Returns whether the head light is enabled. More...
 
virtual PhantomAttribute::PhantomMode phantomMode () const
 Returns the phantom mode of this view. More...
 
virtual Line3 viewingRay (const Scalar x, const Scalar y, const unsigned int width, const unsigned int height) const
 Returns a viewing ray into the scene. More...
 
virtual bool setAspectRatio (const Scalar aspectRatio)
 Sets the aspect ratio of this view. More...
 
virtual bool setNearDistance (const Scalar distance)
 Sets the distance to the near clipping plane. More...
 
virtual bool setFarDistance (const Scalar distance)
 Sets the distance to the far clipping plane. More...
 
virtual bool setNearFarDistance (const Scalar nearDistance, const Scalar farDistance)
 Sets the distance to the near and far clipping plane. More...
 
virtual bool setBackgroundColor (const RGBAColor &color)
 Sets the background color of the view. More...
 
virtual void addBackground (const BackgroundRef &background)
 Adds a new background object to the background stack of the view. More...
 
virtual void removeBackground (const BackgroundRef &background)
 Removes a background object from the background stack of this view. More...
 
virtual void setUseHeadlight (const bool state)
 Sets whether the headlight should be activated. More...
 
virtual bool setPhantomMode (const PhantomAttribute::PhantomMode mode)
 Sets the phantom mode of this view. More...
 
ObjectType type () const override
 Returns the type of this object. More...
 
- Public Member Functions inherited from Ocean::Rendering::Object
ObjectId id () const
 Returns the unique object id of this object. More...
 
const std::string & name () const
 Returns the name of this object. More...
 
virtual void setName (const std::string &name)
 Sets or changes the name of this object. More...
 
virtual const std::string & engineName () const =0
 Returns the name of the owner engine. More...
 
ObjectRefs parentObjects () const
 Returns all parent objects. More...
 
ObjectRefSet parentNodes () const
 Returns all parent nodes. More...
 
virtual std::string descriptiveInformation () const
 Returns descriptive information about the object as string. More...
 

Protected Member Functions

 StereoView ()
 Creates a new stereo view object. More...
 
 ~StereoView () override
 Destructs a stereo view object. More...
 
SquareMatrix4 projectionMatrix () const override
 Returns the projection matrix of this view. More...
 
- Protected Member Functions inherited from Ocean::Rendering::PerspectiveView
 PerspectiveView ()
 Creates a new perspective view object. More...
 
 ~PerspectiveView () override
 Destructs a perspective view object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::View
 View ()
 Creates a new view object. More...
 
 ~View () override
 Destructs a view object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::Object
 Object ()
 Creates a new object. More...
 
 Object (const Object &object)=delete
 Disabled copy constructor. More...
 
virtual ~Object ()
 Destructs an object. More...
 
Engineengine () const
 Returns the render engine which is owner of this object. More...
 
void registerParent (const ObjectId parentId)
 Registers a parent node for this (child) node. More...
 
void unregisterParent (const ObjectId parentId)
 Unregisters a parent node for this (child) node. More...
 
void registerThisObjectAsParent (const ObjectRef &child)
 Registers this object at a child as parent object. More...
 
void unregisterThisObjectAsParent (const ObjectRef &child)
 Unregisters this object from a child as parent. More...
 
Objectoperator= (const Object &object)=delete
 Disabled copy operator. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Ocean::Rendering::Object
static std::string translateObjectType (const ObjectType objectType)
 Translates an object type to a readable string. More...
 
- Protected Attributes inherited from Ocean::Rendering::View
Backgrounds backgrounds_
 The view's background objects. More...
 
- Protected Attributes inherited from Ocean::Rendering::Object
Lock objectLock
 Lock for the object. More...
 

Detailed Description

This class is the base class for all stereo views.

Member Enumeration Documentation

◆ StereoType

Definition of different stereo visualization types.

Enumerator
STEREO_TYPE_INVALID 

Invalid stereo type.

STEREO_TYPE_QUADBUFFERED 

Quadbuffered stereo visualization type.

STEREO_TYPE_ANAGLYPH 

Anaglyph stereo visualization type.

Constructor & Destructor Documentation

◆ StereoView()

Ocean::Rendering::StereoView::StereoView ( )
protected

Creates a new stereo view object.

◆ ~StereoView()

Ocean::Rendering::StereoView::~StereoView ( )
overrideprotected

Destructs a stereo view object.

Member Function Documentation

◆ eyesReversed()

virtual bool Ocean::Rendering::StereoView::eyesReversed ( ) const
virtual

Returns whether left and right image is reversed.

Returns
True, if so
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ focusDistance()

virtual Scalar Ocean::Rendering::StereoView::focusDistance ( ) const
virtual

Returns the focus distance of this view.

Returns
View focus distance
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ leftProjectionMatrix()

virtual SquareMatrix4 Ocean::Rendering::StereoView::leftProjectionMatrix ( ) const
virtual

Returns the left projection matrix.

Returns
The left projection matrix
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
rightProjectionMatrix().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ leftTransformation()

virtual HomogenousMatrix4 Ocean::Rendering::StereoView::leftTransformation ( ) const
virtual

Returns the position and orientation of the left view in world coordinates (the left extrinsic camera data, the inverse of the known View Matrix).

Returns
The transformation converting the left view to world, which is world_T_leftView
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
rightTransformation().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ projectionMatrix()

SquareMatrix4 Ocean::Rendering::StereoView::projectionMatrix ( ) const
overrideprotectedvirtual

Returns the projection matrix of this view.

Protected function as it has no meaning in stereo views.

Returns
The invalid 4x4 matrix

Reimplemented from Ocean::Rendering::View.

◆ rightProjectionMatrix()

virtual SquareMatrix4 Ocean::Rendering::StereoView::rightProjectionMatrix ( ) const
virtual

Returns the right projection matrix.

Returns
The right projection matrix
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
leftProjectionMatrix().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ rightTransformation()

virtual HomogenousMatrix4 Ocean::Rendering::StereoView::rightTransformation ( ) const
virtual

Returns the position and orientation of the right view in world coordinates (the right extrinsic camera data, the inverse of the known View Matrix).

Returns
The transformation converting the right view to world, which is world_T_rightView
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
leftTransformation().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ setEyesReversed()

virtual void Ocean::Rendering::StereoView::setEyesReversed ( const bool  reverse)
virtual

Sets whether left and right image will be reversed.

Parameters
reverseTrue, if the left image will be displayed for the right eye and vice versa
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ setFocusDistance()

virtual void Ocean::Rendering::StereoView::setFocusDistance ( const Scalar  focus)
virtual

Sets the focus distance of this view.

Parameters
focusView focus distance to set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ setLeftProjectionMatrix()

virtual void Ocean::Rendering::StereoView::setLeftProjectionMatrix ( const SquareMatrix4 leftClip_T_leftView_)
virtual

Sets the left projection matrix.

Parameters
leftClip_T_leftView_Left projection matrix to set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
setRightProjectionMatrix().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ setLeftTransformation()

virtual void Ocean::Rendering::StereoView::setLeftTransformation ( const HomogenousMatrix4 world_T_leftView)
virtual

Sets the position and orientation of the left view in world coordinates (the left extrinsic camera data, the inverse of the known View Matrix).

Parameters
world_T_leftViewThe transformation converting the left view to world, must be valid
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
setRightTransformation().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ setRightProjectionMatrix()

virtual void Ocean::Rendering::StereoView::setRightProjectionMatrix ( const SquareMatrix4 rightClip_T_rightView_)
virtual

Sets the right projection matrix.

Parameters
rightClip_T_rightView_Right projection matrix to set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
setLeftProjectionMatrix().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ setRightTransformation()

virtual void Ocean::Rendering::StereoView::setRightTransformation ( const HomogenousMatrix4 world_T_rightView)
virtual

Sets the position and orientation of the right view in world coordinates (the right extrinsic camera data, the inverse of the known View Matrix).

Parameters
world_T_rightViewThe transformation converting the right view to world, must be valid
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
setLeftTransformation().

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESStereoView.

◆ setStereoType()

virtual bool Ocean::Rendering::StereoView::setStereoType ( const StereoType  type)
virtual

Sets the stereo visualization type of this stereo view.

Parameters
typeStereo visualization type to set
Returns
True, if succeeded
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ setTransformation()

void Ocean::Rendering::StereoView::setTransformation ( const HomogenousMatrix4 world_T_device)
overridevirtual

Sets the position and orientation of the center between left and right view (device) in world coordinates.

Parameters
world_T_deviceThe transformation converting the device to world, must be valid
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
transformation().

Reimplemented from Ocean::Rendering::View.

◆ stereoType()

virtual StereoType Ocean::Rendering::StereoView::stereoType ( ) const
virtual

Returns the stereo visualization type of this stereo view.

Returns
Stereo visualization type
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ transformation()

HomogenousMatrix4 Ocean::Rendering::StereoView::transformation ( ) const
overridevirtual

Returns the transformation between the center of both views (device) and world.

Returns
The device's transformation, which is world_T_device
Exceptions
NotSupportedExceptionIs thrown if this function is not supported
See also
setTransformation().

Reimplemented from Ocean::Rendering::View.

◆ type()

ObjectType Ocean::Rendering::StereoView::type ( ) const
overridevirtual

Returns the type of this object.

See also
Object::type().

Reimplemented from Ocean::Rendering::PerspectiveView.


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