Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | Friends
omni::visual::CameraInterface Class Referenceabstract

A generic camera interface. More...

#include <CameraInterface.h>

Inheritance diagram for omni::visual::CameraInterface:
Inheritance graph
[legend]
Collaboration diagram for omni::visual::CameraInterface:
Collaboration graph
[legend]

Public Member Functions

 CameraInterface ()
 
 CameraInterface (const Tracker &_tracker, qreal _near=0.1, qreal _far=1000.0, const QVector3D &_up=QVector3D(0.0, 0.0, 1.0))
 
QVector3D right () const
 Right vector. More...
 
void strafe (qreal _right)
 Move camera to the right (or to the left if value is negative) More...
 
void lift (qreal _up)
 Move camera upwards (or downwards if value is negative) More...
 
QVector3D up () const
 Camera orientation. More...
 
void setUp (QVector3D const &)
 
qreal near () const
 Camera's near plane. More...
 
void setNear (qreal)
 
qreal far () const
 Camera's far plane. More...
 
void setFar (qreal)
 
virtual void setup (qreal _aspect) const =0
 Setup perspective camera in OpenGL. More...
 
void fromStream (QDataStream &)
 Deserialize from stream. More...
 
void toStream (QDataStream &) const
 Serialize to stream. More...
 
virtual qreal fov () const
 Expose field of field. More...
 
virtual void setFov (qreal _fov)
 
- Public Member Functions inherited from omni::visual::Tracker
 Tracker ()
 
 Tracker (const QVector3D &_center, const PolarVec &_direction)
 
void track (float _longitude, float _latitude, float _radius)
 
QVector3D eye () const
 get tracker position More...
 
void setEye (const QVector3D &_pos)
 Set eye position. More...
 
void setCenter (QVector3D const &)
 Set center position. More...
 
QVector3D & center ()
 Return center position. More...
 
QVector3D const & center () const
 Return center position (const version) More...
 
void setDirection (PolarVec const &)
 Set direction from polar vector. More...
 
void setDistance (float _t)
 Set direction with a certain distance. More...
 
PolarVec & direction ()
 Return direction as polar vector. More...
 
PolarVec const & direction () const
 Return direction as polar vector (const version) More...
 
void limitDistance (float _minDist, float _maxDist)
 Keep distance in limits. More...
 

Private Attributes

QVector3D up_
 camera orientation More...
 
qreal near_ = 0.1
 Near plane. More...
 
qreal far_ = 1000.0
 Far plane. More...
 

Friends

bool operator== (CameraInterface const &, CameraInterface const &)
 Test for equality. ScreenSetup is ignored. More...
 

Detailed Description

A generic camera interface.

Constructor & Destructor Documentation

omni::visual::CameraInterface::CameraInterface ( )
26  :
27  up_(0.0, 0.0, 1.0)
28  {}
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
omni::visual::CameraInterface::CameraInterface ( const Tracker _tracker,
qreal  _near = 0.1,
qreal  _far = 1000.0,
const QVector3D &  _up = QVector3D(0.0, 0.0, 1.0) 
)
33  :
34  Tracker(_tracker),
35  up_(_up),
36  near_(_near),
37  far_(_far)
38  {}
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
Tracker()
Definition: Tracker.cpp:27
qreal far_
Far plane.
Definition: CameraInterface.h:88
qreal near_
Near plane.
Definition: CameraInterface.h:85

Member Function Documentation

qreal omni::visual::CameraInterface::far ( ) const

Camera's far plane.

78  {
79  return far_;
80  }
qreal far_
Far plane.
Definition: CameraInterface.h:88
virtual qreal omni::visual::CameraInterface::fov ( ) const
inlinevirtual

Expose field of field.

Reimplemented in omni::visual::PerspectiveCamera.

73  {
74  return 0.0;
75  }
void omni::visual::CameraInterface::fromStream ( QDataStream &  _is)
virtual

Deserialize from stream.

Reimplemented from omni::visual::Tracker.

Reimplemented in omni::visual::PerspectiveCamera.

88  {
90  _is >> up_ >> near_ >> far_;
91  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
qreal far_
Far plane.
Definition: CameraInterface.h:88
virtual void fromStream(QDataStream &)
Deserialize from stream.
Definition: Tracker.cpp:101
qreal near_
Near plane.
Definition: CameraInterface.h:85
void omni::visual::CameraInterface::lift ( qreal  _up)

Move camera upwards (or downwards if value is negative)

51  {
52  QVector3D _orthoUp = QVector3D::crossProduct(right(),
53  Tracker::direction().vec());
54  Tracker::setCenter(Tracker::center() + _orthoUp.normalized() * _up);
55  }
QVector3D right() const
Right vector.
Definition: CameraInterface.cpp:40
PolarVec & direction()
Return direction as polar vector.
Definition: Tracker.cpp:79
void setCenter(QVector3D const &)
Set center position.
Definition: Tracker.cpp:54
QVector3D & center()
Return center position.
Definition: Tracker.cpp:59
qreal omni::visual::CameraInterface::near ( ) const

Camera's near plane.

68  {
69  return near_;
70  }
qreal near_
Near plane.
Definition: CameraInterface.h:85
QVector3D omni::visual::CameraInterface::right ( ) const

Right vector.

41  {
42  return QVector3D::crossProduct(Tracker::direction().vec(), up_);
43  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
PolarVec & direction()
Return direction as polar vector.
Definition: Tracker.cpp:79
void omni::visual::CameraInterface::setFar ( qreal  _far)
83  {
84  far_ = _far;
85  }
qreal far_
Far plane.
Definition: CameraInterface.h:88
virtual void omni::visual::CameraInterface::setFov ( qreal  _fov)
inlinevirtual

Reimplemented in omni::visual::PerspectiveCamera.

77  {
78  }
void omni::visual::CameraInterface::setNear ( qreal  _near)
73  {
74  near_ = _near;
75  }
qreal near_
Near plane.
Definition: CameraInterface.h:85
void omni::visual::CameraInterface::setUp ( QVector3D const &  _up)
63  {
64  up_ = _up.normalized();
65  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
virtual void omni::visual::CameraInterface::setup ( qreal  _aspect) const
pure virtual

Setup perspective camera in OpenGL.

Implemented in omni::visual::PerspectiveCamera.

void omni::visual::CameraInterface::strafe ( qreal  _right)

Move camera to the right (or to the left if value is negative)

46  {
47  Tracker::setCenter(Tracker::center() + right().normalized() * _right);
48  }
QVector3D right() const
Right vector.
Definition: CameraInterface.cpp:40
void setCenter(QVector3D const &)
Set center position.
Definition: Tracker.cpp:54
QVector3D & center()
Return center position.
Definition: Tracker.cpp:59
void omni::visual::CameraInterface::toStream ( QDataStream &  _os) const
virtual

Serialize to stream.

Reimplemented from omni::visual::Tracker.

Reimplemented in omni::visual::PerspectiveCamera.

94  {
95  Tracker::toStream(_os);
96  _os << up_ << near_ << far_;
97  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
qreal far_
Far plane.
Definition: CameraInterface.h:88
virtual void toStream(QDataStream &) const
Serialize to stream.
Definition: Tracker.cpp:110
qreal near_
Near plane.
Definition: CameraInterface.h:85
QVector3D omni::visual::CameraInterface::up ( ) const

Camera orientation.

58  {
59  return up_;
60  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82

Friends And Related Function Documentation

bool operator== ( CameraInterface const &  _lhs,
CameraInterface const &  _rhs 
)
friend

Test for equality. ScreenSetup is ignored.

100  {
101  return
105  }
QVector3D up_
camera orientation
Definition: CameraInterface.h:82
#define OMNI_TEST_MEMBER_EQUAL(member)
Definition: util.h:125
qreal far_
Far plane.
Definition: CameraInterface.h:88
qreal near_
Near plane.
Definition: CameraInterface.h:85

Field Documentation

qreal omni::visual::CameraInterface::far_ = 1000.0
private

Far plane.

qreal omni::visual::CameraInterface::near_ = 0.1
private

Near plane.

QVector3D omni::visual::CameraInterface::up_
private

camera orientation


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