Eulergraph
    Preparing search index...

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

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

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    _activeLabelIndex: number = 0
    _angle: number = 0

    угол в градусах

    _batchedDrawPaths: DrawPath[] = []
    _controls: Control[] = []
    _drawCommands: CellPaths[] = []
    _drawPaths: DrawPath[] = []
    _equidistant: number = 0
    _height: number = 1

    Высота

    _isBlocked: boolean = false
    _isClosed: boolean = false
    _isClosedEquidistant: boolean = true
    _isPrintable: boolean = true
    _isVisible: boolean = true
    _magnetPoints: Point[] = []
    _parent: string | null = null

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

    _position: Point = ...

    Позиция всегда верхний левый угол

    _radius: number = 0
    _type: LinkType = LinkType.LINE

    Тип линии

    _unitedPaths2D: Path2D | null = null
    _width: number = 100

    Ширина

    allowAddTextLabel: boolean = true

    разрешаем добавление новых label по dblclick.

    angleRad: number = 0

    угол в радианах

    arrowSource: ConnectorArrow | null = null

    Стрелка в начале коннектора

    arrowTarget: ConnectorArrow | null = null

    Стрелка в конце коннектора

    backgroundColor: string = "#00000000"
    bbox: Rect = ...
    bezierParams: BezierParams = []
    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))
    }
    equidistandPoints: Point[] = []
    firstPoint: Point = ...

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

    firstPointFixed: boolean = false
    firstPointLocal: Point = ...
    forceUpdateRenderCash: boolean = false
    hatch: HatchFill | null = null
    id: string

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

    isCell: boolean = true
    isTextEditable: boolean = true

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

    lastPoint: Point = ...

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

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

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

    lineColor: string = "#000000"

    Цвет линии

    links: Link[] = []
    magnetPointsPath: Path2D = ...
    margins: TextMargins = ...
    name: string = "Graphic Element"

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

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

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

    relativeSnapPoints: RelativePosition[] = []

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

    relativeTextPosition: RelativeTextPosition = ...

    Относительное положение текстового поля

    scene: Scene2D | null = null

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

    standardCursor: CursorStandard = "none"

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

    strokeWidth: number = 1

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

    supportedSnaps: SupportedElementSnaps = ...
    testBboxStyle: TestBboxStyle
    textLabels: LinkTextLabel[] = []
    transform: DOMMatrix = ...
    txtHeight: number = 0
    txtWidth: number = 0
    userData: UserData = []

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

    withBbox: boolean = false
    withCellSizes: boolean = true
    zIndex: number = 0
    typeName: string = "ElectricWire"

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

    Accessors

    • get absoluteTextPosition(): Point | null

      Returns Point | null

    • set absoluteTextPosition(value: Point | null): void

      Parameters

      Returns void

    • get angle(): number

      Returns number

    • get annotatedText(): AnnotatedText[]

      Returns AnnotatedText[]

    • set annotatedText(value: AnnotatedText[]): void

      Parameters

      Returns void

    • get controls(): Control[]

      Returns Control[]

    • set controls(controls: Control[]): void

      Parameters

      Returns void

    • 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 equidistant(): number

      Returns number

    • set equidistant(equidistant: number): void

      Parameters

      • equidistant: number

      Returns void

    • 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[]

    • get paramData(): ParamData[]

      Returns ParamData[]

    • get parent(): GraphicElement | null

      Returns GraphicElement | null

    • set parent(elem: GraphicElement | null): void

      Parameters

      Returns void

    • get position(): Point

      Returns Point

    • get radius(): number

      Returns number

    • set radius(radius: number): void

      Parameters

      • radius: number

      Returns void

    • get textBbox(): Rect | null

      Returns Rect | null

    • set textBbox(value: Rect | null): void

      Parameters

      Returns void

    • get textLabel(): Label | null

      Returns Label | null

    • set textLabel(label: Label | null): void

      Parameters

      Returns void

    • get textPosition(): Point | null

      Returns Point | null

    • set textPosition(value: Point | null): void

      Parameters

      Returns void

    • get textTransform(): DOMMatrix

      Returns DOMMatrix

    • set textTransform(value: DOMMatrix): void

      Parameters

      • value: DOMMatrix

      Returns void

    • get type(): LinkType

      Returns LinkType

    • set type(type: LinkType): void

      Parameters

      Returns void

    • get visibleInRender(): boolean

      Returns boolean

    • get width(): number

      Returns number

    Methods

    • Parameters

      Returns number

    • Returns void

    • Parameters

      • save: boolean = false

      Returns void

    • Returns void

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

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

      Parameters

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

      Returns boolean

    • Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D

      Returns void

    • Parameters

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

      Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D

      Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D
      • Optionalindex: number

      Returns void

    • Returns Rect

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

      Returns Point[] | null

    • Returns string

    • Returns number

    • Returns void

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

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

      Returns ParamData[]

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

      Parameters

      • name: string

      Returns string | number | boolean

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

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

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

      Returns Point[] | null

    • Parameters

      • Optionalindex: number

      Returns DOMMatrix

    • 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;
        }
      • draggingControl: Control
      • OptionalsnapPoint: CellIntersection | null

      Returns void

    • Parameters

      • index: number

      Returns void

    • Parameters

      • ctx: CanvasRenderingContext2D

      Returns void

    • Returns void

    • Parameters

      Returns void

    • Parameters

      • text: string

      Returns void

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

      Parameters

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

      Returns void

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

      Returns Pick<
          GraphicElement,
          | "name"
          | "id"
          | "zIndex"
          | "drawingScale"
          | "customAttrs"
          | "userData"
          | "isVisible"
          | "isBlocked"
          | "libName"
          | "isCell"
          | "supportedSnaps"
          | "relativeSnapPoints"
          | "dynamicParams",
      > & { _parent: string; className: string } & Pick<
          BaseLinear,
          "strokeWidth"
          | "lineColor"
          | "firstPointFixed"
          | "lastPointFixed",
      > & {
          _type: LinkType;
          firstPoint: PlainPoint;
          firstPointLocal: PlainPoint;
          lastPoint: PlainPoint;
          lastPointLocal: PlainPoint;
          points: PlainPoint[];
      } & {
          _angle: number;
          _height: number;
          _position: Point;
          _source: string
          | null;
          _target: string | null;
          _width: number;
          arrowSource: ConnectorArrow | null;
          arrowTarget: ConnectorArrow | null;
          margins: TextMargins;
          relativeTextPosition: RelativeTextPosition;
          textLabels: LinkTextLabelJSON[];
      } & { _paramData?: ParamData[] } & {
          _equidistant: number;
          _isClosed?: boolean;
          _isClosedEquidistant: boolean;
          backgroundColor: string;
          hatch: HatchFill | null;
      }

    • Parameters

      • deep: boolean = true

      Returns void

    • Returns void

    • Returns void

    • 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