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

Frustum helper struct constructed from a projector. More...

#include <Frustum.h>

Collaboration diagram for omni::proj::Frustum:
Collaboration graph
[legend]

Public Member Functions

 Frustum (Projector const &)
 Frustum must be constructed from a projector. More...
 
QVector3D eye () const
 Eye position of frustum. More...
 
QVector3D topLeft () const
 Vector of top left corner. More...
 
QVector3D topLeft (QMatrix4x4 const &) const
 Vector of top left corner, transformed by matrix. More...
 
QVector3D topRight () const
 Vector of top right corner. More...
 
QVector3D topRight (QMatrix4x4 const &) const
 Vector of top right corner, transformed by matrix. More...
 
QVector3D bottomLeft () const
 Vector of bottom left corner. More...
 
QVector3D bottomLeft (QMatrix4x4 const &) const
 Vector of bottom left corner, transformed by matrix. More...
 
QVector3D bottomRight () const
 Vector of bottom right corner. More...
 
QVector3D bottomRight (QMatrix4x4 const &) const
 Vector of bottom right corner, transformed by matrix. More...
 
QRectF rect () const
 Return frustum rectangle. More...
 
QRectF rect (float _near, float _far) const
 Return frustum rectangle, multiplied by near and far values. More...
 

Private Attributes

Projector const & proj_
 

Detailed Description

Frustum helper struct constructed from a projector.

Constructor & Destructor Documentation

omni::proj::Frustum::Frustum ( Projector const &  _proj)

Frustum must be constructed from a projector.

25 : proj_(_proj) {}
Projector const & proj_
Definition: Frustum.h:71

Member Function Documentation

QVector3D omni::proj::Frustum::bottomLeft ( ) const

Vector of bottom left corner.

39  {
40  return QVector3D(1.0, rect().left(), rect().bottom());
41  }
QRectF rect() const
Return frustum rectangle.
Definition: Frustum.cpp:63
QVector3D omni::proj::Frustum::bottomLeft ( QMatrix4x4 const &  _m) const

Vector of bottom left corner, transformed by matrix.

55  {
56  return _m * bottomLeft() - _m.column(3).toVector3D();
57  }
QVector3D bottomLeft() const
Vector of bottom left corner.
Definition: Frustum.cpp:39
QVector3D omni::proj::Frustum::bottomRight ( ) const

Vector of bottom right corner.

43  {
44  return QVector3D(1.0, rect().right(), rect().bottom());
45  }
QRectF rect() const
Return frustum rectangle.
Definition: Frustum.cpp:63
QVector3D omni::proj::Frustum::bottomRight ( QMatrix4x4 const &  _m) const

Vector of bottom right corner, transformed by matrix.

59  {
60  return _m * bottomRight() - _m.column(3).toVector3D();
61  }
QVector3D bottomRight() const
Vector of bottom right corner.
Definition: Frustum.cpp:43
QVector3D omni::proj::Frustum::eye ( ) const

Eye position of frustum.

27  {
28  return proj_.pos();
29  }
Projector const & proj_
Definition: Frustum.h:71
QVector3D pos() const
Return projector position (3rd column of projector matrix)
Definition: Projector.cpp:126
QRectF omni::proj::Frustum::rect ( ) const

Return frustum rectangle.

63  {
64  qreal _a = proj_.fov().radians() * 0.5;
65  qreal _width = tan(_a);
66  qreal _height = _width / proj_.aspectRatio();
67 
68  return QRectF(
69  QPointF(-_width, _height * (proj_.keystone() + 1.0)),
70  QPointF(_width, _height * (proj_.keystone() - 1.0)));
71  }
qreal keystone() const
Return keystone correction value for projector.
Definition: Projector.cpp:93
qreal aspectRatio() const
Aspect ratio of screen.
Definition: Projector.cpp:60
Projector const & proj_
Definition: Frustum.h:71
Angle fov() const
Return field of view.
Definition: Projector.cpp:88
QRectF omni::proj::Frustum::rect ( float  _near,
float  _far 
) const

Return frustum rectangle, multiplied by near and far values.

73  {
74  QRectF _rect = rect();
75  return QRectF(_rect.topLeft() * _near,_rect.bottomRight() * _near);
76  }
QRectF rect() const
Return frustum rectangle.
Definition: Frustum.cpp:63
QVector3D omni::proj::Frustum::topLeft ( ) const

Vector of top left corner.

31  {
32  return QVector3D(1.0, rect().left(), rect().top());
33  }
QRectF rect() const
Return frustum rectangle.
Definition: Frustum.cpp:63
QVector3D omni::proj::Frustum::topLeft ( QMatrix4x4 const &  _m) const

Vector of top left corner, transformed by matrix.

47  {
48  return _m * topLeft() - _m.column(3).toVector3D();
49  }
QVector3D topLeft() const
Vector of top left corner.
Definition: Frustum.cpp:31
QVector3D omni::proj::Frustum::topRight ( ) const

Vector of top right corner.

35  {
36  return QVector3D(1.0, rect().right(), rect().top());
37  }
QRectF rect() const
Return frustum rectangle.
Definition: Frustum.cpp:63
QVector3D omni::proj::Frustum::topRight ( QMatrix4x4 const &  _m) const

Vector of top right corner, transformed by matrix.

51  {
52  return _m * topRight() - _m.column(3).toVector3D();
53  }
QVector3D topRight() const
Vector of top right corner.
Definition: Frustum.cpp:35

Field Documentation

Projector const& omni::proj::Frustum::proj_
private

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