/
vshmidt
/
label-studio
Обзор
Документация
Войти
/
vshmidt
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/libs/editor/src/tools/KeyPoint.js
57 строк
2 KB
Raul Martin
refactor: FIT-1144: remove fflag_fix_front_dev_3793_relative_coords_short (#9025)
05 янв 2026, 23:04
Не верифицирован
05 янв 2026, 23:04
099dc20
Код
Авторство
О чём код?
import { types } from "mobx-state-tree"; import BaseTool from "./Base"; import ToolMixin from "../mixins/Tool"; import { NodeViews } from "../components/Node/Node"; import { DrawingTool } from "../mixins/DrawingTool"; const _Tool = types .model("KeyPointTool", { default: types.optional(types.boolean, true), group: "segmentation", shortcut: "tool:key-point", smart: true, }) .views(() => ({ get tagTypes() { return { stateTypes: "keypointlabels", controlTagTypes: ["keypointlabels", "keypoint"], }; }, get viewTooltip() { return "Key Point"; }, get iconComponent() { return self.dynamic ? NodeViews.KeyPointRegionModel.altIcon : NodeViews.KeyPointRegionModel.icon; }, })) .actions((self) => ({ clickEv(ev, [x, y]) { if (!self.canStartDrawing()) return; if (!self.isAllowedInteraction(ev)) return; const c = self.control; if (c.type === "keypointlabels" && !c.isSelected) return; if (self.annotation.isReadOnly()) return; const keyPoint = self.createRegion({ ...self.control?.getSnappedPoint({ x, y, }), // strokeWidth is visual only, so it's in screen dimensions in config width: self.obj.canvasToInternalX(Number(c.strokewidth)), dynamic: self.dynamic, negative: self.dynamic && ev.altKey, }); keyPoint.setDrawing(false); keyPoint.notifyDrawingFinished(); }, })); const KeyPoint = types.compose(_Tool.name, ToolMixin, BaseTool, DrawingTool, _Tool); export { KeyPoint };