MyGUI: MyGUI_CoordConverter.h Source File

MyGUI 3.4.3

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
13namespace 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)
23 return {};
24 return {
25 (float)_coord.left / (float)_textureSize.width,
26 (float)_coord.top / (float)_textureSize.height,
27 (float)_coord.right() / (float)_textureSize.width,
28 (float)_coord.bottom() / (float)_textureSize.height};
29 }
30
31 /* Convert from relative to pixel coordinates.
32 @param _coord relative coordinates.
33 */
34 static IntCoord convertFromRelative(const FloatCoord& _coord, const IntSize& _view)
35 {
36 return {
37 int(_coord.left * _view.width),
38 int(_coord.top * _view.height),
39 int(_coord.width * _view.width),
40 int(_coord.height * _view.height)};
41 }
42
43 /* Convert from relative to pixel coordinates.
44 @param _coord relative coordinates.
45 */
46 static IntSize convertFromRelative(const FloatSize& _size, const IntSize& _view)
47 {
48 return {int(_size.width * _view.width), int(_size.height * _view.height)};
49 }
50
51 /* Convert from relative to pixel coordinates.
52 @param _coord relative coordinates.
53 */
54 static IntPoint convertFromRelative(const FloatPoint& _point, const IntSize& _view)
55 {
56 return {int(_point.left * _view.width), int(_point.top * _view.height)};
57 }
58
59 /* Convert from pixel to relative coordinates.
60 @param _coord pixel coordinates.
61 */
62 static FloatCoord convertToRelative(const IntCoord& _coord, const IntSize& _view)
63 {
64 return {
65 _coord.left / (float)_view.width,
66 _coord.top / (float)_view.height,
67 _coord.width / (float)_view.width,
68 _coord.height / (float)_view.height};
69 }
70
71 static FloatSize convertToRelative(const IntSize& _size, const IntSize& _view)
72 {
73 return {_size.width / (float)_view.width, _size.height / (float)_view.height};
74 }
75
76 static FloatPoint convertToRelative(const IntPoint& _point, const IntSize& _view)
77 {
78 return {_point.left / (float)_view.width, _point.top / (float)_view.height};
79 }
80
81 static IntCoord convertFromRelative(const DoubleCoord& _coord, const IntSize& _view)
82 {
83 return {
84 int(_coord.left * _view.width),
85 int(_coord.top * _view.height),
86 int(_coord.width * _view.width),
87 int(_coord.height * _view.height)};
88 }
89
90 static DoubleCoord convertToRelativeD(const IntCoord& _coord, const IntSize& _view)
91 {
92 return {
93 _coord.left / (double)_view.width,
94 _coord.top / (double)_view.height,
95 _coord.width / (double)_view.width,
96 _coord.height / (double)_view.height};
97 }
98 };
99
100} // namespace MyGUI
101
102#endif // MYGUI_COORD_CONVERTER_H_
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition MyGUI_Platform.h:77
MyGUI_Prerequest.h
MyGUI_Types.h
MyGUI::CoordConverter
Definition MyGUI_CoordConverter.h:17
MyGUI::CoordConverter::convertFromRelative
static IntCoord convertFromRelative(const DoubleCoord &_coord, const IntSize &_view)
Definition MyGUI_CoordConverter.h:81
MyGUI::CoordConverter::convertFromRelative
static IntPoint convertFromRelative(const FloatPoint &_point, const IntSize &_view)
Definition MyGUI_CoordConverter.h:54
MyGUI::CoordConverter::convertToRelative
static FloatSize convertToRelative(const IntSize &_size, const IntSize &_view)
Definition MyGUI_CoordConverter.h:71
MyGUI::CoordConverter::convertFromRelative
static IntSize convertFromRelative(const FloatSize &_size, const IntSize &_view)
Definition MyGUI_CoordConverter.h:46
MyGUI::CoordConverter::convertToRelativeD
static DoubleCoord convertToRelativeD(const IntCoord &_coord, const IntSize &_view)
Definition MyGUI_CoordConverter.h:90
MyGUI::CoordConverter::convertTextureCoord
static FloatRect convertTextureCoord(const IntCoord &_coord, const IntSize &_textureSize)
Definition MyGUI_CoordConverter.h:20
MyGUI::CoordConverter::convertToRelative
static FloatCoord convertToRelative(const IntCoord &_coord, const IntSize &_view)
Definition MyGUI_CoordConverter.h:62
MyGUI::CoordConverter::convertFromRelative
static IntCoord convertFromRelative(const FloatCoord &_coord, const IntSize &_view)
Definition MyGUI_CoordConverter.h:34
MyGUI::CoordConverter::convertToRelative
static FloatPoint convertToRelative(const IntPoint &_point, const IntSize &_view)
Definition MyGUI_CoordConverter.h:76
MyGUI
Definition MyGUI_ActionController.h:15
MyGUI::IntPoint
types::TPoint< int > IntPoint
Definition MyGUI_Types.h:27
MyGUI::FloatCoord
types::TCoord< float > FloatCoord
Definition MyGUI_Types.h:37
MyGUI::FloatRect
types::TRect< float > FloatRect
Definition MyGUI_Types.h:34
MyGUI::DoubleCoord
types::TCoord< double > DoubleCoord
Definition MyGUI_Types.h:38
MyGUI::FloatPoint
types::TPoint< float > FloatPoint
Definition MyGUI_Types.h:28
MyGUI::FloatSize
types::TSize< float > FloatSize
Definition MyGUI_Types.h:31
MyGUI::IntCoord
types::TCoord< int > IntCoord
Definition MyGUI_Types.h:36
MyGUI::IntSize
types::TSize< int > IntSize
Definition MyGUI_Types.h:30
MyGUI::types::TCoord::height
T height
Definition MyGUI_TCoord.h:23
MyGUI::types::TCoord::right
T right() const
Definition MyGUI_TCoord.h:125
MyGUI::types::TCoord::width
T width
Definition MyGUI_TCoord.h:22
MyGUI::types::TCoord::top
T top
Definition MyGUI_TCoord.h:21
MyGUI::types::TCoord::left
T left
Definition MyGUI_TCoord.h:20
MyGUI::types::TCoord::bottom
T bottom() const
Definition MyGUI_TCoord.h:130
MyGUI::types::TPoint::left
T left
Definition MyGUI_TPoint.h:19
MyGUI::types::TPoint::top
T top
Definition MyGUI_TPoint.h:20
MyGUI::types::TSize::width
T width
Definition MyGUI_TSize.h:19
MyGUI::types::TSize::height
T height
Definition MyGUI_TSize.h:20