1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/*
* 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_GEOMETRY_UTILITY_H_
#define MYGUI_GEOMETRY_UTILITY_H_
#include "MyGUI_Prerequest.h"
#include "MyGUI_Types.h"
namespace MyGUI
{
using VectorFloatPoint = std::vector<FloatPoint>;
namespace geometry_utility
{
VectorFloatPoint cropPolygon(FloatPoint* _baseVerticiesPos, size_t _size, const IntCoord& _cropRectangle);
enum Side
{
Left,
Right,
Top,
Bottom
};
void cropPolygonSide(VectorFloatPoint& _verticies, int _sideCoord, Side _side);
// get point position relative to rectangle
FloatPoint getPositionInsideRect(
const FloatPoint& _point,
const FloatPoint& _corner0,
const FloatPoint& _corner1,
const FloatPoint& _corner2);
FloatPoint getUVFromPositionInsideRect(
const FloatPoint& _point,
const FloatPoint& _v0,
const FloatPoint& _v1,
const FloatPoint& _baseUV);
} // namespace geometry_utility
} // namespace MyGUI
#endif // MYGUI_GEOMETRY_UTILITY_H_
|