import { App , createApp as _createApp } from 'vue' ; import * as TROIS from './index' ; export const TroisJSVuePlugin = { install ( app ) { const comps = [ 'Camera' , 'OrthographicCamera' , 'PerspectiveCamera' , 'Raycaster' , 'Renderer' , 'Scene' , 'Group' , 'CubeCamera' , 'AmbientLight' , 'DirectionalLight' , 'HemisphereLight' , 'PointLight' , 'RectAreaLight' , 'SpotLight' , 'BasicMaterial' , 'LambertMaterial' , 'MatcapMaterial' , 'PhongMaterial' , 'PhysicalMaterial' , 'PointsMaterial' , 'ShaderMaterial' , 'StandardMaterial' , 'SubSurfaceMaterial' , 'ToonMaterial' , 'Texture' , 'CubeTexture' , 'BufferGeometry' , 'Mesh' , 'Box' , 'BoxGeometry' , 'Circle' , 'CircleGeometry' , 'Cone' , 'ConeGeometry' , 'Cylinder' , 'CylinderGeometry' , 'Dodecahedron' , 'DodecahedronGeometry' , 'Icosahedron' , 'IcosahedronGeometry' , 'Lathe' , 'LatheGeometry' , 'Octahedron' , 'OctahedronGeometry' , 'Plane' , 'PlaneGeometry' , 'Polyhedron' , 'PolyhedronGeometry' , 'Ring' , 'RingGeometry' , 'Sphere' , 'SphereGeometry' , 'Tetrahedron' , 'TetrahedronGeometry' , 'Text' , 'Torus' , 'TorusGeometry' , 'TorusKnot' , 'TorusKnotGeometry' , 'Tube' , 'TubeGeometry' , 'Image' , 'InstancedMesh' , 'Points' , 'Sprite' , 'FbxModel' , 'GltfModel' , 'BokehPass' , 'EffectComposer' , 'FilmPass' , 'FXAAPass' , 'HalftonePass' , 'RenderPass' , 'SAOPass' , 'SMAAPass' , 'SSAOPass' , 'TiltShiftPass' , 'UnrealBloomPass' , 'ZoomBlurPass' , ] ; comps . forEach ( comp => { app . component ( comp , TROIS [ comp ] ) ; } ) ; } , } ; export function createApp ( params ) { return _createApp ( params ) . use ( TroisJSVuePlugin ) ; }