69 lines
1.6 KiB
Text
69 lines
1.6 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 pStatPianoRoll.I
|
||
|
* @author drose
|
||
|
* @date 2000-07-18
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Changes the amount of time the width of the horizontal axis represents.
|
||
|
* This may force a redraw.
|
||
|
*/
|
||
|
INLINE void PStatPianoRoll::
|
||
|
set_horizontal_scale(double time_width) {
|
||
|
if (_time_width != time_width) {
|
||
|
_time_width = time_width;
|
||
|
normal_guide_bars();
|
||
|
force_redraw();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the amount of total time the width of the horizontal axis
|
||
|
* represents.
|
||
|
*/
|
||
|
INLINE double PStatPianoRoll::
|
||
|
get_horizontal_scale() const {
|
||
|
return _time_width;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Converts a timestamp to a horizontal pixel offset.
|
||
|
*/
|
||
|
INLINE int PStatPianoRoll::
|
||
|
timestamp_to_pixel(double time) const {
|
||
|
return (int)((double)_xsize * (time - _start_time) / _time_width);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Converts a horizontal pixel offset to a timestamp.
|
||
|
*/
|
||
|
INLINE double PStatPianoRoll::
|
||
|
pixel_to_timestamp(int x) const {
|
||
|
return _time_width * (double)x / (double)_xsize + _start_time;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Converts a value (i.e. a "height" in the strip chart) to a horizontal
|
||
|
* pixel offset.
|
||
|
*/
|
||
|
INLINE int PStatPianoRoll::
|
||
|
height_to_pixel(double value) const {
|
||
|
return (int)((double)_xsize * value / _time_width);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Converts a horizontal pixel offset to a value (a "height" in the strip
|
||
|
* chart).
|
||
|
*/
|
||
|
INLINE double PStatPianoRoll::
|
||
|
pixel_to_height(int x) const {
|
||
|
return _time_width * (double)x / (double)_xsize;
|
||
|
}
|