增加鼠标中键控制

This commit is contained in:
hyzboy 2019-06-16 17:18:10 +08:00
parent edca9e7e67
commit 1f0c49f363

View File

@ -60,6 +60,8 @@ public:
camera.eye=max_point;
camera.Refresh(); //¸üоØÕó¼ÆËã
move_speed=length(max_point,center_point)/100.0f;
}
bool InitCameraUBO(vulkan::DescriptorSets *desc_set,uint world_matrix_bindpoint)
@ -98,8 +100,8 @@ public:
if(key_status[kbR])camera.Up (move_speed);else
if(key_status[kbF])camera.Down (move_speed);else
if(key_status[kbLeft ])view_model_matrix=rotate(hgl_ang2rad(move_speed*10),camera.forward_vector)*view_model_matrix;else
if(key_status[kbRight])view_model_matrix=rotate(hgl_ang2rad(-move_speed*10),camera.forward_vector)*view_model_matrix;else
if(key_status[kbLeft ])view_model_matrix=rotate(hgl_ang2rad(move_speed*100),normalized(camera.center-camera.eye))*view_model_matrix;else
if(key_status[kbRight])view_model_matrix=rotate(hgl_ang2rad(-move_speed*100),normalized(camera.center-camera.eye))*view_model_matrix;else
return;
}
@ -117,7 +119,7 @@ public:
virtual void MouseMove() override
{
if(!(mouse_key&(mbLeft|mbRight)))return;
if(!mouse_key)return;
Vector2f gap=mouse_pos-mouse_last_pos;
@ -126,11 +128,16 @@ public:
if(gap.x!=0)camera.HorzRotate(-gap.x/10.0f);
if(gap.y!=0)camera.VertRotate(-gap.y/10.0f);
}
else
else if(mouse_key&mbRight)
{
if(gap.x!=0)view_model_matrix=rotate(hgl_ang2rad(gap.x),camera.up_vector)*view_model_matrix;
if(gap.y!=0)view_model_matrix=rotate(hgl_ang2rad(gap.y),camera.right_vector)*view_model_matrix;
}
else if(mouse_key&mbMid)
{
if(gap.x!=0)camera.Left(gap.x*move_speed/10.0f);
if(gap.y!=0)camera.Up(gap.y*move_speed/10.0f);
}
mouse_last_pos=mouse_pos;
}