RemarksExtension
RemarksExtension – расширение, которое позволяет задать точки замечаний на сцене. Замечания прикрепляются к графическим объектам на сцене, изменяя свое положение при изменении положения целевого объекта. Замечания рисуются на отдельном слое. Каждая точка замечания имеет статус – опционально отображаемую текстуру.
Расширение имеет имя PilotWeb3D.Remarks
.
Пример подключения в html
:
<script src="https://pilot.ascon.ru/componentkit/components/24.21.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
. Необязательный параметр.