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::Tracker Struct Reference

#include <Tracker.h>

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

Public Member Functions

 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...
 
virtual void fromStream (QDataStream &)
 Deserialize from stream. More...
 
virtual void toStream (QDataStream &) const
 Serialize to stream. More...
 

Private Attributes

QVector3D center_
 target position More...
 
PolarVec direction_
 tracker's postion relatively to target More...
 

Friends

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

Constructor & Destructor Documentation

omni::visual::Tracker::Tracker ( )
27  :
28  center_(0.0, 0.0, 0.0),
29  direction_(0.0, 0.0, 1.0)
30  {}
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81
omni::visual::Tracker::Tracker ( const QVector3D &  _center,
const PolarVec &  _direction 
)
34  :
35  center_(_center),
36  direction_(_direction)
37  {}
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81

Member Function Documentation

QVector3D & omni::visual::Tracker::center ( )

Return center position.

60  {
61  return center_;
62  }
QVector3D center_
target position
Definition: Tracker.h:81
QVector3D const & omni::visual::Tracker::center ( ) const

Return center position (const version)

65  {
66  return center_;
67  }
QVector3D center_
target position
Definition: Tracker.h:81
PolarVec & omni::visual::Tracker::direction ( )

Return direction as polar vector.

80  {
81  return direction_;
82  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
PolarVec const & omni::visual::Tracker::direction ( ) const

Return direction as polar vector (const version)

85  {
86  return direction_;
87  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D omni::visual::Tracker::eye ( ) const

get tracker position

45  {
46  return center_ + direction_.vec();
47  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81
void omni::visual::Tracker::fromStream ( QDataStream &  _is)
virtual

Deserialize from stream.

Reimplemented in omni::visual::Light, omni::visual::CameraInterface, and omni::visual::PerspectiveCamera.

102  {
103  PropertyMap _map;
104  _is >> _map;
105  _map.get("center",center_);
106  _map.get("direction",direction_);
107  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81
void omni::visual::Tracker::limitDistance ( float  _minDist,
float  _maxDist 
)

Keep distance in limits.

90  {
91  float _r = direction_.radius();
92 
93  if (_minDist > _maxDist) std::swap(_minDist, _maxDist);
94 
95  if (_r < _minDist) direction_.setRadius(_minDist);
96 
97  if (_r > _maxDist) direction_.setRadius(_maxDist);
98  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
void omni::visual::Tracker::setCenter ( QVector3D const &  _center)

Set center position.

55  {
56  center_ = _center;
57  }
QVector3D center_
target position
Definition: Tracker.h:81
void omni::visual::Tracker::setDirection ( PolarVec const &  _direction)

Set direction from polar vector.

70  {
71  direction_ = _direction;
72  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
void omni::visual::Tracker::setDistance ( float  _t)

Set direction with a certain distance.

75  {
76  direction_ = _t * direction_.normalized();
77  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
void omni::visual::Tracker::setEye ( const QVector3D &  _pos)

Set eye position.

50  {
51  direction_ = _pos - center_;
52  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81
void omni::visual::Tracker::toStream ( QDataStream &  _os) const
virtual

Serialize to stream.

Reimplemented in omni::visual::Light, omni::visual::CameraInterface, and omni::visual::PerspectiveCamera.

111  {
112  PropertyMap _map;
113  _map("center",center_);
114  _map("direction",direction_);
115  _os << _map;
116  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
QVector3D center_
target position
Definition: Tracker.h:81
void omni::visual::Tracker::track ( float  _longitude,
float  _latitude,
float  _radius 
)
40  {
41  direction_ += PolarVec(Angle(_longitude), Angle(_latitude), _radius);
42  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84

Friends And Related Function Documentation

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

Test for equality. ScreenSetup is ignored.

121  {
122  return
125  }
PolarVec direction_
tracker's postion relatively to target
Definition: Tracker.h:84
#define OMNI_TEST_MEMBER_EQUAL(member)
Definition: util.h:125
QVector3D center_
target position
Definition: Tracker.h:81

Field Documentation

QVector3D omni::visual::Tracker::center_
private

target position

PolarVec omni::visual::Tracker::direction_
private

tracker's postion relatively to target


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