Процесс редактирования плоскости сечения
Ниже мы рассмотрим процесс, позволяющий создавать и редактировать плоскость сечения.

Функции
Тип EditSectionPlaneProcess (TypeScript):
export type EditSectionPlaneProcess = {
name: "EditSectionPlane"
id?: number
options: EditSectionPlaneOptions
events: {
onUpdate?: (a: number, b: number, c: number) => void
onInvert?: (value: "front" | "back") => void
onCtrlOriginChanged?: (centered: boolean) => void
}
}
В дополнение к options этот процесс имеет необязательное свойство id. Если оно указано, это позволяет редактировать плоскости сечения, уже добавленные с помощью команды.
Примечание
Можно добавить новую плоскость сечения (если не превышено ограничение в 6 плоскостей), отредактировав плоскость сечения с пустым параметром id.
Добавлено в версии 1.8.0: Увеличено количество плоскостей одновременно в сцене с 4 до 6. Добавлен контроллер для интерактивного преобразования положения плоскости.
Интерактивная трансформация
Этот процесс также дает возможность интерактивно трансформировать размещение плоскости с помощью так называемого контроллера (создается автоматически после запуска процесса). Это представляет собой своего рода объект Vision, который добавляется в сцену. Контроллер обеспечивает следующие виды трансформации:
линейное перемещение по оси Z;
плоскостное движение по плоскости XY;
вращение вокруг осей X и Y.

Параметры
Тип параметров секущей плоскости (Typescript):
export type EditSectionPlaneOptions = {
placement?: {
a: number,
b: number,
c: number
}
colors?: {
lines: C3DViewRGB,
rect: C3DViewRGB,
transparent: number
}
direction?: "front" | "back"
centering?: boolean
}
Имя |
Описание |
|---|---|
|
Плоскость сечения определяется двумя углами и смещением (подробнее). По умолчанию используется |
|
Цвет контура плоскости RGB. По умолчанию используется |
|
Цвет заполнения плоскости RGB. По умолчанию используется |
|
Прозрачность плоскости сечения. По умолчанию установлено значение |
|
Плоскость сечения делит модель на две части. Эта опция определяет, какая из них отображается (другая скрыта). По умолчанию — |
|
Выравнивает ли процесс контроллер по центру (началу) плоскости сечения. По умолчанию установлено значение |
Примечание
Все параметры можно изменить во время выполнения процесса с помощью команды обновления.
Добавлено в версии 1.8.0: Добавлена опция centering для центрирования контроллера.
Обратные вызовы
Доступные события:
onUpdate(a, b, c) генерируется при изменении плоскости (через команду процесса обновления).
onInvert(direction) генерируется при изменении направления плоскости.
onCtrlOriginChanged(centered) генерируется, когда начало координат контроллера становится отличным от плоского (centered равно
false) или равно ему (centered равноtrue).
Добавлено в версии 1.8.0: Добавлено событие onCtrlOriginChanged.
Запуск
Пример запуска процесса (TypeScript):
view.runCommand({
name: "RunProcessCommand",
process: {
name: "EditSectionPlane",
id: 1,
options: {
placement: {
a: 3,
b: 1,
c: 100
}
},
events: {}
}
})
Обновление
Любые изменения в плоскости сечения доступны только с помощью команды обновления.
Обобщенный тип команды обновления (TypeScript):
type UpdateProcess = {
name: "UpdateProcessCommand"
options: {
name: "EditSectionPlane"
placement?: {
a: number
b: number
c: number
}
colors?: {
lines: C3DViewRGB
rect: C3DViewRGB
transparent: number
}
direction?: "front"|"back"
}
}
Пример команды для обновления определения плоскости (TypeScript):
view.runCommand({
name: "UpdateProcessCommand",
options: {
name: "EditSectionPlane",
placement: {
a: 3,
b: 2,
c: 100
}
}
})