using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommonMethods;
using HalconDotNet;
using static DataStruct.DataStruct;
namespace CaliperTool
{
[Serializable]
public class CaliperTool:IToolInfo
{
public bool toolEnable = true;
///
/// 输入姿态
///
public PosXYU inputPose = new PosXYU();
///
/// 制作模板时的输入位姿
///
public PosXYU templatePose = new PosXYU();
///
/// 卡尺
///
public HObject contoursDisp = null;
///
/// 箭头
///
public HObject arrowDisp = null;
///
/// 交点
///
public HObject crossDisp = null;
///
/// 期望矩形中心行坐标
///
public HTuple expectRecStartRow = 200;
///
/// 期望矩形中心列坐标
///
public HTuple expectRecStartColumn = 200;
///
/// 期望矩形起点方向
///
public HTuple expectAngle = 0;
///
/// 卡尺高
///
public int length1 = 40;
///
/// 卡尺宽
///
public int length2 = 40;
///
/// 找边极性,从明到暗或从暗到明
///
public string polarity = "negative";
///
/// 边阈值
///
public int threshold = 30;
///
/// 边Sigma
///
public double sigma = 1.0;
///
/// 选择所查找到的点
///
public string edgeSelect = "all";
///
/// 矩形框显示
///
public bool dispRec = true;
///
/// 交点显示
///
public bool dispCross = true;
///
/// 找到的线段
///
public Point resultPoint = null;
///
/// 显示的线
///
public HObject LineDisp = null;
///
/// 新的跟随姿态变化后的预期线信息
///
HTuple newExpectLineStartRow = new HTuple(200), newExpectLineStartCol = new HTuple(200), newExpectLineEndRow = new HTuple(200), newExpectLineEndCol = new HTuple(600);
///
/// 查找到的线的起点行坐标
///
private HTuple _resultLineStartRow = 0;
internal HTuple ResultLineStartRow
{
get
{
_resultLineStartRow = Math.Round((double)_resultLineStartRow, 3);
return _resultLineStartRow;
}
set { _resultLineStartRow = value; }
}
///
/// 查找到的线的起点列坐标
///
private HTuple _resultLineStartCol = 0;
internal HTuple ResultLineStartCol
{
get
{
_resultLineStartCol = Math.Round((double)_resultLineStartCol, 3);
return _resultLineStartCol;
}
set { _resultLineStartCol = value; }
}
///
/// 查找到的线的终点行坐标
///
private HTuple _resultLineEndRow = 0;
internal HTuple ResultLineEndRow
{
get
{
_resultLineEndRow = Math.Round((double)_resultLineEndRow, 3);
return _resultLineEndRow;
}
set { _resultLineEndRow = value; }
}
///
/// 查找到的线的终点列坐标
///
private HTuple _resultLineEndCol = 0;
internal HTuple ResultLineEndCol
{
get
{
_resultLineEndCol = Math.Round((double)_resultLineEndCol, 3);
return _resultLineEndCol;
}
set { _resultLineEndCol = value; }
}
///
/// 查找到线的方向
///
private HTuple _angle = 0;
internal HTuple Angle
{
get
{
_angle = Math.Round((double)_angle, 3);
return _angle;
}
set { _angle = value; }
}
public HObject inputImage { get; set; } = null;
public ToolRunStatu toolRunStatu { get; set; } = ToolRunStatu.Not_Run;
}
}