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

Подробную информацию о самом секущем блоке можно найти здесь.
Функции
Тип EditSectionPlaneProcess (TypeScript):
export type EditSectionBoxProcess = {
name: "EditSectionBox"
id?: number
options: EditSectionBoxOptions
events: {
onRun?: (params: C3DSectionOBB) => void
onUpdate?: (params: C3DSectionOBB) => void
}
}
В дополнение к options этот процесс имеет необязательное свойство id. Если указано, это позволяет редактировать поле раздела, уже добавленное с помощью команды.
Примечание
На данный момент в сцену можно добавить только один блок.
Примечание
Можно создать секущий блок, запустив процесс с пустым параметром id.
Интерактивная трансформация
Этот процесс также дает возможность интерактивно трансформировать размещение секущего блока с помощью так называемого контроллера (создается автоматически после запуска процесса). Это представляет собой своего рода объект Vision, который добавляется в сцену. Контроллер обеспечивает следующие виды трансформации:
линейное перемещение по осям X, Y и Z;
плоскостное движение по плоскостям XY, XZ и YZ;
вращение по осям X, Y и Z;
масштабирование (изменение размера) по осям X, Y и Z.
Внешний вид контроллера зависит от того, какой тип трансформации вам нужен:
линейное и плоскостное движение

вращение

масштабирование

Параметры
Тип блока сечения (Typescript):
export type EditSectionBoxOptions = {
box: C3DSectionAABB | C3DSectionOBB
transform?: SectionBoxTransform
colors?: {
lines: C3DViewRGB
rect: C3DViewRGB
// 0.0 - 1.0
transparent: number
}
}
Имя |
Описание |
|---|---|
|
Размещение блока раздела (подробнее) |
|
Перечисляемый тип контроллера трансформации блока. По умолчанию используется |
|
Цвет контура плоскости RGB. По умолчанию используется |
|
Цвет заполнения плоскости RGB. По умолчанию используется |
|
Прозрачность боковин секции. По умолчанию установлено значение |
Примечание
Все параметры можно изменить во время выполнения процесса с помощью команды обновления.
Обратные вызовы
Доступные события:
onRun(params): генерируется при запуске процесса (через команду запуска процесса);
onUpdate(params): генерируется при изменении поля (через команду процесса обновления).
Запуск
Пример запуска процесса (TypeScript):
view.runCommand({
name: "RunProcessCommand",
process: {
name: "EditSectionBox",
id: 1,
options: {
box: {
min: {
x: 0,
y: 0,
z: 0
},
max: {
x: 10,
y: 10,
z: 10
}
}
},
events: {}
}
})
Обновление
Любые изменения в блоке сечения доступны только через команду обновления.
Обобщенный тип команды обновления (TypeScript):
type UpdateProcess = {
name: "UpdateProcessCommand"
options: {
name: "EditSectionBox"
box: C3DSectionAABB | C3DSectionOBB
transform?: SectionBoxTransform
colors?: {
lines: C3DViewRGB
rect: C3DViewRGB
// 0.0 - 1.0
transparent: number
}
}
}
Пример команды для обновления блока сечения (TypeScript):
view.runCommand({
name: "UpdateProcessCommand",
options: {
name: "EditSectionBox",
box: {
min: {
x: 0,
y: 0,
z: 0
},
max: {
x: 10,
y: 10,
z: 10
}
}
}
})