@polygonjs/plugin-mapbox
Version:
Mapbox plugin for the 3D engine https://polygonjs.com
50 lines (49 loc) • 1.67 kB
JavaScript
import { CoreMapboxTransform } from "../../../core/mapbox/Transform";
import { InputCloneMode } from "@polygonjs/polygonjs/dist/src/engine/poly/InputCloneMode";
import { MapboxListenerParamConfig, MapboxListenerSopNode } from "./utils/MapboxListener";
const INPUT_NAMES = ["points to transform in mapbox space"];
import { NodeParamsConfig } from "@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig";
class MapboxTransformSopParamsConfig extends MapboxListenerParamConfig(NodeParamsConfig) {
}
const ParamsConfig = new MapboxTransformSopParamsConfig();
export class MapboxTransformSopNode extends MapboxListenerSopNode {
constructor() {
super(...arguments);
this.paramsConfig = ParamsConfig;
}
static type() {
return "mapboxTransform";
}
static displayedInputNames() {
return INPUT_NAMES;
}
initializeNode() {
this.io.inputs.setCount(1);
this.io.inputs.initInputsClonedState(InputCloneMode.FROM_NODE);
}
cook(inputContents) {
const coreGroup = inputContents[0];
if (!this._cameraNode) {
this.updateMapboxCamera();
if (!this._cameraNode) {
this.states.error.set("mapbox camera not found");
this.setCoreGroup(coreGroup);
return;
}
}
this._transformInput(coreGroup);
}
_transformInput(core_group) {
if (this._cameraNode) {
const transformer = new CoreMapboxTransform(this._cameraNode);
for (let object of core_group.objects()) {
transformer.transform_group_FINAL(object);
}
} else {
this.states.error.set("no camera node found");
}
this.setCoreGroup(core_group);
}
_postInitController() {
}
}