@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
35 lines (33 loc) • 1.5 kB
text/typescript
import {ParamConfig} from '../../../engine/nodes/utils/params/ParamsConfig';
import {CameraWebXRARSopOperation} from '../../../engine/operations/sop/CameraWebXRAR';
import {Constructor} from '../../../types/GlobalTypes';
import {
DEFAULT_WEBXR_REFERENCE_SPACE_TYPE,
WEBXR_FEATURE_PARAM_OPTIONS,
WEBXR_REFERENCE_SPACE_TYPES,
} from '../../webXR/Common';
const DEFAULT = CameraWebXRARSopOperation.DEFAULT_PARAMS;
export function CoreCameraWebXRARParamConfig<TBase extends Constructor>(Base: TBase) {
return class Mixin extends Base {
/** @param loads AR session with 'hit-test' feature */
hitTest = ParamConfig.INTEGER(DEFAULT.hitTest, WEBXR_FEATURE_PARAM_OPTIONS);
/** @param loads AR session with 'light-estimation' feature */
lightEstimation = ParamConfig.INTEGER(DEFAULT.lightEstimation, WEBXR_FEATURE_PARAM_OPTIONS);
/** @param loads AR session with 'camera-access' feature */
cameraAccess = ParamConfig.INTEGER(DEFAULT.cameraAccess, WEBXR_FEATURE_PARAM_OPTIONS);
/** @param overrides referenceSpaceType */
overrideReferenceSpaceType = ParamConfig.BOOLEAN(0);
/** @param set referenceSpaceType ( see doc: https://immersive-web.github.io/webxr/#xrreferencespace-interface ) */
referenceSpaceType = ParamConfig.INTEGER(
WEBXR_REFERENCE_SPACE_TYPES.indexOf(DEFAULT_WEBXR_REFERENCE_SPACE_TYPE),
{
menu: {
entries: WEBXR_REFERENCE_SPACE_TYPES.map((name, value) => ({name, value})),
},
visibleIf: {
overrideReferenceSpaceType: 1,
},
}
);
};
}