修改3D默认飞机颜色

修复任务双击快进自动退出的bug
2D/3D切换飞机如果不动就没刷新位置的bug
This commit is contained in:
xu 2020-04-22 01:10:02 +08:00
parent d525f00222
commit 23c1390758
4 changed files with 24 additions and 29 deletions

View File

@ -538,9 +538,11 @@ namespace Plane.FormationCreator.Formation
public async Task FlyToTasks()
{
var copters = _copterManager.Copters;
if ((TaskState == TasksStatus.Stop))
if ((SelectedTaskIndex==-1) ||(TaskState == TasksStatus.Stop))
return;
int vSelectedTaskIndex= SelectedTaskIndex;
Pause();
int i = 0;
//等待暂停或2s超时(80*25ms)
@ -549,6 +551,8 @@ namespace Plane.FormationCreator.Formation
await Task.Delay(25).ConfigureAwait(false);
i++;
}
if (SelectedTaskIndex == -1)
return;
if (TaskState == TasksStatus.Paused)
{

View File

@ -16,6 +16,7 @@ using Newtonsoft.Json;
using Plane.Geography;
using Plane.FormationCreator.Views;
using System.Windows;
using Plane.Collections;
namespace Plane.FormationCreator.ViewModels
{
@ -279,6 +280,8 @@ namespace Plane.FormationCreator.ViewModels
b2DMapMode = true;
_flightTaskManager.TaskRun_2D = b2DMapMode; //2D模式模拟显示
}
//强制刷新飞机位置
_copterManager.Copters.ForEach(copter => copter.RefreashLoc());

View File

@ -67,17 +67,6 @@ namespace Plane.FormationCreator.ViewModels
}
private ICommand _flyTotaskCommand;
public ICommand flyTotaskCommand
{
get
{
return _flyTotaskCommand ?? (_flyTotaskCommand = new RelayCommand(async () =>
{
await _flightTaskManager.FlyToTasks();
}));
}
}
private ICommand _renametaskCommand;

View File

@ -134,7 +134,7 @@ namespace Plane.FormationCreator.ViewModels
_flightTaskManager.Orientation + 180,
midColDistance * 2);
}
//没有这架飞机就加入
if (!planeModel3Ds.ContainsKey(copter))
{
@ -158,19 +158,23 @@ namespace Plane.FormationCreator.ViewModels
x *= _copterManager.scale3d;
y *= _copterManager.scale3d;
z *= _copterManager.scale3d;
Color color ;
if (copter.LEDColor != null && copter.LEDColor != "")
color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor);
else
color = (Color)ColorConverter.ConvertFromString("#" + CopterManager.CopterDefaultColor);
var model3D = new GeometryModel3D
{
Geometry = meshwaypoint,
Transform = new TranslateTransform3D(x, y, z),
Material = MaterialHelper.CreateMaterial(Color.FromRgb(238, 210, 238)),
BackMaterial = MaterialHelper.CreateMaterial(Color.FromRgb(238, 210, 238))
Material = MaterialHelper.CreateMaterial(color),
BackMaterial = MaterialHelper.CreateMaterial(color)
};
planeModel3Ds.Add(copter, model3D);
planeGroup.Children.Add(model3D);
}
//有飞机在视图里就移动位置
else
{
@ -194,19 +198,14 @@ namespace Plane.FormationCreator.ViewModels
panle3D.Transform = new TranslateTransform3D(x, y, z);
}
Color color;
if (copter.LEDColor != null && copter.LEDColor != "")
{
color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor);
else
color = (Color)ColorConverter.ConvertFromString("#" + CopterManager.CopterDefaultColor);
panle3D.Material = MaterialHelper.CreateMaterial(color);
panle3D.BackMaterial = MaterialHelper.CreateMaterial(color);
Color color;
//3D在地面不能显示黑色要不看不清楚
if (copter.Altitude==0.0f)
color = (Color)ColorConverter.ConvertFromString("#FFFFFF");
else
color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor);
panle3D.Material = MaterialHelper.CreateMaterial(color);
panle3D.BackMaterial = MaterialHelper.CreateMaterial(color);
}
}
//Message.Show("添加3D飞机" + copter.Name);