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; } } }
public void ShowCalibratedOrigin(ADisplay aDisplay, bool isSwapHandedness) { double dOriginX, dOriginY; ICogTransform2D transform2D; CogTransform2DLinear transform2DLinear = null; try { if (m_bCalibrated == true) { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibNPointToNPointTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } else { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibNPointToNPointTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); if (isSwapHandedness == false) { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } else { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2 + m_dPI) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } } //m_cogCoordinateAxes.GraphicDOFEnable = (CogCoordinateAxesDOFConstants)(-2147483644);//Position+Rotation m_cogCoordinateAxes.GraphicDOFEnable = CogCoordinateAxesDOFConstants.None; m_cogCoordinateAxes.Interactive = true; m_cogCoordinateAxes.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.XAxisLabel.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.YAxisLabel.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.TipText = "Calibrated Origin"; aDisplay.AddOverlay(m_cogCoordinateAxes as ICogGraphicInteractive, ""); } catch { } }
/* * 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; } }
public void ShowCalibratedOrigin(ADisplay aDisplay, bool isShowDistorted, bool isSwapHandedness) { double dOriginX, dOriginY, dMappedX, dMappedY; ICogTransform2D transform2D; CogTransform2DLinear transform2DLinear = null; try { if (m_bCalibrated == true) { if (m_emComputationMode == CogCalibFixComputationModeConstants.Linear) { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibCheckerboardTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } else if (m_emComputationMode == CogCalibFixComputationModeConstants.PerspectiveAndRadialWarp) { if (isShowDistorted == true) { transform2D = m_cogCalibCheckerboardTool.Calibration.OwnedWarpParams.GetOutputImageRootFromCalibratedTransform(); transform2D.MapPoint(m_dOriginX - m_dCaibratedOriginX, m_dOriginY - m_dCaibratedOriginY, out dMappedX, out dMappedY); m_cogCoordinateAxes.OriginX = dMappedX; m_cogCoordinateAxes.OriginY = dMappedY; transform2DLinear = transform2D.LinearTransform(dMappedX, dMappedY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); m_cogCoordinateAxes.Skew = transform2DLinear.Skew; } else { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibCheckerboardTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } } } else { if (m_emComputationMode == CogCalibFixComputationModeConstants.Linear) { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibCheckerboardTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); if (isSwapHandedness == false) { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } else { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2 + m_dPI) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } } else if (m_emComputationMode == CogCalibFixComputationModeConstants.PerspectiveAndRadialWarp) { if (isShowDistorted == true) { transform2D = m_cogCalibCheckerboardTool.Calibration.OwnedWarpParams.GetOutputImageRootFromCalibratedTransform(); transform2D.MapPoint(m_dOriginX - m_dCaibratedOriginX, m_dOriginY - m_dCaibratedOriginY, out dMappedX, out dMappedY); m_cogCoordinateAxes.OriginX = dMappedX; m_cogCoordinateAxes.OriginY = dMappedY; transform2DLinear = transform2D.LinearTransform(dMappedX, dMappedY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); if (isSwapHandedness == false) { m_cogCoordinateAxes.Skew = transform2DLinear.Skew; } else { m_cogCoordinateAxes.Skew = transform2DLinear.Skew + m_dPI; } } else { TransCalibrated2UncalibratedCoord(m_dOriginX, m_dOriginY, out dOriginX, out dOriginY); m_cogCoordinateAxes.OriginX = dOriginX; m_cogCoordinateAxes.OriginY = dOriginY; transform2D = m_cogCalibCheckerboardTool.Calibration.GetComputedUncalibratedFromCalibratedTransform(); transform2DLinear = transform2D.LinearTransform(m_dOriginX, m_dOriginY); m_cogCoordinateAxes.Rotation = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation); if (isSwapHandedness == false) { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } else { m_cogCoordinateAxes.Skew = transform2DLinear.MapAngle(m_dRotation - m_dCaibratedRotation + m_dPI / 2 + m_dPI) - (m_cogCoordinateAxes.Rotation + m_dPI / 2); } } } } m_cogCoordinateAxes.GraphicDOFEnable = (CogCoordinateAxesDOFConstants)(-2147483644);//Position+Rotation m_cogCoordinateAxes.Interactive = true; m_cogCoordinateAxes.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.XAxisLabel.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.YAxisLabel.Color = CogColorConstants.Cyan; m_cogCoordinateAxes.TipText = "Calibrated Origin"; aDisplay.AddOverlay(m_cogCoordinateAxes as ICogGraphicInteractive, ""); } catch { } }