UNPKG

mapillary-js

Version:

WebGL JavaScript library for displaying street level imagery from mapillary.com

65 lines (52 loc) 1.65 kB
import { Component, HandlerBase, ITagConfiguration, } from "../../../Component"; import { Transform, ViewportCoords, } from "../../../Geo"; import {RenderCamera} from "../../../Render"; import { Container, Navigator, } from "../../../Viewer"; export abstract class TagHandlerBase extends HandlerBase<ITagConfiguration> { protected _name: string; protected _viewportCoords: ViewportCoords; constructor( component: Component<ITagConfiguration>, container: Container, navigator: Navigator, viewportCoords: ViewportCoords) { super(component, container, navigator); this._name = `${this._component.name}-${this._getNameExtension()}`; this._viewportCoords = viewportCoords; } protected _getConfiguration(enable: boolean): ITagConfiguration { return {}; } protected abstract _getNameExtension(): string; protected _mouseEventToBasic( event: MouseEvent, element: HTMLElement, camera: RenderCamera, transform: Transform, offsetX?: number, offsetY?: number): number[] { offsetX = offsetX != null ? offsetX : 0; offsetY = offsetY != null ? offsetY : 0; const [canvasX, canvasY]: number[] = this._viewportCoords.canvasPosition(event, element); const basic: number[] = this._viewportCoords.canvasToBasic( canvasX - offsetX, canvasY - offsetY, element, transform, camera.perspective); return basic; } } export default TagHandlerBase;