@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
88 lines (87 loc) • 5.29 kB
JavaScript
;
import { arrayCompact } from "../ArrayUtils";
import { coreObjectClassFactory } from "../geometry/CoreObjectFactory";
export const CORE_CAMERA_DEFAULT = {
near: 0.1,
far: 100
};
export var CameraAttribute = /* @__PURE__ */ ((CameraAttribute2) => {
CameraAttribute2["NODE_ID"] = "_Camera_nodeGeneratorId__";
CameraAttribute2["CONTROLS_NODE_ID"] = "_Camera_controlsNodeId";
CameraAttribute2["CSS_RENDERER_NODE_ID"] = "_Camera_CSSRendererNodeId";
CameraAttribute2["FRAME_MODE"] = "_Camera_frameMode";
CameraAttribute2["FRAME_MODE_EXPECTED_ASPECT_RATIO"] = "_Camera_frameModeExpectedAspectRatio";
CameraAttribute2["MAX_FPS"] = "maxFPS";
CameraAttribute2["MAX_FPS_DYNAMIC_CHANGE"] = "_Camera_maxFPSDynamicChange";
CameraAttribute2["VIEW_OFFSET_MIN"] = "_Camera_viewOffsetMin";
CameraAttribute2["VIEW_OFFSET_MAX"] = "_Camera_viewOffsetMax";
CameraAttribute2["POST_PROCESS_NODE_ID"] = "_Camera_postProcessNodeId";
CameraAttribute2["RENDER_SCENE_NODE_ID"] = "_Camera_renderSceneNodeId";
CameraAttribute2["RENDERER_NODE_ID"] = "_Camera_rendererNodeId";
CameraAttribute2["VIEWER_ID"] = "_Camera_viewerId";
CameraAttribute2["VIEWER_HTML"] = "_Camera_viewerHTML";
CameraAttribute2["WEBXR_AR"] = "_Camera_WebXR_AR";
CameraAttribute2["WEBXR_VR"] = "_Camera_WebXR_VR";
CameraAttribute2["WEBXR_AR_FEATURES_OPTIONAL"] = "_Camera_WebXR_AR_Features_Optional";
CameraAttribute2["WEBXR_AR_FEATURES_REQUIRED"] = "_Camera_WebXR_AR_Features_Required";
CameraAttribute2["WEBXR_AR_OVERRIDE_REFERENCE_SPACE_TYPE"] = "_Camera_WebXR_AR_overrideReferenceSpaceType";
CameraAttribute2["WEBXR_AR_REFERENCE_SPACE_TYPE"] = "_Camera_WebXR_AR_referenceSpaceType";
CameraAttribute2["WEBXR_VR_FEATURES_OPTIONAL"] = "_Camera_WebXR_VR_Features_Optional";
CameraAttribute2["WEBXR_VR_FEATURES_REQUIRED"] = "_Camera_WebXR_VR_Features_Required";
CameraAttribute2["WEBXR_VR_OVERRIDE_REFERENCE_SPACE_TYPE"] = "_Camera_WebXR_VR_overrideReferenceSpaceType";
CameraAttribute2["WEBXR_VR_REFERENCE_SPACE_TYPE"] = "_Camera_WebXR_VR_referenceSpaceType";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING"] = "_Camera_WebXR_AR_markerTracking";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_SOURCE_MODE"] = "_Camera_WebXR_AR_markerTracking_sourceMode";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_SOURCE_URL"] = "_Camera_WebXR_AR_markerTracking_sourceUrl";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_BAR_CODE_TYPE"] = "_Camera_WebXR_AR_markerTracking_barCodeType";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_BAR_CODE_VALUE"] = "_Camera_WebXR_AR_markerTracking_barCodeValue";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_TRANSFORM_MODE"] = "_Camera_WebXR_AR_markerTracking_transformMode";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_SMOOTH"] = "_Camera_WebXR_AR_markerTracking_smooth";
CameraAttribute2["WEBXR_AR_MARKER_TRACKING_SMOOTH_COUNT"] = "_Camera_WebXR_AR_markerTracking_smoothCount";
return CameraAttribute2;
})(CameraAttribute || {});
export const CAMERA_ATTRIBUTES = [
"_Camera_nodeGeneratorId__" /* NODE_ID */,
"_Camera_controlsNodeId" /* CONTROLS_NODE_ID */,
"_Camera_CSSRendererNodeId" /* CSS_RENDERER_NODE_ID */,
"_Camera_frameMode" /* FRAME_MODE */,
"_Camera_frameModeExpectedAspectRatio" /* FRAME_MODE_EXPECTED_ASPECT_RATIO */,
"_Camera_viewOffsetMin" /* VIEW_OFFSET_MIN */,
"_Camera_viewOffsetMax" /* VIEW_OFFSET_MAX */,
"_Camera_postProcessNodeId" /* POST_PROCESS_NODE_ID */,
"_Camera_renderSceneNodeId" /* RENDER_SCENE_NODE_ID */,
"_Camera_rendererNodeId" /* RENDERER_NODE_ID */,
"_Camera_WebXR_AR" /* WEBXR_AR */,
"_Camera_WebXR_VR" /* WEBXR_VR */,
"_Camera_WebXR_AR_Features_Optional" /* WEBXR_AR_FEATURES_OPTIONAL */,
"_Camera_WebXR_AR_Features_Required" /* WEBXR_AR_FEATURES_REQUIRED */,
"_Camera_WebXR_AR_overrideReferenceSpaceType" /* WEBXR_AR_OVERRIDE_REFERENCE_SPACE_TYPE */,
"_Camera_WebXR_AR_referenceSpaceType" /* WEBXR_AR_REFERENCE_SPACE_TYPE */,
"_Camera_WebXR_VR_Features_Optional" /* WEBXR_VR_FEATURES_OPTIONAL */,
"_Camera_WebXR_VR_Features_Required" /* WEBXR_VR_FEATURES_REQUIRED */,
"_Camera_WebXR_VR_overrideReferenceSpaceType" /* WEBXR_VR_OVERRIDE_REFERENCE_SPACE_TYPE */,
"_Camera_WebXR_VR_referenceSpaceType" /* WEBXR_VR_REFERENCE_SPACE_TYPE */
];
export var PerspectiveCameraAttribute = /* @__PURE__ */ ((PerspectiveCameraAttribute2) => {
PerspectiveCameraAttribute2["FOV"] = "_PerspectiveCamera_fov";
return PerspectiveCameraAttribute2;
})(PerspectiveCameraAttribute || {});
export const PERSPECTIVE_CAMERA_ATTRIBUTES = ["_PerspectiveCamera_fov" /* FOV */];
export var OrthographicCameraAttribute = /* @__PURE__ */ ((OrthographicCameraAttribute2) => {
OrthographicCameraAttribute2["SIZE"] = "_OrthographicCamera_size";
return OrthographicCameraAttribute2;
})(OrthographicCameraAttribute || {});
export const ORTHOGRAPHIC_CAMERA_ATTRIBUTES = ["_OrthographicCamera_size" /* SIZE */];
export function serializeCamera(camera, attributeNames) {
const values = attributeNames.map((attribName) => {
const value = coreObjectClassFactory(camera).attribValue(camera, attribName);
if (value != null) {
return { [attribName]: value };
}
});
const attribValues = [];
return JSON.stringify({
uuid: camera.uuid,
attributes: arrayCompact(values, attribValues)
});
}