Change action from when pressed to when released
Modify event handler to enable to handle drag event
Add member functions to 'Scene' to handle mouse event
Add 'Gravity' to calculate gravity of polygon
Replace 'Gravity' with 'CalculateCenter'
Replace 'Center' with 'CalculateCenter'
Add 'AngleDistance'
Use 'AngleDistance'
Add assertion check to 'IsSameEnough'
Add overload to 'IsSameEnough'
Remove extra 'static' specifier
Improve mouse release check
Implement functions to drag tiles
Improve dragging behavior
Start to use 'QScopedPointer'
Replace 'QScopedPointer' with 'std::unique_ptr'
Use 'TilePtr'
Replace 'MakeTile' with 'make_unique'
Create 'safe_ptr' class
Replace 'make_unique' with 'make_safe_ptr'