UNPKG

@visactor/vrender-kits

Version:

```typescript import { xxx } from '@visactor/vrender-kits'; ```

59 lines (53 loc) 3.79 kB
"use strict"; var __decorate = this && this.__decorate || function(decorators, target, key, desc) { var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r); return c > 3 && r && Object.defineProperty(target, key, r), r; }, __metadata = this && this.__metadata || function(k, v) { if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v); }, __param = this && this.__param || function(paramIndex, decorator) { return function(target, key) { decorator(target, key, paramIndex); }; }; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.DefaultCanvasTextPicker = void 0; const vrender_core_1 = require("@visactor/vrender-core"), base_3d_picker_1 = require("../common/base-3d-picker"); let DefaultCanvasTextPicker = class extends base_3d_picker_1.Base3dPicker { constructor(canvasRenderer) { super(), this.canvasRenderer = canvasRenderer, this.type = "text", this.numberType = vrender_core_1.TEXT_NUMBER_TYPE; } contains(text, point, params) { const {pickContext: pickContext} = null != params ? params : {}; if (!pickContext) return !1; const bounds = text.AABBBounds; if (!pickContext.camera) return !!bounds.containsPoint(point); pickContext.highPerformanceSave(); const textAttribute = text.getGraphicTheme(), {keepDirIn3d: keepDirIn3d = textAttribute.keepDirIn3d} = text.attribute, computed3dMatrix = !keepDirIn3d, data = this.transform(text, textAttribute, pickContext, computed3dMatrix), {x: x, y: y, z: z, lastModelMatrix: lastModelMatrix} = data; this.canvasRenderer.z = z; let pickPoint = point; if (pickContext.camera) { pickPoint = point.clone(); const globalMatrix = text.parent.globalTransMatrix; pickPoint.x = globalMatrix.a * point.x + globalMatrix.c * point.y + globalMatrix.e, pickPoint.y = globalMatrix.b * point.x + globalMatrix.d * point.y + globalMatrix.f; } let picked = !1; return this.canvasRenderer.drawShape(text, pickContext, x, y, {}, null, ((context, symbolAttribute, themeAttribute) => { if (picked) return !0; const {fontSize: fontSize = textAttribute.fontSize, textBaseline: textBaseline = textAttribute.textBaseline, textAlign: textAlign = textAttribute.textAlign} = text.attribute, bounds = text.AABBBounds, height = bounds.height(), width = bounds.width(), offsetY = (0, vrender_core_1.textLayoutOffsetY)(textBaseline, height, fontSize), offsetX = (0, vrender_core_1.textDrawOffsetX)(textAlign, width); return context.rect(offsetX + x, offsetY + y, width, height, z), picked = context.isPointInPath(pickPoint.x, pickPoint.y), picked; }), ((context, symbolAttribute, themeAttribute) => picked)), this.canvasRenderer.z = 0, pickContext.modelMatrix !== lastModelMatrix && vrender_core_1.mat4Allocate.free(pickContext.modelMatrix), pickContext.modelMatrix = lastModelMatrix, pickContext.highPerformanceRestore(), picked; } }; DefaultCanvasTextPicker = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0, vrender_core_1.inject)(vrender_core_1.TextRender)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasTextPicker), exports.DefaultCanvasTextPicker = DefaultCanvasTextPicker; //# sourceMappingURL=text-picker.js.map