Protected_угол в градусах
Protected_Protected_Protected_Protected_Protected_Protected_Protected_Высота
Protected_Protected_Protected_Protected_Родительская ячейка. Может быть только одна. Наличие его означает, что элемент в группе
Позиция всегда верхний левый угол
Protected_Protected_Ширина
угол в радианах
ProtectedcalculatedДочерние ячейки. Если массив не пуст, значит ячейка является группой
Угловые точки от левого нижнего угла по часовой стрелке, с учетом поворота, в глобальных координатах
Название курсора, который задан в cursorCollection, который будет показываться при наведении на фигуру. Если пустая строка, будет показан станадартный, указанный в cursorName, если задан, standardCursor нужно выставить 'none'
Смещение кастомного курсора
Предназначен для расширения атрибутами
Выполняется после основного рендера ячейки в её координатах
Применяется при драге с привязкой. Сначала изменяется это значение, и если выполняется условие привязки - меняется положение ячейки
Масштаб чертежа
Параметры элемента.
Значения нельзя мутировать. Для изменения значения используйте switchParam
Для получения значения getParamValue
Если имя параметра совпадает с именем поля элемента, то параметр будет автоматически обновляться из поля элемента. Если такое поведение нежелательно, то полностью переопределяйте updateParamValues
Для избежания конфликтов между именами можно использовать префикс для имени параметра, например "PAR_".
Если есть вероятность того, что параметр меняется извне, например контролом, и значение берется не из внутреннего поля элемента или его нужно вычислить, обновление параметра нужно прописать в updateParamValues
protected override updateParamValues(): void {
super.updateParamValues()
this.updateParamVal("angle", round(this.angle, true, 2))
}
OptionalforeignУникальный идентификатор
Булеан флаг - включён ли режим мультитекста
Булеан флаг - является ли ячейка текстовым блоком (TextShape)
Фигура с таким флагом будет редактироваться в TextEditor
Имя библиотеки, которая породила этот элемент.
Линии, которые связаны с ячейкой
ProtectedmagnetИмя. Отображается пользователю
Точки привязки, задаются как доли от ширины и высоты
Скейл по оси x и по оси y
Сцена, которой принадлежит
Стандартный курсор, который будет показываться при наведении на фигуру. Если задан cursorName, то нужно выставить в 'none'
Высота, которая была изначально до определения реальной высоты
Ширина, которая была изначально до определения реальной ширины
ReadonlysupportedСтиль текстового поля
Для любых данных пользователя
Для рендера с обрамляющим прямоугольником
Static ReadonlytypeСтабильный ID типа для сериализации (className в JSON) и ключа в elementsLib.
Не зависит от минификации. При наследовании обязательно переопределите —
иначе assertCellTypeName выбросит ошибку при регистрации.
Повернет фигуру относительно центра
центр bbox в абсолютных координатах
Кастомные параметры элемента. Остались для обратной совместимости. Базово параметры задаются как dynamicParams на любом элементе. Помимо параметров GraphicElementParams, содержит поля views и controls.
Сеттер, который мержит customParams с dynamicParams
Значения нельзя мутировать. Для изменения значения используйте switchParam
Для получения значения getParamValue
Если имя параметра совпадает с именем поля элемента, то параметр будет автоматически обновляться из поля элемента. Если такое поведение нежелательно, то полностью переопределяйте updateParamValues
Для избежания конфликтов между именами можно использовать префикс для имени параметра, например "PAR_".
Если есть вероятность того, что параметр меняется извне, например контролом, и значение берется не из внутреннего поля элемента или его нужно вычислить, обновление параметра нужно прописать в updateParamValues
protected override updateParamValues(): void {
super.updateParamValues()
this.updateParamVal("angle", round(this.angle, true, 2))
}
Геометрический центр ячейки . В отличие от bbox.center, не смещается метками мультитекста.
Высота ячейки в пойнтах (ед измерения отрисовки)
Устанавливает высоту ячейки в пойнтах (ед измерения отрисовки) и пересчитывает bbox и трансформации
Значение высоты в мм
Значение высоты в мм
Возвращает библиотеку, которая породила этот элемент. Для этого у элемента должен быть задан libName, элемент должен быть в сцене и подключен сервис Stencil
get Позиция в мм
Ширина ячейки в пойнтах (ед измерения отрисовки)
Устанавливает ширину ячейки в пойнтах (ед измерения отрисовки) и пересчитывает bbox и трансформации
Значение ширины в мм
Значение ширины в мм
Попадает ли точка в фигуру.
Если accurately = false то будет найдено пересечение с повернутым bbox
OptionalwithCellSizes: booleanOptional_drawingScale: numberФункция для расчета привязки к центру элемента. в глобальных координатах Может быть переопределена
Optionaloptions: GetCellControlsOptionsДобавляет кастомные параметры
Добавлять параметры так же можно через dynamicParams и описывать поведение в onParamChange
Получает текущее значение параметра
ProtectedgetРезультат используется в calculatedSnaps для расчета абсолютных точек привязки.
По умолчанию возвращает Null. Можно переопределить и выдавать кастомные точки привязки, заданные в локальных координатах элемента
Точки привязки также могут быть заданы через relativeSnapPoints
Возвращает посчитанные точки для привязок в абсолютных координатах
Записывает 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(). Предназначен для переопределения в наследнике
Optionaloptions: RenderOptionsOptionalneedUpdate: booleanугол в градусах
Optionalsnap: numberугловая привязка в градусах
Меняет значение параметра, вызывая его метод onChange()
При добавлении нового поля, если хотите, чтобы оно сохранялось, нужно добавить его в CELL_SAVE_FIELDS
ProtectedupdateProtectedupdateВспомогательный метод, обновляет значение в параметрах dynamicParams и _paramData
ProtectedupdateЕсли в параметрах используется поле из самого объекта, то его нужно обновить в параметрах, так как оно могло измениться другим способом, например контролами. Пример:
protected override updateParamValues(): void {
this.updateParamVal("widthMM", this.widthMM)
})
}
Если имя параметра совпадает с именем поля объекта, то можно не переопределять, он обновит автоматически, или если переопределяете, то вызывайте super.updateParamValues()
Предназначена для обработки элементов, заданных в виде JSON (StencilLibItem)