Beginings of support for quad bufferd, red/green, and slit screen stereo.

This commit is contained in:
Robert Osfield
2001-12-02 22:20:46 +00:00
parent bca8b68a18
commit 34a4c18a26
8 changed files with 248 additions and 34 deletions

View File

@@ -25,6 +25,8 @@ class SG_EXPORT Camera: public osg::Referenced
public:
Camera();
Camera(const Camera&);
Camera& operator=(const Camera&);
virtual ~Camera();
/** Range of projection types.
@@ -254,11 +256,15 @@ class SG_EXPORT Camera: public osg::Referenced
const bool unproject(const Vec3& win,const Viewport& viewport,Vec3& obj) const;
/** Convinience method for adjusting the project and model view to account for
* and eye offset, as used in stereo work, assumes that the users will use
* a seperate camera for each eye, adjustEyePointForStereo(..) being used to
* specialize the camera for each eye view.*/
void adjustEyeOffsetForStereo(const osg::Vec3& offset,float screenDistance);
protected:
// Disallow copy construction & assignment (for now)
Camera(const Camera&);
Camera& operator=(const Camera&);
void copy(const Camera&);
// projection details.
ProjectionType _projectionType;
@@ -306,7 +312,10 @@ class SG_EXPORT Camera: public osg::Referenced
void calculateMatricesAndClippingVolume() const;
// values to offset
bool _useEyeOffset;
osg::Vec3 _eyeOffset;
float _screenDistance;
};