Eulergraph
    Preparing search index...

    Базовый класс, от которого все наследуются.

    Стабильный ID типа для сериализации (className в JSON) и ключа в elementsLibstatic readonly typeName. Не зависит от минификации. Объявляйте на каждом конкретном cell-классе; на GraphicElement значение не задаётся. При наследовании обязательно переопределите — иначе assertCellTypeName выбросит ошибку. См. ../../guide/typeName и сериализация cell-классов.md.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _batchedDrawPaths: DrawPath[] = []
    _controls: Control[] = []
    _drawCommands: CellPaths[] = []
    _drawPaths: DrawPath[] = []
    _isBlocked: boolean = false
    _isPrintable: boolean = true
    _isVisible: boolean = true
    _magnetPoints: Point[] = []
    _parent: string | null = null

    Родительская ячейка. Может быть только одна. Наличие его означает, что элемент в группе

    _type: LinkType = LinkType.LINE

    Тип линии

    _unitedPaths2D: Path2D | null = null
    bbox: Rect = ...
    calculatedSnaps: CalculatedElementSnaps = ...
    children: GraphicElement[] = []

    Дочерние ячейки. Если массив не пуст, значит ячейка является группой

    cursorName: string = "DRAG_CELL_SVG"

    Название курсора, который задан в cursorCollection, который будет показываться при наведении на фигуру. Если пустая строка, будет показан станадартный, указанный в cursorName, если задан, standardCursor нужно выставить 'none'

    cursorTrasform: string = "translate(-50%, -50%) "

    Смещение кастомного курсора

    customAttrs: CustomAttrs = ...

    Предназначен для расширения атрибутами

    dragFantomPosition: Point | null = null

    Применяется при драге с привязкой. Сначала изменяется это значение, и если выполняется условие привязки - меняется положение ячейки

    drawingScale: number = 1

    Масштаб чертежа

    dynamicParams: GraphicElementParams = ...

    Параметры элемента.

    Значения нельзя мутировать. Для изменения значения используйте switchParam

    Для получения значения getParamValue

    Если имя параметра совпадает с именем поля элемента, то параметр будет автоматически обновляться из поля элемента. Если такое поведение нежелательно, то полностью переопределяйте updateParamValues

    Для избежания конфликтов между именами можно использовать префикс для имени параметра, например "PAR_".

    Если есть вероятность того, что параметр меняется извне, например контролом, и значение берется не из внутреннего поля элемента или его нужно вычислить, обновление параметра нужно прописать в updateParamValues

    protected override updateParamValues(): void {
    super.updateParamValues()
    this.updateParamVal("angle", round(this.angle, true, 2))
    }
    firstPoint: Point = ...

    Начальная точка

    firstPointFixed: boolean = false
    firstPointLocal: Point = ...
    forceUpdateRenderCash: boolean = false
    id: string

    Уникальный идентификатор

    isCell: boolean = true
    isTextEditable: boolean = false

    Фигура с таким флагом будет редактироваться в TextEditor

    lastPoint: Point = ...

    Конечная точка

    lastPointFixed: boolean = false
    lastPointLocal: Point = ...
    libName: string | null = null

    Имя библиотеки, которая породила этот элемент.

    lineColor: string = "#000000"

    Цвет линии

    magnetPointsPath: Path2D = ...
    name: string = "Graphic Element"

    Имя. Отображается пользователю

    needUpdateSnaps: boolean = true
    pointControlsMap: Map<Point, Control> = ...
    points: Point[] = []

    Точки, по которым строится линия

    relativeSnapPoints: RelativePosition[] = []

    Точки привязки, задаются как доли от ширины и высоты

    scene: Scene2D | null = null

    Сцена, которой принадлежит

    standardCursor: CursorStandard = "none"

    Стандартный курсор, который будет показываться при наведении на фигуру. Если задан cursorName, то нужно выставить в 'none'

    strokeWidth: number = 1

    Толщина линии

    supportedSnaps: SupportedElementSnaps = ...
    transform: DOMMatrix = ...
    userData: UserData = []

    Для любых данных пользователя

    withCellSizes: boolean = true
    zIndex: number = 0
    typeName: string = "BaseLinear"

    Стабильный ID типа для сериализации (className в JSON) и ключа в elementsLib. Не зависит от минификации. При наследовании обязательно переопределите — иначе assertCellTypeName выбросит ошибку при регистрации.

    Accessors

    • get angle(): number

      Returns number

    • get drawCommands(): CellPaths[]

      Returns CellPaths[]

    • set drawCommands(drawCommands: CellPaths[]): void

      setter

      Необходимо присваивать новый массив, а не мутировать старый, тогда пути рисования обновятся

      Parameters

      Returns void

    • get drawPaths(): DrawPath[]

      Returns DrawPath[]

    • get engine(): EulerGraph | null | undefined

      Returns EulerGraph | null | undefined

    • get height(): number

      Returns number

    • get isBlocked(): boolean

      Returns boolean

    • set isBlocked(isBlocked: boolean): void

      Parameters

      • isBlocked: boolean

      Returns void

    • get isBlockedInRender(): boolean

      Returns boolean

    • get isPrintable(): boolean

      Returns boolean

    • set isPrintable(isPrintable: boolean): void

      Parameters

      • isPrintable: boolean

      Returns void

    • get isVisible(): boolean

      Returns boolean

    • set isVisible(visible: boolean): void

      Parameters

      • visible: boolean

      Returns void

    • get lib(): Library<typeof BaseLinear | typeof BaseCell> | null

      Возвращает библиотеку, которая породила этот элемент. Для этого у элемента должен быть задан libName, элемент должен быть в сцене и подключен сервис Stencil

      Returns Library<typeof BaseLinear | typeof BaseCell> | null

    • get magnetPoints(): Point[]

      Returns Point[]

    • set magnetPoints(magnetPoints: Point[]): void

      Parameters

      Returns void

    • get paramData(): ParamData[]

      Returns ParamData[]

    • get position(): Point

      Returns Point

    • set position(_point: Point): void

      Parameters

      Returns void

    • get skia(): SkiaWasmService | undefined

      Returns SkiaWasmService | undefined

    • get visibleInRender(): boolean

      Returns boolean

    • get width(): number

      Returns number

    Methods

    • Parameters

      • save: boolean = false

      Returns void

    • Returns void

    • Попадает ли точка в фигуру.

      Если accurately = false то будет найдено пересечение с повернутым bbox

      Parameters

      • point: PointLike
      • ctx: CanvasRenderingContext2D
      • drawingScale: number
      • accurately: boolean

      Returns boolean

    • Parameters

      • ctx: CanvasRenderingContext2D

      Returns void

    • Parameters

      • _ctx: CanvasRenderingContext2D
      • _zoom: number = 1
      • Optional_withCellSizes: boolean

      Returns void

    • Функция для расчета привязки к центру элемента. в глобальных координатах Может быть переопределена

      Returns Point[] | null

    • Parameters

      • Optional_options: Record<string, boolean>

      Returns Control[]

    • Returns string

    • Добавляет кастомные параметры

      Добавлять параметры так же можно через dynamicParams и описывать поведение в onParamChange

      Returns ParamData[]

    • Получает текущее значение параметра

      Parameters

      • name: string

      Returns string | number | boolean

    • Parameters

      • point: Point
      • index: number

      Returns Control

    • Результат используется в calculatedSnaps для расчета абсолютных точек привязки.

      По умолчанию возвращает Null. Можно переопределить и выдавать кастомные точки привязки, заданные в локальных координатах элемента

      Точки привязки также могут быть заданы через relativeSnapPoints

      Returns Point[] | null

    • Parameters

      • point: PointLike
      • ctx: CanvasRenderingContext2D
      • drawingScale: number

      Returns void

    • Parameters

      • point: PointLike
      • ctx: CanvasRenderingContext2D
      • drawingScale: number

      Returns boolean

    • Записывает 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()
      }

      Returns void

    • Parameters

      • deltaX: number
      • deltaY: number
      • update: boolean = true

      Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D
      • zoom: number

      Returns void

    • Вызывается в моммент изменения параметра методом onChange() перед this.update(). Предназначен для переопределения в наследнике

      Parameters

      • _paramName: string
      • _value: string | number | boolean

      Returns void

    • Parameters

      • _evt: {
            canvasPosition: { x: number; y: number };
            clickPoint: Point | { x: number; y: number };
            x: number;
            y: number;
        }
      • _args: unknown

      Returns void

    • Parameters

      • _evt: {
            canvasPosition: { x: number; y: number };
            isCtrl: boolean;
            isOutside: boolean;
            x: number;
            y: number;
        }
      • _args: unknown

      Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D
      • Optional_zoom: number
      • Optional_options: RenderOptions

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Меняет значение параметра, вызывая его метод onChange()

      Parameters

      • name: string
      • val: string | number | boolean

      Returns void

    • При добавлении нового поля если хотите, чтобы оно сохранялось, нужно добавить его в LINEAR_SAVE_FIELDS

      Returns LinearJSON

    • Parameters

      • deep: boolean = true

      Returns void

    • Вспомогательный метод, обновляет значение в параметрах dynamicParams и _paramData

      Parameters

      • name: string
      • val: string | number | boolean

      Returns void

    • Если в параметрах используется поле из самого объекта, то его нужно обновить в параметрах, так как оно могло измениться другим способом, например контролами. Пример:

      protected override updateParamValues(): void {
      this.updateParamVal("widthMM", this.widthMM)
      })
      }

      Если имя параметра совпадает с именем поля объекта, то можно не переопределять, он обновит автоматически, или если переопределяете, то вызывайте super.updateParamValues()

      Returns void

    • Returns void