1、修复因加入输入位姿引发的BUG

2、PMA工具完善
3、其他BUG修复
This commit is contained in:
eggplantlwj
2022-03-21 14:48:26 +08:00
parent 43751c5115
commit 62477b8091
403 changed files with 753 additions and 652 deletions

View File

@@ -62,7 +62,7 @@ namespace ViewWindow.Model
/// stack without loss. For each additional object, the first entry
/// is removed from the stack again.
/// </summary>
private const int MAXNUMOBJLIST = 2;//原始值为50 实际上2都可以,因这里只是存储背景图片
private const int MAXNUMOBJLIST = 2;//原始值为50 实际上2都可以,因这里只是存储背景图片
private int stateView;
@@ -83,10 +83,10 @@ namespace ViewWindow.Model
private int dispROI;
/// <summary>
/// 缩放事件开关
/// 缩放事件开关
/// </summary>
public bool drawModel = false;
//开启编辑模式
//开启编辑模式
public bool EditModel = true;
/* Basic parameters, like dimension of window and displayed image part */
@@ -187,7 +187,7 @@ namespace ViewWindow.Model
private void HMouseWheel(object sender, HMouseEventArgs e)
{
//关闭缩放事件
//关闭缩放事件
if (drawModel)
{
return;
@@ -284,7 +284,7 @@ namespace ViewWindow.Model
/****************************************************************************/
private void zoomImage(double x, double y, double scale)
{
//关闭缩放事件
//关闭缩放事件
if (drawModel)
{
return;
@@ -321,13 +321,13 @@ namespace ViewWindow.Model
if (zoomWndFactor < 0.01 && _zoomWndFactor < zoomWndFactor)
{
//超过一定缩放比例就不在缩放
//超过一定缩放比例就不在缩放
resetWindow();
return;
}
if (zoomWndFactor > 100 && _zoomWndFactor > zoomWndFactor)
{
//超过一定缩放比例就不在缩放
//超过一定缩放比例就不在缩放
resetWindow();
return;
}
@@ -467,7 +467,7 @@ namespace ViewWindow.Model
/*************************************************************************/
private void mouseDown(object sender, HalconDotNet.HMouseEventArgs e)
{
//关闭缩放事件
//关闭缩放事件
if (drawModel)
{
return;
@@ -545,7 +545,7 @@ namespace ViewWindow.Model
/*******************************************************************/
private void mouseUp(object sender, HalconDotNet.HMouseEventArgs e)
{
//关闭缩放事件
//关闭缩放事件
if (drawModel)
{
return;
@@ -569,7 +569,7 @@ namespace ViewWindow.Model
private void mouseMoved(object sender, HalconDotNet.HMouseEventArgs e)
{
//关闭缩放事件
//关闭缩放事件
if (drawModel)
{
return;
@@ -745,7 +745,7 @@ namespace ViewWindow.Model
window.ClearWindow();
mGC.stateOfSettings.Clear();
//显示图片
//显示图片
for (int i=0; i < count; i++)
{
entry = ((HObjectEntry)HObjImageList[i]);
@@ -754,7 +754,7 @@ namespace ViewWindow.Model
}
//显示region
//显示region
showHObjectList();
@@ -766,7 +766,7 @@ namespace ViewWindow.Model
HSystem.SetSystem("flush_graphic", "true");
//注释了下面语句,会导致窗口无法实现缩放和拖动
//注释了下面语句,会导致窗口无法实现缩放和拖动
window.SetColor("black");
window.DispLine(-100.0, -100.0, -101.0, -101.0);
@@ -790,7 +790,7 @@ namespace ViewWindow.Model
/// <param name="obj">Iconic object</param>
public void addIconicVar(HObject img)
{
//先把HObjImageList给全部释放了,源代码 会出现内存泄漏问题
//先把HObjImageList给全部释放了,源代码 会出现内存泄漏问题
for (int i = 0; i < HObjImageList.Count; i++)
{
((HObjectEntry)HObjImageList[i]).clear();
@@ -838,12 +838,12 @@ namespace ViewWindow.Model
HObjImageList.Add(entry);
//每当传入背景图的时候 都清空HObjectList
//每当传入背景图的时候 都清空HObjectList
clearHObjectList();
if (HObjImageList.Count > MAXNUMOBJLIST)
{
//需要自己手动释放
//需要自己手动释放
((HObjectEntry)HObjImageList[0]).clear();
HObjImageList.RemoveAt(1);
}
@@ -987,7 +987,7 @@ namespace ViewWindow.Model
this.setViewState(HWndCtrl.MODE_VIEW_NONE);
}
/// <summary>
/// 添加设定显示的图像
/// 添加设定显示的图像
/// </summary>
/// <param name="image"></param>
protected internal void addImageShow(HObject image)
@@ -996,32 +996,32 @@ namespace ViewWindow.Model
}
#region region和 xld
#region region和 xld
/// <summary>
/// hObjectList用来存储存入的HObject
/// hObjectList用来存储存入的HObject
/// </summary>
private List<HObjectWithColor> hObjectList = new List<HObjectWithColor>();
/// <summary>
/// 默认红颜色显示
/// 默认红颜色显示
/// </summary>
/// <param name="hObj">传入的region.xld,image</param>
/// <param name="hObj">传入的region.xld,image</param>
public void DispObj(HObject hObj)
{
DispObj(hObj, null);
}
/// <summary>
/// 重新开辟内存保存 防止被传入的HObject在其他地方dispose后,不能重现
/// 重新开辟内存保存 防止被传入的HObject在其他地方dispose后,不能重现
/// </summary>
/// <param name="hObj">传入的region.xld,image</param>
/// <param name="color">颜色</param>
/// <param name="hObj">传入的region.xld,image</param>
/// <param name="color">颜色</param>
public void DispObj(HObject hObj, string color)
{
lock (this)
{
//显示指定的颜色
//显示指定的颜色
if (color != null)
{
HOperatorSet.SetColor(viewPort.HalconWindow, color);
@@ -1043,13 +1043,13 @@ namespace ViewWindow.Model
}
//恢复默认的红色
//恢复默认的红色
HOperatorSet.SetColor(viewPort.HalconWindow, "red");
}
}
/// <summary>
/// 每次传入新的背景Image时,清空hObjectList,避免内存没有被释放
/// 每次传入新的背景Image时,清空hObjectList,避免内存没有被释放
/// </summary>
public void clearHObjectList()
{
@@ -1063,7 +1063,7 @@ namespace ViewWindow.Model
}
/// <summary>
/// 将hObjectList中的HObject,按照先后顺序显示出来
/// 将hObjectList中的HObject,按照先后顺序显示出来
/// </summary>
private void showHObjectList()
{
@@ -1083,14 +1083,14 @@ namespace ViewWindow.Model
{
viewPort.HalconWindow.DispObj(hObjectWithColor.HObject);
//恢复默认的红色
//恢复默认的红色
HOperatorSet.SetColor(viewPort.HalconWindow, "red");
}
}
}
catch (Exception e)
{
//有时候hobj被dispose了,但是其本身不为null,此时则报错. 已经使用IsInitialized解决了
//有时候hobj被dispose了,但是其本身不为null,此时则报错. 已经使用IsInitialized解决了
}
}