GraphEdit
Редактор графа: размещение элементов и отображение направленных связей, отдельно от модели и исполнения.
GraphEdit — интерфейс редактора, а не исполнитель графа. Добавляйте GraphNode/GraphFrame непосредственными детьми. Создайте свою модель элементов и связей, а отображение восстанавливайте из неё. Обновляйте модель и UI согласованно; линии на экране сами не вызывают методы и не передают игровые данные.
Соединение задаётся направленным кортежем (fromNode, fromPort, toNode, toPort). Имена — Name дочерних GraphNode; fromPort — плотный индекс выхода, toPort — плотный индекс входа, не slotIndex строки. После изменения портов пересчитайте соответствие и восстановите связи из стабильных ключей модели. При переименовании Name явно обновляйте записи соединений.
Пользовательский жест испускает ConnectionRequest. В обработчике проверьте существование элементов, диапазоны портов, типы, запрет циклов и число допустимых связей своей модели; затем запишите связь и вызовите ConnectNode. DisconnectionRequest аналогично требует обработки и DisconnectNode. Программные ConnectNode/DisconnectNode/ClearConnections сами эти request-сигналы не испускают.
ConnectNode возвращает Error, но Ok не доказывает существование элементов, портов или семантическую допустимость связи. Метод может сохранить ещё не разрешённые имена и обходится без фильтра допустимых типов UI. Повтор того же кортежа возвращает Ok без дубликата и без изменения keepAlive: чтобы сменить этот флаг, удалите и создайте запись заново.
AddValidConnectionType регистрирует направленную пару типов для кандидатов UI. Равные типы обычно допускаются отдельным правилом интерактивного соединения; IsValidConnectionType проверяет только явно добавленные пары и потому может вернуть false для одинаковых типов. Это не полная проверка возможности связать два конкретных порта.
GetConnectionList возвращает снимок массива словарей с from_node, from_port, to_node, to_port и keep_alive. Изменение снимка не редактирует граф. Connections/SetConnections заменяет весь список, предварительно очищая старый; проверьте все поля и конечные точки до присваивания. Для сохранения проекта предпочтительна собственная схема со стабильными ID портов, а не текущими UI-индексами.
GetConnectionCount учитывает совпадение элемента/номера порта на любом конце связи, без отдельного аргумента направления. GetConnectionListFromNode включает и входящие, и исходящие связи; название не означает только исходящие. Не вызывайте его для произвольного изолированного имени без записи связей: для безопасного общего обхода фильтруйте GetConnectionList.
keepAlive сохраняет запись при временно отсутствующем GraphNode во время обновления отображения. Он не удерживает Entity в памяти, не создаёт элементы и не делает неверный индекс порта безопасным. SetConnectionActivity меняет оформление существующей линии, а не исполняет граф. RightDisconnects и списки типов отключения управляют жестами UI; они не запрещают DisconnectNode из кода и не означают кнопку мыши «правая».
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
GraphEditКонструктор
public GraphEdit();Создаёт Control редактора графа со встроенной панелью инструментов и миникартой. Модель и GraphNode добавляются приложением; внутренние дети не являются элементами вашей модели.
Свойства28
public bool ArrangeNodesButtonHidden { get; set; }Старое инвертированное свойство: true означает ShowArrangeButton = false. В новом коде используйте ShowArrangeButton, чтобы избежать двойного отрицания.
ConnectionLinesAntialiasedСвойство
public bool ConnectionLinesAntialiased { get; set; }Запрос сглаживания линий GraphEdit. Не является глобальным MSAA/TAA и не гарантирует сглаживание текста, сетки или сторонних элементов.
ConnectionLinesCurvatureСвойство
public float ConnectionLinesCurvature { get; set; }Коэффициент изгиба линий соединения. Setter сохраняет значение без ограничения знака; используйте подходящий неотрицательный коэффициент для обычного оформления. Не меняет данные связи.
ConnectionLinesThicknessСвойство
public float ConnectionLinesThickness { get; set; }Толщина линий в локальных единицах оформления. Допустимо 0 и больше; отрицательное значение отклоняется. Не меняет типы, число соединений или масштаб элементов.
ConnectionsСвойство
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> Connections { get; set; }Снимок списка соединений. Присваивание заменяет весь список и сначала очищает прежний. Каждая Dictionary должна содержать from_node, from_port, to_node, to_port, keep_alive; проверьте её заранее. Это не изменяемая живая коллекция.
GridPatternСвойство
public GraphEdit.GridPatternEnum GridPattern { get; set; }Вид сетки: Lines или Dots, Lines по умолчанию. Меняет фон, не правила соединений и не шаг привязки.
MinimapEnabledСвойство
public bool MinimapEnabled { get; set; }Включает отображение миникарты. Независимо от ShowMinimapButton: скрытая кнопка не означает выключенную миникарту. Не создаёт вторую модель графа.
MinimapOpacityСвойство
public float MinimapOpacity { get; set; }Alpha миникарты. Обычно используйте 0…1; setter сохраняет и значения вне этого диапазона без нормализации. Нулевая alpha не равнозначна отключению миникарты/её ввода.
MinimapSizeСвойство
public Vector2 MinimapSize { get; set; }Размер контрола миникарты в локальных единицах UI, ограниченный его минимумом. Запрос меньше минимума увеличивается; читайте фактический размер getter. Это не масштаб координат графа.
PanningSchemeСвойство
public GraphEdit.PanningSchemeEnum PanningScheme { get; set; }Схема колеса: Zooms масштабирует колесом и прокручивает с Ctrl; Pans меняет эти действия местами. Не меняет координаты модели и не отключает программные Zoom/ScrollOffset.
RightDisconnectsСвойство
public bool RightDisconnects { get; set; }Разрешает UI начать переустановку связи со стороны входного порта, false по умолчанию. Не обозначает правую кнопку мыши и не удаляет запись без обработки запроса приложением.
ScrollOffsetСвойство
public Vector2 ScrollOffset { get; set; }Смещение просмотра в локальных единицах GraphEdit после учёта zoom; Position элемента вычисляется как PositionOffset × Zoom − ScrollOffset. Setter ограничивает значение текущим диапазоном прокрутки и откладывает обновление позиций. Читайте фактическое значение обратно; программное присваивание может вызвать ScrollOffsetChanged.
ShowArrangeButtonСвойство
public bool ShowArrangeButton { get; set; }Показывать кнопку автоматической раскладки. Не запускает ArrangeNodes и не запрещает его вызов из кода.
ShowGridСвойство
public bool ShowGrid { get; set; }Показывать фоновые линии/точки сетки, true по умолчанию. Не включает и не выключает SnappingEnabled: невидимая сетка может оставаться активной для привязки.
ShowGridButtonsСвойство
public bool ShowGridButtons { get; set; }Показывать элементы настройки сетки/привязки. Скрытие не сбрасывает ShowGrid, SnappingEnabled или SnappingDistance.
ShowMenuСвойство
public bool ShowMenu { get; set; }Показывать встроенную панель инструментов. false скрывает панель, но не запрещает программные операции, прокрутку или действия графа.
ShowMinimapButtonСвойство
public bool ShowMinimapButton { get; set; }Показывать кнопку переключения миникарты. Не меняет MinimapEnabled.
ShowZoomButtonsСвойство
public bool ShowZoomButtons { get; set; }Показывать кнопки уменьшения, сброса и увеличения zoom. Не запрещает изменение Zoom из кода или колесом.
ShowZoomLabelСвойство
public bool ShowZoomLabel { get; set; }Показывать подпись текущего масштаба. Это видимость текста, не настройка значения Zoom.
SnapDistanceСвойство
public int SnapDistance { get; set; }Старое имя свойства SnappingDistance. Используйте SnappingDistance; это тот же шаг привязки и те же ограничения.
SnappingDistanceСвойство
public int SnappingDistance { get; set; }Шаг привязки в координатах графа до zoom, 20 по умолчанию. При штатном масштабе сетки используйте 2…100 включительно. Setter не перемещает уже размещённые элементы на сетку автоматически.
SnappingEnabledСвойство
public bool SnappingEnabled { get; set; }Привязка пользовательского перемещения/resize к сетке, true по умолчанию. Не включает ShowGrid и не округляет программный GraphElement.PositionOffset. При штатном взаимодействии Ctrl может временно изменить применение привязки.
TypeNamesСвойство
public Reckfell.Collections.Dictionary TypeNames { get; set; }Общий Dictionary соответствий целочисленных типов их подписям. Getter/setter не копируют контейнер глубоко. Изменение словаря не регистрирует допустимые пары соединения; используйте AddValidConnectionType отдельно.
UseSnapСвойство
public bool UseSnap { get; set; }Старое имя свойства SnappingEnabled. Используйте SnappingEnabled в новом коде; поведение и общий флаг одинаковы.
ZoomСвойство
public float Zoom { get; set; }Множитель масштаба, 1 по умолчанию. Ограничивается ZoomMin/ZoomMax. При видимом GraphEdit масштабирование сохраняет точку под центром просмотра, поэтому ScrollOffset может измениться. PositionOffset модели не умножайте заранее.
ZoomMaxСвойство
public float ZoomMax { get; set; }Верхняя граница Zoom. Используйте положительное значение не меньше ZoomMin; setter повторно ограничивает текущий Zoom. Это не максимальная координата графа.
ZoomMinСвойство
public float ZoomMin { get; set; }Нижняя граница Zoom. Используйте положительное значение не больше ZoomMax; setter повторно ограничивает текущий Zoom. При расширении диапазона сначала задайте совместимые границы.
ZoomStepСвойство
public float ZoomStep { get; set; }Множитель одного шага zoom, 1,2 по умолчанию. Используйте конечное значение > 1; отрицательный ввод преобразуется в абсолютный. Изменение шага не пересчитывает уже заданные ZoomMin/ZoomMax.
Методы83
AddValidConnectionTypevoid
public void AddValidConnectionType(int fromType, int toType);Добавляет направленную пару fromType → toType для фильтра кандидатов UI. Не создаёт связь и не добавляет обратную пару. ConnectNode не выполняет эту проверку вместо приложения.
| Имя | Тип | По умолчанию |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeЦелочисленный тип выхода.
toTypeЦелочисленный тип входа.
AddValidLeftDisconnectTypevoid
public void AddValidLeftDisconnectType(int type);Разрешает для типа порта UI-переустановку связи со стороны выхода. Не вызывает DisconnectNode и не изменяет существующие записи.
| Имя | Тип | По умолчанию |
|---|---|---|
type | int | — |
typeЦелочисленная категория порта для политики UI.
AddValidRightDisconnectTypevoid
public void AddValidRightDisconnectType(int type);Разрешает для типа порта UI-переустановку связи со стороны входа. Не вызывает DisconnectNode и не изменяет существующие записи.
| Имя | Тип | По умолчанию |
|---|---|---|
type | int | — |
typeЦелочисленная категория порта для политики UI.
ArrangeNodesvoid
public void ArrangeNodes();Автоматически раскладывает выделенные прямые GraphNode, а если выделенных GraphNode нет — все. Меняет PositionOffset и испускает BeginNodeMove/EndNodeMove, но не создаёт связи и не сохраняет undo за приложение. Для одной операции undo снимите координаты до начала и запишите итог после завершения.
AttachGraphElementToFramevoid
public void AttachGraphElementToFrame(StringName element, StringName frame);Связывает прямой GraphElement с прямой GraphFrame по их Name. Не меняет родителя и не передаёт владение. Перед переносом в другую рамку сначала Detach; проверяйте отсутствие циклов группировки. Может пересчитать рамку.
| Имя | Тип | По умолчанию |
|---|---|---|
element | StringName | — |
frame | StringName | — |
elementName прямого GraphElement, не Title и не индекс ребёнка.
frameName прямой GraphFrame; для FrameRectChanged — общий объект рамки, принадлежащий графу.
ClearConnectionsvoid
public void ClearConnections();Удаляет все записи и линии соединений, сохраняя элементы GraphNode. Не испускает запрос отключения для каждой связи.
ConnectNode2 перегрузки
public Error ConnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort);Короткая перегрузка ConnectNode с keepAlive = false. Сохраняет связь без проверки вашей модели и без ConnectionRequest.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
ErrorError.Ok при сохранении или уже имеющемся кортеже; не результат проверки модели.
public Error ConnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort, bool keepAlive = false);Сохраняет направленную связь и создаёт её отображение. Не испускает ConnectionRequest и не проверяет вашу модель, существование/диапазон портов или пары типов UI. Повтор кортежа — Ok без изменения keepAlive. Проверяйте конечные точки до вызова.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
keepAlive | bool | false |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
keepAliveСохранять запись при временно отсутствующем GraphNode. Не удерживает Entity в памяти и не разрешает неверные порты.
ErrorError.Ok при сохранении или уже имеющемся кортеже; не результат проверки модели.
DetachGraphElementFromFramevoid
public void DetachGraphElementFromFrame(StringName element);Снимает связь группировки, сохраняя объекты детьми GraphEdit. Для несвязанного имени ничего не делает; может пересчитать прежнюю рамку.
| Имя | Тип | По умолчанию |
|---|---|---|
element | StringName | — |
elementName прямого GraphElement, не Title и не индекс ребёнка.
DisconnectNodevoid
public void DisconnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort);Удаляет точный кортеж, если он есть; отсутствие пропускается. Не испускает DisconnectionRequest и не удаляет GraphNode/данные модели.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
ForceConnectionDragEndvoid
public void ForceConnectionDragEnd();Принудительно завершает только уже активный жест и испускает ConnectionDragEnded. Вызов без активного drag — ошибка. Не удаляет сохранённые связи и не откатывает модель.
GetAttachedNodesOfFrameReckfell.Collections.Array<StringName>
public Reckfell.Collections.Array<StringName> GetAttachedNodesOfFrame(StringName frame);Возвращает снимок имён элементов группы, не объектов дерева. Для неизвестной группы — пустой массив. Порядок не является устойчивым индексом модели; изменение массива не меняет связи.
| Имя | Тип | По умолчанию |
|---|---|---|
frame | StringName | — |
frameName прямой GraphFrame; для FrameRectChanged — общий объект рамки, принадлежащий графу.
Reckfell.Collections.Array<StringName>Возвращает снимок имён элементов группы, не объектов дерева. Для неизвестной группы — пустой массив. Порядок не является устойчивым индексом модели; изменение массива не меняет связи.
GetClosestConnectionAtPointReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetClosestConnectionAtPoint(Vector2 point, float maxDistance = 4f);Ищет ближайшую линию по локальной позиции GraphEdit и неотрицательному допуску maxDistance в единицах UI. Возвращает снимок Dictionary с пятью полями соединения либо пустой словарь. Требует актуальный кэш линий после раскладки; не проверяет существование/типы портов модели.
| Имя | Тип | По умолчанию |
|---|---|---|
point | Vector2 | — |
maxDistance | float | 4f |
pointЛокальная позиция GraphEdit, не PositionOffset и не координаты ОС.
maxDistanceНеотрицательный допуск поиска линии в локальных единицах UI.
Reckfell.Collections.DictionaryИщет ближайшую линию по локальной позиции GraphEdit и неотрицательному допуску maxDistance в единицах UI. Возвращает снимок Dictionary с пятью полями соединения либо пустой словарь. Требует актуальный кэш линий после раскладки; не проверяет существование/типы портов модели.
GetConnectionCountint
public int GetConnectionCount(StringName fromNode, int fromPort);Число связей, где имя и номер порта совпали на любом конце. Не различает вход/выход с одинаковым номером; для подсчёта одной стороны фильтруйте словари.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
fromNodeName элемента для поиска совпадений на любом конце связи.
fromPortНомер порта, сравниваемый на обоих концах; вход и выход с одинаковым номером не разделяются.
intКоличество инцидентных совпадений имени/номера порта.
GetConnectionLineVector2[]
public Vector2[] GetConnectionLine(Vector2 fromNode, Vector2 toNode);Вычисляет массив точек линии для двух переданных позиций в одном пространстве координат. Аргументы fromNode/toNode здесь Vector2, не имена элементов. Вызывает _GetConnectionLine при переопределении; не создаёт запись соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | Vector2 | — |
toNode | Vector2 | — |
fromNodeName исходного GraphNode; только в GetConnectionLine это позиция Vector2, не имя.
toNodeName конечного GraphNode; только в GetConnectionLine это позиция Vector2, не имя.
Vector2[]Вычисляет массив точек линии для двух переданных позиций в одном пространстве координат. Аргументы fromNode/toNode здесь Vector2, не имена элементов. Вызывает _GetConnectionLine при переопределении; не создаёт запись соединения.
GetConnectionLinesCurvaturefloat
public float GetConnectionLinesCurvature();Коэффициент изгиба линий соединения. Setter сохраняет значение без ограничения знака; используйте подходящий неотрицательный коэффициент для обычного оформления. Не меняет данные связи.
floatКоэффициент изгиба линий соединения. Setter сохраняет значение без ограничения знака; используйте подходящий неотрицательный коэффициент для обычного оформления. Не меняет данные связи.
GetConnectionLinesThicknessfloat
public float GetConnectionLinesThickness();Толщина линий в локальных единицах оформления. Допустимо 0 и больше; отрицательное значение отклоняется. Не меняет типы, число соединений или масштаб элементов.
floatТолщина линий в локальных единицах оформления. Допустимо 0 и больше; отрицательное значение отклоняется. Не меняет типы, число соединений или масштаб элементов.
GetConnectionListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionList();Возвращает независимый снимок словарей: from_node, from_port, to_node, to_port, keep_alive. Изменение массива/словаря не меняет граф. Список относится к UI-связям, не автоматически сохранённой модели.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Возвращает независимый снимок словарей: from_node, from_port, to_node, to_port, keep_alive. Изменение массива/словаря не меняет граф. Список относится к UI-связям, не автоматически сохранённой модели.
GetConnectionListFromNodeReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionListFromNode(StringName node);Возвращает снимок всех инцидентных связей, включая входящие. Требует запись имени во внутренней таблице связей; для произвольного изолированного элемента фильтруйте GetConnectionList вместо этого вызова.
| Имя | Тип | По умолчанию |
|---|---|---|
node | StringName | — |
nodeName элемента с записью в таблице связей; выборка включает оба направления.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Возвращает снимок всех инцидентных связей, включая входящие. Требует запись имени во внутренней таблице связей; для произвольного изолированного элемента фильтруйте GetConnectionList вместо этого вызова.
GetConnectionsIntersectingWithRectReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionsIntersectingWithRect(Rect2 rect);Возвращает снимки связей, геометрия которых пересекает локальный прямоугольник GraphEdit. Это проверка линий по кэшу, не выбор всех элементов внутри рамки и не изменение соединений.
| Имя | Тип | По умолчанию |
|---|---|---|
rect | Rect2 | — |
rectЛокальный прямоугольник GraphEdit для проверки геометрии линий.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Возвращает снимки связей, геометрия которых пересекает локальный прямоугольник GraphEdit. Это проверка линий по кэшу, не выбор всех элементов внутри рамки и не изменение соединений.
GetElementFrameGraphFrame
public GraphFrame GetElementFrame(StringName element);Возвращает общий объект рамки элемента либо null. Не меняет владение: рамку отдельно не освобождайте как временный результат getter.
| Имя | Тип | По умолчанию |
|---|---|---|
element | StringName | — |
elementName прямого GraphElement, не Title и не индекс ребёнка.
GraphFrameВозвращает общий объект рамки элемента либо null. Не меняет владение: рамку отдельно не освобождайте как временный результат getter.
GetGridPatternGraphEdit.GridPatternEnum
public GraphEdit.GridPatternEnum GetGridPattern();Вид сетки: Lines или Dots, Lines по умолчанию. Меняет фон, не правила соединений и не шаг привязки.
GraphEdit.GridPatternEnumВид сетки: Lines или Dots, Lines по умолчанию. Меняет фон, не правила соединений и не шаг привязки.
GetMenuHBoxHBoxContainer
public HBoxContainer GetMenuHBox();Возвращает общий внутренний HBoxContainer панели. Можно добавить свои кнопки; не освобождайте и не переносите сам контейнер, его время жизни принадлежит GraphEdit.
HBoxContainerВозвращает общий внутренний HBoxContainer панели. Можно добавить свои кнопки; не освобождайте и не переносите сам контейнер, его время жизни принадлежит GraphEdit.
GetMinimapOpacityfloat
public float GetMinimapOpacity();Alpha миникарты. Обычно используйте 0…1; setter сохраняет и значения вне этого диапазона без нормализации. Нулевая alpha не равнозначна отключению миникарты/её ввода.
floatAlpha миникарты. Обычно используйте 0…1; setter сохраняет и значения вне этого диапазона без нормализации. Нулевая alpha не равнозначна отключению миникарты/её ввода.
GetMinimapSizeVector2
public Vector2 GetMinimapSize();Размер контрола миникарты в локальных единицах UI, ограниченный его минимумом. Запрос меньше минимума увеличивается; читайте фактический размер getter. Это не масштаб координат графа.
Vector2Размер контрола миникарты в локальных единицах UI, ограниченный его минимумом. Запрос меньше минимума увеличивается; читайте фактический размер getter. Это не масштаб координат графа.
GetPanningSchemeGraphEdit.PanningSchemeEnum
public GraphEdit.PanningSchemeEnum GetPanningScheme();Схема колеса: Zooms масштабирует колесом и прокручивает с Ctrl; Pans меняет эти действия местами. Не меняет координаты модели и не отключает программные Zoom/ScrollOffset.
GraphEdit.PanningSchemeEnumСхема колеса: Zooms масштабирует колесом и прокручивает с Ctrl; Pans меняет эти действия местами. Не меняет координаты модели и не отключает программные Zoom/ScrollOffset.
GetScrollOffsetVector2
public Vector2 GetScrollOffset();Смещение просмотра в локальных единицах GraphEdit после учёта zoom; Position элемента вычисляется как PositionOffset × Zoom − ScrollOffset. Setter ограничивает значение текущим диапазоном прокрутки и откладывает обновление позиций. Читайте фактическое значение обратно; программное присваивание может вызвать ScrollOffsetChanged.
Vector2Смещение просмотра в локальных единицах GraphEdit после учёта zoom; Position элемента вычисляется как PositionOffset × Zoom − ScrollOffset. Setter ограничивает значение текущим диапазоном прокрутки и откладывает обновление позиций. Читайте фактическое значение обратно; программное присваивание может вызвать ScrollOffsetChanged.
GetSnappingDistanceint
public int GetSnappingDistance();Шаг привязки в координатах графа до zoom, 20 по умолчанию. При штатном масштабе сетки используйте 2…100 включительно. Setter не перемещает уже размещённые элементы на сетку автоматически.
intШаг привязки в координатах графа до zoom, 20 по умолчанию. При штатном масштабе сетки используйте 2…100 включительно. Setter не перемещает уже размещённые элементы на сетку автоматически.
GetTypeNamesReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetTypeNames();Общий Dictionary соответствий целочисленных типов их подписям. Getter/setter не копируют контейнер глубоко. Изменение словаря не регистрирует допустимые пары соединения; используйте AddValidConnectionType отдельно.
Reckfell.Collections.DictionaryОбщий Dictionary соответствий целочисленных типов их подписям. Getter/setter не копируют контейнер глубоко. Изменение словаря не регистрирует допустимые пары соединения; используйте AddValidConnectionType отдельно.
GetZoomfloat
public float GetZoom();Множитель масштаба, 1 по умолчанию. Ограничивается ZoomMin/ZoomMax. При видимом GraphEdit масштабирование сохраняет точку под центром просмотра, поэтому ScrollOffset может измениться. PositionOffset модели не умножайте заранее.
floatМножитель масштаба, 1 по умолчанию. Ограничивается ZoomMin/ZoomMax. При видимом GraphEdit масштабирование сохраняет точку под центром просмотра, поэтому ScrollOffset может измениться. PositionOffset модели не умножайте заранее.
GetZoomHBoxHBoxContainer
public HBoxContainer GetZoomHBox();Старое имя GetMenuHBox: возвращает тот же общий контейнер всей панели, не отдельную новую панель zoom. Используйте GetMenuHBox и не освобождайте результат отдельно.
HBoxContainerСтарое имя GetMenuHBox: возвращает тот же общий контейнер всей панели, не отдельную новую панель zoom. Используйте GetMenuHBox и не освобождайте результат отдельно.
GetZoomMaxfloat
public float GetZoomMax();Верхняя граница Zoom. Используйте положительное значение не меньше ZoomMin; setter повторно ограничивает текущий Zoom. Это не максимальная координата графа.
floatВерхняя граница Zoom. Используйте положительное значение не меньше ZoomMin; setter повторно ограничивает текущий Zoom. Это не максимальная координата графа.
GetZoomMinfloat
public float GetZoomMin();Нижняя граница Zoom. Используйте положительное значение не больше ZoomMax; setter повторно ограничивает текущий Zoom. При расширении диапазона сначала задайте совместимые границы.
floatНижняя граница Zoom. Используйте положительное значение не больше ZoomMax; setter повторно ограничивает текущий Zoom. При расширении диапазона сначала задайте совместимые границы.
GetZoomStepfloat
public float GetZoomStep();Множитель одного шага zoom, 1,2 по умолчанию. Используйте конечное значение > 1; отрицательный ввод преобразуется в абсолютный. Изменение шага не пересчитывает уже заданные ZoomMin/ZoomMax.
floatМножитель одного шага zoom, 1,2 по умолчанию. Используйте конечное значение > 1; отрицательный ввод преобразуется в абсолютный. Изменение шага не пересчитывает уже заданные ZoomMin/ZoomMax.
public bool IsArrangeNodesButtonHidden();Старое инвертированное свойство: true означает ShowArrangeButton = false. В новом коде используйте ShowArrangeButton, чтобы избежать двойного отрицания.
boolСтарое инвертированное свойство: true означает ShowArrangeButton = false. В новом коде используйте ShowArrangeButton, чтобы избежать двойного отрицания.
IsConnectionLinesAntialiasedbool
public bool IsConnectionLinesAntialiased();Запрос сглаживания линий GraphEdit. Не является глобальным MSAA/TAA и не гарантирует сглаживание текста, сетки или сторонних элементов.
boolЗапрос сглаживания линий GraphEdit. Не является глобальным MSAA/TAA и не гарантирует сглаживание текста, сетки или сторонних элементов.
IsMinimapEnabledbool
public bool IsMinimapEnabled();Включает отображение миникарты. Независимо от ShowMinimapButton: скрытая кнопка не означает выключенную миникарту. Не создаёт вторую модель графа.
boolВключает отображение миникарты. Независимо от ShowMinimapButton: скрытая кнопка не означает выключенную миникарту. Не создаёт вторую модель графа.
IsNodeConnectedbool
public bool IsNodeConnected(StringName fromNode, int fromPort, StringName toNode, int toPort);Проверяет наличие точного направленного кортежа. Не доказывает существование элементов, допустимость типов или видимость линии.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
boolЕсть ли точный направленный кортеж.
IsRightDisconnectsEnabledbool
public bool IsRightDisconnectsEnabled();Разрешает UI начать переустановку связи со стороны входного порта, false по умолчанию. Не обозначает правую кнопку мыши и не удаляет запись без обработки запроса приложением.
boolРазрешает UI начать переустановку связи со стороны входного порта, false по умолчанию. Не обозначает правую кнопку мыши и не удаляет запись без обработки запроса приложением.
IsShowingArrangeButtonbool
public bool IsShowingArrangeButton();Показывать кнопку автоматической раскладки. Не запускает ArrangeNodes и не запрещает его вызов из кода.
boolПоказывать кнопку автоматической раскладки. Не запускает ArrangeNodes и не запрещает его вызов из кода.
IsShowingGridbool
public bool IsShowingGrid();Показывать фоновые линии/точки сетки, true по умолчанию. Не включает и не выключает SnappingEnabled: невидимая сетка может оставаться активной для привязки.
boolПоказывать фоновые линии/точки сетки, true по умолчанию. Не включает и не выключает SnappingEnabled: невидимая сетка может оставаться активной для привязки.
IsShowingGridButtonsbool
public bool IsShowingGridButtons();Показывать элементы настройки сетки/привязки. Скрытие не сбрасывает ShowGrid, SnappingEnabled или SnappingDistance.
boolПоказывать элементы настройки сетки/привязки. Скрытие не сбрасывает ShowGrid, SnappingEnabled или SnappingDistance.
IsShowingMenubool
public bool IsShowingMenu();Показывать встроенную панель инструментов. false скрывает панель, но не запрещает программные операции, прокрутку или действия графа.
boolПоказывать встроенную панель инструментов. false скрывает панель, но не запрещает программные операции, прокрутку или действия графа.
IsShowingMinimapButtonbool
public bool IsShowingMinimapButton();Показывать кнопку переключения миникарты. Не меняет MinimapEnabled.
boolПоказывать кнопку переключения миникарты. Не меняет MinimapEnabled.
IsShowingZoomButtonsbool
public bool IsShowingZoomButtons();Показывать кнопки уменьшения, сброса и увеличения zoom. Не запрещает изменение Zoom из кода или колесом.
boolПоказывать кнопки уменьшения, сброса и увеличения zoom. Не запрещает изменение Zoom из кода или колесом.
IsShowingZoomLabelbool
public bool IsShowingZoomLabel();Показывать подпись текущего масштаба. Это видимость текста, не настройка значения Zoom.
boolПоказывать подпись текущего масштаба. Это видимость текста, не настройка значения Zoom.
IsSnappingEnabledbool
public bool IsSnappingEnabled();Привязка пользовательского перемещения/resize к сетке, true по умолчанию. Не включает ShowGrid и не округляет программный GraphElement.PositionOffset. При штатном взаимодействии Ctrl может временно изменить применение привязки.
boolПривязка пользовательского перемещения/resize к сетке, true по умолчанию. Не включает ShowGrid и не округляет программный GraphElement.PositionOffset. При штатном взаимодействии Ctrl может временно изменить применение привязки.
IsValidConnectionTypebool
public bool IsValidConnectionType(int fromType, int toType);Проверяет только зарегистрированную пару типов, не полную допустимость связи. Для равных типов без AddValidConnectionType может быть false, хотя UI допускает их отдельным правилом.
| Имя | Тип | По умолчанию |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeЦелочисленный тип выхода.
toTypeЦелочисленный тип входа.
boolЗарегистрирована ли именно эта направленная пара типов.
RemoveValidConnectionTypevoid
public void RemoveValidConnectionType(int fromType, int toType);Удаляет явно разрешённую направленную пару. Не удаляет существующие линии; одинаковые типы могут проходить отдельное правило UI.
| Имя | Тип | По умолчанию |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeЦелочисленный тип выхода.
toTypeЦелочисленный тип входа.
RemoveValidLeftDisconnectTypevoid
public void RemoveValidLeftDisconnectType(int type);Убирает разрешение UI-переустановки для типа со стороны выхода. Не удаляет связи и не запрещает DisconnectNode из кода.
| Имя | Тип | По умолчанию |
|---|---|---|
type | int | — |
typeЦелочисленная категория порта для политики UI.
RemoveValidRightDisconnectTypevoid
public void RemoveValidRightDisconnectType(int type);Убирает разрешение UI-переустановки для типа со стороны входа. Не удаляет связи и не запрещает DisconnectNode из кода.
| Имя | Тип | По умолчанию |
|---|---|---|
type | int | — |
typeЦелочисленная категория порта для политики UI.
public void SetArrangeNodesButtonHidden(bool enable);Старое инвертированное свойство: true означает ShowArrangeButton = false. В новом коде используйте ShowArrangeButton, чтобы избежать двойного отрицания.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enabletrue скрывает кнопку автоматической раскладки; это инверсия ShowArrangeButton.
SetConnectionActivityvoid
public void SetConnectionActivity(StringName fromNode, int fromPort, StringName toNode, int toPort, float amount);Задаёт степень визуального выделения существующей линии; обычно используйте 0…1. Не создаёт связь, не передаёт данные и не сообщает о выполнении. Отсутствующий кортеж пропускается.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
amount | float | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
amountСтепень визуальной активности, обычно 0…1.
SetConnectionLinesAntialiasedvoid
public void SetConnectionLinesAntialiased(bool pixels);Запрос сглаживания линий GraphEdit. Не является глобальным MSAA/TAA и не гарантирует сглаживание текста, сетки или сторонних элементов.
| Имя | Тип | По умолчанию |
|---|---|---|
pixels | bool | — |
pixelsВключить сглаживание; историческое имя pixels относится к bool.
SetConnectionLinesCurvaturevoid
public void SetConnectionLinesCurvature(float curvature);Коэффициент изгиба линий соединения. Setter сохраняет значение без ограничения знака; используйте подходящий неотрицательный коэффициент для обычного оформления. Не меняет данные связи.
| Имя | Тип | По умолчанию |
|---|---|---|
curvature | float | — |
curvatureКоэффициент изгиба, обычно неотрицательный.
SetConnectionLinesThicknessvoid
public void SetConnectionLinesThickness(float pixels);Толщина линий в локальных единицах оформления. Допустимо 0 и больше; отрицательное значение отклоняется. Не меняет типы, число соединений или масштаб элементов.
| Имя | Тип | По умолчанию |
|---|---|---|
pixels | float | — |
pixelsТолщина линии, 0 или больше.
SetConnectionsvoid
public void SetConnections(Reckfell.Collections.Array<Reckfell.Collections.Dictionary> connections);Снимок списка соединений. Присваивание заменяет весь список и сначала очищает прежний. Каждая Dictionary должна содержать from_node, from_port, to_node, to_port, keep_alive; проверьте её заранее. Это не изменяемая живая коллекция.
| Имя | Тип | По умолчанию |
|---|---|---|
connections | Reckfell.Collections.Array<Reckfell.Collections.Dictionary> | — |
connectionsПроверенный список Dictionary с пятью полями соединения; заменяет весь прежний список.
SetGridPatternvoid
public void SetGridPattern(GraphEdit.GridPatternEnum pattern);Вид сетки: Lines или Dots, Lines по умолчанию. Меняет фон, не правила соединений и не шаг привязки.
| Имя | Тип | По умолчанию |
|---|---|---|
pattern | GraphEdit.GridPatternEnum | — |
patternLines или Dots.
SetMinimapEnabledvoid
public void SetMinimapEnabled(bool enable);Включает отображение миникарты. Независимо от ShowMinimapButton: скрытая кнопка не означает выключенную миникарту. Не создаёт вторую модель графа.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить указанную настройку/видимость.
SetMinimapOpacityvoid
public void SetMinimapOpacity(float opacity);Alpha миникарты. Обычно используйте 0…1; setter сохраняет и значения вне этого диапазона без нормализации. Нулевая alpha не равнозначна отключению миникарты/её ввода.
| Имя | Тип | По умолчанию |
|---|---|---|
opacity | float | — |
opacityAlpha, обычно 0…1; вне диапазона не нормализуется.
SetMinimapSizevoid
public void SetMinimapSize(Vector2 size);Размер контрола миникарты в локальных единицах UI, ограниченный его минимумом. Запрос меньше минимума увеличивается; читайте фактический размер getter. Это не масштаб координат графа.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector2 | — |
sizeЗапрошенный размер UI миникарты, ограничиваемый её минимумом.
SetPanningSchemevoid
public void SetPanningScheme(GraphEdit.PanningSchemeEnum scheme);Схема колеса: Zooms масштабирует колесом и прокручивает с Ctrl; Pans меняет эти действия местами. Не меняет координаты модели и не отключает программные Zoom/ScrollOffset.
| Имя | Тип | По умолчанию |
|---|---|---|
scheme | GraphEdit.PanningSchemeEnum | — |
schemeZooms или Pans для поведения колеса.
SetRightDisconnectsvoid
public void SetRightDisconnects(bool enable);Разрешает UI начать переустановку связи со стороны входного порта, false по умолчанию. Не обозначает правую кнопку мыши и не удаляет запись без обработки запроса приложением.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableРазрешить UI-переустановку со стороны входа.
SetScrollOffsetvoid
public void SetScrollOffset(Vector2 offset);Смещение просмотра в локальных единицах GraphEdit после учёта zoom; Position элемента вычисляется как PositionOffset × Zoom − ScrollOffset. Setter ограничивает значение текущим диапазоном прокрутки и откладывает обновление позиций. Читайте фактическое значение обратно; программное присваивание может вызвать ScrollOffsetChanged.
| Имя | Тип | По умолчанию |
|---|---|---|
offset | Vector2 | — |
offsetСмещение просмотра после zoom, не PositionOffset элемента. Читайте фактическое ограниченное значение обратно.
SetSelectedvoid
public void SetSelected(Entity node);Выделяет указанный прямой GraphElement и снимает выделение остальных. null очищает выделение. Учитывает Selectable; может испустить NodeSelected/NodeDeselected даже при вызове из кода. Не запрашивает фокус вложенного поля.
| Имя | Тип | По умолчанию |
|---|---|---|
node | Entity | — |
nodeПрямой GraphElement/Entity графа; для SetSelected null снимает выделение. Не передача владения.
SetShowArrangeButtonvoid
public void SetShowArrangeButton(bool hidden);Показывать кнопку автоматической раскладки. Не запускает ArrangeNodes и не запрещает его вызов из кода.
| Имя | Тип | По умолчанию |
|---|---|---|
hidden | bool | — |
hiddenНесмотря на историческое имя hidden, true показывает соответствующий UI, false скрывает.
SetShowGridvoid
public void SetShowGrid(bool enable);Показывать фоновые линии/точки сетки, true по умолчанию. Не включает и не выключает SnappingEnabled: невидимая сетка может оставаться активной для привязки.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить указанную настройку/видимость.
SetShowGridButtonsvoid
public void SetShowGridButtons(bool hidden);Показывать элементы настройки сетки/привязки. Скрытие не сбрасывает ShowGrid, SnappingEnabled или SnappingDistance.
| Имя | Тип | По умолчанию |
|---|---|---|
hidden | bool | — |
hiddenНесмотря на историческое имя hidden, true показывает соответствующий UI, false скрывает.
SetShowMenuvoid
public void SetShowMenu(bool hidden);Показывать встроенную панель инструментов. false скрывает панель, но не запрещает программные операции, прокрутку или действия графа.
| Имя | Тип | По умолчанию |
|---|---|---|
hidden | bool | — |
hiddenНесмотря на историческое имя hidden, true показывает соответствующий UI, false скрывает.
SetShowMinimapButtonvoid
public void SetShowMinimapButton(bool hidden);Показывать кнопку переключения миникарты. Не меняет MinimapEnabled.
| Имя | Тип | По умолчанию |
|---|---|---|
hidden | bool | — |
hiddenНесмотря на историческое имя hidden, true показывает соответствующий UI, false скрывает.
SetShowZoomButtonsvoid
public void SetShowZoomButtons(bool hidden);Показывать кнопки уменьшения, сброса и увеличения zoom. Не запрещает изменение Zoom из кода или колесом.
| Имя | Тип | По умолчанию |
|---|---|---|
hidden | bool | — |
hiddenНесмотря на историческое имя hidden, true показывает соответствующий UI, false скрывает.
SetShowZoomLabelvoid
public void SetShowZoomLabel(bool enable);Показывать подпись текущего масштаба. Это видимость текста, не настройка значения Zoom.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить указанную настройку/видимость.
SetSnappingDistancevoid
public void SetSnappingDistance(int pixels);Шаг привязки в координатах графа до zoom, 20 по умолчанию. При штатном масштабе сетки используйте 2…100 включительно. Setter не перемещает уже размещённые элементы на сетку автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
pixels | int | — |
pixelsШаг привязки до zoom, при штатном масштабе 2…100.
SetSnappingEnabledvoid
public void SetSnappingEnabled(bool enable);Привязка пользовательского перемещения/resize к сетке, true по умолчанию. Не включает ShowGrid и не округляет программный GraphElement.PositionOffset. При штатном взаимодействии Ctrl может временно изменить применение привязки.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить указанную настройку/видимость.
SetTypeNamesvoid
public void SetTypeNames(Reckfell.Collections.Dictionary typeNames);Общий Dictionary соответствий целочисленных типов их подписям. Getter/setter не копируют контейнер глубоко. Изменение словаря не регистрирует допустимые пары соединения; используйте AddValidConnectionType отдельно.
| Имя | Тип | По умолчанию |
|---|---|---|
typeNames | Reckfell.Collections.Dictionary | — |
typeNamesОбщий Dictionary целочисленный тип → подпись; совместимость связей задаётся отдельно.
SetZoomvoid
public void SetZoom(float zoom);Множитель масштаба, 1 по умолчанию. Ограничивается ZoomMin/ZoomMax. При видимом GraphEdit масштабирование сохраняет точку под центром просмотра, поэтому ScrollOffset может измениться. PositionOffset модели не умножайте заранее.
| Имя | Тип | По умолчанию |
|---|---|---|
zoom | float | — |
zoomЗапрошенный множитель; ограничивается текущими ZoomMin/ZoomMax.
SetZoomMaxvoid
public void SetZoomMax(float zoomMax);Верхняя граница Zoom. Используйте положительное значение не меньше ZoomMin; setter повторно ограничивает текущий Zoom. Это не максимальная координата графа.
| Имя | Тип | По умолчанию |
|---|---|---|
zoomMax | float | — |
zoomMaxПоложительная верхняя граница не меньше ZoomMin.
SetZoomMinvoid
public void SetZoomMin(float zoomMin);Нижняя граница Zoom. Используйте положительное значение не больше ZoomMax; setter повторно ограничивает текущий Zoom. При расширении диапазона сначала задайте совместимые границы.
| Имя | Тип | По умолчанию |
|---|---|---|
zoomMin | float | — |
zoomMinПоложительная нижняя граница не больше ZoomMax.
SetZoomStepvoid
public void SetZoomStep(float zoomStep);Множитель одного шага zoom, 1,2 по умолчанию. Используйте конечное значение > 1; отрицательный ввод преобразуется в абсолютный. Изменение шага не пересчитывает уже заданные ZoomMin/ZoomMax.
| Имя | Тип | По умолчанию |
|---|---|---|
zoomStep | float | — |
zoomStepКонечный множитель шага, обычно > 1; отрицательное значение берётся по модулю.
_GetConnectionLineVector2[]
public virtual Vector2[] _GetConnectionLine(Vector2 fromPosition, Vector2 toPosition);Переопределение геометрии линии. Верните минимум две точки без NaN/Infinity в том же пространстве, сохраняя нужные начало/конец. Метод возвращает точки, не вызывает рисование. Замена влияет и на запросы попадания по линиям.
| Имя | Тип | По умолчанию |
|---|---|---|
fromPosition | Vector2 | — |
toPosition | Vector2 | — |
fromPositionНачало линии в выбранном пространстве координат.
toPositionКонец линии в том же пространстве координат.
Vector2[]Переопределение геометрии линии. Верните минимум две точки без NaN/Infinity в том же пространстве, сохраняя нужные начало/конец. Метод возвращает точки, не вызывает рисование. Замена влияет и на запросы попадания по линиям.
_IsInInputHotzonebool
public virtual bool _IsInInputHotzone(ReckfellObject inNode, int inPort, Vector2 mousePosition);Переопределяет попадание по входу. inNode — GraphNode, inPort — плотный индекс входа. mousePosition передаётся как локальная позиция GraphEdit, делённая на Zoom; это не локальная координата GraphNode и не PositionOffset. Верните bool.
| Имя | Тип | По умолчанию |
|---|---|---|
inNode | ReckfellObject | — |
inPort | int | — |
mousePosition | Vector2 | — |
inNodeОбщий GraphNode, переданный как ReckfellObject; не освобождайте в callback.
inPortПлотный индекс порта соответствующей стороны, не slotIndex.
mousePositionЛокальная позиция GraphEdit / Zoom, не локальная позиция GraphNode.
boolПереопределяет попадание по входу. inNode — GraphNode, inPort — плотный индекс входа. mousePosition передаётся как локальная позиция GraphEdit, делённая на Zoom; это не локальная координата GraphNode и не PositionOffset. Верните bool.
_IsInOutputHotzonebool
public virtual bool _IsInOutputHotzone(ReckfellObject inNode, int inPort, Vector2 mousePosition);Переопределяет попадание по выходу с тем же пространством mousePosition: локальная позиция GraphEdit / Zoom. inPort здесь плотный индекс выхода. Штатный код сначала исключает область ручки resize; callback не является глобальной проверкой соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
inNode | ReckfellObject | — |
inPort | int | — |
mousePosition | Vector2 | — |
inNodeОбщий GraphNode, переданный как ReckfellObject; не освобождайте в callback.
inPortПлотный индекс порта соответствующей стороны, не slotIndex.
mousePositionЛокальная позиция GraphEdit / Zoom, не локальная позиция GraphNode.
boolПереопределяет попадание по выходу с тем же пространством mousePosition: локальная позиция GraphEdit / Zoom. inPort здесь плотный индекс выхода. Штатный код сначала исключает область ручки resize; callback не является глобальной проверкой соединения.
_IsNodeHoverValidbool
public virtual bool _IsNodeHoverValid(StringName fromNode, int fromPort, StringName toNode, int toPort);Дополнительная проверка кандидата при интерактивном наведении, после штатных условий UI. Верните false для запрета кандидата. Прямой ConnectNode не заменяет этой проверкой валидацию модели — выполняйте её в общем методе приложения.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeName исходного GraphNode; только в GetConnectionLine это позиция Vector2, не имя.
fromPortПлотный индекс выхода, не slotIndex строки.
toNodeName конечного GraphNode; только в GetConnectionLine это позиция Vector2, не имя.
toPortПлотный индекс входа, не slotIndex строки.
boolДополнительная проверка кандидата при интерактивном наведении, после штатных условий UI. Верните false для запрета кандидата. Прямой ConnectNode не заменяет этой проверкой валидацию модели — выполняйте её в общем методе приложения.
Сигналы и события19
BeginNodeMoveСобытие
public event Action BeginNodeMove;Начало группы перемещений при drag или ArrangeNodes. Снимите PositionOffset элементов для undo; не предполагает, что каждый setter PositionOffset испускает этот сигнал.
ConnectionDragEndedСобытие
public event Action ConnectionDragEnded;Жест соединения завершён, включая отмену. Не гарантирует созданную связь; результат принятия определяет обработчик ConnectionRequest.
ConnectionDragStartedСобытие
public event GraphEdit.ConnectionDragStartedEventHandler ConnectionDragStarted;Начался жест создания/переустановки линии. isOutput указывает сторону начального порта. Это не сохранённая связь и не успешное выполнение ConnectionRequest.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
isOutput | bool | — |
fromNodeName элемента, с порта которого начат жест.
fromPortПлотный индекс начального порта; его сторона определяется isOutput.
isOutputНачальный порт является выходом; иначе входом.
ConnectionFromEmptyСобытие
public event GraphEdit.ConnectionFromEmptyEventHandler ConnectionFromEmpty;Жест от входа завершён на пустом месте. Конечный порт указан в toNode/toPort; releasePosition локальна для GraphEdit и может быть нулевой при клавиатурном завершении.
| Имя | Тип | По умолчанию |
|---|---|---|
toNode | StringName | — |
toPort | long | — |
releasePosition | Vector2 | — |
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
releasePositionЛокальная позиция GraphEdit, не PositionOffset; при клавиатурном завершении может быть нулевой.
ConnectionRequestСобытие
public event GraphEdit.ConnectionRequestEventHandler ConnectionRequest;Пользователь запросил направленное соединение. Проверьте модель, конечные точки и индексы, затем вызовите ConnectNode для отображения принятой связи. Прямой ConnectNode этот сигнал не испускает.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
toNode | StringName | — |
toPort | long | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
ConnectionToEmptyСобытие
public event GraphEdit.ConnectionToEmptyEventHandler ConnectionToEmpty;Жест от выхода завершён на пустом месте; можно предложить создание элемента. releasePosition относится к локальному UI GraphEdit, при клавиатурном завершении может быть (0,0). Не создаёт элемент автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
releasePosition | Vector2 | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
releasePositionЛокальная позиция GraphEdit, не PositionOffset; при клавиатурном завершении может быть нулевой.
CopyNodesRequestСобытие
public event Action CopyNodesRequest;Запрос копирования без аргументов. Соберите выделенные GraphElement из своего графа и сериализуйте модель сами; сигнал не пишет содержимое буфера обмена.
CutNodesRequestСобытие
public event Action CutNodesRequest;Запрос вырезания без аргументов. Сначала скопируйте модель и связи, затем удалите принятые элементы через свою undo-операцию; автоматического удаления нет.
DeleteNodesRequestСобытие
public event GraphEdit.DeleteNodesRequestEventHandler DeleteNodesRequest;Запрос удаления с массивом Name выделенных GraphElement. Проверьте модель, удалите связанные записи соединений и группировки, затем освободите принятые объекты. Сигнал сам Free не вызывает.
| Имя | Тип | По умолчанию |
|---|---|---|
nodes | Reckfell.Collections.Array<StringName> | — |
nodesСнимок имён выделенных GraphElement, не объекты для автоматического Free.
DisconnectionRequestСобытие
public event GraphEdit.DisconnectionRequestEventHandler DisconnectionRequest;Пользователь запросил отключение существующего кортежа. Обновите модель и вызовите DisconnectNode; прямое программное удаление сигнал не испускает.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
toNode | StringName | — |
toPort | long | — |
fromNodeName исходного GraphNode — отдельный идентификатор, не Title.
fromPortПлотный индекс выхода исходного элемента, не slotIndex строки.
toNodeName конечного GraphNode — отдельный идентификатор, не Title.
toPortПлотный индекс входа конечного элемента, не slotIndex строки.
DuplicateNodesRequestСобытие
public event Action DuplicateNodesRequest;Запрос дублирования выделенного. Создайте копии своей модели с новыми ID/Name и переназначьте внутренние связи; сигнал сам объекты не копирует.
EndNodeMoveСобытие
public event Action EndNodeMove;Завершение группы перемещений, включая ArrangeNodes. Считайте итоговые координаты и создайте одну запись undo; приложение само управляет историей.
FrameRectChangedСобытие
public event GraphEdit.FrameRectChangedEventHandler FrameRectChanged;GraphEdit пересчитал прямоугольник рамки. newRect — текущий Control.GetRect в пространстве родителя, не готовая пара PositionOffset/Size модели до zoom. Для сохранения читайте PositionOffset и Size рамки явно.
| Имя | Тип | По умолчанию |
|---|---|---|
frame | GraphFrame | — |
newRect | Rect2 | — |
frameName прямой GraphFrame; для FrameRectChanged — общий объект рамки, принадлежащий графу.
newRectТекущий Control.GetRect рамки в пространстве родителя; для модели читайте PositionOffset и Size.
GraphElementsLinkedToFrameRequestСобытие
public event GraphEdit.GraphElementsLinkedToFrameRequestEventHandler GraphElementsLinkedToFrameRequest;После переноса пользователь запросил связь элементов с рамкой. elements содержит имена, frame — Name рамки. Проверьте модель, снимите прежние связи и вызовите AttachGraphElementToFrame для принятых элементов; сам request не сохраняет модель.
| Имя | Тип | По умолчанию |
|---|---|---|
elements | Reckfell.Collections.Array | — |
frame | StringName | — |
elementsИмена элементов, предложенных к привязке к рамке.
frameName прямой GraphFrame; для FrameRectChanged — общий объект рамки, принадлежащий графу.
NodeDeselectedСобытие
public event GraphEdit.NodeDeselectedEventHandler NodeDeselected;Выделение GraphElement снято, включая программные операции. Это не удаление объекта или отмена изменений модели.
| Имя | Тип | По умолчанию |
|---|---|---|
node | Entity | — |
nodeПрямой GraphElement/Entity графа; для SetSelected null снимает выделение. Не передача владения.
NodeSelectedСобытие
public event GraphEdit.NodeSelectedEventHandler NodeSelected;Прямой GraphElement выделен, в том числе через setter из кода. Аргумент Entity может быть GraphNode или GraphFrame; объект принадлежит дереву, не освобождайте его только из-за уведомления.
| Имя | Тип | По умолчанию |
|---|---|---|
node | Entity | — |
nodeПрямой GraphElement/Entity графа; для SetSelected null снимает выделение. Не передача владения.
PasteNodesRequestСобытие
public event Action PasteNodesRequest;Запрос вставки без аргументов. Приложение читает и проверяет данные, создаёт новые уникальные ID/Name, элементы и связи. Сигнал не восстанавливает граф автоматически.
PopupRequestСобытие
public event GraphEdit.PopupRequestEventHandler PopupRequest;Запрос контекстного меню в локальной позиции GraphEdit. Создайте/покажите своё меню; перед переводом позиции в координаты графа учтите ScrollOffset и Zoom. Не экранные координаты ОС.
| Имя | Тип | По умолчанию |
|---|---|---|
atPosition | Vector2 | — |
atPositionЛокальная позиция GraphEdit; преобразуйте отдельно для экрана или координат графа.
ScrollOffsetChangedСобытие
public event GraphEdit.ScrollOffsetChangedEventHandler ScrollOffsetChanged;Изменилось смещение просмотра, передаётся фактический offset. Может прийти от отложенного программного присваивания: не считайте исключительно пользовательским событием и не присваивайте тот же ScrollOffset безусловно в обработчике.
| Имя | Тип | По умолчанию |
|---|---|---|
offset | Vector2 | — |
offsetСмещение просмотра после zoom, не PositionOffset элемента. Читайте фактическое ограниченное значение обратно.
GraphEdit.GridPatternEnum
GraphEdit.PanningSchemeEnum
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
activityColor | Color , линия соединения интерполяется на основе значения активности соединения (см. Color(1, 1, 1, 1) |
connection_hover_tint_colorColor | Color которая смешивается с линией соединения, когда мышь нависает над ней. По умолчанию:Color(0, 0, 0, 0.3) |
connection_rim_colorColor | Color обода вокруг каждой линии соединения, используемой для того, чтобы сделать пересекающиеся линии более различимыми. По умолчанию:Color(0.1, 0.1, 0.1, 0.6) |
connection_valid_target_tint_colorColor | Color , которая смешивается с линией соединения, когда в настоящее время вращенное соединение зависает над действительным портом цели. По умолчанию:Color(1, 1, 1, 0.4) |
grid_majorColor | Color основных линий сетки/точков. По умолчанию:Color(1, 1, 1, 0.2) |
grid_minorColor | Color из небольших линий сетки/точков. По умолчанию:Color(1, 1, 1, 0.05) |
selection_fillColor | Цвет заливки прямоугольника выделения. По умолчанию:Color(1, 1, 1, 0.3) |
selection_strokeColor | Цвет контура прямоугольника выделения. По умолчанию:Color(1, 1, 1, 0.8) |
connection_hover_thicknessint | Расширяет линию соединения при наведении курсора мыши на определенный процент. Значение 0 |
port_hotzone_inner_extentint | Горизонтальный диапазон, в пределах которого можно захватить порт (внутренняя сторона). По умолчанию:22 |
port_hotzone_outer_extentint | Горизонтальный диапазон, в пределах которого можно захватить порт (внешняя сторона). По умолчанию:26 |
grid_toggleTexture2D | Значок кнопки переключения сетки. |
layoutTexture2D | Значок кнопки макета для автоматического размещения графика. |
minimap_toggleTexture2D | Значок кнопки переключения мини-карты. |
snapping_toggleTexture2D | Значок для кнопки-переключателя привязки. |
zoom_inTexture2D | Значок кнопки увеличения масштаба. |
zoom_outTexture2D | Значок кнопки уменьшения масштаба. |
zoom_resetTexture2D | Значок кнопки сброса масштаба. |
menu_panelStyleBox | |
panelStyleBox | Фон, нарисованный под сеткой. |
panel_focusStyleBox |
|