Параллелипипед

Объект PMI для добавления метки к сцене.

Объект

Обобщенный тип объекта box (TypeScript):

export type C3DViewBox = {
    type: C3DViewObjectTypes.Box
    uuid?: string
    position: {
        center: C3DViewPoint
        angleX?: number
        angleY?: number
        angleZ?: number
    }
    width: number
    height: number
    depth: number
    options: C3DViewSimpleGeometryOptions
    userData: C3DUserData
}

Свойства type, uuid и userData описаны здесь. Кроме того, для этого объекта PMI:

  • type может быть C3DViewObjectTypes.Box или строкой "Box";

  • Объект userData можно получить позже, используя команду с типом GetParametersTypes.AnnotationList.

  1. position — это положение объекта в сцене:

    • center — это центральная точка блока;

    • angleX, angleY, angleS — углы Эйлера, используемые для управления наклоном блока.

  2. width — это ширина блока (размер по оси X).

  3. height — это высота блока (размер по оси Y).

  4. depth — это глубина блока (размер по оси Z).

  5. options — это дополнительные параметры.

Дополнительные параметры

Тип параметров простой геометрии (TypeScript):

export type C3DViewSimpleGeometryOptions = {
    group?: number
    colors?: {
        fill?: C3DViewRGB
        lines?: C3DViewRGB
    }
}
  1. Поле group определяет, к какой группе принадлежит блок.

  2. colors — это группа значений для изменения цвета графического объекта:

    • fill — это значение {r, g, b} сплошного цвета заливки;

    • lines — это значение {r, g, b} цвета каркаса.

Примечание

Если цвет линий отсутствует, каркас объекта не отображается. Если цвет заливки отсутствует, поверхность объекта не отображается. Если параметры цвета отсутствуют, объект отображается не полностью.

Добавлено в версии 1.6.0: Добавлены свойства цвета для сплошной заливки и линий (каркас).

Добавлено в версии 1.8.0: Добавлено свойство группа.

Пример

Пример команды добавления нового блока (TypeScript):

view.runCommand({
    name: "AddAnnotation",
    objs: [
        {
            type: "Box",
            position: {
                center: {x: 10, y: 0, z: 0},
            },
            width: 20,
            height: 20,
            depth: 20,
            options: {
                fill: {r: 255, g: 0, b: 0},
            },
        }
    ]
})