Exemple #1
0
        /// <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);
                    }
                }
            }
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
        /// <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);
        }
Exemple #6
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);
                }
            }
        }
Exemple #8
0
        /// <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);
                }
            }
        }
Exemple #9
0
        /// <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);
        }
Exemple #10
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);
        }