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); }