71
71
static const float XSENS = 15 .0f ;
72
72
static const float YSENS = 15 .0f ;
73
73
74
+ static const float OBJ_TRANSFORM_SENSITIVITY_MIN = 0 .05f ;
75
+ static const float OBJ_TRANSFORM_SENSITIVITY_MAX = 1 .0f ;
76
+ static const float OBJ_TRANSFORM_SENSITIVITY_STEP = 0 .2f ;
77
+
74
78
void MapView::set_editing_mode (editing_mode mode)
75
79
{
76
80
makeCurrent ();
@@ -1000,6 +1004,32 @@ void MapView::createGUI()
1000
1004
, [this ] { return terrainMode == editing_mode::object; }
1001
1005
);
1002
1006
1007
+ addHotkey ( Qt::Key_L
1008
+ , MOD_none
1009
+ , [this ]
1010
+ {
1011
+ obj_transform_sens = std::min
1012
+ (
1013
+ obj_transform_sens + OBJ_TRANSFORM_SENSITIVITY_STEP
1014
+ , OBJ_TRANSFORM_SENSITIVITY_MAX
1015
+ );
1016
+ }
1017
+ , [this ] { return terrainMode == editing_mode::object; }
1018
+ );
1019
+
1020
+ addHotkey ( Qt::Key_K
1021
+ , MOD_none
1022
+ , [this ]
1023
+ {
1024
+ obj_transform_sens = std::max
1025
+ (
1026
+ obj_transform_sens - OBJ_TRANSFORM_SENSITIVITY_STEP
1027
+ , OBJ_TRANSFORM_SENSITIVITY_MIN
1028
+ );
1029
+ }
1030
+ , [this ] { return terrainMode == editing_mode::object; }
1031
+ );
1032
+
1003
1033
ADD_ACTION (view_menu, " Invert mouse" , " I" , [this ] { mousedir *= -1 .f ; });
1004
1034
1005
1035
ADD_ACTION (view_menu, " Decrease camera speed" , Qt::Key_O, [this ] { _camera.move_speed *= 0 .5f ; });
@@ -1714,11 +1744,15 @@ void MapView::tick (float dt)
1714
1744
{
1715
1745
if (_mod_alt_down)
1716
1746
{
1717
- _world->scale_selected_models (std::pow (2 .f , mv*4 .f ), World::m2_scaling_type::mult);
1747
+ _world->scale_selected_models
1748
+ (
1749
+ std::pow (2 .f , mv*4 .f *obj_transform_sens)
1750
+ , World::m2_scaling_type::mult
1751
+ );
1718
1752
}
1719
1753
else if (_mod_shift_down)
1720
1754
{
1721
- _world->move_selected_models (0 .f , mv*80 .f , 0 .f );
1755
+ _world->move_selected_models (0 .f , mv*80 .f *obj_transform_sens , 0 .f );
1722
1756
}
1723
1757
else
1724
1758
{
@@ -1737,7 +1771,10 @@ void MapView::tick (float dt)
1737
1771
{
1738
1772
if (!_move_model_to_cursor_position.get ())
1739
1773
{
1740
- _world->move_selected_models ((mv * dirUp - mh * dirRight)*80 .f );
1774
+ _world->move_selected_models
1775
+ (
1776
+ (mv * dirUp - mh * dirRight)*80 .f *obj_transform_sens
1777
+ );
1741
1778
}
1742
1779
else
1743
1780
{
@@ -1793,7 +1830,7 @@ void MapView::tick (float dt)
1793
1830
{
1794
1831
if (_mod_ctrl_down) // X
1795
1832
{
1796
- _world->rotate_selected_models ( math::degrees (rh + rv)
1833
+ _world->rotate_selected_models ( math::degrees (( rh + rv)*obj_transform_sens )
1797
1834
, math::degrees (0 .f )
1798
1835
, math::degrees (0 .f )
1799
1836
, _use_median_pivot_point.get ()
@@ -1802,7 +1839,7 @@ void MapView::tick (float dt)
1802
1839
if (_mod_shift_down) // Y
1803
1840
{
1804
1841
_world->rotate_selected_models ( math::degrees (0 .f )
1805
- , math::degrees (rh + rv)
1842
+ , math::degrees (( rh + rv)*obj_transform_sens )
1806
1843
, math::degrees (0 .f )
1807
1844
, _use_median_pivot_point.get ()
1808
1845
);
@@ -1811,7 +1848,7 @@ void MapView::tick (float dt)
1811
1848
{
1812
1849
_world->rotate_selected_models ( math::degrees (0 .f )
1813
1850
, math::degrees (0 .f )
1814
- , math::degrees (rh + rv)
1851
+ , math::degrees (( rh + rv)*obj_transform_sens )
1815
1852
, _use_median_pivot_point.get ()
1816
1853
);
1817
1854
}
0 commit comments