OptionaltestBboxStyle: TestBboxStyleугол в градусах
Protected_Protected_Protected_Protected_Высота
Protected_Protected_Protected_Protected_Родительская ячейка. Может быть только одна. Наличие его означает, что элемент в группе
Позиция всегда верхний левый угол
Тип линии
Protected_Ширина
разрешаем добавление новых label по dblclick.
угол в радианах
Стрелка в начале коннектора
Стрелка в конце коннектора
ProtectedcalculatedДочерние ячейки. Если массив не пуст, значит ячейка является группой
Название курсора, который задан в cursorCollection, который будет показываться при наведении на фигуру. Если пустая строка, будет показан станадартный, указанный в cursorName, если задан, standardCursor нужно выставить 'none'
Смещение кастомного курсора
Предназначен для расширения атрибутами
Применяется при драге с привязкой. Сначала изменяется это значение, и если выполняется условие привязки - меняется положение ячейки
Масштаб чертежа
Параметры элемента.
Значения нельзя мутировать. Для изменения значения используйте switchParam
Для получения значения getParamValue
Если имя параметра совпадает с именем поля элемента, то параметр будет автоматически обновляться из поля элемента. Если такое поведение нежелательно, то полностью переопределяйте updateParamValues
Для избежания конфликтов между именами можно использовать префикс для имени параметра, например "PAR_".
Если есть вероятность того, что параметр меняется извне, например контролом, и значение берется не из внутреннего поля элемента или его нужно вычислить, обновление параметра нужно прописать в updateParamValues
protected override updateParamValues(): void {
super.updateParamValues()
this.updateParamVal("angle", round(this.angle, true, 2))
}
Начальная точка
Уникальный идентификатор
Фигура с таким флагом будет редактироваться в TextEditor
Конечная точка
Имя библиотеки, которая породила этот элемент.
Цвет линии
ProtectedmagnetИмя. Отображается пользователю
ProtectedpointТочки, по которым строится линия
Точки привязки, задаются как доли от ширины и высоты
Относительное положение текстового поля
Сцена, которой принадлежит
Стандартный курсор, который будет показываться при наведении на фигуру. Если задан cursorName, то нужно выставить в 'none'
Толщина линии
Для любых данных пользователя
Static ReadonlytypeСтабильный ID типа для сериализации (className в JSON) и ключа в elementsLib.
Не зависит от минификации. При наследовании обязательно переопределите —
иначе assertCellTypeName выбросит ошибку при регистрации.
Возвращает библиотеку, которая породила этот элемент. Для этого у элемента должен быть задан libName, элемент должен быть в сцене и подключен сервис Stencil
Попадает ли точка в фигуру.
Если accurately = false то будет найдено пересечение с повернутым bbox
Optionalindex: numberProtectedgetФункция для расчета привязки к центру элемента. в глобальных координатах Может быть переопределена
Optional_options: Record<string, boolean>Добавляет кастомные параметры
Добавлять параметры так же можно через dynamicParams и описывать поведение в onParamChange
Получает текущее значение параметра
ProtectedgetProtectedgetРезультат используется в calculatedSnaps для расчета абсолютных точек привязки.
По умолчанию возвращает Null. Можно переопределить и выдавать кастомные точки привязки, заданные в локальных координатах элемента
Точки привязки также могут быть заданы через relativeSnapPoints
Возвращает посчитанные точки для привязок в абсолютных координатах
Optionalindex: numberЗаписывает this.dynamicParams.paramData в this._paramData, обогащая переданные в dynamicParams paramData методом onChange, который вызывает:
onChange: (val: string | number | boolean) => {
this.updateParamVal(customParam.name, val)
this.onParamChange(customParam.name, val)
this.update()
}
Вызывается в моммент изменения параметра методом onChange() перед this.update(). Предназначен для переопределения в наследнике
OptionalsnapPoint: CellIntersection | nullМеняет значение параметра, вызывая его метод onChange()
При добавлении нового поля если хотите, чтобы оно сохранялось, нужно добавить его в LINK_SAVE_FIELDS
ProtectedupdateProtectedupdateВспомогательный метод, обновляет значение в параметрах dynamicParams и _paramData
ProtectedupdateЕсли в параметрах используется поле из самого объекта, то его нужно обновить в параметрах, так как оно могло измениться другим способом, например контролами. Пример:
protected override updateParamValues(): void {
this.updateParamVal("widthMM", this.widthMM)
})
}
Если имя параметра совпадает с именем поля объекта, то можно не переопределять, он обновит автоматически, или если переопределяете, то вызывайте super.updateParamValues()
Protectedupdate
Базовый класс, от которого все наследуются.
Стабильный ID типа для сериализации (
classNameв JSON) и ключа вelementsLib—static readonly typeName. Не зависит от минификации. Объявляйте на каждом конкретном cell-классе; наGraphicElementзначение не задаётся. При наследовании обязательно переопределите — иначе assertCellTypeName выбросит ошибку. См. ../../guide/typeName и сериализация cell-классов.md.