@polygonjs/plugin-mapbox
Version:
Mapbox plugin for the 3D engine https://polygonjs.com
31 lines (26 loc) • 1.29 kB
text/typescript
import {PolyEngine} from '@polygonjs/polygonjs/dist/src/engine/Poly';
import {OnNodeRegisterCallback} from '@polygonjs/polygonjs/dist/src/engine/poly/registers/nodes/NodesRegister';
import type {MapboxCameraObjNode} from '../../engine/nodes/obj/MapboxCamera';
import {MapboxViewer} from '../../engine/viewers/Mapbox';
import {MapboxPerspectiveCamera} from './MapboxPerspectiveCamera';
export type MapboxCameraObjNodeType = 'mapboxCamera';
export const MAPBOX_CAMERA_OBJ_NODE_TYPE: MapboxCameraObjNodeType = 'mapboxCamera';
export const registerMapboxCamera: OnNodeRegisterCallback = (poly: PolyEngine) => {
poly.registerCameraNodeType(MAPBOX_CAMERA_OBJ_NODE_TYPE);
poly.registerCamera<MapboxPerspectiveCamera>(MapboxPerspectiveCamera, (options) => {
const {camera, scene} = options;
// since the camera is only created via the obj node for now,
// we can assume that the path of the camera object and the camera node are the same
const cameraPath = scene.objectsController.objectPath(camera);
const cameraNode = scene.node(cameraPath) as MapboxCameraObjNode;
const viewer = new MapboxViewer({
cameraNode,
camera,
scene,
updateCameraAspect: (aspect) => {
// CoreCameraPerspectiveFrameMode.updateCameraAspect(camera, aspect);
},
});
return viewer;
});
};