72 lines
1.8 KiB
Text
72 lines
1.8 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 mouseSubregion.I
|
||
|
* @author drose
|
||
|
* @date 2005-05-13
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Retrieves the x coordinate of the left edge of the rectangle within the
|
||
|
* window. This number will be in the range [0..1].
|
||
|
*/
|
||
|
PN_stdfloat MouseSubregion::
|
||
|
get_left() const {
|
||
|
return _l;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Retrieves the x coordinate of the right edge of the rectangle within the
|
||
|
* window. This number will be in the range [0..1].
|
||
|
*/
|
||
|
PN_stdfloat MouseSubregion::
|
||
|
get_right() const {
|
||
|
return _r;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Retrieves the y coordinate of the bottom edge of the rectangle within the
|
||
|
* window. This number will be in the range [0..1].
|
||
|
*/
|
||
|
PN_stdfloat MouseSubregion::
|
||
|
get_bottom() const {
|
||
|
return _b;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Retrieves the y coordinate of the top edge of the rectangle within the
|
||
|
* window. This number will be in the range [0..1].
|
||
|
*/
|
||
|
PN_stdfloat MouseSubregion::
|
||
|
get_top() const {
|
||
|
return _t;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Changes the region of the window in which the mouse is considered to be
|
||
|
* active. The parameters are identical to those for a DisplayRegion: they
|
||
|
* range from 0 to 1, where 0,0 is the lower left corner and 1,1 is the upper
|
||
|
* right; (0, 1, 0, 1) represents the whole window.
|
||
|
*/
|
||
|
void MouseSubregion::
|
||
|
set_dimensions(PN_stdfloat l, PN_stdfloat r, PN_stdfloat b, PN_stdfloat t) {
|
||
|
_l = l;
|
||
|
_r = r;
|
||
|
_b = b;
|
||
|
_t = t;
|
||
|
|
||
|
_minx = l * 2.0f - 1.0f;
|
||
|
_miny = b * 2.0f - 1.0f;
|
||
|
|
||
|
PN_stdfloat maxx = r * 2.0f - 1.0f;
|
||
|
PN_stdfloat maxy = t * 2.0f - 1.0f;
|
||
|
|
||
|
_scalex = 2.0f / (maxx - _minx);
|
||
|
_scaley = 2.0f / (maxy - _miny);
|
||
|
}
|