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.