Красный карандаш

Ниже мы рассмотрим объект PMI, содержащий 2D-примитивы и обычно используемый для заметок.

Красный карандаш

Объект

Обобщенный тип объекта красного карандаша (TypeScript):

export type C3DViewMarkup = {
    type: C3DViewObjectTypes.Markup
    uuid?: string

    content: string
    position: {
        plane: C3DViewPlacement
        view: {
            positionDist: number
            targetDist: number
            projection: CameraProjection
        }
    }

    userData: C3DUserData
}

Рассмотрим варианты данного объекта.

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

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

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

  1. content — это строка, которая должна содержать данные в формате svg. Данные описывают каждый примитив объекта разметки как соответствующий элемент svg, т. е., например, отрезок линии разметки преобразуется в линию svg и наоборот. Объект красного карандаша может как записывать себя в эту строку, так и читать ее.

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

    • plane — расположение объекта;

    • view — это группа параметров для установки правильного вида объекта:

      • positionDist — расстояние от исходной точки объекта до положения камеры;

      • targetDist — расстояние от исходной точки объекта до цели камеры (3D-модели в сцене);

      • проекция — проекция камеры.