Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::ShearedStereoCameraDecorator Class Reference
[Camera Decorators]

Camera Decorator for standard sheared stereo, see Sheared Stereo for a description. More...

#include <OSGShearedStereoCameraDecorator.h>

Inheritance diagram for osg::ShearedStereoCameraDecorator:

osg::ShearedStereoCameraDecoratorBase osg::StereoCameraDecorator osg::StereoCameraDecoratorBase osg::CameraDecorator osg::CameraDecoratorBase osg::Camera osg::CameraBase osg::AttachmentContainer osg::FieldContainer List of all members.

Public Types

typedef ShearedStereoCameraDecoratorPtr Ptr
enum  { ZeroParallaxDistanceFieldId = Inherited::NextFieldId, OverlapFieldId = ZeroParallaxDistanceFieldId + 1, NextFieldId = OverlapFieldId + 1 }

Public Member Functions

Field Get
*SFCameraPtrgetSFDecoratee (void)
SFNodePtrgetSFBeacon (void)
SFReal32getSFNear (void)
SFReal32getSFFar (void)
CameraPtrgetDecoratee (void)
const CameraPtrgetDecoratee (void) const
NodePtrgetBeacon (void)
const NodePtrgetBeacon (void) const
Real32getNear (void)
const Real32getNear (void) const
Real32getFar (void)
const Real32getFar (void) const
Field Set
*void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering
*virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters
virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
Intersection Helper
*bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)
your_category
*virtual void draw (DrawAction *action, const Viewport &port)
Field Get
*SFCameraPtrgetSFDecoratee (void)
SFNodePtrgetSFBeacon (void)
SFReal32getSFNear (void)
SFReal32getSFFar (void)
CameraPtrgetDecoratee (void)
const CameraPtrgetDecoratee (void) const
NodePtrgetBeacon (void)
const NodePtrgetBeacon (void) const
Real32getNear (void)
const Real32getNear (void) const
Real32getFar (void)
const Real32getFar (void) const
Field Set
*void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering
*virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters
virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
Intersection Helper
*bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)
Field Get
*SFBoolgetSFLeftEye (void)
 Get the StereoCameraDecorator::_sfLeftEye field.
SFReal32getSFEyeSeparation (void)
 Get the StereoCameraDecorator::_sfEyeSeparation field.
bool & getLeftEye (void)
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
const bool & getLeftEye (void) const
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
Real32getEyeSeparation (void)
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
const Real32getEyeSeparation (void) const
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
Field Set
*void setLeftEye (const bool &value)
 Set the value of the StereoCameraDecorator::_sfLeftEye field.
void setEyeSeparation (const Real32 &value)
 Set the value of the StereoCameraDecorator::_sfEyeSeparation field.
your_category
*virtual void draw (DrawAction *action, const Viewport &port)
Field Get
*SFCameraPtrgetSFDecoratee (void)
SFNodePtrgetSFBeacon (void)
SFReal32getSFNear (void)
SFReal32getSFFar (void)
CameraPtrgetDecoratee (void)
const CameraPtrgetDecoratee (void) const
NodePtrgetBeacon (void)
const NodePtrgetBeacon (void) const
Real32getNear (void)
const Real32getNear (void) const
Real32getFar (void)
const Real32getFar (void) const
Field Set
*void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering
*virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters
virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
Intersection Helper
*bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)
Sync
*virtual void changed (BitVector whichField, UInt32 origin)
access
*virtual void getProjection (Matrix &result, UInt32 width, UInt32 height)
Output
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFReal32getSFZeroParallaxDistance (void)
 Get the ShearedStereoCameraDecorator::_sfZeroParallaxDistance field.
SFReal32getSFOverlap (void)
 Get the ShearedStereoCameraDecorator::_sfOverlap field.
Real32getZeroParallaxDistance (void)
 Get the value of the ShearedStereoCameraDecorator::_sfZeroParallaxDistance field.
const Real32getZeroParallaxDistance (void) const
 Get the value of the ShearedStereoCameraDecorator::_sfZeroParallaxDistance field.
Real32getOverlap (void)
 Get the value of the ShearedStereoCameraDecorator::_sfOverlap field.
const Real32getOverlap (void) const
 Get the value of the ShearedStereoCameraDecorator::_sfOverlap field.
Field Set
*void setZeroParallaxDistance (const Real32 &value)
 Set the value of the ShearedStereoCameraDecorator::_sfZeroParallaxDistance field.
void setOverlap (const Real32 &value)
 Set the value of the ShearedStereoCameraDecorator::_sfOverlap field.
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy
*virtual FieldContainerPtr shallowCopy (void) const
Field Get
*SFBoolgetSFLeftEye (void)
 Get the StereoCameraDecorator::_sfLeftEye field.
SFReal32getSFEyeSeparation (void)
 Get the StereoCameraDecorator::_sfEyeSeparation field.
bool & getLeftEye (void)
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
const bool & getLeftEye (void) const
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
Real32getEyeSeparation (void)
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
const Real32getEyeSeparation (void) const
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
Field Set
*void setLeftEye (const bool &value)
 Set the value of the StereoCameraDecorator::_sfLeftEye field.
void setEyeSeparation (const Real32 &value)
 Set the value of the StereoCameraDecorator::_sfEyeSeparation field.
your_category
*virtual void draw (DrawAction *action, const Viewport &port)
virtual void getProjectionTranslation (Matrix &result, UInt32 width, UInt32 height)
virtual void getViewing (Matrix &result, UInt32 width, UInt32 height)
Field Get
*SFCameraPtrgetSFDecoratee (void)
SFNodePtrgetSFBeacon (void)
SFReal32getSFNear (void)
SFReal32getSFFar (void)
CameraPtrgetDecoratee (void)
const CameraPtrgetDecoratee (void) const
NodePtrgetBeacon (void)
const NodePtrgetBeacon (void) const
Real32getNear (void)
const Real32getNear (void) const
Real32getFar (void)
const Real32getFar (void) const
Field Set
*void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering
*virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters
virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
Intersection Helper
*bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)
Field Get
*SFBoolgetSFLeftEye (void)
 Get the StereoCameraDecorator::_sfLeftEye field.
SFReal32getSFEyeSeparation (void)
 Get the StereoCameraDecorator::_sfEyeSeparation field.
bool & getLeftEye (void)
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
const bool & getLeftEye (void) const
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
Real32getEyeSeparation (void)
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
const Real32getEyeSeparation (void) const
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
Field Set
*void setLeftEye (const bool &value)
 Set the value of the StereoCameraDecorator::_sfLeftEye field.
void setEyeSeparation (const Real32 &value)
 Set the value of the StereoCameraDecorator::_sfEyeSeparation field.
Field Get
*SFCameraPtrgetSFDecoratee (void)
SFNodePtrgetSFBeacon (void)
SFReal32getSFNear (void)
SFReal32getSFFar (void)
CameraPtrgetDecoratee (void)
const CameraPtrgetDecoratee (void) const
NodePtrgetBeacon (void)
const NodePtrgetBeacon (void) const
Real32getNear (void)
const Real32getNear (void) const
Real32getFar (void)
const Real32getFar (void) const
Field Set
*void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering
*virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters
virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
Intersection Helper
*bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)

Static Public Member Functions

Class Get
*static const char * getClassname (void)
Class Get
*static const char * getClassname (void)
Class Get
*static const char * getClassname (void)
Class Get
*static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction
*static ShearedStereoCameraDecoratorPtr create (void)
 create a new instance of the class
static ShearedStereoCameraDecoratorPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Class Get
*static const char * getClassname (void)
Class Get
*static const char * getClassname (void)

Static Public Attributes

static const osg::BitVector ZeroParallaxDistanceFieldMask
static const osg::BitVector OverlapFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector LeftEyeFieldMask
static const osg::BitVector EyeSeparationFieldMask
static const osg::BitVector DecorateeFieldMask
static const osg::BitVector BeaconFieldMask
static const osg::BitVector NearFieldMask
static const osg::BitVector FarFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask

Protected Member Functions

Sync
*void executeSyncImpl (CameraBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (StereoCameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraBase *pOther, const BitVector &whichField)
Constructors
ShearedStereoCameraDecorator (void)
 ShearedStereoCameraDecorator (const ShearedStereoCameraDecorator &source)
Destructors
*virtual ~ShearedStereoCameraDecorator (void)
Sync
*void executeSyncImpl (ShearedStereoCameraDecoratorBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync
*void executeSyncImpl (StereoCameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraDecoratorBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (CameraBase *pOther, const BitVector &whichField)

Protected Attributes

Fields
*SFCameraPtr _sfDecoratee
Fields
*SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar
Fields
*SFCameraPtr _sfDecoratee
Fields
*SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar
Fields
*SFBool _sfLeftEye
SFReal32 _sfEyeSeparation
Fields
*SFCameraPtr _sfDecoratee
Fields
*SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar
Fields
*SFReal32 _sfZeroParallaxDistance
SFReal32 _sfOverlap
Fields
*SFBool _sfLeftEye
SFReal32 _sfEyeSeparation
Fields
*SFCameraPtr _sfDecoratee
Fields
*SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar
Fields
*SFBool _sfLeftEye
SFReal32 _sfEyeSeparation
Fields
*SFCameraPtr _sfDecoratee
Fields
*SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar

Private Types

typedef ShearedStereoCameraDecoratorBase Inherited

Private Member Functions

void operator= (const ShearedStereoCameraDecorator &source)

Static Private Member Functions

static void initMethod (void)

Friends

class FieldContainer
class ShearedStereoCameraDecoratorBase

Detailed Description

The osg::CameraDecorator for standard sheared stereo projections, see Sheared Stereo for a description.

The only parameter is defined by the _sfZeroParallaxDistance field.

Definition at line 55 of file OSGShearedStereoCameraDecorator.h.


Member Typedef Documentation

typedef ShearedStereoCameraDecoratorBase osg::ShearedStereoCameraDecorator::Inherited [private]
 

Reimplemented from osg::ShearedStereoCameraDecoratorBase.

Definition at line 59 of file OSGShearedStereoCameraDecorator.h.

typedef ShearedStereoCameraDecoratorPtr osg::ShearedStereoCameraDecoratorBase::Ptr [inherited]
 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 91 of file OSGShearedStereoCameraDecoratorBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
ZeroParallaxDistanceFieldId 
OverlapFieldId 
NextFieldId 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 93 of file OSGShearedStereoCameraDecoratorBase.h.

00094     {
00095         ZeroParallaxDistanceFieldId = Inherited::NextFieldId,
00096         OverlapFieldId              = ZeroParallaxDistanceFieldId + 1,
00097         NextFieldId                 = OverlapFieldId              + 1
00098     };


Constructor & Destructor Documentation

ShearedStereoCameraDecorator::ShearedStereoCameraDecorator void   )  [protected]
 

Definition at line 72 of file OSGShearedStereoCameraDecorator.cpp.

00072                                                                :
00073     Inherited()
00074 {
00075 }

ShearedStereoCameraDecorator::ShearedStereoCameraDecorator const ShearedStereoCameraDecorator source  )  [protected]
 

Definition at line 77 of file OSGShearedStereoCameraDecorator.cpp.

00077                                                                                                      :
00078     Inherited(source)
00079 {
00080 }

ShearedStereoCameraDecorator::~ShearedStereoCameraDecorator void   )  [protected, virtual]
 

Definition at line 82 of file OSGShearedStereoCameraDecorator.cpp.

00083 {
00084 }


Member Function Documentation

void ShearedStereoCameraDecorator::changed BitVector  whichField,
UInt32  origin
[virtual]
 

Reimplemented from osg::StereoCameraDecorator.

Definition at line 92 of file OSGShearedStereoCameraDecorator.cpp.

References osg::StereoCameraDecorator::changed().

00093 {
00094     Inherited::changed(whichField, origin);
00095 }

void ShearedStereoCameraDecorator::getProjection Matrix result,
UInt32  width,
UInt32  height
[virtual]
 

Get the projection matrix, uses MatrixStereoPerspective to generate it.

Reimplemented from osg::CameraDecorator.

Definition at line 107 of file OSGShearedStereoCameraDecorator.cpp.

References osg::AttachmentContainerPtr::dcast(), FFATAL, osg::CameraDecoratorBase::getDecoratee(), osg::StereoCameraDecoratorBase::getEyeSeparation(), osg::StereoCameraDecoratorBase::getLeftEye(), osg::ShearedStereoCameraDecoratorBase::getOverlap(), osg::ShearedStereoCameraDecoratorBase::getZeroParallaxDistance(), osg::MatrixStereoPerspective(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, and osg::TransformationMatrix< ValueTypeT >::setIdentity().

00109 {
00110     if(width == 0 || height == 0)
00111     {
00112         result.setIdentity();
00113         return;
00114     }
00115        
00116     PerspectiveCameraPtr cam = PerspectiveCameraPtr::dcast(getDecoratee());
00117     
00118     if(cam == NullFC)
00119     {
00120         FFATAL(("ShearedStereoCameraDecorator::getProjection: can only"
00121                 " decorate PerspectiveCameras!\n"));
00122         result.setIdentity();
00123         return;
00124     }
00125     
00126     Matrix trans;
00127     MatrixStereoPerspective(result, trans, cam->getFov(), 
00128                             width / (Real32) height * cam->getAspect(), 
00129                             cam->getNear(), cam->getFar(),
00130                             getZeroParallaxDistance(),
00131                             getEyeSeparation(),
00132                             getLeftEye() ? 0.f : 1.f,
00133                             getOverlap());
00134     
00135     result.mult(trans);
00136 }                                       

void ShearedStereoCameraDecorator::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [virtual]
 

Reimplemented from osg::StereoCameraDecorator.

Definition at line 97 of file OSGShearedStereoCameraDecorator.cpp.

References SLOG.

00099 {
00100     SLOG << "Dump ShearedStereoCameraDecorator NI" << std::endl;
00101 }

void ShearedStereoCameraDecorator::initMethod void   )  [static, private]
 

Reimplemented from osg::StereoCameraDecorator.

Definition at line 88 of file OSGShearedStereoCameraDecorator.cpp.

00089 {
00090 }

void osg::ShearedStereoCameraDecorator::operator= const ShearedStereoCameraDecorator source  )  [private]
 

osg::FieldContainerType & osg::ShearedStereoCameraDecoratorBase::getClassType void   )  [inline, static, inherited]
 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 58 of file OSGShearedStereoCameraDecoratorBase.inl.

References osg::ShearedStereoCameraDecoratorBase::_type.

Referenced by osg::ShearedStereoCameraDecoratorBase::create().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::ShearedStereoCameraDecoratorBase::getClassTypeId void   )  [inline, static, inherited]
 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 65 of file OSGShearedStereoCameraDecoratorBase.inl.

References osg::ShearedStereoCameraDecoratorBase::_type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & ShearedStereoCameraDecoratorBase::getType void   )  [virtual, inherited]
 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 117 of file OSGShearedStereoCameraDecoratorBase.cpp.

References osg::ShearedStereoCameraDecoratorBase::_type.

00118 {
00119     return _type; 
00120 } 

const FieldContainerType & ShearedStereoCameraDecoratorBase::getType void   )  const [virtual, inherited]
 

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 122 of file OSGShearedStereoCameraDecoratorBase.cpp.

References osg::ShearedStereoCameraDecoratorBase::_type.

00123 {
00124     return _type;
00125 }