|
@@ -1,5 +1,5 @@
|
|
-import { ITemplateConfiguration } from './../templateManager';
|
|
|
|
import { EngineOptions, IGlowLayerOptions, DepthOfFieldEffectBlurLevel } from 'babylonjs';
|
|
import { EngineOptions, IGlowLayerOptions, DepthOfFieldEffectBlurLevel } from 'babylonjs';
|
|
|
|
+import { IObserversConfiguration, IModelConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, IGroundConfiguration, ILightConfiguration, IDefaultRenderingPipelineConfiguration, ITemplateConfiguration } from './interfaces';
|
|
|
|
|
|
export function getConfigurationKey(key: string, configObject: any) {
|
|
export function getConfigurationKey(key: string, configObject: any) {
|
|
let splits = key.split('.');
|
|
let splits = key.split('.');
|
|
@@ -112,382 +112,4 @@ export interface ViewerConfiguration {
|
|
defaultRenderingPipelines?: boolean | IDefaultRenderingPipelineConfiguration;
|
|
defaultRenderingPipelines?: boolean | IDefaultRenderingPipelineConfiguration;
|
|
globalLightRotation?: number;
|
|
globalLightRotation?: number;
|
|
}
|
|
}
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface IModelConfiguration {
|
|
|
|
- id?: string;
|
|
|
|
- url?: string;
|
|
|
|
- root?: string; //optional
|
|
|
|
- file?: string | File; // is a file being loaded? root and url ignored
|
|
|
|
- loader?: string; // obj, gltf?
|
|
|
|
- position?: { x: number, y: number, z: number };
|
|
|
|
- rotation?: { x: number, y: number, z: number, w?: number };
|
|
|
|
- scaling?: { x: number, y: number, z: number };
|
|
|
|
- parentObjectIndex?: number; // the index of the parent object of the model in the loaded meshes array.
|
|
|
|
-
|
|
|
|
- castShadow?: boolean;
|
|
|
|
- receiveShadows?: boolean;
|
|
|
|
- normalize?: boolean | {
|
|
|
|
- center?: boolean;
|
|
|
|
- unitSize?: boolean;
|
|
|
|
- parentIndex?: number;
|
|
|
|
- }; // should the model be scaled to unit-size
|
|
|
|
-
|
|
|
|
- title?: string;
|
|
|
|
- subtitle?: string;
|
|
|
|
- thumbnail?: string; // URL or data-url
|
|
|
|
-
|
|
|
|
- animation?: {
|
|
|
|
- autoStart?: boolean | string;
|
|
|
|
- playOnce?: boolean;
|
|
|
|
- autoStartIndex?: number;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- entryAnimation?: IModelAnimationConfiguration;
|
|
|
|
- exitAnimation?: IModelAnimationConfiguration;
|
|
|
|
-
|
|
|
|
- material?: {
|
|
|
|
- directEnabled?: boolean;
|
|
|
|
- directIntensity?: number;
|
|
|
|
- emissiveIntensity?: number;
|
|
|
|
- environmentIntensity?: number;
|
|
|
|
- [propName: string]: any;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Rotation offset axis definition
|
|
|
|
- */
|
|
|
|
- rotationOffsetAxis?: {
|
|
|
|
- x: number;
|
|
|
|
- y: number;
|
|
|
|
- z: number;
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * the offset angle
|
|
|
|
- */
|
|
|
|
- rotationOffsetAngle?: number;
|
|
|
|
-
|
|
|
|
- loaderConfiguration?: {
|
|
|
|
- maxLODsToLoad?: number;
|
|
|
|
- progressiveLoading?: boolean;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // [propName: string]: any; // further configuration, like title and creator
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ISkyboxConfiguration {
|
|
|
|
- cubeTexture?: {
|
|
|
|
- noMipMap?: boolean;
|
|
|
|
- gammaSpace?: boolean;
|
|
|
|
- url?: string | Array<string>;
|
|
|
|
- };
|
|
|
|
- color?: { r: number, g: number, b: number };
|
|
|
|
- pbr?: boolean; // deprecated
|
|
|
|
- scale?: number;
|
|
|
|
- blur?: number; // deprecated
|
|
|
|
- material?: {
|
|
|
|
- imageProcessingConfiguration?: IImageProcessingConfiguration;
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
- infiniteDistance?: boolean;
|
|
|
|
-
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface IGroundConfiguration {
|
|
|
|
- size?: number;
|
|
|
|
- receiveShadows?: boolean;
|
|
|
|
- shadowLevel?: number;
|
|
|
|
- shadowOnly?: boolean; // deprecated
|
|
|
|
- mirror?: boolean | {
|
|
|
|
- sizeRatio?: number;
|
|
|
|
- blurKernel?: number;
|
|
|
|
- amount?: number;
|
|
|
|
- fresnelWeight?: number;
|
|
|
|
- fallOffDistance?: number;
|
|
|
|
- textureType?: number;
|
|
|
|
- };
|
|
|
|
- texture?: string;
|
|
|
|
- color?: { r: number, g: number, b: number };
|
|
|
|
- opacity?: number;
|
|
|
|
- material?: {
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ISceneConfiguration {
|
|
|
|
- debug?: boolean;
|
|
|
|
- clearColor?: { r: number, g: number, b: number, a: number };
|
|
|
|
- mainColor?: { r?: number, g?: number, b?: number };
|
|
|
|
- imageProcessingConfiguration?: IImageProcessingConfiguration;
|
|
|
|
- environmentTexture?: string;
|
|
|
|
- colorGrading?: IColorGradingConfiguration;
|
|
|
|
- environmentRotationY?: number;
|
|
|
|
- /**
|
|
|
|
- * Deprecated, please use default rendering pipeline
|
|
|
|
- */
|
|
|
|
- glow?: boolean | IGlowLayerOptions;
|
|
|
|
- disableHdr?: boolean;
|
|
|
|
- renderInBackground?: boolean;
|
|
|
|
- disableCameraControl?: boolean;
|
|
|
|
- animationPropertiesOverride?: {
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
- defaultMaterial?: {
|
|
|
|
- materialType: "standard" | "pbr";
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
- flags?: {
|
|
|
|
- shadowsEnabled?: boolean;
|
|
|
|
- particlesEnabled?: boolean;
|
|
|
|
- collisionsEnabled?: boolean;
|
|
|
|
- lightsEnabled?: boolean;
|
|
|
|
- texturesEnabled?: boolean;
|
|
|
|
- lensFlaresEnabled?: boolean;
|
|
|
|
- proceduralTexturesEnabled?: boolean;
|
|
|
|
- renderTargetsEnabled?: boolean;
|
|
|
|
- spritesEnabled?: boolean;
|
|
|
|
- skeletonsEnabled?: boolean;
|
|
|
|
- audioEnabled?: boolean;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * The Color Grading Configuration groups the different settings used to define the color grading used in the viewer.
|
|
|
|
- */
|
|
|
|
-export interface IColorGradingConfiguration {
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Transform data string, encoded as determined by transformDataFormat.
|
|
|
|
- */
|
|
|
|
- transformData: string;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * The encoding format of TransformData (currently only raw-base16 is supported).
|
|
|
|
- */
|
|
|
|
- transformDataFormat: string;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * The weight of the transform
|
|
|
|
- */
|
|
|
|
- transformWeight: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterHueGlobal value
|
|
|
|
- */
|
|
|
|
- colorFilterHueGlobal: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterHueShadows value
|
|
|
|
- */
|
|
|
|
- colorFilterHueShadows: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterHueMidtones value
|
|
|
|
- */
|
|
|
|
- colorFilterHueMidtones: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterHueHighlights value
|
|
|
|
- */
|
|
|
|
- colorFilterHueHighlights: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterDensityGlobal value
|
|
|
|
- */
|
|
|
|
- colorFilterDensityGlobal: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterDensityShadows value
|
|
|
|
- */
|
|
|
|
- colorFilterDensityShadows: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterDensityMidtones value
|
|
|
|
- */
|
|
|
|
- colorFilterDensityMidtones: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve colorFilterDensityHighlights value
|
|
|
|
- */
|
|
|
|
- colorFilterDensityHighlights: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve saturationGlobal value
|
|
|
|
- */
|
|
|
|
- saturationGlobal: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve saturationShadows value
|
|
|
|
- */
|
|
|
|
- saturationShadows: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve saturationMidtones value
|
|
|
|
- */
|
|
|
|
- saturationMidtones: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve saturationHighlights value
|
|
|
|
- */
|
|
|
|
- saturationHighlights: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve exposureGlobal value
|
|
|
|
- */
|
|
|
|
- exposureGlobal: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve exposureShadows value
|
|
|
|
- */
|
|
|
|
- exposureShadows: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve exposureMidtones value
|
|
|
|
- */
|
|
|
|
- exposureMidtones: number;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Color curve exposureHighlights value
|
|
|
|
- */
|
|
|
|
- exposureHighlights: number;
|
|
|
|
-
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ISceneOptimizerConfiguration {
|
|
|
|
- targetFrameRate?: number;
|
|
|
|
- trackerDuration?: number;
|
|
|
|
- autoGeneratePriorities?: boolean;
|
|
|
|
- improvementMode?: boolean;
|
|
|
|
- degradation?: string; // low, moderate, high
|
|
|
|
- types?: {
|
|
|
|
- texture?: ISceneOptimizerParameters;
|
|
|
|
- hardwareScaling?: ISceneOptimizerParameters;
|
|
|
|
- shadow?: ISceneOptimizerParameters;
|
|
|
|
- postProcess?: ISceneOptimizerParameters;
|
|
|
|
- lensFlare?: ISceneOptimizerParameters;
|
|
|
|
- particles?: ISceneOptimizerParameters;
|
|
|
|
- renderTarget?: ISceneOptimizerParameters;
|
|
|
|
- mergeMeshes?: ISceneOptimizerParameters;
|
|
|
|
- }
|
|
|
|
- custom?: string;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface IObserversConfiguration {
|
|
|
|
- onEngineInit?: string;
|
|
|
|
- onSceneInit?: string;
|
|
|
|
- onModelLoaded?: string;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ICameraConfiguration {
|
|
|
|
- position?: { x: number, y: number, z: number };
|
|
|
|
- rotation?: { x: number, y: number, z: number, w: number };
|
|
|
|
- fov?: number;
|
|
|
|
- fovMode?: number;
|
|
|
|
- minZ?: number;
|
|
|
|
- maxZ?: number;
|
|
|
|
- inertia?: number;
|
|
|
|
- exposure?: number;
|
|
|
|
- pinchPrecision?: number;
|
|
|
|
- behaviors?: {
|
|
|
|
- [name: string]: boolean | number | ICameraBehaviorConfiguration;
|
|
|
|
- };
|
|
|
|
- disableCameraControl?: boolean;
|
|
|
|
- disableCtrlForPanning?: boolean;
|
|
|
|
- disableAutoFocus?: boolean;
|
|
|
|
-
|
|
|
|
- [propName: string]: any;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ICameraBehaviorConfiguration {
|
|
|
|
- type: number;
|
|
|
|
- [propName: string]: any;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ILightConfiguration {
|
|
|
|
- type: number;
|
|
|
|
- name?: string;
|
|
|
|
- disabled?: boolean;
|
|
|
|
- position?: { x: number, y: number, z: number };
|
|
|
|
- target?: { x: number, y: number, z: number };
|
|
|
|
- direction?: { x: number, y: number, z: number };
|
|
|
|
- diffuse?: { r: number, g: number, b: number };
|
|
|
|
- specular?: { r: number, g: number, b: number };
|
|
|
|
- intensity?: number;
|
|
|
|
- intensityMode?: number;
|
|
|
|
- radius?: number;
|
|
|
|
- shadownEnabled?: boolean; // only on specific lights!
|
|
|
|
- shadowConfig?: {
|
|
|
|
- useBlurExponentialShadowMap?: boolean;
|
|
|
|
- useBlurCloseExponentialShadowMap?: boolean;
|
|
|
|
- useKernelBlur?: boolean;
|
|
|
|
- blurKernel?: number;
|
|
|
|
- blurScale?: number;
|
|
|
|
- minZ?: number;
|
|
|
|
- maxZ?: number;
|
|
|
|
- frustumSize?: number;
|
|
|
|
- angleScale?: number;
|
|
|
|
- frustumEdgeFalloff?: number;
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
- spotAngle?: number;
|
|
|
|
- shadowFieldOfView?: number;
|
|
|
|
- shadowBufferSize?: number;
|
|
|
|
- shadowFrustumSize?: number;
|
|
|
|
- shadowMinZ?: number;
|
|
|
|
- shadowMaxZ?: number;
|
|
|
|
- [propName: string]: any;
|
|
|
|
-
|
|
|
|
- // no behaviors for light at the moment, but allowing configuration for future reference.
|
|
|
|
- behaviors?: {
|
|
|
|
- [name: string]: number | {
|
|
|
|
- type: number;
|
|
|
|
- [propName: string]: any;
|
|
|
|
- };
|
|
|
|
- };
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface ISceneOptimizerParameters {
|
|
|
|
- priority?: number;
|
|
|
|
- maximumSize?: number;
|
|
|
|
- step?: number;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export interface IImageProcessingConfiguration {
|
|
|
|
- colorGradingEnabled?: boolean;
|
|
|
|
- colorCurvesEnabled?: boolean;
|
|
|
|
- colorCurves?: {
|
|
|
|
- globalHue?: number;
|
|
|
|
- globalDensity?: number;
|
|
|
|
- globalSaturation?: number;
|
|
|
|
- globalExposure?: number;
|
|
|
|
- highlightsHue?: number;
|
|
|
|
- highlightsDensity?: number;
|
|
|
|
- highlightsSaturation?: number;
|
|
|
|
- highlightsExposure?: number;
|
|
|
|
- midtonesHue?: number;
|
|
|
|
- midtonesDensity?: number;
|
|
|
|
- midtonesSaturation?: number;
|
|
|
|
- midtonesExposure?: number;
|
|
|
|
- shadowsHue?: number;
|
|
|
|
- shadowsDensity?: number;
|
|
|
|
- shadowsSaturation?: number;
|
|
|
|
- shadowsExposure?: number;
|
|
|
|
- };
|
|
|
|
- colorGradingWithGreenDepth?: boolean;
|
|
|
|
- colorGradingBGR?: boolean;
|
|
|
|
- exposure?: number;
|
|
|
|
- toneMappingEnabled?: boolean;
|
|
|
|
- contrast?: number;
|
|
|
|
- vignetteEnabled?: boolean;
|
|
|
|
- vignetteStretch?: number;
|
|
|
|
- vignetteCentreX?: number;
|
|
|
|
- vignetteCentreY?: number;
|
|
|
|
- vignetteWeight?: number;
|
|
|
|
- vignetteColor?: { r: number, g: number, b: number, a?: number };
|
|
|
|
- vignetteCameraFov?: number;
|
|
|
|
- vignetteBlendMode?: number;
|
|
|
|
- vignetteM?: boolean;
|
|
|
|
- applyByPostProcess?: boolean;
|
|
|
|
- isEnabled?: boolean;
|
|
|
|
}
|
|
}
|