@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
44 lines (43 loc) • 1.77 kB
JavaScript
;
import { TypedSopNode } from "./_Base";
import { CameraWebXRARMarkerTrackingSopOperation } from "../../operations/sop/CameraWebXRARMarkerTracking";
import { HierarchyParamConfigAll } from "../utils/params/ParamsConfig";
import { CameraSopNodeType } from "../../poly/NodeContext";
import { CoreCameraMarkerTrackingParamConfig } from "../../../core/camera/webXR/CoreCameraMarkerTracking";
import {
MARKER_TRACKING_SOURCE_MODES,
MARKER_TRACKING_TRANSFORM_MODES
} from "../../../core/webXR/markerTracking/Common";
class CameraWebXRARMarkerTrackingSopParamsConfig extends CoreCameraMarkerTrackingParamConfig(HierarchyParamConfigAll) {
}
const ParamsConfig = new CameraWebXRARMarkerTrackingSopParamsConfig();
export class CameraWebXRARMarkerTrackingSopNode extends TypedSopNode {
constructor() {
super(...arguments);
this.paramsConfig = ParamsConfig;
}
static type() {
return CameraSopNodeType.WEBXR_AR_MARKER_TRACKING;
}
initializeNode() {
this.io.inputs.setCount(1);
this.io.inputs.initInputsClonedState(CameraWebXRARMarkerTrackingSopOperation.INPUT_CLONED_STATE);
}
cook(inputCoreGroups) {
this._operation = this._operation || new CameraWebXRARMarkerTrackingSopOperation(this._scene, this.states, this);
const coreGroup = this._operation.cook(inputCoreGroups, this.pv);
this.setCoreGroup(coreGroup);
}
setSourceMode(sourceMode) {
this.p.sourceMode.set(MARKER_TRACKING_SOURCE_MODES.indexOf(sourceMode));
}
sourceMode() {
return MARKER_TRACKING_SOURCE_MODES[this.pv.sourceMode];
}
setTransformMode(sourceMode) {
this.p.transformMode.set(MARKER_TRACKING_TRANSFORM_MODES.indexOf(sourceMode));
}
transformMode() {
return MARKER_TRACKING_TRANSFORM_MODES[this.pv.transformMode];
}
}