MyGUI: MyGUI_CoordConverter.h Source File

MyGUI 3.2.2

MyGUI_CoordConverter.h
Go to the documentation of this file.
1 /*
2 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3 * Distributed under the MIT License
4 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5 */
6
7 #ifndef MYGUI_COORD_CONVERTER_H_
8 #define MYGUI_COORD_CONVERTER_H_
9
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Types.h"
12
13 namespace MyGUI
14 {
15
16 class MYGUI_EXPORT CoordConverter
17 {
18 public:
20 static FloatRect convertTextureCoord(const IntCoord& _coord, const IntSize& _textureSize)
21 {
22 if (!_textureSize.width || !_textureSize.height) return FloatRect();
23 return FloatRect(
24 (float)_coord.left / (float)_textureSize.width,
25 (float)_coord.top / (float)_textureSize.height,
26 (float)_coord.right() / (float)_textureSize.width,
27 (float)_coord.bottom() / (float)_textureSize.height);
28 }
29
30 /* Convert from relative to pixel coordinates.
31 @param _coord relative coordinates.
32 */
33 static IntCoord convertFromRelative(const FloatCoord& _coord, const IntSize& _view)
34 {
35 return IntCoord(int(_coord.left * _view.width), int(_coord.top * _view.height), int(_coord.width * _view.width), int(_coord.height * _view.height));
36 }
37
38 /* Convert from relative to pixel coordinates.
39 @param _coord relative coordinates.
40 */
41 static IntSize convertFromRelative(const FloatSize& _size, const IntSize& _view)
42 {
43 return IntSize(int(_size.width * _view.width), int(_size.height * _view.height));
44 }
45
46 /* Convert from relative to pixel coordinates.
47 @param _coord relative coordinates.
48 */
49 static IntPoint convertFromRelative(const FloatPoint& _point, const IntSize& _view)
50 {
51 return IntPoint(int(_point.left * _view.width), int(_point.top * _view.height));
52 }
53
54 /* Convert from pixel to relative coordinates.
55 @param _coord pixel coordinates.
56 */
57 static FloatCoord convertToRelative(const IntCoord& _coord, const IntSize& _view)
58 {
59 return FloatCoord(_coord.left / (float)_view.width, _coord.top / (float)_view.height, _coord.width / (float)_view.width, _coord.height / (float)_view.height);
60 }
61
62 static FloatSize convertToRelative(const IntSize& _size, const IntSize& _view)
63 {
64 return FloatSize(_size.width / (float)_view.width, _size.height / (float)_view.height);
65 }
66
67 static FloatPoint convertToRelative(const IntPoint& _point, const IntSize& _view)
68 {
69 return FloatPoint(_point.left / (float)_view.width, _point.top / (float)_view.height);
70 }
71 };
72
73 } // namespace MyGUI
74
75 #endif // MYGUI_COORD_CONVERTER_H_
MyGUI::types::TSize::height
T height
Definition: MyGUI_TSize.h:21
MyGUI::CoordConverter::convertFromRelative
static IntSize convertFromRelative(const FloatSize &_size, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:41
MyGUI::types::TCoord::bottom
T bottom() const
Definition: MyGUI_TCoord.h:155
MyGUI::IntCoord
types::TCoord< int > IntCoord
Definition: MyGUI_Types.h:35
MyGUI::types::TCoord::left
T left
Definition: MyGUI_TCoord.h:22
MyGUI::types::TPoint::top
T top
Definition: MyGUI_TPoint.h:21
MyGUI::FloatCoord
types::TCoord< float > FloatCoord
Definition: MyGUI_Types.h:36
MyGUI::types::TCoord::top
T top
Definition: MyGUI_TCoord.h:23
MyGUI::types::TRect< float >
MyGUI::CoordConverter::convertFromRelative
static IntCoord convertFromRelative(const FloatCoord &_coord, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:33
MyGUI::FloatRect
types::TRect< float > FloatRect
Definition: MyGUI_Types.h:33
MyGUI::types::TPoint< int >
MyGUI::CoordConverter
Definition: MyGUI_CoordConverter.h:16
MyGUI::types::TSize::width
T width
Definition: MyGUI_TSize.h:20
MyGUI::IntSize
types::TSize< int > IntSize
Definition: MyGUI_Types.h:29
MyGUI::types::TCoord::right
T right() const
Definition: MyGUI_TCoord.h:150
MyGUI::FloatSize
types::TSize< float > FloatSize
Definition: MyGUI_Types.h:30
MyGUI::IntPoint
types::TPoint< int > IntPoint
Definition: MyGUI_Types.h:26
MyGUI_Prerequest.h
MyGUI::types::TPoint::left
T left
Definition: MyGUI_TPoint.h:20
MyGUI::CoordConverter::convertToRelative
static FloatPoint convertToRelative(const IntPoint &_point, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:67
MyGUI::CoordConverter::convertToRelative
static FloatSize convertToRelative(const IntSize &_size, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:62
MyGUI::CoordConverter::convertFromRelative
static IntPoint convertFromRelative(const FloatPoint &_point, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:49
MyGUI::CoordConverter::convertTextureCoord
static FloatRect convertTextureCoord(const IntCoord &_coord, const IntSize &_textureSize)
Definition: MyGUI_CoordConverter.h:20
MyGUI::types::TSize< int >
MyGUI::CoordConverter::convertToRelative
static FloatCoord convertToRelative(const IntCoord &_coord, const IntSize &_view)
Definition: MyGUI_CoordConverter.h:57
MyGUI::types::TCoord::width
T width
Definition: MyGUI_TCoord.h:24
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:103
MyGUI_Types.h
MyGUI::types::TCoord< int >
MyGUI::types::TCoord::height
T height
Definition: MyGUI_TCoord.h:25
MyGUI
Definition: MyGUI_ActionController.h:14
MyGUI::FloatPoint
types::TPoint< float > FloatPoint
Definition: MyGUI_Types.h:27