PMI-геометрия
Ниже мы рассмотрим геометрию, которую можно добавить в модель на стороне клиента. Такие объекты являются динамической частью модели.
C3D Web Vision поддерживает следующие типы объектов:
export enum C3DViewObjectTypes
{
Comment = "Comment",
Markup = "Markup",
LineDimension = "LineDimension",
PathDimension = "PathDimension",
AngleDimension = "AngleDimension",
RadialDimension = 'RadialDimension',
Box = "Box",
Sphere = "Sphere",
Curve = "Curve",
Poi = 'Poi',
Image = 'Image'
}
Добавлено в версии 1.5.0: Добавлены новые измерения (см. Размеры).
Добавлено в версии 1.6.0: Добавлены объекты блок, сфера и кривая.
Добавлено в версии 1.8.0: Добавлены новые измерения (см. Размеры).
Добавлено в версии 1.9.0: Добавлен объект POI (см. Точка интереса (POI)). Добавлен объект изображения (см. Image).
Представление
Каждый объект представлен типизированным объектом, имеющим специальные для объекта свойства. Тем не менее, каждый тип имеет и общие черты:
Выдержка из некоторого типа объекта (TypeScript):
export type C3DView... = {
type: C3DViewObjectTypes
uuid?: string
...special properties...
userData: C3DUserData
}
type — обязательное поле, определяющее тип объекта;
uuid — уникальный идентификатор объекта;
userData — это пользовательский объект данных.
Добавлено в версии 1.6.0: Параметр uuid сделан необязательным. UUID объекта генерируется без него.
Примечание
Если uuid отсутствует, создается новый объект. Напротив, если uuid присутствует и равен uuid какого-либо существующего объекта, последний обновляется.
Добавление объекта
Чтобы добавить любой объект в сцену, вам следует использовать команду AddAnnotation.
Пример добавления объекта Comment (TypeScript):
view.runCommand({
name: "AddAnnotation",
objs: [{
type: C3DViewObjectTypes.Comment, // "Comment"
uuid: "26405536-2d18-48db-968e-ebc536d0a572",
points: {
target: {x:0, y:0, z:0},
shelf: {x:100, y:20, z:0},
},
options: {
text: "My comment",
}
}],
})
Примечание
Рекомендуется использовать процессы для добавления объектов в интерактивном режиме.
Пользовательские данные
Каждый объект PMI имеет собственный объект для хранения некоторой пользовательской информации. Представление его одинаково для всех объектов.
export type C3DUserData = object | undefined
Создание объекта пользовательских данных зависит от того, какой метод используется для создания объекта PMI.