public void GetAxesParam(ADisplay aDisplay, bool isShowDistorted)
        {
            double                 dOriginX, dOriginY;
            ICogTransform2D        transform2D;
            CogTransform2DLinear   transform2DLinear = null;
            ICogGraphicInteractive axes = aDisplay.GetInteractiveGraphics("Calibrated Origin");

            if (axes != null)
            {
                CogCoordinateAxes coordinateAxes = axes as CogCoordinateAxes;

                dOriginX = coordinateAxes.OriginX;
                dOriginY = coordinateAxes.OriginY;
                TransUncalibrated2CalibratedCoord(dOriginX, dOriginY, out m_dOriginX, out m_dOriginY);

                if (isShowDistorted == true)
                {
                    transform2D       = m_cogCalibCheckerboardTool.Calibration.OwnedWarpParams.GetOutputImageRootFromCalibratedTransform();
                    transform2DLinear = transform2D.LinearTransform(dOriginX, dOriginY).Invert();
                    m_dRotation       = transform2DLinear.MapAngle(m_cogCoordinateAxes.Rotation) + m_dCaibratedRotation;
                }
                else
                {
                    transform2D       = m_cogCalibCheckerboardTool.Calibration.GetComputedUncalibratedFromCalibratedTransform();
                    transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY).Invert();
                    m_dRotation       = transform2DLinear.MapAngle(coordinateAxes.Rotation) + m_dCaibratedRotation;
                }
            }
        }
示例#2
0
        public void ShowRegion(ADisplay aDisplay)
        {
            // 2015.06.15
            if (m_cogCaliperTool == null)
            {
                return;
            }

            // 2017.05.08
            if (m_cogCaliperTool.Region == null)
            {
                return;
            }

            // 2014.07.02
            ICogRegion             icogRegion           = m_cogCaliperTool.Region.Copy(CogCopyShapeConstants.GeometryOnly);
            ICogGraphicInteractive icogGraphInteractive = icogRegion as ICogGraphicInteractive;

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.None;
                icogGraphInteractive.Interactive          = false;
                icogGraphInteractive.Color = CogColorConstants.DarkGreen;
                aDisplay.AddOverlay(icogGraphInteractive, "");
            }
        }
示例#3
0
        public bool GrabRegion(ADisplay aDisplay)
        {
            try
            {
                aDisplay.ClearOverlay();

                ICogGraphicInteractive icogGraphInteractive = null;
                CogRectangleAffine     cogRectangleAffine   = m_cogCaliperTool.Region;

                if (cogRectangleAffine == null)
                {
                    cogRectangleAffine = new CogRectangleAffine();
                    cogRectangleAffine.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }

                icogGraphInteractive = cogRectangleAffine as ICogGraphicInteractive;

                if (icogGraphInteractive != null)
                {
                    icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.All;
                    icogGraphInteractive.Interactive          = true;
                    icogGraphInteractive.TipText = "Region of Interest";
                    aDisplay.AddOverlay(icogGraphInteractive, "");
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#4
0
 public void AddOverlay(ICogGraphicInteractive icogGraphicInteractive, string strGroupName)
 {
     try
     {
         m_cogDisplay.InteractiveGraphics.Add(icogGraphicInteractive, strGroupName, false);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#5
0
        public void ShowRegion(ADisplay aDisplay)
        {
            ICogRegion             icogRegion           = m_cogBlobTool.Region;
            ICogGraphicInteractive icogGraphInteractive = icogRegion as ICogGraphicInteractive;

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.None;
                icogGraphInteractive.Interactive          = false;
                icogGraphInteractive.Color = CogColorConstants.DarkGreen;
                aDisplay.AddOverlay(icogGraphInteractive, "");
            }
        }
示例#6
0
        public void SetRegion(ADisplay aDisplay)
        {
            ICogGraphicInteractive icogGraphInteractive = aDisplay.GetInteractiveGraphics("Region of Interest");

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.None;
                icogGraphInteractive.Color       = CogColorConstants.Cyan;
                icogGraphInteractive.Interactive = false;
            }

            m_icogRegion = icogGraphInteractive as ICogRegion;
        }
示例#7
0
        public void ViewLastRegion(ADisplay aDisplay)
        {
            ICogRegion             icogRegion           = m_cogBlobTool.Region;
            ICogGraphicInteractive icogGraphInteractive = icogRegion as ICogGraphicInteractive;

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.All;
                icogGraphInteractive.Interactive          = true;
                // 2016.09.19 by kdi
                icogGraphInteractive.TipText = "Region of Interest";

                aDisplay.AddOverlay(icogGraphInteractive, "");
            }
        }
示例#8
0
        // 2015.05.05
        public void ShowRegion(ADisplay aDisplay, string strSpaceName)
        {
            ICogRegion icogRegion = m_cogCaliperTool.Region.Copy(CogCopyShapeConstants.GeometryOnly);

            icogRegion.SelectedSpaceName = strSpaceName;
            ICogGraphicInteractive icogGraphInteractive = icogRegion as ICogGraphicInteractive;

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.None;
                icogGraphInteractive.Interactive          = false;
                icogGraphInteractive.Color = CogColorConstants.DarkGreen;

                aDisplay.AddOverlay(icogGraphInteractive, "");
            }
        }
示例#9
0
        // 2013.02.18
        public void SetRegionInteractive(bool bVal)
        {
            try
            {
                ICogGraphicInteractive icogGraphInteractive = null;

                icogGraphInteractive = m_cogCaliperTool.Region as ICogGraphicInteractive;

                if (icogGraphInteractive != null)
                {
                    icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.All;
                    icogGraphInteractive.Interactive          = bVal;
                }
            }
            catch
            {
            }
        }
示例#10
0
        /*
         * public void GetPointParam(ADisplay aDisplay)
         * {
         *  double dOriginX, dOriginY;
         *  ICogTransform2D transform2D;
         *  CogTransform2DLinear transform2DLinear = null;
         *  ICogGraphicInteractive axes = aDisplay.GetInteractiveGraphics("Calibrated Origin");
         *
         *  if (axes != null)
         *  {
         *      CogCoordinateAxes coordinateAxes = axes as CogCoordinateAxes;
         *
         *      dOriginX = coordinateAxes.OriginX;
         *      dOriginY = coordinateAxes.OriginY;
         *      TransUncalibrated2CalibratedCoord(dOriginX, dOriginY, out m_dOriginX, out m_dOriginY);
         *
         *      if (isShowDistorted == true)
         *      {
         *          transform2D = m_cogCalibNPointToNPointTool.Calibration.OwnedWarpParams.GetOutputImageRootFromCalibratedTransform();
         *          transform2DLinear = transform2D.LinearTransform(dOriginX, dOriginY).Invert();
         *          m_dRotation = transform2DLinear.MapAngle(m_cogCoordinateAxes.Rotation) + m_dCaibratedRotation;
         *      }
         *      else
         *      {
         *          transform2D = m_cogCalibNPointToNPointTool.Calibration.GetComputedUncalibratedFromCalibratedTransform();
         *          transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY).Invert();
         *          m_dRotation = transform2DLinear.MapAngle(coordinateAxes.Rotation) + m_dCaibratedRotation;
         *      }
         *  }
         * }
         */

        public void GetAxesParam(ADisplay aDisplay)
        {
            double                 dOriginX, dOriginY;
            ICogTransform2D        transform2D;
            CogTransform2DLinear   transform2DLinear = null;
            ICogGraphicInteractive axes = aDisplay.GetInteractiveGraphics("Calibrated Origin");

            if (axes != null)
            {
                CogCoordinateAxes coordinateAxes = axes as CogCoordinateAxes;

                dOriginX = coordinateAxes.OriginX;
                dOriginY = coordinateAxes.OriginY;
                TransUncalibrated2CalibratedCoord(dOriginX, dOriginY, out m_dOriginX, out m_dOriginY);

                transform2D       = m_cogCalibNPointToNPointTool.Calibration.GetComputedUncalibratedFromCalibratedTransform();
                transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY).Invert();
                m_dRotation       = transform2DLinear.MapAngle(coordinateAxes.Rotation) + m_dCaibratedRotation;
            }
        }
示例#11
0
        public bool GrabRegion(ADisplay aDisplay, AVisionProBuild._emRegionShape emRegionShape)
        {
            aDisplay.ClearOverlay();

            ICogGraphicInteractive icogGraphInteractive = null;
            ICogRegion             icogRegion           = m_cogBlobTool.Region;

            CogCircle                   circle             = icogRegion as CogCircle;
            CogEllipse                  ellipse            = icogRegion as CogEllipse;
            CogRectangle                rectangle          = icogRegion as CogRectangle;
            CogRectangleAffine          rectangleAffine    = icogRegion as CogRectangleAffine;
            CogCircularAnnulusSection   circularAnnuluns   = icogRegion as CogCircularAnnulusSection;
            CogEllipticalAnnulusSection ellipticalAnnuluns = icogRegion as CogEllipticalAnnulusSection;

            switch (emRegionShape)
            {
            case AVisionProBuild._emRegionShape.Circle:
            {
                if (circle == null)
                {
                    circle = new CogCircle();
                    circle.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = circle as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.Ellipse:
            {
                if (ellipse == null)
                {
                    ellipse = new CogEllipse();
                    ellipse.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = ellipse as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.Rectangle:
            {
                if (rectangle == null)
                {
                    rectangle = new CogRectangle();
                    rectangle.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = rectangle as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.RectangleAffine:
            {
                if (rectangleAffine == null)
                {
                    rectangleAffine = new CogRectangleAffine();
                    rectangleAffine.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = rectangleAffine as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.CircularAnnulusSection:
            {
                if (circularAnnuluns == null)
                {
                    circularAnnuluns = new CogCircularAnnulusSection();
                    circularAnnuluns.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = circularAnnuluns as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.EllipticalAnnulusSection:
            {
                if (ellipticalAnnuluns == null)
                {
                    ellipticalAnnuluns = new CogEllipticalAnnulusSection();
                    ellipticalAnnuluns.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5);
                }
                icogGraphInteractive = ellipticalAnnuluns as ICogGraphicInteractive;
            }
            break;

            case AVisionProBuild._emRegionShape.Entire:
            {
                m_icogRegion = null;
                aDisplay.ClearOverlay();
            }
            break;

            default:
                m_icogRegion = null;

                return(false);
            }

            if (icogGraphInteractive != null)
            {
                icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.All;
                icogGraphInteractive.Interactive          = true;
                icogGraphInteractive.TipText = "Region of Interest";
                aDisplay.AddOverlay(icogGraphInteractive, "");
            }

            return(true);
        }
示例#12
0
        private void AssignCogRecordToDisplay(Control cogDisplay, ICogRecord cogRecord)
        {
            if (cogDisplay.Visible != true)
            {
                return;
            }

            if (cogDisplay.InvokeRequired)
            {
                cogDisplay.BeginInvoke(new _delParamCogDisplayIcogRecord(AssignCogRecordToDisplay), new object[] { cogDisplay, cogRecord });
                return;
            }

            if (cogDisplay is CogRecordsDisplay)
            {
                (cogDisplay as CogRecordsDisplay).Subject = cogRecord;
            }

            else if (cogDisplay is CogDisplay)
            {
                CogDisplay cDisplay = cogDisplay as CogDisplay;
                try
                {
                    //cogDisplay.Visible = false;
                    if (cogRecord.SubRecords == null || cogRecord.SubRecords.Count == 0)
                    {
                        return;
                    }


                    if (cogRecord.Content != null && cogRecord.Content is List <ICogRecord> )
                    {
                        List <ICogRecord> recordList = cogRecord.Content as List <ICogRecord>;
                        CogGraphicInteractiveCollection cogGraphicInteractCollection = new CogGraphicInteractiveCollection();
                        foreach (ICogRecord record in recordList)
                        {
                            // Assign image if it is not there
                            if ((cDisplay.Image == null || !(cDisplay.Image is CogImage8Grey)) &&
                                CogCamera != null)
                            {
                                // Assign image
                                lock (CogCamera.LockCogDisplay)
                                {
                                    cDisplay.Image = record.SubRecords[0].Content as ICogImage;
                                    cDisplay.Fit(true);
                                }
                            }

                            cDisplay.InteractiveGraphics.Clear();

                            if (IsDisplayGraphic)
                            {
                                //Assign graphic if any
                                foreach (ICogRecord subRecord in record.SubRecords[0].SubRecords)
                                {
                                    if (subRecord.Content is CogGraphicCollection)
                                    {
                                        CogGraphicCollection contentCollect = subRecord.Content as CogGraphicCollection;
                                        if (contentCollect != null)
                                        {
                                            foreach (CogCompositeShape graphic in contentCollect)
                                            {
                                                //cDisplay.InteractiveGraphics.Add(graphic, this.Name, false);
                                                cogGraphicInteractCollection.Add(graphic);
                                            }
                                        }
                                    }
                                    if (subRecord.Content is ICogGraphicInteractive)
                                    {
                                        //cDisplay.InteractiveGraphics.Add(subRecord.Content as ICogGraphicInteractive, this.Name, false);
                                        cogGraphicInteractCollection.Add(subRecord.Content as ICogGraphicInteractive);
                                    }
                                }


                                if (EnableDisplayTimeLabel)
                                {
                                    CogGraphicLabel cogLabel = new CogGraphicLabel();
                                    cogLabel.SelectedSpaceName = "@";
                                    cogLabel.Color             = CogColorConstants.Green;
                                    cogLabel.SetXYText(TimeLabelLocX, TimeLabelLocY, DateTime.Now.ToString("HH:mm:ss:fff"));
                                    cogGraphicInteractCollection.Add(cogLabel);
                                }

                                cDisplay.InteractiveGraphics.AddList(cogGraphicInteractCollection, this.Name, false);
                                //(cogDisplay as CogDisplay).Invalidate();
                            }
                        }
                    }
                    else
                    {
                        // Assign image if it is not there
                        if ((cDisplay.Image == null || !(cDisplay.Image is CogImage8Grey)) &&
                            CogCamera != null)
                        {
                            // Assign image
                            lock (CogCamera.LockCogDisplay)
                            {
                                //(cogDisplay as CogDisplay).Image = cogRecord.SubRecords[0].Content as ICogImage;
                                cDisplay.Image = cogRecord.SubRecords[cogRecord.SubRecords.Count - 1].Content as ICogImage;
                                cDisplay.Fit(true);
                            }
                        }

                        cDisplay.InteractiveGraphics.Clear();
                        if (IsDisplayGraphic)
                        {
                            // Assign graphic if any
                            CogGraphicInteractiveCollection cogGraphicInteractCollection = new CogGraphicInteractiveCollection();


                            foreach (ICogRecord record in cogRecord.SubRecords[cogRecord.SubRecords.Count - 1].SubRecords)
                            {
                                if (record.Content is CogGraphicCollection)
                                {
                                    CogGraphicCollection contentCollect = record.Content as CogGraphicCollection;

                                    foreach (CogObjectBase objBase in contentCollect)
                                    {
                                        ICogGraphicInteractive graphic = objBase as ICogGraphicInteractive;
                                        if (graphic != null)
                                        {
                                            //cDisplay.InteractiveGraphics.Add(graphic, this.Name, false);
                                            cogGraphicInteractCollection.Add(graphic);
                                        }
                                    }
                                }
                                else if (record.Content is ICogGraphicInteractive)
                                {
                                    //cDisplay.InteractiveGraphics.Add(record.Content as ICogGraphicInteractive, this.Name, false);
                                    cogGraphicInteractCollection.Add(record.Content as ICogGraphicInteractive);
                                }
                            }


                            if (EnableDisplayTimeLabel)
                            {
                                CogGraphicLabel cogLabel = new CogGraphicLabel();
                                cogLabel.SelectedSpaceName = "@";
                                cogLabel.Color             = CogColorConstants.Green;
                                cogLabel.SetXYText(TimeLabelLocX, TimeLabelLocY, DateTime.Now.ToString("HH:mm:ss:fff"));
                                cogGraphicInteractCollection.Add(cogLabel);
                            }

                            cDisplay.InteractiveGraphics.AddList(cogGraphicInteractCollection, this.Name, false);

                            //(cogDisplay as CogDisplay).Invalidate();
                        }
                    }
                }
                finally
                {
                    //cogDisplay.Visible = true;
                    //cogDisplay.Update();
                }

                //CogDisplayResult =new Bitmap((cogDisplay as CogDisplay).CreateContentBitmap(CogDisplayContentBitmapConstants.Image, null, 0));
            }
            else
            {
                // There is no Cognex Display, do nothing
            }
        }