MyGUI_CoordConverter.h
Go to the documentation of this file.
/*
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
* Distributed under the MIT License
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
*/
#ifndef MYGUI_COORD_CONVERTER_H_
#define MYGUI_COORD_CONVERTER_H_
#include "MyGUI_Prerequest.h"
#include "MyGUI_Types.h"
namespace MyGUI
{
class MYGUI_EXPORT CoordConverter
{
public:
static FloatRect convertTextureCoord(const IntCoord& _coord, const IntSize& _textureSize)
{
if (!_textureSize.width || !_textureSize.height)
return {};
return {
(float)_coord.left / (float)_textureSize.width,
(float)_coord.top / (float)_textureSize.height,
(float)_coord.right() / (float)_textureSize.width,
(float)_coord.bottom() / (float)_textureSize.height};
}
/* Convert from relative to pixel coordinates.
@param _coord relative coordinates.
*/
static IntCoord convertFromRelative(const FloatCoord& _coord, const IntSize& _view)
{
return {
int(_coord.left * _view.width),
int(_coord.top * _view.height),
int(_coord.width * _view.width),
int(_coord.height * _view.height)};
}
/* Convert from relative to pixel coordinates.
@param _coord relative coordinates.
*/
static IntSize convertFromRelative(const FloatSize& _size, const IntSize& _view)
{
return {int(_size.width * _view.width), int(_size.height * _view.height)};
}
/* Convert from relative to pixel coordinates.
@param _coord relative coordinates.
*/
static IntPoint convertFromRelative(const FloatPoint& _point, const IntSize& _view)
{
return {int(_point.left * _view.width), int(_point.top * _view.height)};
}
/* Convert from pixel to relative coordinates.
@param _coord pixel coordinates.
*/
static FloatCoord convertToRelative(const IntCoord& _coord, const IntSize& _view)
{
return {
_coord.left / (float)_view.width,
_coord.top / (float)_view.height,
_coord.width / (float)_view.width,
_coord.height / (float)_view.height};
}
static FloatSize convertToRelative(const IntSize& _size, const IntSize& _view)
{
return {_size.width / (float)_view.width, _size.height / (float)_view.height};
}
static FloatPoint convertToRelative(const IntPoint& _point, const IntSize& _view)
{
return {_point.left / (float)_view.width, _point.top / (float)_view.height};
}
static IntCoord convertFromRelative(const DoubleCoord& _coord, const IntSize& _view)
{
return {
int(_coord.left * _view.width),
int(_coord.top * _view.height),
int(_coord.width * _view.width),
int(_coord.height * _view.height)};
}
static DoubleCoord convertToRelativeD(const IntCoord& _coord, const IntSize& _view)
{
return {
_coord.left / (double)_view.width,
_coord.top / (double)_view.height,
_coord.width / (double)_view.width,
_coord.height / (double)_view.height};
}
};
} // namespace MyGUI
#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