/// <summary> /// Paints the active handle of the ROI object into the supplied window. /// </summary> public override void displayActive(HalconDotNet.HWindow window) { switch (activeHandleIdx) { case 0: window.DispRectangle2(row1, col1, 0, 5, 5); break; case 1: window.DispObj(arrowHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: window.DispRectangle2(midR, midC, 0, 5, 5); break; } }
/// <summary>Paints the ROI into the supplied window.</summary> public override void draw(HalconDotNet.HWindow window) { window.DispLine(row1, col1, row2, col2); window.DispRectangle2(row1, col1, 0, 5, 5); window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); }
/// <summary> /// Paints the active handle of the ROI object into the supplied window /// </summary> public override void displayActive(HalconDotNet.HWindow window) { switch (activeHandleIdx) { case 0: window.DispRectangle2(midR, midC, 0, 5, 5); break; case 1: window.DispRectangle2(sizeR, sizeC, 0, 5, 5); break; case 2: window.DispRectangle2(startR, startC, startPhi, 10, 2); break; case 3: window.DispObj(arrowHandleXLD); break; } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaintUsingFlushGraphic(HalconDotNet.HWindow window) { int count = HObjList.Count; HObjectEntry entry; if (window != null) { HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); // check the boundatries of the image part if ((ImgRow2 > ImgRow1) && (ImgCol2 > ImgCol1)) window.SetPart((int)ImgRow1, (int)ImgCol1, (int)ImgRow2, (int)ImgCol2); // set the image part to window size else window.SetPart(0, 0, windowHeight - 1, windowWidth - 1); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); if (entry != null) { 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.DispLine(-1000.0, -1000.0, -1001.0, -1001.0); } }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void draw(HalconDotNet.HWindow window) { contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, startPhi, (startPhi + extentPhi), circDir, 1.0); window.DispObj(contour); window.DispRectangle2(sizeR, sizeC, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); window.DispRectangle2(startR, startC, startPhi, 10, 2); window.DispObj(arrowHandleXLD); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { try { 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); var prevScaleC = (double)((ImgCol2 - ImgCol1) / imageWidth); foreach (var wViewModel in WriteStringList) { window.SetColor("red"); HOperatorSet.SetTposition(window, wViewModel.Row, wViewModel.Col); HOperatorSet.WriteString(window, wViewModel.Text); } //Display Arrow var arrowSize = 5 * prevScaleC; arrowSize = (arrowSize < 2) ? 2 : arrowSize; foreach (var arrowModel in ArrowList) { HOperatorSet.DispArrow(window, arrowModel.CenterY, arrowModel.CenterX, arrowModel.FirstArrowY, arrowModel.FirstArrowX, arrowSize); HOperatorSet.DispArrow(window, arrowModel.CenterY, arrowModel.CenterX, arrowModel.SecArrowY, arrowModel.SecArrowX, arrowSize); } //�e��u if (ShowGrid) { drawGridLines(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor(this.RepaintWindowColor); window.DispLine(-100.0, -100.0, -101.0, -101.0); } catch (HOperatorException ex) { var errorNumber = ex.GetErrorNumber(); /* 5106 �o�ͱ��Ҭ� * 1�C�}���^���v����A���_�u�N���� MDI ���� */ if (errorNumber != 5106 && errorNumber != 5100) { Hanbo.Log.LogManager.Error(ex); } } }
/// <summary> /// Paints the active handle of the ROI object into the supplied window. /// </summary> public override void displayActive(HalconDotNet.HWindow window) { switch (activeHandleIdx) { case 0: window.DispRectangle2(_StartRow, _StartColumn, 0, 5, 5); break; case 1: window.DispObj(_AuxLineHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: //window.DispRectangle2(_MidRow, _MidCol, 0, 5, 5); break; } }
private void drawOuterArc(HalconDotNet.HWindow window) { double sPhi, extent, innerRad, outerRad; HTuple innerR, outerR, innerC, outerC; HXLDCont outCont, innerCont, contour; outCont = new HXLDCont(); innerCont = new HXLDCont(); var roiModel = this.getModelData(); var mMeasROI = genArcRegionModel(roiModel); sPhi = mMeasROI[2]; extent = mMeasROI[3]; outerRad = mMeasROI[4]; innerRad = mMeasROI[5]; //畫內圓 innerCont.GenCircleContourXld(mMeasROI[0], mMeasROI[1], innerRad, sPhi, (sPhi + extent), (extent > 0) ? "positive" : "negative", 1.0); //畫外圓 outCont.GenCircleContourXld(mMeasROI[0], mMeasROI[1], outerRad, (sPhi + extent), sPhi, (extent > 0) ? "negative" : "positive", 1.0); innerCont.GetContourXld(out innerR, out innerC); outCont.GetContourXld(out outerR, out outerC); innerR = innerR.TupleConcat(outerR); innerC = innerC.TupleConcat(outerC); contour = new HXLDCont(innerR, innerC); contour = contour.CloseContoursXld(); _ArcRegion.Dispose(); _ArcRegion = contour.GenRegionContourXld("margin"); window.DispObj(_ArcRegion); contour.Dispose(); innerCont.Dispose(); outCont.Dispose(); }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void draw(HalconDotNet.HWindow window) { //畫個 x double crossSize = 12; double crossAngle = 0.785398; //Reset line Style HOperatorSet.SetLineStyle(window, null); if (!_initPointsDone) { foreach (var dot in _clickedPointsPositionList) { HOperatorSet.DispCross(window, dot.RowBegin, dot.ColBegin, crossSize, crossAngle); } } else { //畫弧線 contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, _startPhi, (_startPhi + _extentPhi), _pointOrder, 1.0); this._beginRow = midR + Math.Sin(_startPhi) * radius; this._beginCol = midC + Math.Cos(_startPhi) * radius; window.DispObj(contour); drawOuterArc(window); //畫控制點 window.DispRectangle2(sizeR, sizeC, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); window.DispRectangle2(startR, startC, _startPhi, 10, 2); window.DispObj(arrowHandleXLD); } }