123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- import { ITemplateConfiguration } from './../templateManager';
- export interface ViewerConfiguration {
- // configuration version
- version?: string;
- extends?: string; // is this configuration extending an existing configuration?
- pageUrl?: string; // will be used for sharing and other fun stuff. This is the page showing the model (not the model's url!)
- configuration?: string | {
- url?: string;
- payload?: any;
- mapper?: string; // json (default), html, yaml, xml, etc'. if not provided, file extension will be used.
- };
- // names of functions in the window context.
- observers?: {
- onEngineInit?: string;
- onSceneInit?: string;
- onModelLoaded?: string;
- }
- canvasElement?: string; // if there is a need to override the standard implementation - ID of HTMLCanvasElement
- model?: {
- url?: string;
- 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.
- title: string;
- subtitle?: string;
- thumbnail?: string; // URL or data-url
- [propName: string]: any; // further configuration, like title and creator
- } | string;
- scene?: {
- debug?: boolean;
- autoRotate?: boolean;
- rotationSpeed?: number;
- defaultCamera?: boolean;
- defaultLight?: boolean;
- clearColor?: { r: number, g: number, b: number, a: number };
- imageProcessingConfiguration?: IImageProcessingConfiguration;
- },
- // at the moment, support only a single camera.
- camera?: {
- 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;
- behaviors?: {
- [name: string]: number | {
- type: number;
- [propName: string]: any;
- };
- };
- [propName: string]: any;
- },
- skybox?: {
- cubeTexture: {
- noMipMap?: boolean;
- gammaSpace?: boolean;
- url: string | Array<string>;
- };
- pbr?: boolean;
- scale?: number;
- blur?: number;
- material?: {
- imageProcessingConfiguration?: IImageProcessingConfiguration;
- };
- infiniteDIstance?: boolean;
- };
- ground?: boolean | {
- size?: number;
- receiveShadows?: boolean;
- shadowOnly?: boolean;
- mirror?: boolean;
- material?: {
- [propName: string]: any;
- }
- };
- lights?: {
- [name: string]: {
- 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;
- radius?: number;
- shadownEnabled?: boolean; // only on specific lights!
- shadowConfig?: {
- useBlurExponentialShadowMap?: boolean;
- useKernelBlur?: boolean;
- blurKernel?: number;
- blurScale?: number;
- [propName: string]: any;
- }
- [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;
- };
- };
- }
- },
- // engine configuration. optional!
- engine?: {
- antialiasing?: boolean;
- disableResize?: boolean;
- engineOptions?: { [key: string]: any };
- adaptiveQuality?: boolean;
- },
- //templateStructure?: ITemplateStructure,
- templates?: {
- main: ITemplateConfiguration,
- [key: string]: ITemplateConfiguration
- };
- // nodes?
- }
- 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;
- }
|