UNPKG

iv-3d-lib

Version:

A reusable ThreeJS library providing features for Ivee 3D Editor.

107 lines (97 loc) 4.49 kB
import { SimpleDictionary } from './simple-dictionary'; import { NameValue } from './name-value'; import { KGen } from './k-gen'; export class Iv3dPlugin { id: string; type: Iv3dPluginType = Iv3dPluginType.none; name: string; cfg: NameValue[] = []; static createSkyboxPlugin(): Iv3dPlugin { let p: Iv3dPlugin = <Iv3dPlugin>{ id: KGen.uuid(), type: Iv3dPluginType.skybox, cfg: [ <NameValue>{ id: KGen.uuid(6), name: 'srcFile', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'size', value: 1024 } ] }; return p; } static createThreejsTerrainPlugin(): Iv3dPlugin { let p: Iv3dPlugin = <Iv3dPlugin>{ id: KGen.uuid(), type: Iv3dPluginType.threejsTerrain, cfg: [ <NameValue>{ id: KGen.uuid(6), name: 'shaderNoiseId', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'diffuseTexture1FilePath', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'diffuseTexture2FilePath', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'detailTextureFilePath', value: '' }, ] }; return p; } static createMirrorCubePlugin(): Iv3dPlugin { let p: Iv3dPlugin = <Iv3dPlugin>{ id: KGen.uuid(), type: Iv3dPluginType.mirrorCube, cfg: [ <NameValue>{ id: KGen.uuid(6), name: 'near', value: 0.1 }, <NameValue>{ id: KGen.uuid(6), name: 'far', value: 10000 }, <NameValue>{ id: KGen.uuid(6), name: 'resolution', value: 1024 }, <NameValue>{ id: KGen.uuid(6), name: 'dimension_x', value: 400 }, <NameValue>{ id: KGen.uuid(6), name: 'dimension_y', value: 400 }, <NameValue>{ id: KGen.uuid(6), name: 'dimension_z', value: 10 }, <NameValue>{ id: KGen.uuid(6), name: 'position_x', value: 100 }, <NameValue>{ id: KGen.uuid(6), name: 'position_y', value: 100 }, <NameValue>{ id: KGen.uuid(6), name: 'position_z', value: 100 }, ] }; return p; } static createGoogleMapsPlugin(): Iv3dPlugin { let p: Iv3dPlugin = <Iv3dPlugin>{ id: KGen.uuid(), type: Iv3dPluginType.googleMaps, cfg: [ <NameValue>{ id: KGen.uuid(6), name: 'place', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'origin', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'destination', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'zoom', value: '15' }, <NameValue>{ id: KGen.uuid(6), name: 'key', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'width', value: 'window.innerWidth' }, <NameValue>{ id: KGen.uuid(6), name: 'height', value: 'window.innerHeight' }, <NameValue>{ id: KGen.uuid(6), name: 'position_x', value: '0' }, <NameValue>{ id: KGen.uuid(6), name: 'position_y', value: '0' }, <NameValue>{ id: KGen.uuid(6), name: 'position_z', value: '0' }, <NameValue>{ id: KGen.uuid(6), name: 'rotation_x', value: '0' }, <NameValue>{ id: KGen.uuid(6), name: 'rotation_y', value: '0' }, <NameValue>{ id: KGen.uuid(6), name: 'rotation_z', value: '0' }, ] }; return p; } static createTextAttrLinesPlugin(): Iv3dPlugin { let p: Iv3dPlugin = <Iv3dPlugin>{ id: KGen.uuid(), type: Iv3dPluginType.textAttrLines, cfg: [ <NameValue>{ id: KGen.uuid(6), name: 'textMeshId', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'shaderId', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'amplitude', value: '' }, <NameValue>{ id: KGen.uuid(6), name: 'customColor', value: '' }, ] }; return p; } } export enum Iv3dPluginType { none = <any>'', camera = <any>'camera', skybox = <any>'skybox', dataSource = <any>'dataSource', threejsTerrain = <any>'threejsTerrain', mirrorCube = <any>'mirrorCube', googleMaps = <any>'googleMaps', textAttrLines = <any>'textAttrLines', custom = <any>'custom' }