Browse Source

draw: fix: 格式化 lint检查

haojianlong 4 years ago
parent
commit
16a477de24

+ 18 - 12
persagy-web-draw/.eslintrc.js

@@ -26,14 +26,14 @@
 
 module.exports = {
     root: true,
-    parser: '@typescript-eslint/parser',
+    parser: "@typescript-eslint/parser",
     extends: [
-        'plugin:@typescript-eslint/recommended',
+        "plugin:@typescript-eslint/recommended",
         // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier
-        'prettier/@typescript-eslint',
+        "prettier/@typescript-eslint",
         // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array.
         // 此行必须在最后
-        'plugin:prettier/recommended'
+        "plugin:prettier/recommended"
     ],
     env: {
         es6: true,
@@ -42,17 +42,23 @@ module.exports = {
     parserOptions: {
         // 支持最新 JavaScript
         ecmaVersion: 2018,
-        sourceType: 'module'
+        sourceType: "module"
     },
     rules: {
+        // 注释
+        // 文件
+        "max-classes-per-file": ["error", 1],           // 一个文件中只能定义一个类
+        "max-lines-per-function": ["error", 200],       // 一个函数最多200行代码
+        "max-statements-per-line": ["error", {max: 1}], // 一行只允许有一条语句
         // 缩进
-        'indent': ['error', 4, { SwitchCase: 1 }],      // 缩进控制4空格
-        'max-len': ['error', 120],                      // 每行字符不超过120
-        'no-mixed-spaces-and-tabs': 'error',            // 禁止使用空格和tab混合缩进
+        "indent": ["error", 4],                         // 缩进控制4空格
+        "max-len": ["error", 120],                      // 每行字符不超过120
+        "no-mixed-spaces-and-tabs": "error",            // 禁止使用空格和tab混合缩进
         // 语句
-        'curly': ["error", "multi-line"],               // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号。
-        'semi': ['error', 'always'],                    //不得省略语句结束的分号
-        '@typescript-eslint/no-unused-vars': 'off',     // 取消未使用变量检查
-        '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }]       // public访问不需加访问修饰符
+        "curly": ["error", "multi-line"],               // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号。
+        "semi": ["error", "always"],                    // 不得省略语句结束的分号
+        "@typescript-eslint/explicit-member-accessibility": ["error", { accessibility: "no-public" }],       // public访问不需加访问修饰符
+        "@typescript-eslint/no-explicit-any": ["off"],
+        "@typescript-eslint/no-unused-vars": ["off"],
     }
 };

+ 5 - 5
persagy-web-draw/src/SBrush.ts

@@ -58,35 +58,35 @@ export class SBrush {
 
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param brush     画刷
-    */
+     */
     constructor(brush: SBrush);
 
     /**
      * 构造函数
      *
      * @param color     颜色
-    */
+     */
     constructor(color: SColor);
 
     /**
      * 构造函数
      *
      * @param gradient    过渡
-    */
+     */
     constructor(gradient: SGradient);
 
     /**
      * 构造函数(重载实现)
      *
      * @param brush     画笔
-    */
+     */
     constructor(brush?: SColor | SGradient | SBrush) {
         if (brush == undefined) {
             return;

+ 29 - 29
persagy-web-draw/src/SCanvasView.ts

@@ -122,7 +122,7 @@ export class SCanvasView extends SObject {
      * 构造函数
      *
      * @param id      画布对象 ID
-    */
+     */
     constructor(id: string) {
         super();
         this.canvasView = document.getElementById(id) as HTMLCanvasElement;
@@ -133,7 +133,7 @@ export class SCanvasView extends SObject {
 
     /**
      * 更新视图
-    */
+     */
     update(): void {
         this._needDraw = true;
     } // Function update()
@@ -143,7 +143,7 @@ export class SCanvasView extends SObject {
      *
      * @param name    名称
      * @param type    图像类型
-    */
+     */
     saveImage(name: string, type: string): void {
         let url = this.canvasView.toDataURL(`image/${type}`);
         SNetUtil.downLoad(name, url);
@@ -153,7 +153,7 @@ export class SCanvasView extends SObject {
      * 图像的 URL
      *
      * @param type    图像类型
-    */
+     */
     imageUrl(type: string): string {
         return this.canvasView.toDataURL(`image/${type}`);
     } // Function imageUrl()
@@ -162,7 +162,7 @@ export class SCanvasView extends SObject {
      * 视图内容保存为 SVG 文件
      *
      * @param name    文件名
-    */
+     */
     saveSvg(name: string): void {
         let url = URL.createObjectURL(
             new Blob([this.svgData()], { type: "text/xml,charset=UTF-8" })
@@ -174,7 +174,7 @@ export class SCanvasView extends SObject {
      * 视图 SVG 图形的数据
      *
      * @return URL 地址
-    */
+     */
     svgData(): string {
         let engine = new SSvgPaintEngine(this.width, this.height);
         let painter = new SPainter(engine);
@@ -188,7 +188,7 @@ export class SCanvasView extends SObject {
      * @param zoom        缩放比例
      * @param x0          缩放计算的中心点 X 坐标
      * @param y0          缩放计算的中心点 Y 坐标
-    */
+     */
     scaleByPoint(zoom: number, x0: number, y0: number): void {
         if (!this.scalable) {
             return;
@@ -197,7 +197,7 @@ export class SCanvasView extends SObject {
         let z = zoom;
         /**
          * 缩放比例在最小比例和最大比例范围内
-        */
+         */
         if (this.scale * zoom >= this.maxScale) {
             z = this.maxScale / this.scale;
             this.scale = this.maxScale;
@@ -216,7 +216,7 @@ export class SCanvasView extends SObject {
     //
     /**
      * 循环
-    */
+     */
     protected loop(): void {
         /** painter 对象 */
         let ctx = this.canvas;
@@ -232,28 +232,28 @@ export class SCanvasView extends SObject {
      * 绘制视图
      *
      * @param painter     painter 对象
-    */
+     */
     protected onDraw(painter: SPainter): void {} // Function onDraw()
 
     /**
      * 鼠标单击事件
      *
      * @param event       事件参数
-    */
+     */
     protected onClick(event: MouseEvent): void {} // Function onClick()
 
     /**
      * 鼠标双击事件
      *
      * @param event       事件参数
-    */
+     */
     protected onDoubleClick(event: MouseEvent): void {} // Function onDoubleClick()
 
     /**
      * 鼠标按下事件
      *
      * @param event       事件参数
-    */
+     */
     protected onMouseDown(event: MouseEvent): void {
         let se = new SMouseEvent(event);
         if (se.buttons & SMouseButton.MidButton) {
@@ -266,7 +266,7 @@ export class SCanvasView extends SObject {
      * 鼠标移动事件
      *
      * @param event       事件参数
-    */
+     */
     protected onMouseMove(event: MouseEvent): void {
         // 如果可以移动
         if (this.moveable) {
@@ -287,21 +287,21 @@ export class SCanvasView extends SObject {
      * 鼠标松开事件
      *
      * @param event       事件参数
-    */
+     */
     protected onMouseUp(event: MouseEvent): void {} // Function onMouseUp()
 
     /**
      * 上下文菜单事件
      *
      * @param event       事件参数
-    */
+     */
     protected onContextMenu(event: MouseEvent): void {} // Function onContextMenu()
 
     /**
      * 鼠标滚轮事件
      *
      * @param event       事件参数
-    */
+     */
     protected onMouseWheel(event: WheelEvent): void {
         if (event.deltaY < 0) {
             this.scaleByPoint(this.wheelZoom, event.offsetX, event.offsetY);
@@ -314,28 +314,28 @@ export class SCanvasView extends SObject {
      * 按键按下事件
      *
      * @param event       事件参数
-    */
+     */
     protected onKeyDown(event: KeyboardEvent): void {} // Function onKeydown()
 
     /**
      * 按键press事件
      *
      * @param event       事件参数
-    */
+     */
     protected onKeyPress(event: KeyboardEvent): void {} // Function onKeypress()
 
     /**
      * 按键松开事件
      *
      * @param event       事件参数
-    */
+     */
     protected onKeyUp(event: KeyboardEvent): void {} // Function onKeyup()
 
     /**
      * 开始触摸事件
      *
      * @param event       事件参数
-    */
+     */
     protected onTouchStart(event: TouchEvent): void {
         let touches = event.touches;
         if (touches.length == 1) {
@@ -352,7 +352,7 @@ export class SCanvasView extends SObject {
      * 触摸移动事件
      *
      * @param event       事件参数
-    */
+     */
     protected onTouchMove(event: TouchEvent): void {
         let touches = event.touches;
         if (touches.length == 1) {
@@ -370,7 +370,7 @@ export class SCanvasView extends SObject {
      * 结束触摸事件
      *
      * @param event       事件参数
-    */
+     */
     protected onTouchEnd(event: TouchEvent): void {
         this._touchState = STouchState.None;
     } // Function onTouchEnd()
@@ -379,14 +379,14 @@ export class SCanvasView extends SObject {
      * View大小变更事件
      *
      * @param event       事件参数
-    */
+     */
     protected onResize(event: UIEvent): void {} // Function onClick()
 
     /**
      * 绑定事件
      *
      * @param element     要绑定事件的元素
-    */
+     */
     private bindEvent(element: HTMLElement): void {
         // 绑定鼠标事件
         element.onclick = this.onClick.bind(this);
@@ -415,7 +415,7 @@ export class SCanvasView extends SObject {
      * 启动动画帧(即指定时间执行回调函数)
      *
      * @param callback        回调函数
-    */
+     */
     private requestAnimationFrame(callback: FrameRequestCallback): number {
         let currTime = new Date().getTime();
         let timeToCall = Math.max(0, 16 - (currTime - this._lastFrameTime));
@@ -430,7 +430,7 @@ export class SCanvasView extends SObject {
      * 缩放视图
      *
      * @param event       触摸事件
-    */
+     */
     private viewZoom(event: TouchEvent): boolean {
         if (this._touchState == STouchState.Zoom) {
             // 获取两点的距离
@@ -454,7 +454,7 @@ export class SCanvasView extends SObject {
      *
      * @param event       触摸事件
      * @return 两手指之间的距离
-    */
+     */
     private getDistance(event: TouchEvent): number {
         if (event.touches.length < 2) {
             return 0;
@@ -470,7 +470,7 @@ export class SCanvasView extends SObject {
      *
      * @param event     触摸事件
      * @return 得到视图的 x 坐标中点
-    */
+     */
     private getMiddlePoint(event: TouchEvent): SPoint {
         return new SPoint(
             (event.touches[0].clientX + event.touches[1].clientX) / 2,

+ 13 - 13
persagy-web-draw/src/SColor.ts

@@ -76,7 +76,7 @@ export class SColor {
      * @param g       绿色分量
      * @param b       蓝色分量
      * @return 颜色
-    */
+     */
     static rgb(r: number, g: number, b: number): SColor {
         return new SColor(r, g, b);
     }
@@ -89,7 +89,7 @@ export class SColor {
      * @param b       蓝色分量
      * @param a       透明度分量
      * @return 颜色
-    */
+     */
     static rgba(r: number, g: number, b: number, a: number): SColor {
         return new SColor(r, g, b, a);
     } // Function rgb()
@@ -154,7 +154,7 @@ export class SColor {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
@@ -163,7 +163,7 @@ export class SColor {
      * @param r       红色分量
      * @param g       绿色分量
      * @param b       蓝色分量
-    */
+     */
     constructor(r: number, g: number, b: number);
 
     /**
@@ -173,21 +173,21 @@ export class SColor {
      * @param g       绿色分量
      * @param b       蓝色分量
      * @param a       透明度分量 0 - 255
-    */
+     */
     constructor(r: number, g: number, b: number, a: number);
 
     /**
      * 构造函数
      *
      * @param color   颜色
-    */
+     */
     constructor(color: string);
 
     /**
      * 构造函数
      *
      * @param color   颜色
-    */
+     */
     constructor(color: SColor);
 
     /**
@@ -197,7 +197,7 @@ export class SColor {
      * @param g       绿色分量
      * @param b       蓝色分量
      * @param a       透明度分量 0 - 255
-    */
+     */
     constructor(
         r?: number | string | SColor,
         g?: number,
@@ -223,7 +223,7 @@ export class SColor {
      * @param r       红色分量
      * @param g       绿色分量
      * @param b       蓝色分量
-    */
+     */
     private setRgb(r: number, g: number, b: number): void {
         this._value =
             ((r as number) << 24) +
@@ -239,7 +239,7 @@ export class SColor {
      * @param g       绿色分量
      * @param b       蓝色分量
      * @param a       透明度分量 0 - 255
-    */
+     */
     private setRgba(r: number, g: number, b: number, a: number): void {
         this._value =
             ((r as number) << 24) +
@@ -252,7 +252,7 @@ export class SColor {
      * 颜色转 rgb
      *
      * @return rgb 字符串
-    */
+     */
     toRgb(): string {
         return `rgb(${this.red}, ${this.green}, ${this.blue})`;
     } // Function toRgb()
@@ -261,7 +261,7 @@ export class SColor {
      * 颜色转 rgba
      *
      * @return rgba 字符串
-    */
+     */
     toRgba(): string {
         return `rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha /
             255.0})`;
@@ -271,7 +271,7 @@ export class SColor {
      * 颜色转 6 位 16 进制
      *
      * @return 6 位 16 进制颜色
-    */
+     */
     toVal(): string {
         return "#" + SStringUtil.num2Hex(this._value, 6);
     } // Function toRgb()

+ 4 - 4
persagy-web-draw/src/SFont.ts

@@ -54,14 +54,14 @@ export class SFont {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param font  FONT
-    */
+     */
     constructor(font: SFont);
 
     /**
@@ -69,14 +69,14 @@ export class SFont {
      *
      * @param name        字体
      * @param size        字号
-    */
+     */
     constructor(name: string, size?: number);
     /**
      * 构造函数
      *
      * @param name        字体 | SFont
      * @param size        字号
-    */
+     */
     constructor(name?: string | SFont, size?: number) {
         if (name == undefined) {
             return;

+ 4 - 4
persagy-web-draw/src/SGradient.ts

@@ -80,7 +80,7 @@ export abstract class SGradient {
      *
      * @param pos     位置[0 - 1]
      * @param color   颜色
-    */
+     */
     addColorStop(pos: number, color: SColor): void {
         this.stopList.push(new SGradientStop(pos, color));
     } // Function addColorStop()
@@ -90,7 +90,7 @@ export abstract class SGradient {
      *
      * @param x       X 坐标
      * @param y       Y 坐标
-    */
+     */
     setStart(x: number, y: number): void {
         this.start.x = x;
         this.start.y = y;
@@ -101,7 +101,7 @@ export abstract class SGradient {
      *
      * @param x       X 坐标
      * @param y       Y 坐标
-    */
+     */
     setEnd(x: number, y: number): void {
         this.end.x = x;
         this.end.y = y;
@@ -111,6 +111,6 @@ export abstract class SGradient {
      * 转为字符串保存
      *
      * @return 转为字符串保存
-    */
+     */
     abstract value(): string;
 } // Class SGradientStop

+ 1 - 1
persagy-web-draw/src/SGradientStop.ts

@@ -54,7 +54,7 @@ export class SGradientStop {
      *
      * @param pos         节点位置
      * @param color       节点颜色
-    */
+     */
     constructor(pos: number, color: SColor) {
         this.pos = pos;
         this.color = color;

+ 5 - 5
persagy-web-draw/src/SLinearGradient.ts

@@ -37,7 +37,7 @@ export class SLinearGradient extends SGradient {
      *
      * @param start   起点坐标
      * @param end     终点坐标
-    */
+     */
     constructor(start: SPoint, end: SPoint);
 
     /**
@@ -47,7 +47,7 @@ export class SLinearGradient extends SGradient {
      * @param y1      起点 Y 坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     constructor(x1: number, y1: number, x2: number, y2: number);
 
     /**
@@ -57,7 +57,7 @@ export class SLinearGradient extends SGradient {
      * @param y1      起点 Y 坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     constructor(
         x1: number | SPoint,
         y1: number | SPoint,
@@ -78,12 +78,12 @@ export class SLinearGradient extends SGradient {
      * 转为字符串保存
      *
      * @return 转为字符串保存
-    */
+     */
     value(): string {
         let str = `SLinearGradient{`;
         str += `${this.x1},${this.y1};`;
         str += `${this.x2},${this.y2};`;
-        this.stopList.forEach(t => {
+        this.stopList.forEach((t): void => {
             str += `${t.pos},${t.color.value};`;
         });
         return `${str}}`;

+ 46 - 46
persagy-web-draw/src/SPainter.ts

@@ -112,7 +112,7 @@ export class SPainter extends SObject {
      * 构造函数
      *
      * @param engine    绘制引擎
-    */
+     */
     constructor(engine: SCanvasView | SPaintEngine) {
         super();
         if (engine instanceof SCanvasView) {
@@ -131,14 +131,14 @@ export class SPainter extends SObject {
 
     /**
      * 保存 painter 状态
-    */
+     */
     save(): void {
         this.engine.save();
     } // Function save()
 
     /**
      * 恢复 painter 状态
-    */
+     */
     restore(): void {
         this.engine.restore();
     } // Function restore()
@@ -150,7 +150,7 @@ export class SPainter extends SObject {
      *
      * @param x       X 轴方向平移
      * @param y       Y 轴方向平移
-    */
+     */
     translate(x: number, y: number): void {
         this.engine.translate(x, y);
     } // Function translate()
@@ -160,7 +160,7 @@ export class SPainter extends SObject {
      *
      * @param x       X 轴方向缩放
      * @param y       Y 轴方向缩放
-    */
+     */
     scale(x: number, y: number): void {
         this.engine.scale(x, y);
     } // Function scale()
@@ -169,7 +169,7 @@ export class SPainter extends SObject {
      * 旋转
      *
      * @param angle   旋转角度(单位弧度)
-    */
+     */
     rotate(angle: number): void {
         this.engine.rotate(angle);
     } // Function rotate()
@@ -183,7 +183,7 @@ export class SPainter extends SObject {
      * @param m22     竖直方向的缩放
      * @param dx      水平方向的移动
      * @param dy      竖直方向的移动
-    */
+     */
     transform(
         m11: number,
         m12: number,
@@ -204,7 +204,7 @@ export class SPainter extends SObject {
      * @param m22     竖直方向的缩放
      * @param dx      水平方向的移动
      * @param dy      竖直方向的移动
-    */
+     */
     setTransform(
         m11: number,
         m12: number,
@@ -218,7 +218,7 @@ export class SPainter extends SObject {
 
     /**
      * 重置当前变形为单位矩阵。等价于调用 setTransform(1, 0, 0, 1, 0, 0)
-    */
+     */
     resetTransform(): void {
         this.engine.resetTransform();
     } // Function resetTransform()
@@ -230,7 +230,7 @@ export class SPainter extends SObject {
      * 清空矩形区域
      *
      * @param rect  矩形
-    */
+     */
     clearRect(rect: SRect): void;
 
     /**
@@ -238,7 +238,7 @@ export class SPainter extends SObject {
      *
      * @param leftTop         左上角坐标
      * @param rightBottom     右下角坐标
-    */
+     */
     clearRect(leftTop: SPoint, rightBottom: SPoint): void;
 
     /**
@@ -246,7 +246,7 @@ export class SPainter extends SObject {
      *
      * @param leftTop     左上角坐标
      * @param size        大小
-    */
+     */
     clearRect(leftTop: SPoint, size: SSize): void;
 
     /**
@@ -256,7 +256,7 @@ export class SPainter extends SObject {
      * @param y       Y 坐标
      * @param w       宽度
      * @param h       高度
-    */
+     */
     clearRect(x: number, y: number, w: number, h: number): void;
 
     /**
@@ -266,7 +266,7 @@ export class SPainter extends SObject {
      * @param y       Y 坐标 | 右下角坐标 | 大小
      * @param w       宽度
      * @param h       高度
-    */
+     */
     clearRect(
         x: number | SPoint | SRect,
         y?: number | SPoint | SSize,
@@ -290,7 +290,7 @@ export class SPainter extends SObject {
      * 绘制矩形
      *
      * @param rect        矩形
-    */
+     */
     drawRect(rect: SRect): void;
 
     /**
@@ -298,7 +298,7 @@ export class SPainter extends SObject {
      *
      * @param leftTop         左上角坐标
      * @param rightBottom     右下角坐标
-    */
+     */
     drawRect(leftTop: SPoint, rightBottom: SPoint): void;
 
     /**
@@ -306,7 +306,7 @@ export class SPainter extends SObject {
      *
      * @param leftTop     左上角坐标
      * @param size        大小
-    */
+     */
     drawRect(leftTop: SPoint, size: SSize): void;
 
     /**
@@ -316,7 +316,7 @@ export class SPainter extends SObject {
      * @param y       Y 坐标
      * @param w       宽度
      * @param h       高度
-    */
+     */
     drawRect(x: number, y: number, w: number, h: number): void;
 
     /**
@@ -326,7 +326,7 @@ export class SPainter extends SObject {
      * @param y       Y 坐标 | 右下角坐标 | 大小
      * @param w       宽度
      * @param h       高度
-    */
+     */
     drawRect(
         x: number | SPoint | SRect,
         y?: number | SPoint | SSize,
@@ -357,7 +357,7 @@ export class SPainter extends SObject {
      *
      * @param rect        矩形
      * @param r           导角半径
-    */
+     */
     drawRoundRect(rect: SRect, r: number): void;
 
     /**
@@ -366,7 +366,7 @@ export class SPainter extends SObject {
      * @param p1        矩形左上角的点
      * @param p2        矩形右上角的点
      * @param r         导角半径
-    */
+     */
     drawRoundRect(p1: SPoint, p2: SPoint, r: number): void;
 
     /**
@@ -375,7 +375,7 @@ export class SPainter extends SObject {
      * @param pos         左上角位置
      * @param size        大小
      * @param r           导角半径
-    */
+     */
     drawRoundRect(pos: SPoint, size: SSize, r: number): void;
 
     /**
@@ -386,7 +386,7 @@ export class SPainter extends SObject {
      * @param w           宽度
      * @param h           高度
      * @param r           导角半径
-    */
+     */
     drawRoundRect(x: number, y: number, w: number, h: number, r: number): void;
 
     /**
@@ -397,7 +397,7 @@ export class SPainter extends SObject {
      * @param w           宽度
      * @param h           高度
      * @param radius      导角半径
-    */
+     */
     drawRoundRect(
         x: number | SPoint | SRect,
         y: number | SSize | SPoint,
@@ -438,7 +438,7 @@ export class SPainter extends SObject {
      * @param cx          圆心 X 坐标
      * @param cy          圆心 Y 坐标
      * @param r           圆半径
-    */
+     */
     drawCircle(cx: number, cy: number, r: number): void {
         this.engine.drawCircle(cx, cy, r);
     } // Function drawCircle()
@@ -450,7 +450,7 @@ export class SPainter extends SObject {
      * @param cy          圆点 Y 坐标
      * @param rx          水平半径
      * @param ry          垂直半径
-    */
+     */
     drawEllipse(cx: number, cy: number, rx: number, ry: number): void {
         this.engine.drawEllipse(cx, cy, rx, ry);
     } // Function drawEllipse()
@@ -459,7 +459,7 @@ export class SPainter extends SObject {
      * 绘制一条线段
      *
      * @param line    线段
-    */
+     */
     drawLine(line: SLine): void;
 
     /**
@@ -467,7 +467,7 @@ export class SPainter extends SObject {
      *
      * @param p1      启点坐标
      * @param p2      终点坐标
-    */
+     */
     drawLine(p1: SPoint, p2: SPoint): void;
 
     /**
@@ -477,7 +477,7 @@ export class SPainter extends SObject {
      * @param y1      启点 Y 坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     drawLine(x1: number, y1: number, x2: number, y2: number): void;
 
     /**
@@ -487,7 +487,7 @@ export class SPainter extends SObject {
      * @param y1      启点 Y 坐标 | 终点坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     drawLine(
         x1: number | SPoint | SLine,
         y1?: number | SPoint,
@@ -514,7 +514,7 @@ export class SPainter extends SObject {
      * 绘制折线
      *
      * @param points      折线折点
-    */
+     */
     drawPolyline(points: SPoint[]): void {
         this.engine.drawPolyline(points);
     } // Function drawPolyline()
@@ -523,7 +523,7 @@ export class SPainter extends SObject {
      * 绘制多边形
      *
      * @param points      多边形顶点
-    */
+     */
     drawPolygon(points: SPoint[]): void {
         this.engine.drawPolygon(points);
     } // Function drawPolygon()
@@ -532,7 +532,7 @@ export class SPainter extends SObject {
      * 绘制路径
      *
      * @param path        路径
-    */
+     */
     drawPath(path: SPath): void {
         this.engine.drawPath(path);
     } // Function drawPath()
@@ -544,7 +544,7 @@ export class SPainter extends SObject {
      * @param x           X 坐标
      * @param y           Y 坐标
      * @param maxWidth    最大宽度
-    */
+     */
     drawText(text: string, x: number, y: number, maxWidth?: number): void {
         this.engine.drawText(text, x, y, maxWidth);
     } // Function drawText()
@@ -557,7 +557,7 @@ export class SPainter extends SObject {
      * @param y         Y 坐标
      * @param width     宽度
      * @param height    高度
-    */
+     */
     drawImage(
         img: CanvasImageSource,
         x: number,
@@ -572,7 +572,7 @@ export class SPainter extends SObject {
      * painter 转实现 view 象素
      *
      * @param p       绘制坐标
-    */
+     */
     toPx(p: number): number {
         return p / this.engine.state.matrix.a;
     } // Function painterToView()
@@ -582,7 +582,7 @@ export class SPainter extends SObject {
      *
      * @param text    文本字符
      * @return 文本所占长度像素
-    */
+     */
     textWidth(text: string): number {
         return this.engine.textWidth(text);
     }
@@ -592,7 +592,7 @@ export class SPainter extends SObject {
      *
      * @param line    线段
      * @param style   末端样式
-    */
+     */
     drawArrowLine(line: SLine, style?: SArrow): void;
 
     /**
@@ -601,7 +601,7 @@ export class SPainter extends SObject {
      * @param p1      启点坐标
      * @param p2      终点坐标
      * @param style   末端样式
-    */
+     */
     drawArrowLine(p1: SPoint, p2: SPoint, style?: SArrow): void;
 
     /**
@@ -612,7 +612,7 @@ export class SPainter extends SObject {
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
      * @param style   末端样式
-    */
+     */
     drawArrowLine(
         x1: number,
         y1: number,
@@ -629,7 +629,7 @@ export class SPainter extends SObject {
      * @param x2  终点 X 坐标
      * @param y2  终点 Y 坐标
      * @param st  线段两端样式
-    */
+     */
     drawArrowLine(
         x1: number | SPoint | SLine,
         y1?: number | SPoint | SArrow,
@@ -689,7 +689,7 @@ export class SPainter extends SObject {
      *
      * @param line    要加末端样式的线段
      * @param isEnd   是否为结束位置
-    */
+     */
     private drawBasicArrow(line: SLine, isEnd: boolean = true): void {
         // 定义箭头长度
         const d = this.toPx(10);
@@ -728,7 +728,7 @@ export class SPainter extends SObject {
      *
      * @param line    要加末端样式的线段
      * @param isEnd   是否为结束位置
-    */
+     */
     private drawTriangleArrow(line: SLine, isEnd: boolean = true): void {
         // 定义箭头长度
         const d = this.toPx(10);
@@ -767,7 +767,7 @@ export class SPainter extends SObject {
      *
      * @param line    要加末端样式的线段
      * @param isEnd   是否为结束位置
-    */
+     */
     private drawDiamondArrow(line: SLine, isEnd: boolean = true): void {
         // 定义箭头长度
         const d = this.toPx(5);
@@ -808,7 +808,7 @@ export class SPainter extends SObject {
      *
      * @param line    要加末端样式的线段
      * @param isEnd   是否为结束位置
-    */
+     */
     private drawSquareArrow(line: SLine, isEnd: boolean = true): void {
         // 定义箭头长度
         const d = this.toPx(5);
@@ -846,7 +846,7 @@ export class SPainter extends SObject {
      *
      * @param line    要加末端样式的线段
      * @param isEnd   是否为结束位置
-    */
+     */
     private drawCircleArrow(line: SLine, isEnd: boolean = true): void {
         // 定义箭头长度
         const d = this.toPx(5);

+ 12 - 12
persagy-web-draw/src/SPath.ts

@@ -41,7 +41,7 @@ export class SPath {
      *
      * @param cmd         命令
      * @param args        命令参数
-    */
+     */
     private addCommand(cmd: string, ...args: number[]): void {
         this.cmdList.push({ command: cmd, args: args });
     } // Function addCommand()
@@ -50,14 +50,14 @@ export class SPath {
      * 添加一条新路径到对当前路径。
      *
      * @param path  路径对象
-    */
+     */
     addPath(path: SPath): void {
         this.cmdList = this.cmdList.concat(path.cmdList);
     } // Function addPath()
 
     /**
      * 使笔点返回到当前子路径的起始点。它尝试从当前点到起始点绘制一条直线。 如果图形已经是封闭的或者只有一个点,那么此函数不会做任何操作。
-    */
+     */
     closePath(): void {
         this.addCommand("Z");
     } // Function closePath()
@@ -67,7 +67,7 @@ export class SPath {
      *
      * @param x       X 坐标
      * @param y       Y 坐标
-    */
+     */
     moveTo(x: number, y: number): void {
         this.addCommand("M", x, y);
     } // Function moveTo()
@@ -77,7 +77,7 @@ export class SPath {
      *
      * @param x       X 坐标
      * @param y       Y 坐标
-    */
+     */
     lineTo(x: number, y: number): void {
         this.addCommand("L", x, y);
     } // Function lineTo()
@@ -91,7 +91,7 @@ export class SPath {
      * @param startAngle      开始角度
      * @param endAngle        结束角度
      * @param anticlockwise   是否逆时针绘制( 1 是, 0 不是)
-    */
+     */
     arc(
         x: number,
         y: number,
@@ -119,7 +119,7 @@ export class SPath {
      * @param x2        点 2 的 x 坐标
      * @param y2        点 1 的 y 坐标
      * @param radius    半径
-    */
+     */
     arcTo(
         x1: number,
         y1: number,
@@ -137,7 +137,7 @@ export class SPath {
      * @param cp1y    控制点 Y 坐标
      * @param x       结束点 X 坐标
      * @param y       结束点 Y 坐标
-    */
+     */
     quadraticCurveTo(cp1x: number, cp1y: number, x: number, y: number): void {
         this.addCommand("Q", cp1x, cp1y, x, y);
     } // Function quadraticCurveTo()
@@ -151,7 +151,7 @@ export class SPath {
      * @param cp2y    结束点控制点 Y 坐标
      * @param x       结束点 X 坐标
      * @param y       结束点 Y 坐标
-    */
+     */
     bezierCurveTo(
         cp1x: number,
         cp1y: number,
@@ -170,7 +170,7 @@ export class SPath {
      * @param cy          圆点 Y 坐标
      * @param rx          水平半径
      * @param ry          垂直半径
-    */
+     */
     ellipse(cx: number, cy: number, rx: number, ry: number): void {
         this.addCommand("Ellipse", cx, cy, rx, ry);
     } // Function ellipse()
@@ -182,7 +182,7 @@ export class SPath {
      * @param y           Y 坐标
      * @param w           宽度
      * @param h           高度
-    */
+     */
     rect(x: number, y: number, w: number, h: number): void {
         this.addCommand("M", x, y);
         this.addCommand("L", x + w, y);
@@ -195,7 +195,7 @@ export class SPath {
      * 添加多边形
      *
      * @param pList   点集数组
-    */
+     */
     polygon(pList: SPoint[]): void {
         if (pList.length > 2) {
             this.addCommand("M", pList[0].x, pList[0].y);

+ 4 - 4
persagy-web-draw/src/SPen.ts

@@ -59,14 +59,14 @@ export class SPen {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param pen   画笔
-    */
+     */
     constructor(pen: SPen);
 
     /**
@@ -74,7 +74,7 @@ export class SPen {
      *
      * @param color       颜色
      * @param lineWidth   线宽
-    */
+     */
     constructor(color: SColor, lineWidth?: number);
 
     /**
@@ -82,7 +82,7 @@ export class SPen {
      *
      * @param color       颜色 | 画笔
      * @param lineWidth   线宽
-    */
+     */
     constructor(color?: SColor | SPen, lineWidth?: number) {
         if (color == undefined) {
             return;

+ 5 - 5
persagy-web-draw/src/SRadialGradient.ts

@@ -44,7 +44,7 @@ export class SRadialGradient extends SGradient {
      * @param r1      开始圆形半径
      * @param end     结束圆形坐标
      * @param r2      结束圆形半径
-    */
+     */
     constructor(start: SPoint, r1: number, end: SPoint, r2: number);
 
     /**
@@ -56,7 +56,7 @@ export class SRadialGradient extends SGradient {
      * @param x2      结束圆形 X 坐标
      * @param y2      结束圆形 Y 坐标
      * @param r2      结束圆形半径
-    */
+     */
     constructor(
         x1: number,
         y1: number,
@@ -75,7 +75,7 @@ export class SRadialGradient extends SGradient {
      * @param x2      结束圆形 X 坐标 | 结束圆形半径
      * @param y2      结束圆形 Y 坐标
      * @param r2      结束圆形半径
-    */
+     */
     constructor(
         x1: number | SPoint,
         y1: number,
@@ -101,12 +101,12 @@ export class SRadialGradient extends SGradient {
     /**
      * 转为字符串保存
      *
-    */
+     */
     value(): string {
         let str = `SRadialGradient{`;
         str += `${this.x1},${this.y1},${this.r1};`;
         str += `${this.x2},${this.y2},${this.r2};`;
-        this.stopList.forEach(t => {
+        this.stopList.forEach((t): void => {
             str += `${t.pos},${t.color.value};`;
         });
         return `${str}}`;

+ 4 - 4
persagy-web-draw/src/SShadow.ts

@@ -43,14 +43,14 @@ export class SShadow {
 
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param shadow    阴影画刷
-    */
+     */
     constructor(shadow: SShadow);
 
     /**
@@ -58,7 +58,7 @@ export class SShadow {
      *
      * @param blur    扩散距离
      * @param color   颜色
-    */
+     */
     constructor(blur: number, color: SColor);
 
     /**
@@ -66,7 +66,7 @@ export class SShadow {
      *
      * @param blur    阴影|扩散距离
      * @param color   阴影颜色
-    */
+     */
     constructor(blur?: number | SShadow, color?: SColor) {
         if (blur == undefined) {
             return;

+ 41 - 41
persagy-web-draw/src/engines/SCanvasPaintEngine.ts

@@ -70,7 +70,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制引擎类型
      *
      * @return 返回 Canvas 绘制引擎类型
-    */
+     */
     get type(): SPaintEngineType {
         return SPaintEngineType.Canvas;
     } // Get type
@@ -81,7 +81,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 构造函数
      *
      * @param canvas    canvas对象
-    */
+     */
     constructor(canvas: CanvasRenderingContext2D) {
         super();
         this._canvas = canvas;
@@ -96,7 +96,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 清空矩形区域
      *
      * @param rect  矩形
-    */
+     */
     clearRect(rect: SRect): void {
         this.setMatrix();
         this._canvas.clearRect(rect.x, rect.y, rect.width, rect.height);
@@ -106,9 +106,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制矩形
      *
      * @param rect  矩形
-    */
+     */
     drawRect(rect: SRect): void {
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.rect(rect.x, rect.y, rect.width, rect.height);
             this._canvas.stroke();
@@ -122,9 +122,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param cx    圆心 x 坐标
      * @param cy    圆心 y 坐标
      * @param r     圆半径
-    */
+     */
     drawCircle(cx: number, cy: number, r: number): void {
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.arc(cx, cy, r, 0, 2 * Math.PI, true);
             this._canvas.fill();
@@ -139,9 +139,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param cy    圆点 Y 坐标
      * @param rx    水平半径
      * @param ry    垂直半径
-    */
+     */
     drawEllipse(cx: number, cy: number, rx: number, ry: number): void {
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.ellipse(cx, cy, rx, ry, 0, 0, 2 * Math.PI, true);
             this._canvas.fill();
@@ -153,9 +153,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制线段
      *
      * @param line  线段
-    */
+     */
     drawLine(line: SLine): void {
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.moveTo(line.x1, line.y1);
             this._canvas.lineTo(line.x2, line.y2);
@@ -167,14 +167,14 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制折线
      *
      * @param points    折线折点
-    */
+     */
     drawPolyline(points: SPoint[]): void {
         // 折线至少要有2个节点
         if (points.length < 2) {
             return;
         }
 
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.moveTo(points[0].x, points[0].y);
             for (let p of points) {
@@ -188,14 +188,14 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制多边形
      *
      * @param points    多边形顶点
-    */
+     */
     drawPolygon(points: SPoint[]): void {
         // 多边形至少要有3个节点
         if (points.length < 3) {
             return;
         }
 
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.moveTo(points[0].x, points[0].y);
             for (let p of points) {
@@ -212,9 +212,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 绘制路径
      *
      * @param path  路径
-    */
+     */
     drawPath(path: SPath): void {
-        this.init(() => {
+        this.init((): void => {
             this.drawWay(path);
         });
     } // Function drawPath()
@@ -226,9 +226,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param x         X 坐标
      * @param y         Y 坐标
      * @param maxWidth  最大宽度
-    */
+     */
     drawText(text: string, x: number, y: number, maxWidth?: number): void {
-        this.init(() => {
+        this.init((): void => {
             this.setFont();
             if (maxWidth == undefined) {
                 this._canvas.fillText(text, x, y);
@@ -246,7 +246,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param y         Y 坐标
      * @param width     宽度
      * @param height    高度
-    */
+     */
     drawImage(
         img: CanvasImageSource,
         x: number,
@@ -254,7 +254,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
         width?: number,
         height?: number
     ): void {
-        this.init(() => {
+        this.init((): void => {
             try {
                 if (width == undefined) {
                     this._canvas.drawImage(img, x, y);
@@ -272,7 +272,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      *
      * @param text  预测的文本
      * @return 文本长度像素
-    */
+     */
     textWidth(text: string): number {
         return this._canvas.measureText(text).width;
     } // Function textWidth()
@@ -284,7 +284,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param cp1y    控制点 Y 坐标
      * @param x       结束点 X 坐标
      * @param y       结束点 Y 坐标
-    */
+     */
     quadraticCurveTo(cp1x: number, cp1y: number, x: number, y: number): void {
         this._canvas.quadraticCurveTo(cp1x, cp1y, x, y);
     } // Function quadraticCurveTo()
@@ -298,7 +298,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * @param cp2y    结束点控制点 Y 坐标
      * @param x       结束点X坐标
      * @param y       结束点Y坐标
-    */
+     */
     bezierCurveTo(
         cp1x: number,
         cp1y: number,
@@ -315,9 +315,9 @@ export class SCanvasPaintEngine extends SPaintEngine {
      *
      * @param rect    矩形
      * @param r       导角半径
-    */
+     */
     drawRoundRect(rect: SRect, r: number): void {
-        this.init(() => {
+        this.init((): void => {
             this._canvas.beginPath();
             this._canvas.moveTo(rect.x, rect.y + r);
             this._canvas.lineTo(rect.x, rect.bottom - r);
@@ -352,7 +352,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 设置字体
      *
      * @param font  字体
-    */
+     */
     changeFont(font: SFont): void {
         this._canvas.font = `${font.size}px ${font.name}`;
         this.setTextAlign(font.textAlign);
@@ -367,7 +367,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 设置整体绘制状态
      *
      * @param fn    绘制图形的具体函数
-    */
+     */
     private init(fn: Function): void {
         this.setMatrix();
         this.setPen();
@@ -380,7 +380,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置画笔
-    */
+     */
     private setPen(): void {
         //this._canvas.strokeStyle = this.state.pen.color.value;
         this._canvas.strokeStyle = `rgba(${this.state.pen.color.red}, ${
@@ -406,7 +406,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 线段端点风格
      *
      * @param style     风格
-    */
+     */
     private setLineCapStyle(style: SLineCapStyle): void {
         if (style == undefined) return;
         if (style == SLineCapStyle.Round) {
@@ -420,7 +420,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置画刷
-    */
+     */
     private setBrush(): void {
         // this._canvas.fillStyle = this.state.brush.color.value;
         if (this.state.brush.type == SBrushType.Color) {
@@ -465,7 +465,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置融合
-    */
+     */
     private setComposite(): void {
         this._canvas.globalCompositeOperation =
             SCanvasPaintEngine.gcoList[this.state._composite];
@@ -473,7 +473,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置阴影
-    */
+     */
     private setShadow(): void {
         if (this.state.shadow.shadowBlur > 0 && this.state.shadow.shadowColor) {
             this._canvas.shadowBlur = this.state.shadow.shadowBlur;
@@ -494,7 +494,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置字体
-    */
+     */
     private setFont(): void {
         this._canvas.font = `${this.state.font.size}px ${this.state.font.name}`;
         this.setTextAlign(this.state.font.textAlign);
@@ -506,7 +506,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 文本对齐选项
      *
      * @param value     对齐方式
-    */
+     */
     private setTextAlign(value: STextAlign): void {
         if (value == undefined) {
             return;
@@ -528,7 +528,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 设置文本基线对齐选项
      *
      * @param value     对齐方式
-    */
+     */
     private setBaseLine(value: STextBaseLine): void {
         if (value == undefined) {
             return;
@@ -552,7 +552,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
      * 设置文本方向选项
      *
      * @param value     文本方向
-    */
+     */
     private setTextDirection(value: STextDirection): void {
         if (value == undefined) {
             return;
@@ -568,7 +568,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
 
     /**
      * 设置变型矩阵
-    */
+     */
     private setMatrix(): void {
         this._canvas.setTransform(
             this.state.matrix.a,
@@ -583,7 +583,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
     /**
      * 设置裁剪路径
      *
-    */
+     */
     setClip(): void {
         if (this.state.clip) {
             this.drawWay(this.state.clip);
@@ -594,10 +594,10 @@ export class SCanvasPaintEngine extends SPaintEngine {
     /**
      * 绘制路径
      *
-    */
+     */
     private drawWay(path: SPath): void {
         this._canvas.beginPath();
-        path.cmdList.forEach(cmd => {
+        path.cmdList.forEach((cmd): void => {
             if (cmd.command == "L") {
                 this._canvas.lineTo(cmd.args[0], cmd.args[1]);
             } else if (cmd.command == "M") {

+ 21 - 21
persagy-web-draw/src/engines/SPaintEngine.ts

@@ -51,7 +51,7 @@ export abstract class SPaintEngine {
 
     /**
      * 保存 painter 状态
-    */
+     */
     save(): void {
         let state = new SPaintState(this.state);
         this.stateStack.push(state);
@@ -59,7 +59,7 @@ export abstract class SPaintEngine {
 
     /**
      * 恢复 painter 状态
-    */
+     */
     restore(): void {
         if (this.stateStack.length > 0) {
             this.state = this.stateStack.pop() as SPaintState;
@@ -73,7 +73,7 @@ export abstract class SPaintEngine {
      *
      * @param x     X 轴方向平移
      * @param y     Y 辆方向平移
-    */
+     */
     translate(x: number, y: number): void {
         this.state.matrix.translate(x, y);
     } // Function translate()
@@ -83,7 +83,7 @@ export abstract class SPaintEngine {
      *
      * @param x     X 轴方向缩放
      * @param y     Y 轴方向缩放
-    */
+     */
     scale(x: number, y: number): void {
         this.state.matrix.scale(x, y);
     } // Function scale()
@@ -92,7 +92,7 @@ export abstract class SPaintEngine {
      * 旋转
      *
      * @param angle     旋转角度(单位弧度)
-    */
+     */
     rotate(angle: number): void {
         this.state.matrix.rotate(0, 0, angle);
     } // Function rotate()
@@ -106,7 +106,7 @@ export abstract class SPaintEngine {
      * @param m22   竖直方向的缩放
      * @param dx    水平方向的移动
      * @param dy    竖直方向的移动
-    */
+     */
     transform(
         m11: number,
         m12: number,
@@ -125,7 +125,7 @@ export abstract class SPaintEngine {
      * @param m22   竖直方向的缩放
      * @param dx    水平方向的移动
      * @param dy    竖直方向的移动
-    */
+     */
     setTransform(
         m11: number,
         m12: number,
@@ -137,7 +137,7 @@ export abstract class SPaintEngine {
 
     /**
      * 重置当前变形为单位矩阵。等价于调用 setTransform(1, 0, 0, 1, 0, 0)
-    */
+     */
     resetTransform(): void {
         this.state.matrix = new SMatrix();
     } // Function resetTransform()
@@ -149,14 +149,14 @@ export abstract class SPaintEngine {
      * 清空矩形区域
      *
      * @param rect  矩形
-    */
+     */
     abstract clearRect(rect: SRect): void;
 
     /**
      * 绘制空心矩形
      *
      * @param rect  矩形
-    */
+     */
     abstract drawRect(rect: SRect): void;
 
     /**
@@ -165,7 +165,7 @@ export abstract class SPaintEngine {
      * @param cx    圆心 X 坐标
      * @param cy    圆心 Y 坐标
      * @param r     圆半径
-    */
+     */
     abstract drawCircle(cx: number, cy: number, r: number): void;
 
     /**
@@ -175,35 +175,35 @@ export abstract class SPaintEngine {
      * @param cy    圆点 Y 坐标
      * @param rx    水平半径
      * @param ry    垂直半径
-    */
+     */
     abstract drawEllipse(cx: number, cy: number, rx: number, ry: number): void;
 
     /**
      * 绘制线段
      *
      * @param line  线段
-    */
+     */
     abstract drawLine(line: SLine): void;
 
     /**
      * 绘制折线
      *
      * @param points    折线折点
-    */
+     */
     abstract drawPolyline(points: SPoint[]): void;
 
     /**
      * 绘制多边形
      *
      * @param points    多边形顶点
-    */
+     */
     abstract drawPolygon(points: SPoint[]): void;
 
     /**
      * 绘制路径
      *
      * @param path  路径
-    */
+     */
     abstract drawPath(path: SPath): void;
 
     /**
@@ -213,7 +213,7 @@ export abstract class SPaintEngine {
      * @param x             X 坐标
      * @param y             Y 坐标
      * @param maxWidth      最大宽度
-    */
+     */
     abstract drawText(
         text: string,
         x: number,
@@ -229,7 +229,7 @@ export abstract class SPaintEngine {
      * @param y         Y 坐标
      * @param width     宽度
      * @param height    高度
-    */
+     */
     abstract drawImage(
         img: CanvasImageSource,
         x: number,
@@ -242,14 +242,14 @@ export abstract class SPaintEngine {
      * 预测量文本宽度
      *
      * @param text  预测的文本
-    */
+     */
     abstract textWidth(text: string): number;
 
     /**
      * 修改字体
      *
      * @param font  字体
-    */
+     */
     abstract changeFont(font: SFont): void;
 
     /**
@@ -257,6 +257,6 @@ export abstract class SPaintEngine {
      *
      * @param rect    矩形
      * @param r       导角半径
-    */
+     */
     abstract drawRoundRect(rect: SRect, r: number): void;
 } // class SPaintEngine

+ 1 - 1
persagy-web-draw/src/engines/SPaintState.ts

@@ -95,7 +95,7 @@ export class SPaintState {
      * 构造函数
      *
      * @param state     绘制状态
-    */
+     */
     constructor(state?: SPaintState) {
         if (state != undefined) {
             this.pen = new SPen(state.pen);

+ 18 - 18
persagy-web-draw/src/engines/SSvgPaintEngine.ts

@@ -57,7 +57,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 绘制引擎类型
      *
      * @return 返回 SVG 绘制引擎类型
-    */
+     */
     get type(): SPaintEngineType {
         return SPaintEngineType.SVG;
     } // Get type
@@ -69,7 +69,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      *
      * @param w     宽度
      * @param h     高度
-    */
+     */
     constructor(w: number, h: number) {
         super();
         this.width = w;
@@ -92,7 +92,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 转 svg 图像
      *
      * @return svg图像
-    */
+     */
     toSvg(): string {
         return this._builder.toString("\n") + "</svg>\n";
     } // Function toSvg()
@@ -104,14 +104,14 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 清空矩形区域
      *
      * @param rect  矩形
-    */
+     */
     clearRect(rect: SRect): void {} // Function clearRect()
 
     /**
      * 绘制空心矩形
      *
      * @param rect  矩形
-    */
+     */
     drawRect(rect: SRect): void {
         this._builder.append(
             // eslint-disable-next-line max-len
@@ -127,7 +127,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * @param cx    圆心 X 坐标
      * @param cy    圆心 Y 坐标
      * @param r     圆半径
-    */
+     */
     drawCircle(cx: number, cy: number, r: number): void {
         this._builder.append(
             `<circle cx="${cx}" cy="${cy}" r="${r}" ${this.getStyle(
@@ -145,7 +145,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * @param cy    圆点 Y 坐标
      * @param rx    水平半径
      * @param ry    垂直半径
-    */
+     */
     drawEllipse(cx: number, cy: number, rx: number, ry: number): void {
         this._builder.append(
             `<ellipse  cx="${cx}" cy="${cy}" rx="${rx}" ry="${ry}" ${this.getStyle(
@@ -160,7 +160,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 绘制线段
      *
      * @param line  线段
-    */
+     */
     drawLine(line: SLine): void {
         this._builder.append(
             `<line x1="${line.x1}" y1="${line.y1}" x2="${line.x2}" y2="${
@@ -173,7 +173,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 绘制折线
      *
      * @param points    折线折点
-    */
+     */
     drawPolyline(points: SPoint[]): void {
         this._builder.append(
             `<polyline points="${SSvgPaintEngine.pointsToStr(
@@ -186,7 +186,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 绘制多边形
      *
      * @param points    多边形顶点
-    */
+     */
     drawPolygon(points: SPoint[]): void {
         this._builder.append(
             `<polygon points="${SSvgPaintEngine.pointsToStr(
@@ -199,7 +199,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 绘制路径
      *
      * @param path  路径
-    */
+     */
     drawPath(path: SPath): void {
         // this._builder.append(
         //     `<path d="${path.svgPath()}" ${this.getStyle(
@@ -217,7 +217,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * @param x           X 坐标
      * @param y           Y 坐标
      * @param maxWidth    最大宽度
-    */
+     */
     drawText(text: string, x: number, y: number, maxWidth?: number): void {
         this._builder.append(
             `<text x="${x}" y="${y}" ${this.getStyle(
@@ -236,7 +236,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      * @param y         Y 坐标
      * @param width     宽度
      * @param height    高度
-    */
+     */
     drawImage(
         img: CanvasImageSource,
         x: number,
@@ -252,7 +252,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      *
      * @param text  预测的文本
      * @return 文本长度像素
-    */
+     */
     textWidth(text: string): number {
         return 0;
     } // Function textWidth()
@@ -261,14 +261,14 @@ export class SSvgPaintEngine extends SPaintEngine {
      * 设置字体
      *
      * @param font  字体
-    */
+     */
     changeFont(font: SFont): void {} // Function changeFont()
 
     /**
      * 获得svg需要的变形信息
      *
      * @return 变换信息
-    */
+     */
     private getSvgMatrix(): string {
         // eslint-disable-next-line max-len
         return `transform="matrix(${this.state.matrix.a}, ${this.state.matrix.b}, ${this.state.matrix.c}, ${this.state.matrix.d}, ${this.state.matrix.e}, ${this.state.matrix.f})"`;
@@ -279,7 +279,7 @@ export class SSvgPaintEngine extends SPaintEngine {
      *
      * @param points    被转换的点
      * @return 点列表字符串
-    */
+     */
     private static pointsToStr(points: SPoint[]): string {
         let strBuilder = new SStringBuilder();
         for (let p of points) {
@@ -334,6 +334,6 @@ export class SSvgPaintEngine extends SPaintEngine {
 
     /**
      * 绘制圆角矩形
-    */
+     */
     drawRoundRect(): void {} // Function drawRoundRect()
 } // Class SSvgPaintEngine

+ 9 - 9
persagy-web-draw/src/types/SLine.ts

@@ -84,14 +84,14 @@ export class SLine {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param line    线段
-    */
+     */
     constructor(line: SLine);
 
     /**
@@ -99,7 +99,7 @@ export class SLine {
      *
      * @param p1      启点坐标
      * @param p2      终点坐标
-    */
+     */
     constructor(p1: SPoint, p2: SPoint);
 
     /**
@@ -109,7 +109,7 @@ export class SLine {
      * @param y1      启点 Y 坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     constructor(x1: number, y1: number, x2: number, y2: number);
 
     /**
@@ -119,7 +119,7 @@ export class SLine {
      * @param y1      启点 Y 坐标 | 终点坐标
      * @param x2      终点 X 坐标
      * @param y2      终点 Y 坐标
-    */
+     */
     constructor(
         x1?: number | SPoint | SLine,
         y1?: number | SPoint,
@@ -145,7 +145,7 @@ export class SLine {
      * 判断线段是否为空
      *
      * @return 如果线段长度为零,返回 true,否则返回 false。
-    */
+     */
     isNull(): boolean {
         return (
             Math.abs(this.p1.x - this.p2.x) + Math.abs(this.p1.y - this.p2.y) <
@@ -157,7 +157,7 @@ export class SLine {
      * 返回线段的中点
      *
      * @return 线段的中点
-    */
+     */
     center(): SPoint {
         return new SPoint(
             (this.p1.x + this.p2.x) / 2,
@@ -170,7 +170,7 @@ export class SLine {
      *
      * @param dx    X 轴方向平衡量
      * @param dy    Y 轴方向平衡量
-    */
+     */
     translate(dx: number, dy: number): void {
         this.p1.x += dx;
         this.p2.x += dx;
@@ -184,7 +184,7 @@ export class SLine {
      * @param dx    X 轴方向平衡量
      * @param dy    Y 轴方向平衡量
      * @return 平移后的线段
-    */
+     */
     translated(dx: number, dy: number): SLine {
         return new SLine(
             this.p1.x + dx,

+ 10 - 10
persagy-web-draw/src/types/SPoint.ts

@@ -43,14 +43,14 @@ export class SPoint {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param p     点
-    */
+     */
     constructor(p: SPoint);
 
     /**
@@ -58,7 +58,7 @@ export class SPoint {
      *
      * @param x     X 轴坐标
      * @param y     Y 轴坐标
-    */
+     */
     constructor(x: number, y: number);
 
     /**
@@ -66,7 +66,7 @@ export class SPoint {
      *
      * @param x     X 轴坐标 | 点 | undefined
      * @param y     Y 轴坐标
-    */
+     */
     constructor(x?: number | SPoint, y?: number) {
         if (x == undefined) {
             this.x = 0;
@@ -84,7 +84,7 @@ export class SPoint {
      * 设置点
      *
      * @param pos   点
-    */
+     */
     setPoint(pos: SPoint): void;
 
     /**
@@ -92,7 +92,7 @@ export class SPoint {
      *
      * @param x     X 轴坐标
      * @param y     Y 轴坐标
-    */
+     */
     setPoint(x: number, y: number): void;
 
     /**
@@ -100,7 +100,7 @@ export class SPoint {
      *
      * @param x     X 轴坐标 | 点
      * @param y     Y 轴坐标
-    */
+     */
     setPoint(x: number | SPoint, y?: number): void {
         if (x instanceof SPoint) {
             this.x = x.x;
@@ -115,7 +115,7 @@ export class SPoint {
      * 布线长度
      *
      * @return 返回 |X| + |Y|
-    */
+     */
     manhattanLength(): number {
         // noinspection JSSuspiciousNameCombination
         return Math.abs(this.x) + Math.abs(this.y);
@@ -125,7 +125,7 @@ export class SPoint {
      * 返回点矩阵变换后的值
      *
      * @return 变换后的点
-    */
+     */
     matrixTransform(mat: SMatrix): SPoint {
         const p = new SPoint();
         p.x = this.x * mat.a + this.y * mat.b + mat.e;
@@ -138,7 +138,7 @@ export class SPoint {
      *
      * @param dx    X 轴位移
      * @param dy    Y 轴位移
-    */
+     */
     translate(dx: number, dy: number): void {
         this.x += dx;
         this.y += dy;

+ 19 - 19
persagy-web-draw/src/types/SRect.ts

@@ -108,7 +108,7 @@ export class SRect {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
@@ -116,7 +116,7 @@ export class SRect {
      *
      * @param leftTop       左上角坐标
      * @param rightBottom   右下角坐标
-    */
+     */
     constructor(leftTop: SPoint, rightBottom: SPoint);
 
     /**
@@ -124,7 +124,7 @@ export class SRect {
      *
      * @param leftTop   左上角坐标
      * @param size      大小
-    */
+     */
     constructor(leftTop: SPoint, size: SSize);
 
     /**
@@ -134,7 +134,7 @@ export class SRect {
      * @param y         Y 轴坐标
      * @param width     宽度
      * @param height    高度
-    */
+     */
     constructor(x: number, y: number, width: number, height: number);
 
     /**
@@ -144,7 +144,7 @@ export class SRect {
      * @param y         Y 轴坐标 | 右下角坐标 | 大小
      * @param width     宽度
      * @param height    高度
-    */
+     */
     constructor(
         x?: number | SPoint,
         y?: number | SPoint | SSize,
@@ -176,7 +176,7 @@ export class SRect {
      * @return width 或 height 小于等于 0,返回 true,否则返回 false。
      *
      * @see isNull(), isValid()
-    */
+     */
     isEmpty(): boolean {
         return this.size.isEmpty();
     } // Function isEmpty()
@@ -187,7 +187,7 @@ export class SRect {
      * @return width 与 height 都等于 0,返回 true,否则返回 false。
      *
      * @see isEmpty(), isValid()
-    */
+     */
     isNull(): boolean {
         return this.size.isNull();
     } // Function isNull()
@@ -198,7 +198,7 @@ export class SRect {
      * @return width 与 height 都大于 0,返回 true,否则返回 false。
      *
      * @see isEmpty(), isNull()
-    */
+     */
     isValid(): boolean {
         return this.size.isValid();
     } // Function isValid()
@@ -207,7 +207,7 @@ export class SRect {
      * 是否包含另一个矩阵
      *
      * @return true     包含
-    */
+     */
     isIn(rect: SRect): boolean {
         return (
             this.left <= rect.left &&
@@ -223,7 +223,7 @@ export class SRect {
      * @param x       X 坐标
      * @param y       Y 坐标
      * @return 如果包含返回 true, 否则返回 false
-    */
+     */
     contains(x: number, y: number): boolean {
         return (
             x >= this.left &&
@@ -237,7 +237,7 @@ export class SRect {
      * 计算中心点
      *
      * @return 中心点坐标
-    */
+     */
     center(): SPoint {
         return new SPoint(
             this.x + this.width / 2.0,
@@ -250,7 +250,7 @@ export class SRect {
      *
      * @param dx    X 轴位移
      * @param dy    Y 轴位移
-    */
+     */
     translate(dx: number, dy: number): void {
         this.x += dx;
         this.y += dy;
@@ -262,7 +262,7 @@ export class SRect {
      * @param dx    X 轴位移
      * @param dy    Y 轴位移
      * @return 移动后的矩形
-    */
+     */
     translated(dx: number, dy: number): SRect {
         return new SRect(this.x + dx, this.y + dy, this.width, this.height);
     } // Function translated()
@@ -274,7 +274,7 @@ export class SRect {
      * @param dy          Y 轴位移
      * @param dw          宽度调整
      * @param dh          高度调整
-    */
+     */
     adjust(dx: number, dy: number, dw: number, dh: number): void {
         this.x += dx;
         this.y += dy;
@@ -290,7 +290,7 @@ export class SRect {
      * @param dw          宽度调整
      * @param dh          高度调整
      * @return 调整后的矩形
-    */
+     */
     adjusted(dx: number, dy: number, dw: number, dh: number): SRect {
         return new SRect(
             this.x + dx,
@@ -304,7 +304,7 @@ export class SRect {
      * 合并矩形
      *
      * @param rect    合并的矩形
-    */
+     */
     union(rect: SRect): void {
         let r = this.unioned(rect);
         this.x = r.x;
@@ -318,7 +318,7 @@ export class SRect {
      *
      * @param rect    合并的矩形
      * @return 返回合并后的矩形
-    */
+     */
     unioned(rect: SRect): SRect {
         let left = Math.min(this.left, rect.left);
         let top = Math.min(this.top, rect.top);
@@ -332,7 +332,7 @@ export class SRect {
      *
      * @param rect    合并的矩形
      * @return 返回合并后的矩形
-    */
+     */
     intersected(rect: SRect): SRect {
         let minX = this.left < rect.left ? this.left : rect.left;
         let minY = this.top < rect.top ? this.top : rect.top;
@@ -351,7 +351,7 @@ export class SRect {
      * 相交矩形
      *
      * @param rect    合并的矩形
-    */
+     */
     intersect(rect: SRect): SRect {
         let left = Math.min(this.left, rect.left);
         let top = Math.min(this.top, rect.top);

+ 11 - 11
persagy-web-draw/src/types/SSize.ts

@@ -43,14 +43,14 @@ export class SSize {
     // 构造函数
     /**
      * 构造函数
-    */
+     */
     constructor();
 
     /**
      * 构造函数
      *
      * @param size    大小
-    */
+     */
     constructor(size: SSize);
 
     /**
@@ -58,7 +58,7 @@ export class SSize {
      *
      * @param width   宽度
      * @param height  高度
-    */
+     */
     constructor(width: number, height: number);
 
     /**
@@ -66,7 +66,7 @@ export class SSize {
      *
      * @param width   宽度
      * @param height  高度
-    */
+     */
     constructor(width?: number | SSize, height?: number) {
         if (width == undefined) {
             this.width = 0;
@@ -88,7 +88,7 @@ export class SSize {
      * @return width 或 height 小于等于 0,返回 true,否则返回 false。
      *
      * @see isNull(), isValid()
-    */
+     */
     isEmpty(): boolean {
         return this.width <= 0 || this.height <= 0;
     } // Function isEmpty()
@@ -99,7 +99,7 @@ export class SSize {
      * @return width 与 height 都等于 0,返回 true,否则返回 false。
      *
      * @see isEmpty(), isValid()
-    */
+     */
     isNull(): boolean {
         return this.width == 0 && this.height == 0;
     } // Function isNull()
@@ -110,7 +110,7 @@ export class SSize {
      * @return width与 height 都大于 0,返回 true,否则返回 false。
      *
      * @see isEmpty(), isNull()
-    */
+     */
     isValid(): boolean {
         return this.width > 0 && this.height > 0;
     } // Function isValid()
@@ -121,7 +121,7 @@ export class SSize {
      * @param width       宽度
      * @param height      高度
      * @param mode        缩放模式
-    */
+     */
     scale(
         width: number,
         height: number,
@@ -139,7 +139,7 @@ export class SSize {
      * @param height      高度
      * @param mode        缩放模式
      * @return 缩放大小
-    */
+     */
     scaled(
         width: number,
         height: number,
@@ -167,7 +167,7 @@ export class SSize {
      * 互换 width 与 height
      *
      * @see transposed()
-    */
+     */
     transpose(): void {
         let size = this.transposed();
         this.width = size.width;
@@ -180,7 +180,7 @@ export class SSize {
      * @return 返回互换 width 与 height 的 SSize。
      *
      * @see transpose()
-    */
+     */
     transposed(): SSize {
         return new SSize(this.height, this.width);
     } // Function transposed()

+ 2 - 2
persagy-web-draw/src/utils/SPolygonUtil.ts

@@ -38,7 +38,7 @@ export class SPolygonUtil {
      * @param x           点的 x 坐标
      * @param y           点的 y 坐标
      * @param pointList   多边形顶点
-    */
+     */
     static pointIn(x: number, y: number, pointList: SPoint[]): boolean {
         let crossNum = 0;
         for (let i = 0; i < pointList.length; i++) {
@@ -73,7 +73,7 @@ export class SPolygonUtil {
      *
      * @param pointList   多边形顶点
      * @return 为负,顺时针;为正,逆时针;0,点在直线上。
-    */
+     */
     static clockDir(pointList: SPoint[]): number {
         if (pointList.length < 3) {
             return 0;