123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- using PaintDotNet.Annotation.Enum;
- using PaintDotNet.Base.DedicatedAnalysis.Inclusions.Model;
- using PaintDotNet.Base.SettingModel;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Drawing.Drawing2D;
- using System.Windows.Forms;
- using static PaintDotNet.Base.SettingModel.LabelStyleModel;
- using static System.Windows.Forms.Control;
- namespace PaintDotNet.Annotation
- {
- /// <summary>
- /// 用来给标注、测量、视场以及其它工具使用的接口
- /// </summary>
- public interface ISurfaceBox
- {
- /// <summary>
- /// 获取缩放比例
- /// </summary>
- double ScaleRatio { get; }
- /// <summary>
- ///
- /// </summary>
- bool Capture { get; set; }
- /// <summary>
- /// 绘制鼠标划选的标记
- /// </summary>
- bool DrawRectangleFlag { get; set; }
- Rectangle DrawRectangle { get; set; }
- /// <summary>
- /// 激活的工具
- /// </summary>
- DrawToolType ActiveTool { get; set; }
-
- DrawAnalysisModel AnalysisStyleModel { get; set; }
- /// <summary>
- /// 鼠标形状
- /// </summary>
- Cursor Cursor { get; set; }
- RectangleF GetVisibleDocumentRectangleF();
- SizeF GetDocumentSize();
- /// <summary>
- /// 获取controls
- /// </summary>
- ControlCollection Controls { get; }
- /// <summary>
- /// 添加到历史记录,用于撤销
- /// </summary>
- /// <param name="c"></param>
- void AddCommandToHistory(Command.Command c);
- /// <summary>
- /// 刷新界面
- /// </summary>
- void Refresh();
- /// <summary>
- /// 设置标记
- /// </summary>
- void SetDirty();
- /// <summary>
- /// 获取未缩放的坐标点
- /// </summary>
- /// <param name="location"></param>
- /// <returns></returns>
- Point GetScalePoint(PointF location);
- /// <summary>
- /// 获取缩放的原点
- /// </summary>
- /// <returns></returns>
- Point GetCalcOriginPoint();
- Rectangle RectangleToScreen(Rectangle rectangle);
- /// <summary>
- /// 获取未缩放的值
- /// </summary>
- /// <param name="deltaX"></param>
- /// <returns></returns>
- int UnscaleScalar(int deltaX);
- PointF GetDocumentScrollPositionF();
- void SetDocumentScrollPositionF(PointF newScrollPos);
- void Update();
- PointF DocumentToClient(PointF pointF);
- /// <summary>
- /// 获取系统当前选中单位及每单位像素值
- /// </summary>
- /// <returns>3位字符串数组,
- /// 0:系统选中单位枚举字符串
- /// 1:系统选中单位名称字符串
- /// 2:系统选中单位符号字符串
- /// 3:系统选中单位每单位像素长度</returns>
- string[] GetPxPerUnit();
- /// <summary>
- /// 单位的文字
- /// </summary>
- /// <returns></returns>
- Dictionary<int, string> GetUnitsDictionary();
- /// <summary>
- /// 单位的缩写
- /// </summary>
- /// <returns></returns>
- Dictionary<int, string> GetUnitSymbolsDictionary();
- /// <summary>
- /// 获取当前DocumentWorkspace的视场行为
- /// </summary>
- /// <returns></returns>
- CombineMode GetCombineMode();
- /// <summary>
- /// 设置当前鼠标的状态
- /// </summary>
- /// <param name="status"></param>
- void SetMouseStatus(bool status);
- /// <summary>
- /// 获取当前鼠标的状态
- /// </summary>
- /// <returns></returns>
- bool GetMouseStatus();
- #region 标注、测量
- Dictionary<DrawToolType, Type> GetTools();
- /// <summary>
- /// 标记的连续绘制标记
- /// </summary>
- /// <returns></returns>
- bool ContinuousDrawingLabel();
- void SetContinuousDrawingLabel(bool v);
- /// <summary>
- /// 测量的连续绘制标记
- /// </summary>
- /// <returns></returns>
- bool ContinuousDrawingMeasure();
- void SetContinuousDrawingMeasure(bool v);
- /// <summary>
- /// 标注、测量、视场等的集合
- /// </summary>
- GraphicsList GraphicsList { get; }
- /// <summary>
- /// 重置标注、测量的管理类
- /// </summary>
- void ResetUndoManager();
- /// <summary>
- /// 获取标注的样式信息
- /// </summary>
- /// <returns></returns>
- LabelStyleModel GetLabelStyleModel();
- /// <summary>
- /// 获取测量的样式信息
- /// </summary>
- /// <returns></returns>
- MeasureStyleModel GetMeasureStyleModel();
- /// <summary>
- /// 获取水印的样式信息
- /// </summary>
- /// <returns></returns>
- WatermarkModel GetWatermarkModel();
- /// <summary>
- /// 获取工字线的样式信息
- /// </summary>
- /// <returns></returns>
- WorkTypeStyleModel GetWorkTypeStyleModel();
- /// <summary>
- /// 获取工字线的样式信息
- /// </summary>
- /// <returns></returns>
- RulerModel GetRulerStyleModel();
- /// <summary>
- /// 获取测量单位对应的换算字典
- /// </summary>
- /// <returns></returns>
- Dictionary<MeasurementUnit, double> getMeasureInfo();
- /// <summary>
- /// 获取标尺单位
- /// </summary>
- /// <returns></returns>
- MeasurementUnit GetMeasurementUnit();
- /// <summary>
- /// 获取系统当前放大倍数
- /// </summary>
- /// <returns></returns>
- decimal GetGainMultiple();
- /// <summary>
- /// 获取当前图片放大倍数
- /// </summary>
- /// <returns></returns>
- decimal GetMic_Rulers();
- /// <summary>
- /// 刷新标注列表
- /// </summary>
- void RefreshLabelListDialog();
- /// <summary>
- /// 更新命名的延续数字
- /// </summary>
- void UpdateContinueNum();
- #endregion
- #region 预处理
- /// <summary>
- /// 预处理 交互操作的连续绘制标记
- /// </summary>
- /// <returns></returns>
- bool ContinuousBinaryAction();
- /// <summary>
- /// 预处理 - 交互操作 -单个提取
- /// </summary>
- /// <param name="point"></param>
- void BinaryActionExtract(PointF point);
- #region 选择
- /// <summary>
- /// 预处理 - 交互操作 - 选择 - 单个
- /// </summary>
- /// <param name="point"></param>
- void BinaryActionChoise(PointF point);
- /// <summary>
- /// 预处理 - 交互操作 - 选择 - 矩形
- /// </summary>
- /// <param name="rectangle"></param>
- void BinaryActionChoiseRectangle(RectangleF rectangle);
- /// <summary>
- /// 预处理 - 交互操作 - 选择 - 椭圆
- /// </summary>
- /// <param name="rectangle"></param>
- void BinaryActionChoiseOval(RectangleF rectangle);
- /// <summary>
- /// 预处理 - 交互操作 - 选择 - 多边形
- /// </summary>
- /// <param name="rectangle"></param>
- void BinaryActionChoisePolygon(List<PointF> points);
- #endregion
- #region 分割
- /// <summary>
- /// 获取分割线宽
- /// </summary>
- /// <returns></returns>
- int GetSegmentationWidth();
- /// <summary>
- /// 预处理 - 交互操作 - 分割 - 直线分割
- /// </summary>
- /// <param name="start"></param>
- /// <param name="end"></param>
- void BinaryActionSplitLine(PointF start, PointF end);
- /// <summary>
- /// 预处理 - 交互操作 - 分割 - 椭圆分割
- /// </summary>
- /// <param name="rect"></param>
- void BinaryActionSplitOval(RectangleF rect);
- #endregion
- #region 连接
- /// <summary>
- /// 获取连接线宽
- /// </summary>
- /// <returns></returns>
- int GetConnectionWidth();
- /// <summary>
- /// 预处理 - 交互操作 - 连接 - 直线
- /// </summary>
- /// <param name="start"></param>
- /// <param name="end"></param>
- void BinaryActionConnectionLine(PointF start, PointF end);
- /// <summary>
- /// 预处理 - 交互操作 - 连接 - 椭圆
- /// </summary>
- /// <param name="start"></param>
- /// <param name="end"></param>
- void BinaryConnectionOval(RectangleF rect);
- #endregion
- #region 删除
- /// <summary>
- /// 预处理 - 交互操作 - 删除 - 单个删除
- /// </summary>
- /// <param name="point"></param>
- void BinaryActionDelete(PointF point);
- /// <summary>
- /// 预处理 - 交互操作 - 删除 - 矩形删除
- /// </summary>
- /// <param name="point"></param>
- void BinaryActionDelete(RectangleF rect);
- /// <summary>
- /// 预处理 - 交互操作 - 删除 - 多边形删除
- /// </summary>
- /// <param name="points"></param>
- void BinaryActionDelete(List<PointF> points);
- /// <summary>
- /// 预处理 - 交互操作 - 删除 - 椭圆删除
- /// </summary>
- /// <param name="rect"></param>
- void BinaryActionDeleteOval(RectangleF rect);
- #endregion
- #region 添加
- /// <summary>
- /// 预处理 - 交互操作 - 添加 - 椭圆
- /// </summary>
- /// <param name="rect"></param>
- void BinaryActionAddOval(RectangleF rect);
- /// <summary>
- /// 预处理 - 交互操作 - 添加 - 矩形
- /// </summary>
- /// <param name="rect"></param>
- void BinaryActionAddRectangle(RectangleF rect);
- /// <summary>
- /// 预处理 - 交互操作 - 添加 - 多边形
- /// </summary>
- /// <param name="points"></param>
- void BinaryActionAddPolygon(List<PointF> points);
- #endregion
- #endregion
- #region 物相提取
- /// <summary>
- /// 物相提取 - 交互操作 - 矩形选择
- /// </summary>
- /// <param name="point"></param>
- void PPhaseActionRectangle(RectangleF rect);
- /// <summary>
- /// 物相提取 - 交互操作 - 多边形选择
- /// </summary>
- /// <param name="points"></param>
- void PPhaseActionPolygon(List<PointF> points);
- /// <summary>
- /// 物相提取 - 交互操作 - 椭圆选择
- /// </summary>
- /// <param name="rect"></param>
- void PPhaseActionOval(RectangleF rect);
- #endregion
- bool ViewMoveOnMouseLeftDoubleClickEnable { get; set; }
- PointF GetRulerPointInPanel(PointF point);
- PointF ScalePointToRulerPoint(PointF point);
- int ToolNumber { set; }
- /// <summary>
- /// 实际大小标记
- /// </summary>
- /// <returns></returns>
- bool ActualSize();
- /// <summary>
- /// 合适大小标记
- /// </summary>
- /// <returns></returns>
- bool SuitableSize();
- /// <summary>
- /// 合适宽度标记
- /// </summary>
- /// <returns></returns>
- bool SuitableWidth();
- /// <summary>
- /// 合适高度标记
- /// </summary>
- /// <returns></returns>
- bool SuitableHeight();
- /// <summary>
- /// 锁定扩缩
- /// </summary>
- /// <returns></returns>
- bool LockZoom();
- /// <summary>
- /// 定倍显示
- /// </summary>
- /// <returns></returns>
- bool FixedMultiple();
- /// <summary>
- /// 合并视场
- /// </summary>
- /// <returns></returns>
- bool MergeFieldOfView();
- /// <summary>
- /// 删除视场
- /// </summary>
- /// <returns></returns>
- bool DeleteFieldOfView();
- /// <summary>
- /// 删除视场
- /// </summary>
- /// <returns></returns>
- Inclusion GetInclusion();
- }
- }
|