Commit 2d8be559 by liulongfei

手动操作控制器

parent 24af89f7
......@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
namespace VIZ.H2V.Module
{
......@@ -12,9 +13,33 @@ namespace VIZ.H2V.Module
public interface IManualController
{
/// <summary>
/// 裁切框平滑
/// </summary>
Navigation3DSmooth ClipBoxSmooth { get; }
/// <summary>
/// 裁切框目标X坐标
/// </summary>
double ClipBoxTargetX { get; set; }
/// <summary>
/// 获取映射值
/// </summary>
/// <returns>映射值</returns>
int GetMappingValue();
/// <summary>
/// 获取计算值
/// </summary>
/// <param name="min">最小值</param>
/// <param name="max">最大值</param>
/// <returns></returns>
double GetCalculationValue(double min, double max);
/// <summary>
/// 重置
/// </summary>
/// <param name="clipX">剪切X值</param>
void Reset(double clipX);
}
}
......@@ -18,7 +18,7 @@ namespace VIZ.H2V.Module
/// <summary>
/// 手动控制器
/// </summary>
/// <param name="support"></param>
/// <param name="support">控制器支持</param>
public ManualController(IManualSupport support)
{
this.Support = support;
......@@ -26,6 +26,16 @@ namespace VIZ.H2V.Module
}
/// <summary>
/// 裁切框平滑
/// </summary>
public Navigation3DSmooth ClipBoxSmooth { get; private set; } = new Navigation3DSmooth();
/// <summary>
/// 裁切框目标X坐标
/// </summary>
public double ClipBoxTargetX { get; set; } = 555;
/// <summary>
/// 支持
/// </summary>
public IManualSupport Support { get; private set; }
......@@ -67,5 +77,29 @@ namespace VIZ.H2V.Module
return mapping.MappingValue * symbol;
}
/// <summary>
/// 获取计算值
/// </summary>
/// <param name="min">最小值</param>
/// <param name="max">最大值</param>
/// <returns>计算值</returns>
public double GetCalculationValue(double min, double max)
{
double x = this.ClipBoxTargetX + this.GetMappingValue();
x = MathHelper.Clip(min, max, x);
this.ClipBoxTargetX = x;
return this.ClipBoxSmooth.Call(this.ClipBoxTargetX, 1);
}
/// <summary>
/// 重置
/// </summary>
/// <param name="clipX">剪切X值</param>
public void Reset(double clipX)
{
this.ClipBoxTargetX = clipX;
this.ClipBoxSmooth.Init(clipX, clipX, this.ClipBoxSmooth.MinCutoff);
}
}
}
......@@ -39,8 +39,7 @@ namespace VIZ.H2V.Module
}
this.ClipBoxX = this.GetClipX(renderInfo);
this.ClipBoxTargetX = this.ClipBoxX.Value;
this.ClipBoxSmooth.Init(this.ClipBoxTargetX, this.ClipBoxTargetX, this.ClipBoxSmooth.MinCutoff);
this.ManualController.Reset(this.ClipBoxX.Value);
//if (this.ClipBoxX == null)
//{
......@@ -64,8 +63,8 @@ namespace VIZ.H2V.Module
{
SystemConfig config = ApplicationDomainEx.LiteDbContext.SystemConfig.FindAll().FirstOrDefault();
this.ClipBoxSmooth = new Navigation3DSmooth();
this.ClipBoxSmooth.Init(0, 0, config.ManualSmoothCoeff);
this.ManualController.ClipBoxSmooth.MinCutoff = config.ManualSmoothCoeff;
this.ManualController.ClipBoxTargetX = 555;
}
/// <summary>
......@@ -95,11 +94,7 @@ namespace VIZ.H2V.Module
return;
}
//double x = this.ClipBoxTargetX + Navigation3DTcpManager.MappingValue;
double x = this.ClipBoxTargetX + this.ManualController.GetMappingValue();
x = MathHelper.Clip(0d, renderInfo.Frame.Width - this.CLIP_BOX_WIDTH, x);
this.ClipBoxTargetX = x;
this.ClipBoxX = this.ClipBoxSmooth.Call(this.ClipBoxTargetX, 1);
this.ClipBoxX = this.ManualController.GetCalculationValue(0d, renderInfo.Frame.Width - this.CLIP_BOX_WIDTH);
ClipBoxInfo clipBox = new ClipBoxInfo();
clipBox.DrawingBorderWidth = this.CLIP_BOX_BORDER_WIDTH;
......
......@@ -206,7 +206,7 @@ namespace VIZ.H2V.Module
//////////////////////////////////////////////////////////////////////////////
this.ClipBoxX = rect.Left;
this.ClipBoxTargetX = rect.Left;
this.ManualController.ClipBoxTargetX = rect.Left;
view.video.UpdateClipBox(info);
......
......@@ -84,11 +84,6 @@ namespace VIZ.H2V.Module
/// </summary>
private RawColor4 BorderSceneColor;
/// <summary>
/// 裁切框平滑
/// </summary>
private Navigation3DSmooth ClipBoxSmooth;
// ======================================================================================
// === Controller ===
// ======================================================================================
......@@ -272,20 +267,6 @@ namespace VIZ.H2V.Module
#endregion
#region ClipBoxTargetX -- 裁切框目标X坐标
private double clipBoxTargetX = 555;
/// <summary>
/// 裁切框目标X坐标
/// </summary>
public double ClipBoxTargetX
{
get { return clipBoxTargetX; }
set { clipBoxTargetX = value; this.RaisePropertyChanged(nameof(ClipBoxTargetX)); }
}
#endregion
#region FootballFiledPanelModel -- 足球场视图模型
private FootballFieldPanelModel footballFieldPanelModel = new FootballFieldPanelModel();
......
......@@ -124,7 +124,7 @@ namespace VIZ.H2V.Module
this.WriteLogOperation();
// 停止3D鼠标更新
this.ClipBoxSmooth.IsEnabled = false;
this.ManualController.ClipBoxSmooth.IsEnabled = false;
// ----------------------------------------------------------------------------------------------
// Step 1. 更新属性 & 缓存
......@@ -206,7 +206,7 @@ namespace VIZ.H2V.Module
finally
{
// 启动3D鼠标更新
this.ClipBoxSmooth.IsEnabled = true;
this.ManualController.ClipBoxSmooth.IsEnabled = true;
}
}
......@@ -281,7 +281,7 @@ namespace VIZ.H2V.Module
/// <param name="minCutoff">平滑系数</param>
public void LoadClipBoxSmooth(double minCutoff)
{
this.ClipBoxSmooth.MinCutoff = minCutoff;
this.ManualController.ClipBoxSmooth.MinCutoff = minCutoff;
}
/// <summary>
......
......@@ -70,10 +70,20 @@ using VIZ.Framework.Core;
// 测试机 2(环达): 网线:E0:4F:43:E6:48:7C
// 测试机 3(霄云中心): 网线:04:7B:CB:46:0D:C9
// 测试机 4(霄云中心): 网线:04:7B:CB:46:0F:8E
// -------------------------------------------------
// 测试机 5(霄云中心): 网线:00:D8:61:D7:1C:30
// 测试机 6(霄云中心): 网线:00:D8:61:D7:1C:31
// 测试机 7(霄云中心): 网线:04:ED:33:53:08:9F
// 测试机 8(霄云中心): 网线:04:ED:33:53:08:A3
// -------------------------------------------------
[assembly: ApplicationMacCheck("3C:58:C2:D7:DC:14")]
[assembly: ApplicationMacCheck("00:2B:67:7C:4E:DA")]
[assembly: ApplicationMacCheck("E0:4F:43:E6:4F:82")]
[assembly: ApplicationMacCheck("E0:4F:43:E6:48:7C")]
[assembly: ApplicationMacCheck("04:7B:CB:46:0D:C9")]
[assembly: ApplicationMacCheck("04:7B:CB:46:0F:8E")]
[assembly: ApplicationMacCheck("00:D8:61:D7:1C:30")]
[assembly: ApplicationMacCheck("00:D8:61:D7:1C:31")]
[assembly: ApplicationMacCheck("04:ED:33:53:08:9F")]
[assembly: ApplicationMacCheck("04:ED:33:53:08:A3")]
// =====================================================================================================
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment