RemarksExtension

RemarksExtension – расширение, которое позволяет задать точки замечаний на сцене. Замечания прикрепляются к графическим объектам на сцене, изменяя свое положение при изменении положения целевого объекта. Замечания рисуются на отдельном слое. Каждая точка замечания имеет статус – опционально отображаемую текстуру.

Расширение имеет имя PilotWeb3D.Remarks.

Пример подключения в html:

<script src="https://pilot.ascon.ru/componentkit/components/24.24.0/extensions/Remarks3D/Remarks.min.js"></script>

Пример подключения в javascript:

let htmlDiv = document.getElementById('pilotViewer')
viewer = PilotWeb3D.CreateViewer(htmlDiv);
await viewer.start();
await viewer.extensionsLoader.loadExtension("PilotWeb3D.Remarks");

Свойства

get remarkManager(): RemarkManager

Возвращает менеджер точек замечаний. Подробнее: RemarkManager.

public get remarkManager(): RemarkManager;

Методы

activate()

Метод включает расширение.

activate(): void;

deactivate()

Метод выключает расширение.

deactivate(): void;

RemarkManager

RemarkManager – менеджер замечаний, который предоставляет методы API для работы с точками замечаний.


export class RemarkManager {

  readonly events: PilotWeb3D.IEventsDispatcher;
  readonly remarkSceneName = 'RemarkViewObjectScene';

  public get selectTargetElement(): boolean;
  public set selectTargetElement(value: boolean);

  public get placeRemarkOnClick(): boolean;
  public set placeRemarkOnClick(value: boolean);

  public get selectedRemarks(): RemarkViewObject[];
  public get selectedRemarksIds(): string[];

  public setActive(value: boolean): void;

  public getRemark(remarkId: string): RemarkViewObject | undefined;

  public addRemark(remarkParameters: RemarkObjectParameters, statusParameters?: RemarkStatusParameters): RemarkViewObject;

  public removeRemarks(remarkIds?: string[]): void;

  public select(remarkId: string | string[]): void;

  public deselect(remarkId: string | string[]): void;

  public setRemarkStatus(remarkId: string, statusParameters: RemarkStatusParameters): void;

  public setRemarksVisibility(visibiliity: boolean, remarkIds?: string[]): void;

  public setRemarksLayerVisibility(visibiliity: boolean): void;

}

Поля

remarkSceneName : string

Наименование слоя замечаний.

readonly remarkSceneName = 'RemarkViewObjectScene';

events : IEventsDispatcher

Диспетчер событий замечаний. Подробнее: IEventsDispatcher.
Список типов событий замечаний: RemarkEventMap.

  readonly events: PilotWeb3D.IEventsDispatcher;

Свойства

selectTargetElement : boolean

Включает или выключает режим выделения целевого объекта точки замечания. Если true, то выделение точки замечания приведет к выделению объекта, для которого добавлено замечание.

  get selectTargetElement(): boolean;
  set selectTargetElement(value: boolean);

По умолчанию: false.

placeRemarkOnClick : boolean

Включает или выключает режим размещения точек замечаний по клику на сцене. Если true, то клик по объекту на сцене приведёт к добавлению точки замечания для данного объекта в месте клика. После добавления точки замечания, либо при клике в пустую область, режим сбрасывается и свойство становится false.
При смене режима размещения точек возникает событие pilotRemarkPlacingModeChanged.

  get placeRemarkOnClick(): boolean;
  set placeRemarkOnClick(value: boolean);

По умолчанию: false.

selectedRemarks : RemarkViewObject[]

Возвращает выбранные объекты замечаний либо пустой массив, если ни одно замечание не выбрано.
Подробнее: RemarkViewObject.

  get selectedRemarks(): RemarkViewObject[];

По умолчанию: [].

Методы

setActive()

Метод активирует или деактивирует менеджер точек замечаний.

setActive(value: boolean): void;

getRemark()

Метод возвращает объект замечания с указанным ID либо undefined, если объект с указанным ID не найден.

public getRemark(remarkId: string): RemarkViewObject | undefined;

где:
remarkId – идентификатор объекта замечания.

addRemark()

Метод добавляет точку замечания на слой замечаний.

public addRemark(remarkParameters: RemarkObjectParameters, statusParameters?: RemarkStatusParameters): RemarkViewObject | null;

где:
remarkParameters – параметры точки замечания. Подробнее: RemarkObjectParameters.

statusParameters – параметры статуса замечания. Опциональный параметр. Подробнее: RemarkStatusParameters.

Возвращает добавленный на сцену объект замечания или null, если добавить точку не удалось. Подробнее: RemarkViewObject.

removeRemarks()

Метод удаляет точки замечаний и освобождает ресурсы, выделенные для удаляемых точек.

public removeRemarks(remarkIds?: string[]): void;

где:
remarkIds – идентификаторы точек замечаний для удаления. Опциональный параметр. Если не задан, то удаляются все добавленные на сцену точки замечаний.

select()

Метод выделяет замечания на документе. При изменении списка селектированных замечаний возникает событие pilotRemarkSelectionChanged.

select(remarkId: string | string[]): void;

где:
remarkId – идентификатор замечания или массив идентификаторов для выделения.

deselect()

Метод снимает выделение замечаний на документе. При изменении списка селектированных замечаний возникает событие pilotRemarkSelectionChanged.

deselect(remarkId: string | string[]): void;

где:
remarkId – идентификатор замечания или массив идентификаторов для снятия выделения.

clearSelection()

Метод снимает выделение с текущего выбранного замечания. При изменении списка селектированных замечаний возникает событие pilotRemarkSelectionChanged.

clearSelection(): void;

setRemarkStatus()

Метод задает параметры статуса точки замечания.

public setRemarkStatus(remarkId: string, statusParameters: RemarkStatusParameters): void;

где:
remarkId – идентификатор точки замечания для обновления статуса.

statusParameters – параметры статуса замечания. Подробнее: RemarkStatusParameters.

setRemarksLayerVisibility()

Метод задает видимость слоя точек замечаний.

public setRemarksLayerVisibility(visibiliity: boolean): void;

где:

visibiliity – параметр видимости слоя замечаний. Если true, то слой замечаний отрисовывается в процессе рендера. В противном случае слой замечаний не рисуется, и объекты замечаний на сцене не показываются.

RemarkEventMap

События замечаний.

interface RemarkEventMap {
  'pilotRemarkPlacingModeChanged' : Event;
  'pilotRemarkSelectionChanged' : PilotWeb3D.SelectionChangedEvent;
}

pilotRemarkPlacingModeChanged

  'pilotRemarkPlacingModeChanged' : Event;

Событие возникает при изменении свойства placeRemarkOnClick.

pilotRemarkSelectionChanged

  'pilotRemarkSelectionChanged' : PilotWeb3D.SelectionChangedEvent; 

Событие возникает при изменении списка селектированных замечаний. Подробнее: Events3D.

RemarkViewObject

Графический объект, представляющий собой точку замечания. Добавляется на слой замечаний. Расширяет ViewObject.

export class RemarkViewObject extends PilotWeb3D.ViewObject {
  constructor(remarkParamters?: RemarkObjectParameters, statusParameters?: RemarkStatusParameters);

  get remarkParameters(): RemarkObjectParameters;

  get statusParameters(): RemarkStatusParameters;

  updateRemark(parameters: RemarkObjectParameters): void;

  updateStatus(parameters: RemarkStatusParameters): void;
}

Конструктор

  constructor(remarkParamters?: RemarkObjectParameters, statusParameters?: RemarkStatusParameters);

где:
remarkParamters – опциональные параметры точки замечания. Если не заданы, то создается точка замечания со значениями по умолчанию. Подробнее: RemarkObjectParameters.

statusParameters – опциональные параметры статуса замечания. Подробнее: RemarkStatusParameters.

Свойства

remarkParameters() : RemarkObjectParameters

Возвращает текущие параметры замечания.

  get remarkParameters(): RemarkObjectParameters;

Подробнее: RemarkObjectParameters.

statusParameters() : RemarkStatusParameters

Возвращает текущие параметры статуса замечания.

  get statusParameters(): RemarkStatusParameters;

Подробнее: RemarkStatusParameters.

Методы

updateRemark()

Метод обновляет параметры точки замечания. Внутри parameters можно определять только изменившиеся параметры точки замечания. Например, для изменения размера точки достаточно передать { markSize : newSize }. При этом позиция точки, иконка замечания и другие параметры останутся неизменными. Подробнее: RemarkObjectParameters.

  updateRemark(parameters: RemarkObjectParameters): void;

updateStatus()

Метод обновляет параметры статуса точки замечания. Внутри parameters можно определять только изменившиеся параметры статуса. Например, для изменения размера статуса достаточно передать { statusSize : newSize }. При этом смещение статуса, иконка статуса и другие параметры останутся неизменными. Подробнее: RemarkStatusParameters.

  updateStatus(parameters: RemarkStatusParameters): void;

RemarkObjectParameters

Параметры точки замечания.

export interface RemarkObjectParameters {
  remarkGuid?: string,
  targetModelGuid?: string,
  targetEntityGuid?: string,
  position?: Point3,
  relativePosition?: Point3,
  markSize?: { x: number, y: number },
  svgIcon?: string
}

remarkGuid : string

Идентификатор точки замечания. Опциональный параметр. Если не задан, уникальный идентификатор генерируется автоматически.

targetModelGuid : string

Идентификатор части модели, которой принадлежит целевой объект.
Необязательный параметр, используется совместно с targetEntityGuid. Если не указан, то поиск целевого объекта выполняется по всем частям модели.
Подробнее: ModelElement.modelPartId.

targetEntityGuid : string

Идентификатор элемента модели, геометрия которого используется как целевой объект для привязки замечания.
Подробнее: ModelElement.id.

position : Point3

Координаты точки замечания в мировом пространстве. Опциональный параметр. Если координаты не заданы, но задан целевой объект (targetEntityGuid) и относительное положение точки замечания (relativePosition), то абсолютное положение точки замечания рассчитывается, исходя из этих параметров. В противном случае используется значение по умолчанию: { x: 0, y: 0, z: 0 }. Подробнее: Point3.

relativePosition : Point3

Координаты точки замечания относительно целевого объекта. Опциональный параметр. Относительные координаты применяются только в том случае, если задан целевой объект (targetEntityGuid) и не заданы абсолютные координаты (position). В случае, если заданы и целевой объект, и абсолютные координаты, то относительные координаты будут рассчитаны, исходя из этих параметров. Подробнее: Point3.

markSize : {x: number, y: number}

Размеры точки замечания. Опциональный параметр. Если не задан, то используются значения по умолчанию: { x: 25, y: 25 }.

svgIcon : string

Иконка точки замечания, строковое описание svg. Необязательный параметр.

RemarkStatusParameters

Параметры статуса точки замечания.

export interface RemarkStatusParameters {
  visible?: boolean,
  mapColor?: PilotWeb3D.Color,
  statusSize?: { x: number, y: number },
  statusOffset?: { x: number, y: number },
  svgIcon?: string
}

visible : boolean

Определяет видимость статуса замечания на сцене. Опциональный параметр. Если не задан, то используется значение по умолчанию: false.

mapColor : PilotWeb3D.Color

Определяет цвет статуса замечания. Опциональный параметр. При отрисовке цвет текстуры замечания умножается на этот цвет. Если не задан, то используется значение по умолчанию: new PilotWeb3D.Color(1, 1, 1, 1).
Подробнее: Color.

statusSize : { x: number, y: number }

Определяет размеры текстуры статуса замечания в пикселях. Опциональный параметр. Если не задан, то используется значение по умолчанию: { x: 30, y: 30 }.

statusOffset : { x: number, y: number }

Определяет смещение текстуры статуса замечания относительно точки замечания. Опциональный параметр. Указывается в пикселях. Если не задан, то используется значение по умолчанию: { x: 25, y: 25 }.

svgIcon : string

Иконка статуса замечания, строковое описание svg. Необязательный параметр.