00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MYGUI_MASK_PICK_INFO_H__
00024 #define __MYGUI_MASK_PICK_INFO_H__
00025
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Common.h"
00028
00029 namespace MyGUI
00030 {
00031
00032 class MYGUI_EXPORT MaskPickInfo
00033 {
00034 public:
00035 MaskPickInfo() : width(0), height(0) { }
00036
00037 bool load(const std::string& _file);
00038
00039 bool pick(const IntPoint& _point, const IntCoord& _coord) const
00040 {
00041 if ((0 == _coord.width) || (0 == _coord.height)) return false;
00042
00043 int x = ((_point.left * width)-1) / _coord.width;
00044 int y = ((_point.top * height)-1) / _coord.height;
00045
00046 return 0 != data[y * width + x];
00047 }
00048
00049 bool empty() const
00050 {
00051 return data.empty();
00052 }
00053
00054 private:
00055 std::vector<uint8> data;
00056 int width, height;
00057 };
00058
00059 }
00060
00061 #endif // __MYGUI_MASK_PICK_INFO_H__