1 // Copyright (C) 2009 - 2012 Mathias Froehlich - Mathias.Froehlich@web.de
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Library General Public
5 // License as published by the Free Software Foundation; either
6 // version 2 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Library General Public License for more details.
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 #include "HLAPerspectiveViewer.hxx"
24 #include "HLAPerspectiveViewerClass.hxx"
28 HLAPerspectiveViewer::HLAPerspectiveViewer(HLAPerspectiveViewerClass* objectClass, const SGWeakPtr<simgear::HLAFederate>& federate) :
29 HLAViewer(objectClass),
36 HLAPerspectiveViewer::~HLAPerspectiveViewer()
41 HLAPerspectiveViewer::createAttributeDataElements()
43 HLAViewer::createAttributeDataElements();
45 assert(dynamic_cast<HLAPerspectiveViewerClass*>(getObjectClass().get()));
46 HLAPerspectiveViewerClass& objectClass = static_cast<HLAPerspectiveViewerClass&>(*getObjectClass());
48 setAttributeDataElement(objectClass.getViewNameIndex(), _view.getDataElement());
49 setAttributeDataElement(objectClass.getPositionIndex(), _position.getDataElement());
50 setAttributeDataElement(objectClass.getOrientationIndex(), _orientation.getDataElement());
51 setAttributeDataElement(objectClass.getZoomFactorIndex(), _zoomFactor.getDataElement());
52 setAttributeDataElement(objectClass.getEyeTrackerNameIndex(), _eyeTracker.getDataElement());
56 HLAPerspectiveViewer::getView() const
58 return _view.getObject();
62 HLAPerspectiveViewer::getView()
64 return _view.getObject();
68 HLAPerspectiveViewer::setView(HLAView* view)
70 _view.setObject(view);
74 HLAPerspectiveViewer::getEyeTracker() const
76 return _eyeTracker.getObject();
80 HLAPerspectiveViewer::getEyeTracker()
82 return _eyeTracker.getObject();
86 HLAPerspectiveViewer::setEyeTracker(HLAEyeTracker* eyeTracker)
88 _eyeTracker.setObject(eyeTracker);
92 HLAPerspectiveViewer::getLocation(const SGTimeStamp& simTime) const
94 const HLAView* view = getView();
96 return SGLocationd(getPosition(), getOrientation());
97 return view->getLocation(simTime).getAbsoluteLocation(SGLocationd(getPosition(), getOrientation()));
101 HLAPerspectiveViewer::getLeftEyeOffset() const
103 const HLAEyeTracker* eyeTracker = getEyeTracker();
105 return SGVec3d(0, 0, 0);
106 return eyeTracker->getLeftEyeOffset();
110 HLAPerspectiveViewer::getRightEyeOffset() const
112 const HLAEyeTracker* eyeTracker = getEyeTracker();
114 return SGVec3d(0, 0, 0);
115 return eyeTracker->getRightEyeOffset();
118 } // namespace fgviewer