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解决了
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

View File

@@ -405,7 +405,7 @@ namespace ViewWindow.Model
}
catch (Exception)
{
//没有显示roi的时候 移动鼠标会报错
//没有显示roi的时候 移动鼠标会报错
}
}
@@ -418,7 +418,7 @@ namespace ViewWindow.Model
/*****************************/
/// <summary>
/// 在指定位置显示ROI--Rectangle1
/// 在指定位置显示ROI--Rectangle1
/// </summary>
/// <param name="row1"></param>
/// <param name="col1"></param>
@@ -460,7 +460,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置显示ROI--Rectangle2
/// 在指定位置显示ROI--Rectangle2
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
@@ -486,7 +486,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Circle
/// 在指定位置生成ROI--Circle
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
@@ -529,7 +529,7 @@ namespace ViewWindow.Model
}
/// <summary>
/// 在指定位置显示ROI--Line
/// 在指定位置显示ROI--Line
/// </summary>
/// <param name="beginRow"></param>
/// <param name="beginCol"></param>
@@ -554,7 +554,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Rectangle1
/// 在指定位置生成ROI--Rectangle1
/// </summary>
/// <param name="row1"></param>
/// <param name="col1"></param>
@@ -584,7 +584,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Rectangle1
/// 在指定位置生成ROI--Rectangle1
/// </summary>
/// <param name="row1"></param>
/// <param name="col1"></param>
@@ -614,7 +614,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Rectangle1
/// 在指定位置生成ROI--Rectangle1
/// </summary>
/// <param name="row1"></param>
/// <param name="col1"></param>
@@ -644,7 +644,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Rectangle2
/// 在指定位置生成ROI--Rectangle2
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
@@ -675,7 +675,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Rectangle2
/// 在指定位置生成ROI--Rectangle2
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
@@ -706,7 +706,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Circle
/// 在指定位置生成ROI--Circle
/// </summary>
/// <param name="row"></param>
/// <param name="col"></param>
@@ -758,7 +758,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 在指定位置生成ROI--Line
/// 在指定位置生成ROI--Line
/// </summary>
/// <param name="beginRow"></param>
/// <param name="beginCol"></param>
@@ -788,7 +788,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 获取当前选中ROI的信息
/// 获取当前选中ROI的信息
/// </summary>
/// <returns></returns>
protected internal System.Collections.Generic.List<double> smallestActiveROI(out string name, out int index)
@@ -853,7 +853,7 @@ namespace ViewWindow.Model
}
/// <summary>
/// 删除当前选中ROI
/// 删除当前选中ROI
/// </summary>
/// <param name="roi"></param>
protected internal void removeActiveROI(ref System.Collections.Generic.List<ROI> roi)
@@ -866,7 +866,7 @@ namespace ViewWindow.Model
}
}
/// <summary>
/// 选中激活ROI
/// 选中激活ROI
/// </summary>
/// <param name="index"></param>
protected internal void selectROI(int index)
@@ -876,7 +876,7 @@ namespace ViewWindow.Model
this.viewController.repaint();
}
/// <summary>
/// 复位窗口显示
/// 复位窗口显示
/// </summary>
protected internal void resetWindowImage()
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;