MyGUI  3.2.1
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 
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__