110 lines
2.5 KiB
Text
110 lines
2.5 KiB
Text
|
/**
|
||
|
* PANDA 3D SOFTWARE
|
||
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
||
|
*
|
||
|
* All use of this software is subject to the terms of the revised BSD
|
||
|
* license. You should have received a copy of this license along
|
||
|
* with this source code in a file named "LICENSE."
|
||
|
*
|
||
|
* @file trackerNode.I
|
||
|
* @author drose
|
||
|
* @date 2002-03-12
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Returns true if the TrackerNode is valid and connected to a server, false
|
||
|
* otherwise.
|
||
|
*/
|
||
|
INLINE bool TrackerNode::
|
||
|
is_valid() const {
|
||
|
return (!_tracker.is_null()/* && _tracker->is_connected()*/);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the current position of the tracker, if it is available.
|
||
|
*/
|
||
|
INLINE const LPoint3 &TrackerNode::
|
||
|
get_pos() const {
|
||
|
return _data.get_pos();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the current orientation of the tracker, if it is available.
|
||
|
*/
|
||
|
INLINE const LOrientation &TrackerNode::
|
||
|
get_orient() const {
|
||
|
return _data.get_orient();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the time of the tracker's last update.
|
||
|
*/
|
||
|
INLINE double TrackerNode::
|
||
|
get_time() const {
|
||
|
return _data.get_time();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* True if this data comes with timestamps.
|
||
|
*/
|
||
|
INLINE bool TrackerNode::
|
||
|
has_time() const {
|
||
|
return _data.has_time();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the current position and orientation of the tracker, as a combined
|
||
|
* matrix.
|
||
|
*/
|
||
|
INLINE const LMatrix4 &TrackerNode::
|
||
|
get_transform() const {
|
||
|
return _mat;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Specifies the coordinate system that the tracker associated with this node
|
||
|
* will operate in. Normally, this is set from the ClientBase that's used to
|
||
|
* create the TrackerNode, so it should not need to be set on an individual
|
||
|
* tracker basis.
|
||
|
*/
|
||
|
INLINE void TrackerNode::
|
||
|
set_tracker_coordinate_system(CoordinateSystem cs) {
|
||
|
_tracker_cs = cs;
|
||
|
if (_tracker_cs == CS_default) {
|
||
|
_tracker_cs = get_default_coordinate_system();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the coordinate system that the tracker associated with this node
|
||
|
* will operate in.
|
||
|
*/
|
||
|
INLINE CoordinateSystem TrackerNode::
|
||
|
get_tracker_coordinate_system() const {
|
||
|
return _tracker_cs;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Specifies the coordinate system that the TrackerNode will convert its
|
||
|
* transform into for passing down the data graph. Normally, this is
|
||
|
* CS_default.
|
||
|
*/
|
||
|
INLINE void TrackerNode::
|
||
|
set_graph_coordinate_system(CoordinateSystem cs) {
|
||
|
_graph_cs = cs;
|
||
|
if (_graph_cs == CS_default) {
|
||
|
_graph_cs = get_default_coordinate_system();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the coordinate system that the TrackerNode will convert its
|
||
|
* transform into for passing down the data graph. Normally, this is
|
||
|
* CS_default.
|
||
|
*/
|
||
|
INLINE CoordinateSystem TrackerNode::
|
||
|
get_graph_coordinate_system() const {
|
||
|
return _graph_cs;
|
||
|
}
|