/// <summary> /// 将ROIList中的所有对象绘制到HALCON窗口 /// </summary> /// <param name="window">HALCON window</param> public void paintData(HalconDotNet.HWindow window) { window.SetDraw("margin"); window.SetLineWidth(1); if (ROIList.Count > 0) { window.SetColor(inactiveCol); window.SetDraw("margin"); for (int i = 0; i < ROIList.Count; i++) { window.SetLineStyle(((ROI)ROIList[i]).flagLineStyle); ((ROI)ROIList[i]).draw(window); } if (activeROIidx != -1) { window.SetColor(activeCol); window.SetLineStyle(((ROI)ROIList[activeROIidx]).flagLineStyle); ((ROI)ROIList[activeROIidx]).draw(window); window.SetColor(activeHdlCol); ((ROI)ROIList[activeROIidx]).displayActive(window); } } }
/// <summary> /// Paints all objects from the ROIList into the HALCON window /// </summary> /// <param name="window">HALCON window</param> public void paintData(HalconDotNet.HWindow window, HWindowControl windowCtrl) { window.SetDraw("margin"); window.SetLineWidth(1); if (ROIList.Count > 0) { // //window.SetColor(inactiveCol); window.SetDraw("margin"); for (int i = 0; i < ROIList.Count; i++) { window.SetColor(((ROI)ROIList[i]).Color); window.SetLineStyle(((ROI)ROIList[i]).flagLineStyle); ((ROI)ROIList[i]).draw(window, Convert.ToInt32(viewController.ImgCol2 - viewController.ImgCol1), Convert.ToInt32(viewController.ImgRow2 - viewController.ImgRow1)); } if (activeROIidx != -1) { window.SetColor(activeCol); window.SetLineStyle(((ROI)ROIList[activeROIidx]).flagLineStyle); ((ROI)ROIList[activeROIidx]).draw(window, Convert.ToInt32(viewController.ImgCol2 - viewController.ImgCol1), Convert.ToInt32(viewController.ImgRow2 - viewController.ImgRow1)); window.SetColor(activeHdlCol); ((ROI)ROIList[activeROIidx]).displayActive(window, Convert.ToInt32(viewController.ImgCol2 - viewController.ImgCol1), Convert.ToInt32(viewController.ImgRow2 - viewController.ImgRow1)); } } }
/// <summary> /// Paints all objects from the ROIList into the HALCON window /// </summary> /// <param name="window">HALCON window</param> public void paintData(HalconDotNet.HWindow window) { window.SetDraw("margin"); window.SetLineWidth(1); //畫還未完成的 ROI if (_waitForClickROI != null) { _waitForClickROI.draw(window); } if (ROIList.Count > 0) { window.SetColor(inactiveCol); window.SetDraw("margin"); //畫所有的 ROI for (int i = 0; i < ROIList.Count; i++) { if (i == activeROIidx) { continue; } var roi = (ROI)ROIList[i]; roi.IsActive = false; if (roi.Visiable) { window.SetLineStyle(roi.flagLineStyle); roi.SetZoomRatio(_zoomFactor); roi.draw(window); } } //畫 Active ROI if (activeROIidx != -1) { var activeROI = (ROI)ROIList[activeROIidx]; activeROI.IsActive = true; if (activeROI.Visiable) { window.SetColor(activeCol); window.SetLineStyle(activeROI.flagLineStyle); activeROI.draw(window); window.SetColor(activeHdlCol); activeROI.displayActive(window); } } } }
/// <summary> /// Paints the active handle of the ROI object into the supplied window /// </summary> /// <param name="window">HALCON window</param> public override void displayActive(HalconDotNet.HWindow window) { window.SetDraw("margin"); double num = 5.0; if (this.activeHandleIdx < this.row1.TupleLength()) { window.DispRectangle2(this.row1[this.activeHandleIdx].D, this.col1[this.activeHandleIdx].D, 0.0, num, num); } else if (this.activeHandleIdx < this.row1.TupleLength() + this.row2.TupleLength()) { window.DispCircle(this.row2[this.activeHandleIdx - this.row1.TupleLength()].D, this.col2[this.activeHandleIdx - this.row1.TupleLength()].D, num); } else if (this.activeHandleIdx == this.row1.TupleLength() + this.row2.TupleLength()) { window.DispRectangle2(midR, midC, 0, num, num); } else { for (int i = 0; i < this.row1.TupleLength() - 1; i++) { window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[i + 1].D, this.col1[i + 1].D); } window.DispLine(this.row1[0].D, this.col1[0].D, this.row1[this.row1.TupleLength() - 1].D, this.col1[this.row1.TupleLength() - 1].D); } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { if (window.IsInitialized() == false) { return; } int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetDraw("fill"); window.SetColored(12); // window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void draw(HalconDotNet.HWindow window, bool include) { window.SetColor(regionColor); window.SetDraw("margin"); window.DispCircle(midR, midC, radius); if (include) { window.DispRectangle2(row1, col1, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); } }
/// <summary> /// Paints all objects from the ROIList into the HALCON window /// </summary> /// <param name="window">HALCON window</param> public void PaintData(HalconDotNet.HWindow window, int imageWidth, double txtScale) { window.SetDraw("margin"); window.SetLineWidth(1); if (ROIList.Count > 0) { window.SetColor(inactiveCol); window.SetDraw("margin"); for (int i = 0; i < ROIList.Count; i++) { window.SetLineStyle(ROIList[i].FlagLineStyle); ROIList[i].ImageWidth = imageWidth; ROIList[i].TxtScale = txtScale; if (ROIList[i].OperatorFlag == ROIOperation.None) { window.SetColor(serachRegionCol); } else { window.SetColor(inactiveCol); } ROIList[i].Draw(window); } if (activeROIidx != -1) { window.SetColor(activeCol); window.SetLineStyle(ROIList[activeROIidx].FlagLineStyle); ROIList[activeROIidx].Draw(window); window.SetColor(activeHdlCol); ROIList[activeROIidx].DisplayActive(window); } } }
/// <summary> /// Paints all objects from the ROIList into the HALCON window /// </summary> /// <param name="window">HALCON window</param> public void paintData(HalconDotNet.HWindow window) { window.SetDraw("margin"); window.SetLineWidth(1); if (ROIList.Count > 0) { window.SetDraw("fill"); window.SetLineStyle(new HTuple()); window.SetColor("blue"); defineModelROI(); if (ModelROI != null) { window.DispRegion(ModelROI); } window.SetColor(inactiveCol); window.SetDraw("margin"); for (int i = 0; i < ROIList.Count; i++) { window.SetLineStyle(((ROI)ROIList[i]).flagLineStyle); ((ROI)ROIList[i]).draw(window); } if (activeROIidx != -1) { window.SetColor(activeCol); window.SetLineStyle(((ROI)ROIList[activeROIidx]).flagLineStyle); ((ROI)ROIList[activeROIidx]).draw(window); window.SetColor(activeHdlCol); ((ROI)ROIList[activeROIidx]).displayActive(window); } } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } if (this.Image != null) { window.DispImage(this.Image); } foreach (var region in this.HRegionList) { window.SetColored(12); window.SetDraw("fill"); window.DispRegion(region); } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void draw(HalconDotNet.HWindow window) { window.SetDraw("margin"); double num = 5.0; for (int i = 0; i < this.row1.TupleLength(); i++) { if (i < this.row1.TupleLength() - 1) { window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[i + 1].D, this.col1[i + 1].D); } else { window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[0].D, this.col1[0].D); } window.DispRectangle2(this.row1[i].D, this.col1[i].D, 0.0, num, num); } for (int j = 0; j < this.row2.TupleLength(); j++) { window.DispCircle(this.row2[j].D, this.col2[j].D, num); } window.DispRectangle2(midR, midC, 0, 5, 5); }