@visactor/vrender-kits
Version:
```typescript import { xxx } from '@visactor/vrender-kits'; ```
61 lines (55 loc) • 3.87 kB
JavaScript
;
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.DefaultCanvasSymbolPicker = void 0;
const vrender_core_1 = require("@visactor/vrender-core"), base_3d_picker_1 = require("../common/base-3d-picker");
let DefaultCanvasSymbolPicker = class extends base_3d_picker_1.Base3dPicker {
constructor(canvasRenderer) {
super(), this.canvasRenderer = canvasRenderer, this.type = "symbol", this.numberType = vrender_core_1.SYMBOL_NUMBER_TYPE;
}
contains(symbol, point, params) {
const {pickContext: pickContext} = null != params ? params : {};
if (!pickContext) return !1;
const parsedPath = symbol.getParsedPath();
if (!pickContext.camera) {
if (!symbol.AABBBounds.containsPoint(point)) return !1;
if (parsedPath.isSvg || "imprecise" === symbol.attribute.pickMode) return !0;
}
pickContext.highPerformanceSave();
const symbolAttribute = symbol.getGraphicTheme(), data = this.transform(symbol, symbolAttribute, pickContext), {x: x, y: y, z: z, lastModelMatrix: lastModelMatrix} = data;
let pickPoint = point;
if (pickContext.camera) {
pickPoint = point.clone();
const globalMatrix = symbol.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;
}
this.canvasRenderer.z = z;
let picked = !1;
return this.canvasRenderer.drawShape(symbol, pickContext, x, y, {}, null, ((context, symbolAttribute, themeAttribute) => !!picked || (picked = context.isPointInPath(pickPoint.x, pickPoint.y),
picked)), ((context, symbolAttribute, themeAttribute) => {
if (picked) return !0;
const lineWidth = symbolAttribute.lineWidth || themeAttribute.lineWidth, pickStrokeBuffer = symbolAttribute.pickStrokeBuffer || themeAttribute.pickStrokeBuffer, keepStrokeScale = symbolAttribute.keepStrokeScale || themeAttribute.keepStrokeScale;
return pickContext.lineWidth = keepStrokeScale ? lineWidth + pickStrokeBuffer : (0,
vrender_core_1.getScaledStroke)(pickContext, lineWidth + pickStrokeBuffer, pickContext.dpr),
picked = context.isPointInStroke(pickPoint.x, pickPoint.y), picked;
})), this.canvasRenderer.z = 0, pickContext.modelMatrix !== lastModelMatrix && vrender_core_1.mat4Allocate.free(pickContext.modelMatrix),
pickContext.modelMatrix = lastModelMatrix, pickContext.highPerformanceRestore(),
picked;
}
};
DefaultCanvasSymbolPicker = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0,
vrender_core_1.inject)(vrender_core_1.SymbolRender)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasSymbolPicker),
exports.DefaultCanvasSymbolPicker = DefaultCanvasSymbolPicker;
//# sourceMappingURL=symbol-picker.js.map