RemarksExtension

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

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

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

<script src="https://pilot.ascon.ru/componentkit/components/24.17.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 placeRemarkOnClick(): boolean;
  public set placeRemarkOnClick(value: boolean);

  public get selectedRemarks(): RemarkViewObject[];

  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;

Свойства

placeRemarkOnClick : boolean

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

  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()

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

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

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

deselect()

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

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

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

clearSelection()

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

clearSelection(): void;

setRemarkStatus()

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

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

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

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

setRemarksLayerVisibility()

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

public setRemarksLayerVisibility(visibiliity: boolean): void;

где:

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

RemarkEventMap

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

interface RemarkEventMap {
  'remarkPlacingModeChanged' : Event;
  'remarkClicked' : PilotWeb3D.ClickedEvent;
}

remarkPlacingModeChanged

  'remarkPlacingModeChanged' : Event;

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

remarkClicked

  'remarkClicked' : PilotWeb3D.ClickedEvent; 

Событие возникает при клике по точке замечания. Подробнее: 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. Необязательный параметр.