mirror of
https://github.com/eggplantlwj/VisionEdit.git
synced 2026-04-05 17:56:36 +08:00
1、修复因加入输入位姿引发的BUG
2、PMA工具完善 3、其他BUG修复
This commit is contained in:
@@ -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解决了
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user