1
0
mirror of https://github.com/troisjs/trois.git synced 2024-11-24 04:12:02 +08:00
trois/build/trois.module.js.map
Kevin Levron 08bc80d1cf 0.1.0
2020-10-04 00:49:05 +02:00

1 line
204 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"trois.module.js","sources":["../src/core/useThree.js","../src/core/Renderer.js","../src/tools.js","../src/use/useBindProp.js","../src/core/PerspectiveCamera.js","../src/core/Scene.js","../src/core/Texture.js","../src/core/CubeTexture.js","../src/geometries/Geometry.js","../src/geometries/BoxGeometry.js","../src/geometries/CircleGeometry.js","../src/geometries/ConeGeometry.js","../src/geometries/CylinderGeometry.js","../src/geometries/DodecahedronGeometry.js","../src/geometries/IcosahedronGeometry.js","../src/geometries/LatheGeometry.js","../src/geometries/OctahedronGeometry.js","../src/geometries/PolyhedronGeometry.js","../src/geometries/RingGeometry.js","../src/geometries/SphereGeometry.js","../src/geometries/TetrahedronGeometry.js","../src/geometries/TorusGeometry.js","../src/geometries/TorusKnotGeometry.js","../src/geometries/TubeGeometry.js","../src/lights/Light.js","../src/lights/AmbientLight.js","../src/lights/DirectionalLight.js","../src/lights/PointLight.js","../src/lights/SpotLight.js","../src/materials/Material.js","../src/materials/BasicMaterial.js","../src/materials/LambertMaterial.js","../src/materials/PhongMaterial.js","../src/materials/StandardMaterial.js","../src/materials/PhysicalMaterial.js","../src/materials/SubsurfaceScatteringShader.js","../src/materials/ShaderMaterial.js","../src/materials/SubSurfaceMaterial.js","../src/materials/ToonMaterial.js","../src/materials/Map.js","../src/materials/EnvMap.js","../src/meshes/Mesh.js","../src/meshes/Box.js","../src/meshes/Circle.js","../src/meshes/Cone.js","../src/meshes/Cylinder.js","../src/meshes/Dodecahedron.js","../src/meshes/Icosahedron.js","../src/meshes/Lathe.js","../src/meshes/Octahedron.js","../src/meshes/Plane.js","../src/meshes/Polyhedron.js","../src/meshes/Ring.js","../src/meshes/Sphere.js","../src/meshes/Tetrahedron.js","../src/meshes/TextProps.js","../src/meshes/Text.js","../src/meshes/Torus.js","../src/meshes/TorusKnot.js","../src/meshes/Tube.js","../src/meshes/Gem.js","../src/meshes/Image.js","../src/meshes/InstancedMesh.js","../src/meshes/MirrorMesh.js","../src/meshes/RefractionMesh.js","../src/meshes/Sprite.js","../src/effects/EffectComposer.js","../src/effects/EffectPass.js","../src/effects/RenderPass.js","../src/effects/BokehPass.js","../src/effects/FilmPass.js","../src/effects/HalftonePass.js","../src/effects/SAOPass.js","../src/effects/UnrealBloomPass.js","../src/glsl/snoise2.glsl.js","../src/components/noisy/NoisyImage.js","../src/glsl/snoise3.glsl.js","../src/components/noisy/NoisyPlane.js","../src/glsl/snoise4.glsl.js","../src/components/noisy/NoisySphere.js","../src/components/noisy/NoisyText.js","../src/components/sliders/AnimatedPlane.js","../src/use/useTextures.js","../src/components/sliders/Slider1.vue","../src/components/viewers/GLTFViewer.vue","../src/plugin.js"],"sourcesContent":["import {\r\n Plane,\r\n Raycaster,\r\n Vector2,\r\n Vector3,\r\n WebGLRenderer,\r\n} from 'three';\r\n\r\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';\r\n\r\n/**\r\n * Three.js helper\r\n */\r\nexport default function useThree() {\r\n // default conf\r\n const conf = {\r\n canvas: null,\r\n antialias: true,\r\n alpha: false,\r\n autoClear: true,\r\n orbit_ctrl: false,\r\n mouse_move: false,\r\n mouse_raycast: false,\r\n resize: 'window',\r\n width: 0,\r\n height: 0,\r\n };\r\n\r\n // size\r\n const size = {\r\n width: 0, height: 0,\r\n wWidth: 0, wHeight: 0,\r\n ratio: 0,\r\n };\r\n\r\n // handlers\r\n let afterInitCallbacks = [];\r\n let afterResizeCallbacks = [];\r\n let beforeRenderCallbacks = [];\r\n\r\n // mouse tracking\r\n const mouse = new Vector2();\r\n const mouseV3 = new Vector3();\r\n const mousePlane = new Plane(new Vector3(0, 0, 1), 0);\r\n const raycaster = new Raycaster();\r\n\r\n // returned object\r\n const obj = {\r\n conf,\r\n renderer: null,\r\n camera: null,\r\n cameraCtrl: null,\r\n materials: {},\r\n scene: null,\r\n size,\r\n mouse, mouseV3,\r\n init,\r\n dispose,\r\n render,\r\n renderC,\r\n setSize,\r\n onAfterInit,\r\n onAfterResize, offAfterResize,\r\n onBeforeRender, offBeforeRender,\r\n };\r\n\r\n /**\r\n * init three\r\n */\r\n function init(params) {\r\n if (params) {\r\n Object.entries(params).forEach(([key, value]) => {\r\n conf[key] = value;\r\n });\r\n }\r\n\r\n if (!obj.scene) {\r\n console.error('Missing Scene');\r\n return;\r\n }\r\n\r\n if (!obj.camera) {\r\n console.error('Missing Camera');\r\n return;\r\n }\r\n\r\n obj.renderer = new WebGLRenderer({ canvas: conf.canvas, antialias: conf.antialias, alpha: conf.alpha });\r\n obj.renderer.autoClear = conf.autoClear;\r\n\r\n if (conf.orbit_ctrl) {\r\n obj.orbitCtrl = new OrbitControls(obj.camera, obj.renderer.domElement);\r\n if (conf.orbit_ctrl instanceof Object) {\r\n Object.entries(conf.orbit_ctrl).forEach(([key, value]) => {\r\n obj.orbitCtrl[key] = value;\r\n });\r\n }\r\n }\r\n\r\n if (conf.width && conf.height) {\r\n setSize(conf.width, conf.height);\r\n } else if (conf.resize) {\r\n onResize();\r\n window.addEventListener('resize', onResize);\r\n }\r\n\r\n if (conf.mouse_move) {\r\n if (conf.mouse_move === 'body') {\r\n obj.mouse_move_element = document.body;\r\n } else {\r\n obj.mouse_move_element = obj.renderer.domElement;\r\n }\r\n obj.mouse_move_element.addEventListener('mousemove', onMousemove);\r\n obj.mouse_move_element.addEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n afterInitCallbacks.forEach(c => c());\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * add after init callback\r\n */\r\n function onAfterInit(callback) {\r\n afterInitCallbacks.push(callback);\r\n }\r\n\r\n /**\r\n * add after resize callback\r\n */\r\n function onAfterResize(callback) {\r\n afterResizeCallbacks.push(callback);\r\n }\r\n\r\n /**\r\n * remove after resize callback\r\n */\r\n function offAfterResize(callback) {\r\n afterResizeCallbacks = afterResizeCallbacks.filter(c => c !== callback);\r\n }\r\n\r\n /**\r\n * add before render callback\r\n */\r\n function onBeforeRender(callback) {\r\n beforeRenderCallbacks.push(callback);\r\n }\r\n\r\n /**\r\n * remove before render callback\r\n */\r\n function offBeforeRender(callback) {\r\n beforeRenderCallbacks = beforeRenderCallbacks.filter(c => c !== callback);\r\n }\r\n\r\n /**\r\n * default render\r\n */\r\n function render() {\r\n if (obj.orbitCtrl) obj.orbitCtrl.update();\r\n beforeRenderCallbacks.forEach(c => c());\r\n obj.renderer.render(obj.scene, obj.camera);\r\n }\r\n\r\n /**\r\n * composer render\r\n */\r\n function renderC() {\r\n if (obj.orbitCtrl) obj.orbitCtrl.update();\r\n beforeRenderCallbacks.forEach(c => c());\r\n obj.composer.render();\r\n }\r\n\r\n /**\r\n * remove listeners\r\n */\r\n function dispose() {\r\n beforeRenderCallbacks = [];\r\n window.removeEventListener('resize', onResize);\r\n if (obj.mouse_move_element) {\r\n obj.mouse_move_element.removeEventListener('mousemove', onMousemove);\r\n obj.mouse_move_element.removeEventListener('mouseleave', onMouseleave);\r\n }\r\n if (obj.orbitCtrl) obj.orbitCtrl.dispose();\r\n this.renderer.dispose();\r\n }\r\n\r\n /**\r\n * mousemove listener\r\n */\r\n function onMousemove(e) {\r\n mouse.x = (e.clientX / size.width) * 2 - 1;\r\n mouse.y = -(e.clientY / size.height) * 2 + 1;\r\n updateMouseV3();\r\n }\r\n\r\n /**\r\n * mouseleave listener\r\n */\r\n function onMouseleave(e) {\r\n mouse.x = 0;\r\n mouse.y = 0;\r\n updateMouseV3();\r\n }\r\n\r\n /**\r\n * get 3d mouse position\r\n */\r\n function updateMouseV3() {\r\n if (conf.mouse_raycast) {\r\n obj.camera.getWorldDirection(mousePlane.normal);\r\n mousePlane.normal.normalize();\r\n raycaster.setFromCamera(mouse, obj.camera);\r\n raycaster.ray.intersectPlane(mousePlane, mouseV3);\r\n }\r\n }\r\n\r\n /**\r\n * resize listener\r\n */\r\n function onResize() {\r\n if (conf.resize === 'window') {\r\n setSize(window.innerWidth, window.innerHeight);\r\n } else {\r\n setSize(conf.resize.clientWidth, conf.resize.clientHeight);\r\n }\r\n afterResizeCallbacks.forEach(c => c());\r\n }\r\n\r\n /**\r\n * update renderer size and camera\r\n */\r\n function setSize(width, height) {\r\n size.width = width;\r\n size.height = height;\r\n size.ratio = width / height;\r\n\r\n obj.renderer.setSize(width, height, false);\r\n obj.camera.aspect = size.ratio;\r\n obj.camera.updateProjectionMatrix();\r\n\r\n if (obj.composer) {\r\n obj.composer.setSize(width, height);\r\n }\r\n\r\n const wsize = getCameraSize();\r\n size.wWidth = wsize[0]; size.wHeight = wsize[1];\r\n }\r\n\r\n /**\r\n * calculate camera visible area size\r\n */\r\n function getCameraSize() {\r\n const vFOV = (obj.camera.fov * Math.PI) / 180;\r\n const h = 2 * Math.tan(vFOV / 2) * Math.abs(obj.camera.position.z);\r\n const w = h * obj.camera.aspect;\r\n return [w, h];\r\n }\r\n\r\n return obj;\r\n}\r\n","import { h } from 'vue';\r\nimport useThree from './useThree';\r\n\r\nexport default {\r\n props: {\r\n antialias: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n alpha: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n autoClear: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n shadow: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n orbitCtrl: {\r\n type: [Boolean, Object],\r\n default: false,\r\n },\r\n mouseMove: {\r\n type: [Boolean, String],\r\n default: false,\r\n },\r\n mouseRaycast: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n resize: {\r\n type: [Boolean, String, Element],\r\n default: 'window',\r\n },\r\n width: String,\r\n height: String,\r\n },\r\n setup() {\r\n return {\r\n three: useThree(),\r\n raf: true,\r\n onMountedCallbacks: [],\r\n };\r\n },\r\n provide() {\r\n return {\r\n three: this.three,\r\n // renderer: this.three.renderer,\r\n rendererComponent: this,\r\n };\r\n },\r\n mounted() {\r\n const params = {\r\n canvas: this.$refs.canvas,\r\n antialias: this.antialias,\r\n alpha: this.alpha,\r\n autoClear: this.autoClear,\r\n orbit_ctrl: this.orbitCtrl,\r\n mouse_move: this.mouseMove,\r\n mouse_raycast: this.mouseRaycast,\r\n resize: this.resize,\r\n width: this.width,\r\n height: this.height,\r\n };\r\n\r\n if (this.three.init(params)) {\r\n this.three.renderer.shadowMap.enabled = this.shadow;\r\n if (this.three.composer) this.animateC();\r\n else this.animate();\r\n };\r\n\r\n this.onMountedCallbacks.forEach(c => c());\r\n },\r\n beforeUnmount() {\r\n this.raf = false;\r\n this.three.dispose();\r\n },\r\n methods: {\r\n onMounted(callback) {\r\n this.onMountedCallbacks.push(callback);\r\n },\r\n onBeforeRender(callback) {\r\n this.three.onBeforeRender(callback);\r\n },\r\n onAfterResize(callback) {\r\n this.three.onAfterResize(callback);\r\n },\r\n animate() {\r\n if (this.raf) requestAnimationFrame(this.animate);\r\n this.three.render();\r\n },\r\n animateC() {\r\n if (this.raf) requestAnimationFrame(this.animateC);\r\n this.three.renderC();\r\n },\r\n },\r\n render() {\r\n return h(\r\n 'canvas',\r\n { ref: 'canvas' },\r\n this.$slots.default()\r\n );\r\n },\r\n};\r\n","export function setFromProp(o, prop) {\r\n if (prop instanceof Object) {\r\n Object.entries(prop).forEach(([key, value]) => {\r\n o[key] = value;\r\n });\r\n }\r\n};\r\n\r\nexport function propsValues(props, exclude) {\r\n const values = {};\r\n Object.entries(props).forEach(([key, value]) => {\r\n if (!exclude || (exclude && !exclude.includes(key))) {\r\n values[key] = value;\r\n }\r\n });\r\n return values;\r\n};\r\n\r\nexport function lerp(value1, value2, amount) {\r\n amount = amount < 0 ? 0 : amount;\r\n amount = amount > 1 ? 1 : amount;\r\n return value1 + (value2 - value1) * amount;\r\n};\r\n\r\nexport function lerpv3(v1, v2, amount) {\r\n v1.x = lerp(v1.x, v2.x, amount);\r\n v1.y = lerp(v1.y, v2.y, amount);\r\n v1.z = lerp(v1.z, v2.z, amount);\r\n};\r\n\r\nexport function limit(val, min, max) {\r\n return val < min ? min : (val > max ? max : val);\r\n};\r\n","import { toRef, watch } from 'vue';\r\nimport { setFromProp } from '../tools.js';\r\n\r\nexport default function useBindProp(comp, prop, object) {\r\n if (comp[prop]) {\r\n const ref = toRef(comp, prop);\r\n setFromProp(object, ref.value);\r\n watch(ref, () => {\r\n setFromProp(object, ref.value);\r\n }, { deep: true });\r\n }\r\n};\r\n","import { PerspectiveCamera, Vector3 } from 'three';\r\nimport { watch } from 'vue';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n inject: ['three'],\r\n props: {\r\n aspect: {\r\n type: Number,\r\n default: 1,\r\n },\r\n far: {\r\n type: Number,\r\n default: 2000,\r\n },\r\n fov: {\r\n type: Number,\r\n default: 50,\r\n },\r\n near: {\r\n type: Number,\r\n default: 0.1,\r\n },\r\n position: {\r\n type: [Object, Vector3],\r\n default: { x: 0, y: 0, z: 0 },\r\n },\r\n },\r\n created() {\r\n this.camera = new PerspectiveCamera(this.fov, this.aspect, this.near, this.far);\r\n useBindProp(this, 'position', this.camera.position);\r\n\r\n ['aspect', 'far', 'fov', 'near'].forEach(p => {\r\n watch(() => this[p], () => {\r\n this.camera[p] = this[p];\r\n this.camera.updateProjectionMatrix();\r\n });\r\n });\r\n\r\n this.three.camera = this.camera;\r\n },\r\n render() {\r\n return [];\r\n },\r\n __hmrId: 'PerspectiveCamera',\r\n};\r\n","import { Scene, Color } from 'three';\r\nimport { watch } from 'vue';\r\n\r\nexport default {\r\n inject: ['three'],\r\n props: {\r\n id: String,\r\n background: [String, Number],\r\n },\r\n setup(props) {\r\n const scene = new Scene();\r\n if (props.background) scene.background = new Color(props.background);\r\n watch(() => props.background, (value) => { scene.background = new Color(value); });\r\n return { scene };\r\n },\r\n provide() {\r\n return {\r\n scene: this.scene,\r\n };\r\n },\r\n mounted() {\r\n if (!this.three.scene) {\r\n this.three.scene = this.scene;\r\n }\r\n },\r\n methods: {\r\n // add(o) {\r\n // this.scene.add(o);\r\n // },\r\n // remove(o) {\r\n // this.scene.remove(o);\r\n // },\r\n },\r\n render() {\r\n if (this.$slots.default) {\r\n return this.$slots.default();\r\n }\r\n return [];\r\n },\r\n};\r\n","import { TextureLoader } from 'three';\r\nimport { watch } from 'vue';\r\n\r\nexport default {\r\n inject: ['three'],\r\n emits: ['loaded'],\r\n props: {\r\n src: String,\r\n onLoad: Function,\r\n onProgress: Function,\r\n onError: Function,\r\n },\r\n created() {\r\n this.createTexture();\r\n watch(() => this.src, this.refreshTexture);\r\n },\r\n unmounted() {\r\n this.texture.dispose();\r\n },\r\n methods: {\r\n createTexture() {\r\n this.texture = new TextureLoader().load(this.src, this.onLoaded, this.onProgress, this.onError);\r\n },\r\n refreshTexture() {\r\n this.createTexture();\r\n },\r\n onLoaded() {\r\n if (this.onLoad) this.onLoad();\r\n this.$emit('loaded');\r\n },\r\n },\r\n render() {\r\n return [];\r\n },\r\n};\r\n","import { CubeTextureLoader } from 'three';\r\nimport { watch } from 'vue';\r\n\r\nexport default {\r\n inject: ['three'],\r\n emits: ['loaded'],\r\n props: {\r\n path: String,\r\n urls: {\r\n type: Array,\r\n default: ['px.jpg', 'nx.jpg', 'py.jpg', 'ny.jpg', 'pz.jpg', 'nz.jpg'],\r\n },\r\n onLoad: Function,\r\n onProgress: Function,\r\n onError: Function,\r\n },\r\n created() {\r\n this.createTexture();\r\n watch(() => this.path, this.refreshTexture);\r\n watch(() => this.urls, this.refreshTexture);\r\n },\r\n unmounted() {\r\n this.texture.dispose();\r\n },\r\n methods: {\r\n createTexture() {\r\n this.texture = new CubeTextureLoader()\r\n .setPath(this.path)\r\n .load(this.urls, this.onLoaded, this.onProgress, this.onError);\r\n },\r\n refreshTexture() {\r\n this.createTexture();\r\n },\r\n onLoaded() {\r\n if (this.onLoad) this.onLoad();\r\n this.$emit('loaded');\r\n },\r\n },\r\n render() {\r\n return [];\r\n },\r\n};\r\n","import { watch } from 'vue';\r\n\r\nexport default {\r\n emits: ['ready'],\r\n inject: ['mesh'],\r\n props: {\r\n rotateX: Number,\r\n rotateY: Number,\r\n rotateZ: Number,\r\n },\r\n created() {\r\n if (!this.mesh) {\r\n console.error('Missing parent Mesh');\r\n }\r\n this.watchProps = [];\r\n Object.entries(this.$props).forEach(e => this.watchProps.push(e[0]));\r\n },\r\n beforeMount() {\r\n this.createGeometry();\r\n this.rotateGeometry();\r\n this.mesh.setGeometry(this.geometry);\r\n },\r\n mounted() {\r\n this.addWatchers();\r\n },\r\n unmounted() {\r\n this.geometry.dispose();\r\n },\r\n methods: {\r\n rotateGeometry() {\r\n if (this.rotateX) this.geometry.rotateX(this.rotateX);\r\n if (this.rotateY) this.geometry.rotateY(this.rotateY);\r\n if (this.rotateZ) this.geometry.rotateZ(this.rotateZ);\r\n },\r\n addWatchers() {\r\n this.watchProps.forEach(prop => {\r\n watch(() => this[prop], () => {\r\n this.refreshGeometry();\r\n });\r\n });\r\n },\r\n refreshGeometry() {\r\n const oldGeo = this.geometry;\r\n this.createGeometry();\r\n this.rotateGeometry();\r\n this.mesh.setGeometry(this.geometry);\r\n oldGeo.dispose();\r\n },\r\n },\r\n render() {\r\n return [];\r\n },\r\n};\r\n","import { BoxBufferGeometry } from 'three';\r\nimport Geometry from './Geometry.js';\r\n\r\nexport default {\r\n extends: Geometry,\r\n props: {\r\n size: Number,\r\n width: { type: Number, default: 1 },\r\n height: { type: Number, default: 1 },\r\n depth: { type: Number, default: 1 },\r\n widthSegments: { type: Number, default: 1 },\r\n heightSegments: { type: Number, default: 1 },\r\n depthSegments: { type: Number, default: 1 },\r\n },\r\n methods: {\r\n createGeometry() {\r\n let w = this.width, h = this.height, d = this.depth;\r\n if (this.size) {\r\n w = this.size; h = this.size; d = this.size;\r\n }\r\n this.geometry = new BoxBufferGeometry(w, h, d, this.widthSegments, this.heightSegments, this.depthSegments);\r\n },\r\n },\r\n};\r\n","import { CircleBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n segments: { type: Number, default: 8 },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new CircleBufferGeometry(this.radius, this.segments, this.thetaStart, this.thetaLength);\n },\n },\n};\n","import { ConeBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n height: { type: Number, default: 1 },\n radialSegments: { type: Number, default: 8 },\n heightSegments: { type: Number, default: 1 },\n openEnded: { type: Boolean, default: false },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new ConeBufferGeometry(this.radius, this.height, this.radialSegments, this.heightSegments, this.openEnded, this.thetaStart, this.thetaLength);\n },\n },\n};\n","import { CylinderBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radiusTop: { type: Number, default: 1 },\n radiusBottom: { type: Number, default: 1 },\n height: { type: Number, default: 1 },\n radialSegments: { type: Number, default: 8 },\n heightSegments: { type: Number, default: 1 },\n openEnded: { type: Boolean, default: false },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new CylinderBufferGeometry(this.radiusTop, this.radiusBottom, this.height, this.radialSegments, this.heightSegments, this.openEnded, this.thetaStart, this.thetaLength);\n },\n },\n};\n","import { DodecahedronBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n methods: {\n createGeometry() {\n this.geometry = new DodecahedronBufferGeometry(this.radius, this.detail);\n },\n },\n};\n","import { IcosahedronBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n methods: {\n createGeometry() {\n this.geometry = new IcosahedronBufferGeometry(this.radius, this.detail);\n },\n },\n};\n","import { LatheBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n points: Array,\n segments: { type: Number, default: 12 },\n phiStart: { type: Number, default: 0 },\n phiLength: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new LatheBufferGeometry(this.points, this.segments, this.phiStart, this.phiLength);\n },\n },\n};\n","import { OctahedronBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n methods: {\n createGeometry() {\n this.geometry = new OctahedronBufferGeometry(this.radius, this.detail);\n },\n },\n};\n","import { PolyhedronBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n vertices: Array,\n indices: Array,\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n methods: {\n createGeometry() {\n this.geometry = new PolyhedronBufferGeometry(this.vertices, this.indices, this.radius, this.detail);\n },\n },\n};\n","import { RingBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n innerRadius: { type: Number, default: 0.5 },\n outerRadius: { type: Number, default: 1 },\n thetaSegments: { type: Number, default: 8 },\n phiSegments: { type: Number, default: 1 },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new RingBufferGeometry(this.innerRadius, this.outerRadius, this.thetaSegments, this.phiSegments, this.thetaStart, this.thetaLength);\n },\n },\n};\n","import { SphereBufferGeometry } from 'three';\r\nimport Geometry from './Geometry.js';\r\n\r\nexport default {\r\n extends: Geometry,\r\n props: {\r\n radius: { type: Number, default: 1 },\r\n widthSegments: { type: Number, default: 12 },\r\n heightSegments: { type: Number, default: 12 },\r\n },\r\n methods: {\r\n createGeometry() {\r\n this.geometry = new SphereBufferGeometry(this.radius, this.widthSegments, this.heightSegments);\r\n },\r\n },\r\n};\r\n","import { TetrahedronBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n methods: {\n createGeometry() {\n this.geometry = new TetrahedronBufferGeometry(this.radius, this.detail);\n },\n },\n};\n","import { TorusBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n tube: { type: Number, default: 0.4 },\n radialSegments: { type: Number, default: 8 },\n tubularSegments: { type: Number, default: 6 },\n arc: { type: Number, default: Math.PI * 2 },\n },\n methods: {\n createGeometry() {\n this.geometry = new TorusBufferGeometry(this.radius, this.tube, this.radialSegments, this.tubularSegments, this.arc);\n },\n },\n};\n","import { TorusKnotBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n radius: { type: Number, default: 1 },\n tube: { type: Number, default: 0.4 },\n radialSegments: { type: Number, default: 64 },\n tubularSegments: { type: Number, default: 8 },\n p: { type: Number, default: 2 },\n q: { type: Number, default: 3 },\n },\n methods: {\n createGeometry() {\n this.geometry = new TorusKnotBufferGeometry(this.radius, this.tube, this.radialSegments, this.tubularSegments, this.p, this.q);\n },\n },\n};\n","import { Curve, TubeBufferGeometry } from 'three';\nimport Geometry from './Geometry.js';\n\nexport default {\n extends: Geometry,\n props: {\n path: Curve,\n tubularSegments: { type: Number, default: 64 },\n radius: { type: Number, default: 1 },\n radiusSegments: { type: Number, default: 8 },\n closed: { type: Boolean, default: false },\n },\n methods: {\n createGeometry() {\n this.geometry = new TubeBufferGeometry(this.path, this.tubularSegments, this.radius, this.radiusSegments, this.closed);\n },\n },\n};\n","import { Color } from 'three';\r\nimport { watch } from 'vue';\r\nimport { setFromProp } from '../tools.js';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n inject: ['scene'],\r\n props: {\r\n color: {\r\n type: String,\r\n default: '#ffffff',\r\n },\r\n intensity: {\r\n type: Number,\r\n default: 1,\r\n },\r\n castShadow: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n shadowMapSize: Object,\r\n position: Object,\r\n },\r\n mounted() {\r\n useBindProp(this, 'position', this.light.position);\r\n\r\n if (this.light.target) {\r\n useBindProp(this, 'target', this.light.target.position);\r\n }\r\n\r\n if (this.light.shadow) {\r\n this.light.castShadow = this.castShadow;\r\n setFromProp(this.light.shadow.mapSize, this.shadowMapSize);\r\n }\r\n\r\n ['color', 'intensity', 'castShadow'].forEach(p => {\r\n watch(() => this[p], () => {\r\n if (p === 'color') {\r\n this.light.color = new Color(this.color);\r\n } else {\r\n this.light[p] = this[p];\r\n }\r\n });\r\n });\r\n\r\n this.scene.add(this.light);\r\n if (this.light.target) this.scene.add(this.light.target);\r\n },\r\n unmounted() {\r\n this.scene.remove(this.light);\r\n },\r\n render() {\r\n return [];\r\n },\r\n __hmrId: 'Light',\r\n};\r\n","import { AmbientLight } from 'three';\r\nimport Light from './Light.js';\r\n\r\nexport default {\r\n extends: Light,\r\n created() {\r\n this.light = new AmbientLight(this.color, this.intensity);\r\n },\r\n __hmrId: 'AmbientLight',\r\n};\r\n","import { DirectionalLight } from 'three';\r\nimport Light from './Light.js';\r\n\r\nexport default {\r\n extends: Light,\r\n props: {\r\n target: Object,\r\n },\r\n created() {\r\n this.light = new DirectionalLight(this.color, this.intensity);\r\n },\r\n __hmrId: 'DirectionalLight',\r\n};\r\n","import { PointLight } from 'three';\r\nimport Light from './Light.js';\r\n\r\nexport default {\r\n extends: Light,\r\n props: {\r\n distance: {\r\n type: Number,\r\n default: 0,\r\n },\r\n decay: {\r\n type: Number,\r\n default: 1,\r\n },\r\n },\r\n created() {\r\n this.light = new PointLight(this.color, this.intensity, this.distance, this.decay);\r\n },\r\n __hmrId: 'PointLight',\r\n};\r\n","import { SpotLight } from 'three';\r\nimport { watch } from 'vue';\r\nimport Light from './Light.js';\r\n\r\nexport default {\r\n extends: Light,\r\n props: {\r\n angle: {\r\n type: Number,\r\n default: Math.PI / 3,\r\n },\r\n decay: {\r\n type: Number,\r\n default: 1,\r\n },\r\n distance: {\r\n type: Number,\r\n default: 0,\r\n },\r\n penumbra: {\r\n type: Number,\r\n default: 0,\r\n },\r\n target: Object,\r\n },\r\n created() {\r\n this.light = new SpotLight(this.color, this.intensity, this.distance, this.angle, this.penumbra, this.decay);\r\n ['angle', 'decay', 'distance', 'penumbra'].forEach(p => {\r\n watch(() => this[p], () => {\r\n this.light[p] = this[p];\r\n });\r\n });\r\n },\r\n __hmrId: 'SpotLight',\r\n};\r\n","import { watch } from 'vue';\r\nimport { Color, FrontSide } from 'three';\r\n\r\nexport default {\r\n inject: ['three', 'mesh'],\r\n props: {\r\n id: String,\r\n color: { type: [String, Number], default: '#ffffff' },\r\n depthTest: { type: Boolean, default: true },\r\n depthWrite: { type: Boolean, default: true },\r\n flatShading: Boolean,\r\n fog: { type: Boolean, default: true },\r\n opacity: { type: Number, default: 1 },\r\n side: { type: Number, default: FrontSide },\r\n transparent: Boolean,\r\n vertexColors: Boolean,\r\n },\r\n provide() {\r\n return {\r\n material: this,\r\n };\r\n },\r\n beforeMount() {\r\n this.createMaterial();\r\n if (this.id) this.three.materials[this.id] = this.material;\r\n this.mesh.setMaterial(this.material);\r\n },\r\n mounted() {\r\n this._addWatchers();\r\n if (this.addWatchers) this.addWatchers();\r\n },\r\n unmounted() {\r\n this.material.dispose();\r\n if (this.id) delete this.three.materials[this.id];\r\n },\r\n methods: {\r\n setMap(texture) {\r\n this.material.map = texture;\r\n this.material.needsUpdate = true;\r\n },\r\n setEnvMap(texture) {\r\n this.material.envMap = texture;\r\n this.material.needsUpdate = true;\r\n },\r\n _addWatchers() {\r\n // don't work for flatShading\r\n ['color', 'depthTest', 'depthWrite', 'fog', 'opacity', 'side', 'transparent'].forEach(p => {\r\n watch(() => this[p], () => {\r\n if (p === 'color') {\r\n this.material.color.set(this.color);\r\n } else {\r\n this.material[p] = this[p];\r\n }\r\n });\r\n });\r\n },\r\n },\r\n render() {\r\n if (this.$slots.default) {\r\n return this.$slots.default();\r\n }\r\n return [];\r\n },\r\n __hmrId: 'Material',\r\n};\r\n","import { MeshBasicMaterial } from 'three';\r\nimport { propsValues } from '../tools.js';\r\nimport Material from './Material';\r\n\r\nexport default {\r\n extends: Material,\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshBasicMaterial(propsValues(this.$props, ['id']));\r\n },\r\n },\r\n __hmrId: 'BasicMaterial',\r\n};\r\n","import { MeshLambertMaterial } from 'three';\r\nimport { propsValues } from '../tools.js';\r\nimport Material from './Material';\r\n\r\nexport default {\r\n extends: Material,\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshLambertMaterial(propsValues(this.$props, ['id']));\r\n },\r\n },\r\n __hmrId: 'LambertMaterial',\r\n};\r\n","import { MeshPhongMaterial } from 'three';\r\nimport { propsValues } from '../tools.js';\r\nimport Material from './Material';\r\n\r\nexport default {\r\n extends: Material,\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshPhongMaterial(propsValues(this.$props, ['id']));\r\n },\r\n },\r\n __hmrId: 'PhongMaterial',\r\n};\r\n","import { Color, MeshStandardMaterial } from 'three';\r\nimport { watch } from 'vue';\r\nimport { propsValues } from '../tools.js';\r\nimport Material from './Material';\r\n\r\nexport default {\r\n extends: Material,\r\n props: {\r\n emissive: { type: [Number, String], default: 0 },\r\n emissiveIntensity: { type: Number, default: 1 },\r\n metalness: { type: Number, default: 0 },\r\n roughness: { type: Number, default: 1 },\r\n },\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshStandardMaterial(propsValues(this.$props, ['id']));\r\n },\r\n addWatchers() {\r\n ['emissive', 'emissiveIntensity', 'metalness', 'roughness'].forEach(p => {\r\n watch(() => this[p], (value) => {\r\n if (p === 'emissive') {\r\n this.material.emissive = new Color(value);\r\n } else {\r\n this.material[p] = value;\r\n }\r\n });\r\n });\r\n },\r\n },\r\n __hmrId: 'StandardMaterial',\r\n};\r\n","import { MeshPhysicalMaterial } from 'three';\r\nimport { propsValues } from '../tools.js';\r\nimport StandardMaterial from './StandardMaterial';\r\n\r\nexport default {\r\n extends: StandardMaterial,\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshPhysicalMaterial(propsValues(this.$props, ['id']));\r\n },\r\n },\r\n __hmrId: 'PhysicalMaterial',\r\n};\r\n","/**\n * ------------------------------------------------------------------------------------------\n * Subsurface Scattering shader\n * Based on three/examples/jsm/shaders/SubsurfaceScatteringShader.js\n * Based on GDC 2011 Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look\n * https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/\n *------------------------------------------------------------------------------------------\n */\nimport {\n Color,\n ShaderChunk,\n ShaderLib,\n UniformsUtils,\n} from 'three';\n\nfunction replaceAll(string, find, replace) {\n return string.split(find).join(replace);\n}\n\nconst meshphongFragHead = ShaderChunk.meshphong_frag.slice(0, ShaderChunk.meshphong_frag.indexOf('void main() {'));\nconst meshphongFragBody = ShaderChunk.meshphong_frag.slice(ShaderChunk.meshphong_frag.indexOf('void main() {'));\n\nconst SubsurfaceScatteringShader = {\n\n uniforms: UniformsUtils.merge([\n ShaderLib.phong.uniforms,\n {\n thicknessColor: { value: new Color(0x668597) },\n thicknessDistortion: { value: 0.1 },\n thicknessAmbient: { value: 0.0 },\n thicknessAttenuation: { value: 0.1 },\n thicknessPower: { value: 2.0 },\n thicknessScale: { value: 10.0 },\n },\n ]),\n\n vertexShader: `\n #define USE_UV\n ${ShaderChunk.meshphong_vert}\n `,\n\n fragmentShader: `\n #define USE_UV\n #define SUBSURFACE\n\n ${meshphongFragHead}\n\n uniform float thicknessPower;\n uniform float thicknessScale;\n uniform float thicknessDistortion;\n uniform float thicknessAmbient;\n uniform float thicknessAttenuation;\n uniform vec3 thicknessColor;\n\n void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in GeometricContext geometry, inout ReflectedLight reflectedLight) {\n #ifdef USE_COLOR\n vec3 thickness = vColor * thicknessColor;\n #else\n vec3 thickness = thicknessColor;\n #endif\n vec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * thicknessDistortion));\n float scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), thicknessPower) * thicknessScale;\n vec3 scatteringIllu = (scatteringDot + thicknessAmbient) * thickness;\n reflectedLight.directDiffuse += scatteringIllu * thicknessAttenuation * directLight.color;\n }\n ` + meshphongFragBody.replace(\n '#include <lights_fragment_begin>',\n replaceAll(\n ShaderChunk.lights_fragment_begin,\n 'RE_Direct( directLight, geometry, material, reflectedLight );',\n `\n RE_Direct( directLight, geometry, material, reflectedLight );\n #if defined( SUBSURFACE ) && defined( USE_UV )\n RE_Direct_Scattering(directLight, vUv, geometry, reflectedLight);\n #endif\n `\n )\n ),\n};\n\nexport default SubsurfaceScatteringShader;\n","export default {\r\n inject: ['three', 'mesh'],\r\n props: {\r\n id: String,\r\n uniforms: Object,\r\n vertexShader: String,\r\n fragmentShader: String,\r\n },\r\n beforeMount() {\r\n this.createMaterial();\r\n if (this.id) this.three.materials[this.id] = this.material;\r\n this.mesh.setMaterial(this.material);\r\n },\r\n mounted() {\r\n if (this.addWatchers) this.addWatchers();\r\n },\r\n unmounted() {\r\n this.material.dispose();\r\n if (this.id) delete this.three.materials[this.id];\r\n },\r\n render() {\r\n return [];\r\n },\r\n __hmrId: 'ShaderMaterial',\r\n};\r\n","import { Color, ShaderMaterial as TShaderMaterial, UniformsUtils } from 'three';\r\nimport SubsurfaceScatteringShader from './SubsurfaceScatteringShader.js';\r\nimport ShaderMaterial from './ShaderMaterial';\r\n\r\nexport default {\r\n extends: ShaderMaterial,\r\n props: {\r\n diffuse: { type: String, default: '#ffffff' },\r\n thicknessColor: { type: String, default: '#ffffff' },\r\n thicknessDistortion: { type: Number, default: 0.4 },\r\n thicknessAmbient: { type: Number, default: 0.01 },\r\n thicknessAttenuation: { type: Number, default: 0.7 },\r\n thicknessPower: { type: Number, default: 2 },\r\n thicknessScale: { type: Number, default: 4 },\r\n transparent: { type: Boolean, default: false },\r\n opacity: { type: Number, default: 1 },\r\n vertexColors: { type: Boolean, default: false },\r\n },\r\n methods: {\r\n createMaterial() {\r\n const params = SubsurfaceScatteringShader;\r\n const uniforms = UniformsUtils.clone(params.uniforms);\r\n Object.entries(this.$props).forEach(([key, value]) => {\r\n if (key === 'diffuse' || key === 'thicknessColor') {\r\n value = new Color(value);\r\n }\r\n if (key !== 'id' && key !== 'transparent' && key !== 'vertexColors') {\r\n uniforms[key].value = value;\r\n }\r\n });\r\n\r\n this.material = new TShaderMaterial({\r\n ...params,\r\n uniforms,\r\n lights: true,\r\n transparent: this.transparent,\r\n vertexColors: this.vertexColors,\r\n });\r\n },\r\n },\r\n __hmrId: 'SubSurfaceMaterial',\r\n};\r\n","import { MeshToonMaterial } from 'three';\r\nimport { propsValues } from '../tools.js';\r\nimport Material from './Material';\r\n\r\nexport default {\r\n extends: Material,\r\n methods: {\r\n createMaterial() {\r\n this.material = new MeshToonMaterial(propsValues(this.$props, ['id']));\r\n },\r\n },\r\n __hmrId: 'ToonMaterial',\r\n};\r\n","import Texture from '../core/Texture';\r\n\r\nexport default {\r\n extends: Texture,\r\n inject: ['material'],\r\n created() {\r\n this.material.setMap(this.texture);\r\n },\r\n unmounted() {\r\n this.material.setMap(null);\r\n },\r\n methods: {\r\n refreshTexture() {\r\n this.createTexture();\r\n this.material.setMap(this.texture);\r\n },\r\n },\r\n __hmrId: 'Map',\r\n};\r\n","import CubeTexture from '../core/CubeTexture';\r\n\r\nexport default {\r\n extends: CubeTexture,\r\n inject: ['material'],\r\n created() {\r\n this.material.setEnvMap(this.texture);\r\n },\r\n unmounted() {\r\n this.material.setEnvMap(null);\r\n },\r\n methods: {\r\n refreshTexture() {\r\n this.createTexture();\r\n this.material.setEnvMap(this.texture);\r\n },\r\n },\r\n __hmrId: 'EnvMap',\r\n};\r\n","import { Mesh } from 'three';\nimport { watch } from 'vue';\nimport useBindProp from '../use/useBindProp.js';\n\nexport default {\n inject: ['three', 'scene', 'rendererComponent'],\n emits: ['ready'],\n props: {\n materialId: String,\n position: Object,\n rotation: Object,\n scale: Object,\n castShadow: Boolean,\n receiveShadow: Boolean,\n },\n provide() {\n return {\n mesh: this,\n };\n },\n mounted() {\n // console.log('Mesh mounted');\n if (this.geometry && !this.mesh) this.initMesh();\n },\n unmounted() {\n // console.log('Mesh unmounted');\n if (this.mesh) this.scene.remove(this.mesh);\n if (this.geometry) this.geometry.dispose();\n if (this.material && !this.materialId) this.material.dispose();\n },\n methods: {\n initMesh() {\n if (!this.material && this.materialId) {\n this.material = this.three.materials[this.materialId];\n }\n this.mesh = new Mesh(this.geometry, this.material);\n this.bindProps();\n this.scene.add(this.mesh);\n this.$emit('ready');\n },\n bindProps() {\n useBindProp(this, 'position', this.mesh.position);\n useBindProp(this, 'rotation', this.mesh.rotation);\n useBindProp(this, 'scale', this.mesh.scale);\n\n ['castShadow', 'receiveShadow'].forEach(p => {\n this.mesh[p] = this[p];\n watch(() => this[p], () => { this.mesh[p] = this[p]; });\n });\n\n watch(() => this.materialId, () => {\n this.mesh.material = this.three.materials[this.materialId];\n });\n },\n setGeometry(geometry) {\n this.geometry = geometry;\n if (this.mesh) this.mesh.geometry = geometry;\n },\n setMaterial(material) {\n this.material = material;\n if (this.mesh) this.mesh.material = material;\n },\n refreshGeometry() {\n const oldGeo = this.geometry;\n this.createGeometry();\n this.mesh.geometry = this.geometry;\n oldGeo.dispose();\n },\n },\n render() {\n if (this.$slots.default) {\n return this.$slots.default();\n }\n return [];\n },\n __hmrId: 'Mesh',\n};\n","import { BoxBufferGeometry } from 'three';\r\nimport { watch } from 'vue';\r\nimport Mesh from './Mesh.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n size: Number,\r\n width: { type: Number, default: 1 },\r\n height: { type: Number, default: 1 },\r\n depth: { type: Number, default: 1 },\r\n widthSegments: { type: Number, default: 1 },\r\n heightSegments: { type: Number, default: 1 },\r\n depthSegments: { type: Number, default: 1 },\r\n },\r\n created() {\r\n this.createGeometry();\r\n\r\n ['size', 'width', 'height', 'depth', 'widthSegments', 'heightSegments', 'depthSegments'].forEach(prop => {\r\n watch(() => this[prop], () => {\r\n this.refreshGeometry();\r\n });\r\n });\r\n },\r\n methods: {\r\n createGeometry() {\r\n if (this.size) {\r\n this.geometry = new BoxBufferGeometry(this.size, this.size, this.size);\r\n } else {\r\n this.geometry = new BoxBufferGeometry(this.width, this.height, this.depth);\r\n }\r\n },\r\n },\r\n __hmrId: 'Box',\r\n};\r\n","import { CircleBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n segments: { type: Number, default: 8 },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'segments', 'thetaStart', 'thetaLength'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new CircleBufferGeometry(this.radius, this.segments, this.thetaStart, this.thetaLength);\n },\n },\n __hmrId: 'Circle',\n};\n","import { ConeBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n height: { type: Number, default: 1 },\n radialSegments: { type: Number, default: 8 },\n heightSegments: { type: Number, default: 1 },\n openEnded: { type: Boolean, default: false },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'height', 'radialSegments', 'heightSegments', 'openEnded', 'thetaStart', 'thetaLength'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new ConeBufferGeometry(this.radius, this.height, this.radialSegments, this.heightSegments, this.openEnded, this.thetaStart, this.thetaLength);\n },\n },\n __hmrId: 'Cone',\n};\n","import { CylinderBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radiusTop: { type: Number, default: 1 },\n radiusBottom: { type: Number, default: 1 },\n height: { type: Number, default: 1 },\n radialSegments: { type: Number, default: 8 },\n heightSegments: { type: Number, default: 1 },\n openEnded: { type: Boolean, default: false },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radiusTop', 'radiusBottom', 'height', 'radialSegments', 'heightSegments', 'openEnded', 'thetaStart', 'thetaLength'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new CylinderBufferGeometry(this.radiusTop, this.radiusBottom, this.height, this.radialSegments, this.heightSegments, this.openEnded, this.thetaStart, this.thetaLength);\n },\n },\n __hmrId: 'Cylinder',\n};\n","import { DodecahedronBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'detail'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new DodecahedronBufferGeometry(this.radius, this.detail);\n },\n },\n __hmrId: 'Dodecahedron',\n};\n","import { IcosahedronBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'detail'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new IcosahedronBufferGeometry(this.radius, this.detail);\n },\n },\n __hmrId: 'Icosahedron',\n};\n","import { LatheBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n points: Array,\n segments: { type: Number, default: 12 },\n phiStart: { type: Number, default: 0 },\n phiLength: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['points', 'segments', 'phiStart', 'phiLength'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new LatheBufferGeometry(this.points, this.segments, this.phiStart, this.phiLength);\n },\n },\n __hmrId: 'Lathe',\n};\n","import { OctahedronBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'detail'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new OctahedronBufferGeometry(this.radius, this.detail);\n },\n },\n __hmrId: 'Octahedron',\n};\n","import { PlaneBufferGeometry } from 'three';\r\nimport { watch } from 'vue';\r\nimport Mesh from './Mesh.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n width: { type: Number, default: 1 },\r\n height: { type: Number, default: 1 },\r\n widthSegments: { type: Number, default: 1 },\r\n heightSegments: { type: Number, default: 1 },\r\n },\r\n created() {\r\n this.createGeometry();\r\n\r\n const watchProps = ['width', 'height', 'widthSegments', 'heightSegments'];\r\n watchProps.forEach(prop => {\r\n watch(() => this[prop], () => {\r\n this.refreshGeometry();\r\n });\r\n });\r\n },\r\n methods: {\r\n createGeometry() {\r\n this.geometry = new PlaneBufferGeometry(this.width, this.height, this.widthSegments, this.heightSegments);\r\n },\r\n },\r\n __hmrId: 'Plane',\r\n};\r\n","import { PolyhedronBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n vertices: Array,\n indices: Array,\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['vertices', 'indices', 'radius', 'detail'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new PolyhedronBufferGeometry(this.vertices, this.indices, this.radius, this.detail);\n },\n },\n __hmrId: 'Polyhedron',\n};\n","import { RingBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n innerRadius: { type: Number, default: 0.5 },\n outerRadius: { type: Number, default: 1 },\n thetaSegments: { type: Number, default: 8 },\n phiSegments: { type: Number, default: 1 },\n thetaStart: { type: Number, default: 0 },\n thetaLength: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['innerRadius', 'outerRadius', 'thetaSegments', 'phiSegments', 'thetaStart', 'thetaLength'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new RingBufferGeometry(this.innerRadius, this.outerRadius, this.thetaSegments, this.phiSegments, this.thetaStart, this.thetaLength);\n },\n },\n __hmrId: 'Ring',\n};\n","import { SphereBufferGeometry } from 'three';\r\nimport Mesh from './Mesh.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n radius: Number,\r\n widthSegments: { type: Number, default: 12 },\r\n heightSegments: { type: Number, default: 12 },\r\n },\r\n watch: {\r\n radius() { this.refreshGeometry(); },\r\n widthSegments() { this.refreshGeometry(); },\r\n heightSegments() { this.refreshGeometry(); },\r\n },\r\n created() {\r\n this.createGeometry();\r\n },\r\n methods: {\r\n createGeometry() {\r\n this.geometry = new SphereBufferGeometry(this.radius, this.widthSegments, this.heightSegments);\r\n },\r\n },\r\n __hmrId: 'Sphere',\r\n};\r\n","import { TetrahedronBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 1 },\n detail: { type: Number, default: 0 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'detail'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new TetrahedronBufferGeometry(this.radius, this.detail);\n },\n },\n __hmrId: 'Tetrahedron',\n};\n","export default {\n text: String,\n fontSrc: String,\n size: { type: Number, default: 80 },\n height: { type: Number, default: 5 },\n depth: { type: Number, default: 1 },\n curveSegments: { type: Number, default: 12 },\n bevelEnabled: { type: Boolean, default: false },\n bevelThickness: { type: Number, default: 10 },\n bevelSize: { type: Number, default: 8 },\n bevelOffset: { type: Number, default: 0 },\n bevelSegments: { type: Number, default: 5 },\n align: { type: [Boolean, String], default: false },\n};\n","import { FontLoader, TextBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\nimport TextProps from './TextProps.js';\n\nexport default {\n extends: Mesh,\n props: {\n ...TextProps,\n },\n created() {\n // add watchers\n const watchProps = [\n 'text', 'size', 'height', 'curveSegments',\n 'bevelEnabled', 'bevelThickness', 'bevelSize', 'bevelOffset', 'bevelSegments',\n 'align',\n ];\n watchProps.forEach(p => {\n watch(() => this[p], () => {\n if (this.font) this.refreshGeometry();\n });\n });\n\n const loader = new FontLoader();\n loader.load(this.fontSrc, (font) => {\n this.font = font;\n this.createGeometry();\n this.initMesh();\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new TextBufferGeometry(this.text, {\n font: this.font,\n size: this.size,\n height: this.height,\n depth: this.depth,\n curveSegments: this.curveSegments,\n bevelEnabled: this.bevelEnabled,\n bevelThickness: this.bevelThickness,\n bevelSize: this.bevelSize,\n bevelOffset: this.bevelOffset,\n bevelSegments: this.bevelSegments,\n });\n\n if (this.align === 'center') {\n this.geometry.center();\n }\n },\n },\n};\n","import { TorusBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 0.5 },\n tube: { type: Number, default: 0.4 },\n radialSegments: { type: Number, default: 8 },\n tubularSegments: { type: Number, default: 6 },\n arc: { type: Number, default: Math.PI * 2 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'tube', 'radialSegments', 'tubularSegments', 'arc'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new TorusBufferGeometry(this.radius, this.tube, this.radialSegments, this.tubularSegments, this.arc);\n },\n },\n __hmrId: 'Torus',\n};\n","import { TorusKnotBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n radius: { type: Number, default: 0.5 },\n tube: { type: Number, default: 0.4 },\n radialSegments: { type: Number, default: 64 },\n tubularSegments: { type: Number, default: 8 },\n p: { type: Number, default: 2 },\n q: { type: Number, default: 3 },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['radius', 'tube', 'radialSegments', 'tubularSegments', 'p', 'q'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new TorusKnotBufferGeometry(this.radius, this.tube, this.radialSegments, this.tubularSegments, this.p, this.q);\n },\n },\n __hmrId: 'TorusKnot',\n};\n","import { Curve, TubeBufferGeometry } from 'three';\nimport { watch } from 'vue';\nimport Mesh from './Mesh.js';\n\nexport default {\n extends: Mesh,\n props: {\n path: Curve,\n tubularSegments: { type: Number, default: 64 },\n radius: { type: Number, default: 1 },\n radialSegments: { type: Number, default: 8 },\n closed: { type: Boolean, default: false },\n },\n created() {\n this.createGeometry();\n\n const watchProps = ['path', 'tubularSegments', 'radius', 'radialSegments', 'closed'];\n watchProps.forEach(prop => {\n watch(() => this[prop], () => {\n this.refreshGeometry();\n });\n });\n },\n methods: {\n createGeometry() {\n this.geometry = new TubeBufferGeometry(this.path, this.tubularSegments, this.radius, this.radialSegments, this.closed);\n },\n },\n __hmrId: 'Tube',\n};\n","import {\r\n BackSide,\r\n CubeCamera,\r\n FrontSide,\r\n LinearMipmapLinearFilter,\r\n Mesh as TMesh,\r\n RGBFormat,\r\n WebGLCubeRenderTarget,\r\n} from 'three';\r\n// import { watch } from 'vue';\r\nimport Mesh from '../meshes/Mesh.js';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n cubeRTSize: { type: Number, default: 512 },\r\n cubeCameraNear: { type: Number, default: 0.1 },\r\n cubeCameraFar: { type: Number, default: 2000 },\r\n autoUpdate: Boolean,\r\n },\r\n mounted() {\r\n this.initGem();\r\n if (this.autoUpdate) this.three.onBeforeRender(this.updateCubeRT);\r\n else this.rendererComponent.onMounted(this.updateCubeRT);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateCubeRT);\r\n if (this.meshBack) this.scene.remove(this.meshBack);\r\n if (this.materialBack) this.materialBack.dispose();\r\n },\r\n methods: {\r\n initGem() {\r\n const cubeRT = new WebGLCubeRenderTarget(this.cubeRTSize, { format: RGBFormat, generateMipmaps: true, minFilter: LinearMipmapLinearFilter });\r\n this.cubeCamera = new CubeCamera(this.cubeCameraNear, this.cubeCameraFar, cubeRT);\r\n useBindProp(this, 'position', this.cubeCamera.position);\r\n this.scene.add(this.cubeCamera);\r\n\r\n this.material.side = FrontSide;\r\n this.material.envMap = cubeRT.texture;\r\n this.material.envMapIntensity = 10;\r\n this.material.metalness = 0;\r\n this.material.roughness = 0;\r\n this.material.opacity = 0.75;\r\n this.material.transparent = true;\r\n this.material.premultipliedAlpha = true;\r\n this.material.needsUpdate = true;\r\n\r\n this.materialBack = this.material.clone();\r\n this.materialBack.side = BackSide;\r\n this.materialBack.envMapIntensity = 5;\r\n this.materialBack.metalness = 1;\r\n this.materialBack.roughness = 0;\r\n this.materialBack.opacity = 0.5;\r\n\r\n this.meshBack = new TMesh(this.geometry, this.materialBack);\r\n\r\n useBindProp(this, 'position', this.meshBack.position);\r\n useBindProp(this, 'rotation', this.meshBack.rotation);\r\n useBindProp(this, 'scale', this.meshBack.scale);\r\n this.scene.add(this.meshBack);\r\n },\r\n updateCubeRT() {\r\n this.mesh.visible = false;\r\n this.meshBack.visible = false;\r\n this.cubeCamera.update(this.three.renderer, this.scene);\r\n this.mesh.visible = true;\r\n this.meshBack.visible = true;\r\n },\r\n },\r\n __hmrId: 'Gem',\r\n};\r\n","import { DoubleSide, MeshBasicMaterial, PlaneBufferGeometry, TextureLoader } from 'three';\r\nimport { watch } from 'vue';\r\nimport Mesh from './Mesh.js';\r\n\r\nexport default {\r\n emits: ['loaded'],\r\n extends: Mesh,\r\n props: {\r\n src: String,\r\n width: Number,\r\n height: Number,\r\n keepSize: Boolean,\r\n },\r\n created() {\r\n this.createGeometry();\r\n this.createMaterial();\r\n this.initMesh();\r\n\r\n watch(() => this.src, this.refreshTexture);\r\n\r\n ['width', 'height'].forEach(p => {\r\n watch(() => this[p], this.resize);\r\n });\r\n\r\n if (this.keepSize) this.three.onAfterResize(this.resize);\r\n },\r\n methods: {\r\n createGeometry() {\r\n this.geometry = new PlaneBufferGeometry(1, 1, 1, 1);\r\n },\r\n createMaterial() {\r\n this.material = new MeshBasicMaterial({ side: DoubleSide, map: this.loadTexture() });\r\n },\r\n loadTexture() {\r\n return new TextureLoader().load(this.src, this.onLoaded);\r\n },\r\n refreshTexture() {\r\n if (this.texture) this.texture.dispose();\r\n this.material.map = this.loadTexture();\r\n this.material.needsUpdate = true;\r\n },\r\n onLoaded(texture) {\r\n this.texture = texture;\r\n this.resize();\r\n this.$emit('loaded');\r\n },\r\n resize() {\r\n if (!this.texture) return;\r\n const screen = this.three.size;\r\n const iW = this.texture.image.width;\r\n const iH = this.texture.image.height;\r\n const iRatio = iW / iH;\r\n let w, h;\r\n if (this.width && this.height) {\r\n w = this.width * screen.wWidth / screen.width;\r\n h = this.height * screen.wHeight / screen.height;\r\n } else if (this.width) {\r\n w = this.width * screen.wWidth / screen.width;\r\n h = w / iRatio;\r\n } else if (this.height) {\r\n h = this.height * screen.wHeight / screen.height;\r\n w = h * iRatio;\r\n }\r\n this.mesh.scale.x = w;\r\n this.mesh.scale.y = h;\r\n },\r\n },\r\n __hmrId: 'Image',\r\n};\r\n","import { InstancedMesh } from 'three';\r\nimport { watch } from 'vue';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n inject: ['three', 'scene'],\r\n props: {\r\n materialId: String,\r\n count: Number,\r\n position: Object,\r\n castShadow: Boolean,\r\n receiveShadow: Boolean,\r\n },\r\n provide() {\r\n return {\r\n mesh: this,\r\n };\r\n },\r\n beforeMount() {\r\n if (!this.$slots.default) {\r\n console.error('Missing Geometry');\r\n }\r\n },\r\n mounted() {\r\n this.initMesh();\r\n },\r\n unmounted() {\r\n this.scene.remove(this.mesh);\r\n },\r\n methods: {\r\n initMesh() {\r\n if (!this.material && this.materialId) {\r\n this.material = this.three.materials[this.materialId];\r\n }\r\n\r\n this.mesh = new InstancedMesh(this.geometry, this.material, this.count);\r\n\r\n useBindProp(this, 'position', this.mesh.position);\r\n useBindProp(this, 'rotation', this.mesh.rotation);\r\n useBindProp(this, 'scale', this.mesh.scale);\r\n\r\n ['castShadow', 'receiveShadow'].forEach(p => {\r\n this.mesh[p] = this[p];\r\n watch(() => this[p], () => { this.mesh[p] = this[p]; });\r\n });\r\n\r\n // watch(() => this.materialId, () => {\r\n // this.mesh.material = this.three.materials[this.materialId];\r\n // });\r\n\r\n this.scene.add(this.mesh);\r\n },\r\n setGeometry(geometry) {\r\n this.geometry = geometry;\r\n if (this.mesh) this.mesh.geometry = geometry;\r\n },\r\n setMaterial(material) {\r\n this.material = material;\r\n if (this.mesh) this.mesh.material = material;\r\n },\r\n },\r\n render() {\r\n return this.$slots.default();\r\n },\r\n __hmrId: 'InstancedMesh',\r\n};\r\n","import {\r\n CubeCamera,\r\n LinearMipmapLinearFilter,\r\n RGBFormat,\r\n WebGLCubeRenderTarget,\r\n} from 'three';\r\n// import { watch } from 'vue';\r\nimport Mesh from './Mesh.js';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n cubeRTSize: { type: Number, default: 512 },\r\n cubeCameraNear: { type: Number, default: 0.1 },\r\n cubeCameraFar: { type: Number, default: 2000 },\r\n autoUpdate: Boolean,\r\n },\r\n mounted() {\r\n this.initMirrorMesh();\r\n if (this.autoUpdate) this.three.onBeforeRender(this.updateCubeRT);\r\n else this.rendererComponent.onMounted(this.updateCubeRT);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateCubeRT);\r\n },\r\n methods: {\r\n initMirrorMesh() {\r\n const cubeRT = new WebGLCubeRenderTarget(this.cubeRTSize, { format: RGBFormat, generateMipmaps: true, minFilter: LinearMipmapLinearFilter });\r\n this.cubeCamera = new CubeCamera(this.cubeCameraNear, this.cubeCameraFar, cubeRT);\r\n useBindProp(this, 'position', this.cubeCamera.position);\r\n this.scene.add(this.cubeCamera);\r\n\r\n this.material.envMap = cubeRT.texture;\r\n this.material.needsUpdate = true;\r\n },\r\n updateCubeRT() {\r\n this.mesh.visible = false;\r\n this.cubeCamera.update(this.three.renderer, this.scene);\r\n this.mesh.visible = true;\r\n },\r\n },\r\n __hmrId: 'MirrorMesh',\r\n};\r\n","import {\r\n CubeCamera,\r\n CubeRefractionMapping,\r\n LinearMipmapLinearFilter,\r\n RGBFormat,\r\n WebGLCubeRenderTarget,\r\n} from 'three';\r\n// import { watch } from 'vue';\r\nimport Mesh from './Mesh.js';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n extends: Mesh,\r\n props: {\r\n cubeRTSize: { type: Number, default: 512 },\r\n cubeCameraNear: { type: Number, default: 0.1 },\r\n cubeCameraFar: { type: Number, default: 2000 },\r\n autoUpdate: Boolean,\r\n },\r\n mounted() {\r\n this.initMirrorMesh();\r\n if (this.autoUpdate) this.three.onBeforeRender(this.updateCubeRT);\r\n else this.rendererComponent.onMounted(this.updateCubeRT);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateCubeRT);\r\n },\r\n methods: {\r\n initMirrorMesh() {\r\n const cubeRT = new WebGLCubeRenderTarget(this.cubeRTSize, { mapping: CubeRefractionMapping, format: RGBFormat, generateMipmaps: true, minFilter: LinearMipmapLinearFilter });\r\n this.cubeCamera = new CubeCamera(this.cubeCameraNear, this.cubeCameraFar, cubeRT);\r\n useBindProp(this, 'position', this.cubeCamera.position);\r\n this.scene.add(this.cubeCamera);\r\n\r\n this.material.envMap = cubeRT.texture;\r\n this.material.refractionRatio = 0.95;\r\n this.material.needsUpdate = true;\r\n },\r\n updateCubeRT() {\r\n this.mesh.visible = false;\r\n this.cubeCamera.update(this.three.renderer, this.scene);\r\n this.mesh.visible = true;\r\n },\r\n },\r\n __hmrId: 'RefractionMesh',\r\n};\r\n","import { Sprite, SpriteMaterial, TextureLoader } from 'three';\r\nimport { watch } from 'vue';\r\nimport useBindProp from '../use/useBindProp.js';\r\n\r\nexport default {\r\n emits: ['ready', 'loaded'],\r\n inject: ['three', 'scene'],\r\n props: {\r\n src: String,\r\n position: Object,\r\n scale: Object,\r\n },\r\n mounted() {\r\n this.texture = new TextureLoader().load(this.src, this.onLoaded);\r\n this.material = new SpriteMaterial({ map: this.texture });\r\n this.sprite = new Sprite(this.material);\r\n this.geometry = this.sprite.geometry;\r\n\r\n useBindProp(this, 'position', this.sprite.position);\r\n useBindProp(this, 'scale', this.sprite.scale);\r\n\r\n // watch(() => this.src, () => {\r\n // this.texture = new TextureLoader().load(this.src, this.onLoaded);\r\n // this.material.map = this.texture;\r\n // });\r\n\r\n this.scene.add(this.sprite);\r\n this.$emit('ready');\r\n },\r\n unmounted() {\r\n this.texture.dispose();\r\n this.material.dispose();\r\n this.scene.remove(this.sprite);\r\n },\r\n methods: {\r\n onLoaded() {\r\n this.updateUV();\r\n this.$emit('loaded');\r\n },\r\n updateUV() {\r\n this.iWidth = this.texture.image.width;\r\n this.iHeight = this.texture.image.height;\r\n this.iRatio = this.iWidth / this.iHeight;\r\n\r\n let x = 0.5, y = 0.5;\r\n if (this.iRatio > 1) {\r\n y = 0.5 / this.iRatio;\r\n } else {\r\n x = 0.5 / this.iRatio;\r\n }\r\n\r\n const positions = this.geometry.attributes.position.array;\r\n positions[0] = -x; positions[1] = -y;\r\n positions[5] = x; positions[6] = -y;\r\n positions[10] = x; positions[11] = y;\r\n positions[15] = -x; positions[16] = y;\r\n this.geometry.attributes.position.needsUpdate = true;\r\n },\r\n },\r\n render() {\r\n return [];\r\n },\r\n __hmrId: 'Sprite',\r\n};\r\n","import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\r\n\r\nexport default {\r\n setup() {\r\n return {\r\n passes: [],\r\n };\r\n },\r\n inject: ['three'],\r\n provide() {\r\n return {\r\n passes: this.passes,\r\n };\r\n },\r\n mounted() {\r\n this.three.onAfterInit(() => {\r\n this.composer = new EffectComposer(this.three.renderer);\r\n this.three.renderer.autoClear = false;\r\n this.passes.forEach(pass => {\r\n this.composer.addPass(pass);\r\n });\r\n this.three.composer = this.composer;\r\n });\r\n },\r\n render() {\r\n return this.$slots.default();\r\n },\r\n __hmrId: 'EffectComposer',\r\n};\r\n","export default {\r\n inject: ['three', 'passes'],\r\n beforeMount() {\r\n if (!this.passes) {\r\n console.error('Missing parent EffectComposer');\r\n }\r\n },\r\n unmounted() {\r\n if (this.pass.dispose) this.pass.dispose();\r\n },\r\n render() {\r\n return [];\r\n },\r\n __hmrId: 'EffectPass',\r\n};\r\n","import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n mounted() {\r\n if (!this.three.scene) {\r\n console.error('Missing Scene');\r\n }\r\n if (!this.three.camera) {\r\n console.error('Missing Camera');\r\n }\r\n const pass = new RenderPass(this.three.scene, this.three.camera);\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'RenderPass',\r\n};\r\n","import { BokehPass } from 'three/examples/jsm/postprocessing/BokehPass.js';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n props: {\r\n focus: {\r\n type: Number,\r\n default: 1,\r\n },\r\n aperture: {\r\n type: Number,\r\n default: 0.025,\r\n },\r\n maxblur: {\r\n type: Number,\r\n default: 0.01,\r\n },\r\n },\r\n watch: {\r\n focus() { this.pass.uniforms.focus.value = this.focus; },\r\n aperture() { this.pass.uniforms.aperture.value = this.aperture; },\r\n maxblur() { this.pass.uniforms.maxblur.value = this.maxblur; },\r\n },\r\n mounted() {\r\n if (!this.three.scene) {\r\n console.error('Missing Scene');\r\n }\r\n if (!this.three.camera) {\r\n console.error('Missing Camera');\r\n }\r\n const params = {\r\n focus: this.focus,\r\n aperture: this.aperture,\r\n maxblur: this.maxblur,\r\n width: this.three.size.width,\r\n height: this.three.size.height,\r\n };\r\n const pass = new BokehPass(this.three.scene, this.three.camera, params);\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'BokehPass',\r\n};\r\n","import { FilmPass } from 'three/examples/jsm/postprocessing/FilmPass.js';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n props: {\r\n noiseIntensity: {\r\n type: Number,\r\n default: 0.5,\r\n },\r\n scanlinesIntensity: {\r\n type: Number,\r\n default: 0.05,\r\n },\r\n scanlinesCount: {\r\n type: Number,\r\n default: 4096,\r\n },\r\n grayscale: {\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n watch: {\r\n noiseIntensity() { this.pass.uniforms.nIntensity.value = this.noiseIntensity; },\r\n scanlinesIntensity() { this.pass.uniforms.sIntensity.value = this.scanlinesIntensity; },\r\n scanlinesCount() { this.pass.uniforms.sCount.value = this.scanlinesCount; },\r\n grayscale() { this.pass.uniforms.grayscale.value = this.grayscale; },\r\n },\r\n mounted() {\r\n const pass = new FilmPass(this.noiseIntensity, this.scanlinesIntensity, this.scanlinesCount, this.grayscale);\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'FilmPass',\r\n};\r\n","import { HalftonePass } from 'three/examples/jsm/postprocessing/HalftonePass.js';\r\nimport { watch } from 'vue';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n props: {\r\n shape: { type: Number, default: 1 },\r\n radius: { type: Number, default: 4 },\r\n rotateR: { type: Number, default: Math.PI / 12 * 1 },\r\n rotateG: { type: Number, default: Math.PI / 12 * 2 },\r\n rotateB: { type: Number, default: Math.PI / 12 * 3 },\r\n scatter: { type: Number, default: 0 },\r\n },\r\n mounted() {\r\n const pass = new HalftonePass(this.three.size.width, this.three.size.height, {});\r\n\r\n ['shape', 'radius', 'rotateR', 'rotateG', 'rotateB', 'scatter'].forEach(p => {\r\n pass.uniforms[p].value = this[p];\r\n watch(() => this[p], () => {\r\n pass.uniforms[p].value = this[p];\r\n });\r\n });\r\n\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'HalftonePass',\r\n};\r\n","import { Vector2 } from 'three';\r\nimport { SAOPass } from 'three/examples/jsm/postprocessing/SAOPass.js';\r\nimport { watch } from 'vue';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n props: {\r\n depthTexture: { type: Boolean, default: false },\r\n useNormals: { type: Boolean, default: false },\r\n resolution: Object,\r\n },\r\n mounted() {\r\n if (!this.three.scene) {\r\n console.error('Missing Scene');\r\n }\r\n if (!this.three.camera) {\r\n console.error('Missing Camera');\r\n }\r\n\r\n const resolution = this.resolution ? new Vector2(this.resolution.x, this.resolution.y) : new Vector2(this.three.size.width, this.three.size.height);\r\n const pass = new SAOPass(this.three.scene, this.three.camera, this.depthTexture, this.useNormals, resolution);\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'SAOPass',\r\n};\r\n","import { Vector2 } from 'three';\r\nimport { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass.js';\r\nimport EffectPass from './EffectPass.js';\r\n\r\nexport default {\r\n extends: EffectPass,\r\n props: {\r\n strength: { type: Number, default: 1.5 },\r\n radius: { type: Number, default: 0 },\r\n threshold: { type: Number, default: 0 },\r\n },\r\n watch: {\r\n strength() { this.pass.strength = this.strength; },\r\n radius() { this.pass.radius = this.radius; },\r\n threshold() { this.pass.threshold = this.threshold; },\r\n },\r\n mounted() {\r\n const size = new Vector2(this.three.size.width, this.three.size.height);\r\n const pass = new UnrealBloomPass(size, this.strength, this.radius, this.threshold);\r\n this.passes.push(pass);\r\n this.pass = pass;\r\n },\r\n __hmrId: 'UnrealBloomPass',\r\n};\r\n","export default `\n//\n// Description : Array and textureless GLSL 2D simplex noise function.\n// Author : Ian McEwan, Ashima Arts.\n// Maintainer : ijm\n// Lastmod : 20110822 (ijm)\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n// Distributed under the MIT License. See LICENSE file.\n// https://github.com/ashima/webgl-noise\n//\n\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec3 permute(vec3 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\n\nfloat snoise(vec2 v)\n{\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n // First corner\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n\n // Other corners\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n // Permutations\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n + i.x + vec3(0.0, i1.x, 1.0 ));\n\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n\n // Gradients: 41 points uniformly over a line, mapped onto a diamond.\n // The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n // Normalise gradients implicitly by scaling m\n // Approximation of: m *= inversesqrt( a0*a0 + h*h );\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n\n // Compute final noise value at P\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n`;\n","import { DoubleSide, MeshBasicMaterial, PlaneBufferGeometry } from 'three';\r\nimport { watch } from 'vue';\r\nimport Image from '../../meshes/Image.js';\r\nimport snoise2 from '../../glsl/snoise2.glsl.js';\r\n\r\nexport default {\r\n extends: Image,\r\n props: {\r\n widthSegments: { type: Number, default: 20 },\r\n heightSegments: { type: Number, default: 20 },\r\n timeCoef: { type: Number, default: 0.001 },\r\n noiseCoef: { type: Number, default: 1 },\r\n zCoef: { type: Number, default: 5 },\r\n dispCoef: { type: Number, default: 0.05 },\r\n },\r\n setup(props) {\r\n // uniforms\r\n const uTime = { value: 0 };\r\n const uNoiseCoef = { value: props.noiseCoef };\r\n watch(() => props.noiseCoef, (value) => { uNoiseCoef.value = value; });\r\n const uZCoef = { value: props.zCoef };\r\n watch(() => props.zCoef, (value) => { uZCoef.value = value; });\r\n const uDispCoef = { value: props.dispCoef };\r\n watch(() => props.dispCoef, (value) => { uDispCoef.value = value; });\r\n\r\n return {\r\n uTime, uNoiseCoef, uZCoef, uDispCoef,\r\n };\r\n },\r\n mounted() {\r\n this.startTime = Date.now();\r\n this.three.onBeforeRender(this.updateTime);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateTime);\r\n },\r\n methods: {\r\n createGeometry() {\r\n this.geometry = new PlaneBufferGeometry(1, 1, this.widthSegments, this.heightSegments);\r\n },\r\n createMaterial() {\r\n this.material = new MeshBasicMaterial({ side: DoubleSide, map: this.loadTexture() });\r\n this.material.onBeforeCompile = (shader) => {\r\n shader.uniforms.uTime = this.uTime;\r\n shader.uniforms.uNoiseCoef = this.uNoiseCoef;\r\n shader.uniforms.uZCoef = this.uZCoef;\r\n shader.uniforms.uDispCoef = this.uDispCoef;\r\n shader.vertexShader = `\r\n uniform float uTime;\r\n uniform float uNoiseCoef;\r\n uniform float uZCoef;\r\n varying float vNoise;\r\n ${snoise2}\r\n ` + shader.vertexShader;\r\n\r\n shader.vertexShader = shader.vertexShader.replace(\r\n '#include <begin_vertex>',\r\n ` \r\n vec3 p = vec3(position * uNoiseCoef);\r\n p.x += uTime;\r\n vNoise = snoise(p.xy);\r\n vec3 transformed = vec3(position);\r\n transformed.z += vNoise * uZCoef;\r\n `\r\n );\r\n\r\n shader.fragmentShader = `\r\n uniform float uDispCoef;\r\n varying float vNoise;\r\n ` + shader.fragmentShader;\r\n\r\n shader.fragmentShader = shader.fragmentShader.replace(\r\n '#include <map_fragment>',\r\n `\r\n vec4 texelColor = texture2D(map, vUv);\r\n vec4 dispTexel = texture2D(map, vUv + vec2(vNoise * uDispCoef, 0));\r\n texelColor.r = dispTexel.r;\r\n diffuseColor = texelColor;\r\n `\r\n );\r\n this.materialShader = shader;\r\n };\r\n },\r\n updateTime() {\r\n this.uTime.value = (Date.now() - this.startTime) * this.timeCoef;\r\n },\r\n },\r\n __hmrId: 'NoisyImage',\r\n};\r\n","export default `\n//\n// Description : Array and textureless GLSL 2D/3D/4D simplex\n// noise functions.\n// Author : Ian McEwan, Ashima Arts.\n// Maintainer : ijm\n// Lastmod : 20110822 (ijm)\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n// Distributed under the MIT License. See LICENSE file.\n// https://github.com/ashima/webgl-noise\n//\n\nvec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec4 mod289(vec4 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec4 permute(vec4 x) { return mod289(((x*34.0)+1.0)*x); }\nvec4 taylorInvSqrt(vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }\n\nfloat snoise(vec3 v)\n{\n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n // First corner\n vec3 i = floor(v + dot(v, C.yyy) );\n vec3 x0 = v - i + dot(i, C.xxx) ;\n\n // Other corners\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min( g.xyz, l.zxy );\n vec3 i2 = max( g.xyz, l.zxy );\n\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n\n // Permutations\n i = mod289(i);\n vec4 p = permute( permute( permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0 ))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\n\n // Gradients: 7x7 points over a square, mapped onto an octahedron.\n // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7)\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)\n\n vec4 x = x_ *ns.x + ns.yyyy;\n vec4 y = y_ *ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4( x.xy, y.xy );\n vec4 b1 = vec4( x.zw, y.zw );\n\n vec4 s0 = floor(b0)*2.0 + 1.0;\n vec4 s1 = floor(b1)*2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\n\n vec3 p0 = vec3(a0.xy,h.x);\n vec3 p1 = vec3(a0.zw,h.y);\n vec3 p2 = vec3(a1.xy,h.z);\n vec3 p3 = vec3(a1.zw,h.w);\n\n // Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n // Mix final noise value\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\n m = m * m;\n return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),\n dot(p2,x2), dot(p3,x3) ) );\n}\n`;\n","import { watch } from 'vue';\r\nimport Plane from '../../meshes/Plane.js';\r\nimport snoise3 from '../../glsl/snoise3.glsl.js';\r\n\r\nexport default {\r\n extends: Plane,\r\n props: {\r\n timeCoef: { type: Number, default: 0.001 },\r\n noiseCoef: { type: Number, default: 1 },\r\n zCoef: { type: Number, default: 5 },\r\n },\r\n setup(props) {\r\n // uniforms\r\n const uTime = { value: 0 };\r\n const uNoiseCoef = { value: props.noiseCoef };\r\n watch(() => props.noiseCoef, (value) => { uNoiseCoef.value = value; });\r\n const uZCoef = { value: props.zCoef };\r\n watch(() => props.zCoef, (value) => { uZCoef.value = value; });\r\n\r\n return {\r\n uTime, uNoiseCoef, uZCoef,\r\n };\r\n },\r\n mounted() {\r\n this.updateMaterial();\r\n this.startTime = Date.now();\r\n this.three.onBeforeRender(this.updateTime);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateTime);\r\n },\r\n methods: {\r\n updateMaterial() {\r\n this.material.onBeforeCompile = (shader) => {\r\n shader.uniforms.uTime = this.uTime;\r\n shader.uniforms.uNoiseCoef = this.uNoiseCoef;\r\n shader.uniforms.uZCoef = this.uZCoef;\r\n shader.vertexShader = `\r\n uniform float uTime;\r\n uniform float uNoiseCoef;\r\n uniform float uZCoef;\r\n varying float vNoise;\r\n ${snoise3}\r\n ` + shader.vertexShader;\r\n\r\n shader.vertexShader = shader.vertexShader.replace(\r\n '#include <begin_vertex>',\r\n ` \r\n vec3 p = vec3(position * uNoiseCoef);\r\n vNoise = snoise(vec3(p.x, p.y, uTime));\r\n vec3 transformed = vec3(position);\r\n transformed.z += vNoise * uZCoef;\r\n `\r\n );\r\n this.materialShader = shader;\r\n };\r\n this.material.needsupdate = true;\r\n },\r\n updateTime() {\r\n this.uTime.value = (Date.now() - this.startTime) * this.timeCoef;\r\n },\r\n },\r\n __hmrId: 'NoisyPlane',\r\n};\r\n","export default `\n//\n// Description : Array and textureless GLSL 2D/3D/4D simplex\n// noise functions.\n// Author : Ian McEwan, Ashima Arts.\n// Maintainer : ijm\n// Lastmod : 20110822 (ijm)\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved.\n// Distributed under the MIT License. See LICENSE file.\n// https://github.com/ashima/webgl-noise\n//\n\nvec4 mod289(vec4 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nfloat mod289(float x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec4 permute(vec4 x) { return mod289(((x*34.0)+1.0)*x); }\nfloat permute(float x) { return mod289(((x*34.0)+1.0)*x); }\nvec4 taylorInvSqrt(vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }\nfloat taylorInvSqrt(float r) { return 1.79284291400159 - 0.85373472095314 * r; }\n\nvec4 grad4(float j, vec4 ip)\n{\n const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n vec4 p,s;\n\n p.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n p.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n s = vec4(lessThan(p, vec4(0.0)));\n p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;\n\n return p;\n}\n\n// (sqrt(5) - 1)/4 = F4, used once below\n#define F4 0.309016994374947451\n\nfloat snoise(vec4 v)\n{\n const vec4 C = vec4( 0.138196601125011, // (5 - sqrt(5))/20 G4\n 0.276393202250021, // 2 * G4\n 0.414589803375032, // 3 * G4\n -0.447213595499958); // -1 + 4 * G4\n\n // First corner\n vec4 i = floor(v + dot(v, vec4(F4)) );\n vec4 x0 = v - i + dot(i, C.xxxx);\n\n // Other corners\n\n // Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI)\n vec4 i0;\n vec3 isX = step( x0.yzw, x0.xxx );\n vec3 isYZ = step( x0.zww, x0.yyz );\n // i0.x = dot( isX, vec3( 1.0 ) );\n i0.x = isX.x + isX.y + isX.z;\n i0.yzw = 1.0 - isX;\n // i0.y += dot( isYZ.xy, vec2( 1.0 ) );\n i0.y += isYZ.x + isYZ.y;\n i0.zw += 1.0 - isYZ.xy;\n i0.z += isYZ.z;\n i0.w += 1.0 - isYZ.z;\n\n // i0 now contains the unique values 0,1,2,3 in each channel\n vec4 i3 = clamp( i0, 0.0, 1.0 );\n vec4 i2 = clamp( i0-1.0, 0.0, 1.0 );\n vec4 i1 = clamp( i0-2.0, 0.0, 1.0 );\n\n vec4 x1 = x0 - i1 + C.xxxx;\n vec4 x2 = x0 - i2 + C.yyyy;\n vec4 x3 = x0 - i3 + C.zzzz;\n vec4 x4 = x0 + C.wwww;\n\n // Permutations\n i = mod289(i);\n float j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);\n vec4 j1 = permute( permute( permute( permute (\n i.w + vec4(i1.w, i2.w, i3.w, 1.0 ))\n + i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))\n + i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))\n + i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));\n\n // Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope\n // 7*7*6 = 294, which is close to the ring size 17*17 = 289.\n vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\n vec4 p0 = grad4(j0, ip);\n vec4 p1 = grad4(j1.x, ip);\n vec4 p2 = grad4(j1.y, ip);\n vec4 p3 = grad4(j1.z, ip);\n vec4 p4 = grad4(j1.w, ip);\n\n // Normalise gradients\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n p4 *= taylorInvSqrt(dot(p4,p4));\n\n // Mix contributions from the five corners\n vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0);\n vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.0);\n m0 = m0 * m0;\n m1 = m1 * m1;\n return 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 )))\n + dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ;\n\n}\n`;\n","import { watch } from 'vue';\r\nimport Sphere from '../../meshes/Sphere.js';\r\nimport snoise4 from '../../glsl/snoise4.glsl.js';\r\n\r\nexport default {\r\n extends: Sphere,\r\n props: {\r\n radius: { type: Number, default: 20 },\r\n widthSegments: { type: Number, default: 128 },\r\n heightSegments: { type: Number, default: 128 },\r\n timeCoef: { type: Number, default: 0.001 },\r\n noiseCoef: { type: Number, default: 0.05 },\r\n dispCoef: { type: Number, default: 5 },\r\n },\r\n setup(props) {\r\n // uniforms\r\n const uTime = { value: 0 };\r\n const uNoiseCoef = { value: props.noiseCoef };\r\n watch(() => props.noiseCoef, (value) => { uNoiseCoef.value = value; });\r\n const uDispCoef = { value: props.dispCoef };\r\n watch(() => props.dispCoef, (value) => { uDispCoef.value = value; });\r\n\r\n return {\r\n uTime, uNoiseCoef, uDispCoef,\r\n };\r\n },\r\n mounted() {\r\n this.updateMaterial();\r\n\r\n this.startTime = Date.now();\r\n this.three.onBeforeRender(this.updateTime);\r\n },\r\n unmounted() {\r\n this.three.offBeforeRender(this.updateTime);\r\n },\r\n methods: {\r\n updateMaterial() {\r\n this.material.onBeforeCompile = (shader) => {\r\n shader.uniforms.uTime = this.uTime;\r\n shader.uniforms.uNoiseCoef = this.uNoiseCoef;\r\n shader.uniforms.uDispCoef = this.uDispCoef;\r\n shader.vertexShader = `\r\n uniform float uTime;\r\n uniform float uNoiseCoef;\r\n uniform float uDispCoef;\r\n varying float vNoise;\r\n ${snoise4}\r\n ` + shader.vertexShader;\r\n\r\n shader.vertexShader = shader.vertexShader.replace(\r\n '#include <begin_vertex>',\r\n `\r\n vec4 p = vec4(vec3(position * uNoiseCoef), uTime);\r\n vNoise = snoise(p);\r\n vec3 transformed = vec3(position);\r\n transformed += normalize(position) * vNoise * uDispCoef;\r\n `\r\n );\r\n this.materialShader = shader;\r\n };\r\n this.material.needsupdate = true;\r\n },\r\n updateTime() {\r\n this.uTime.value = (Date.now() - this.startTime) * this.timeCoef;\r\n },\r\n },\r\n __hmrId: 'NoisySphere',\r\n};\r\n","import { watch } from 'vue';\nimport Text from '../../meshes/Text.js';\nimport snoise2 from '../../glsl/snoise2.glsl.js';\n\nexport default {\n extends: Text,\n props: {\n timeCoef: { type: Number, default: 0.001 },\n noiseCoef: { type: Number, default: 0.015 },\n zCoef: { type: Number, default: 10 },\n },\n setup(props) {\n // uniforms\n const uTime = { value: 0 };\n const uNoiseCoef = { value: props.noiseCoef };\n watch(() => props.noiseCoef, (value) => { uNoiseCoef.value = value; });\n const uZCoef = { value: props.zCoef };\n watch(() => props.zCoef, (value) => { uZCoef.value = value; });\n\n return {\n uTime, uNoiseCoef, uZCoef,\n };\n },\n mounted() {\n this.updateMaterial();\n\n this.startTime = Date.now();\n this.three.onBeforeRender(this.updateTime);\n },\n unmounted() {\n this.three.offBeforeRender(this.updateTime);\n },\n methods: {\n updateMaterial() {\n this.material.onBeforeCompile = (shader) => {\n shader.uniforms.uTime = this.uTime;\n shader.uniforms.uNoiseCoef = this.uNoiseCoef;\n shader.uniforms.uZCoef = this.uZCoef;\n shader.vertexShader = `\n uniform float uTime;\n uniform float uNoiseCoef;\n uniform float uZCoef;\n ${snoise2}\n ` + shader.vertexShader;\n\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>',\n ` \n vec3 p = vec3(position * uNoiseCoef);\n p.x += uTime;\n float noise = snoise(p.xy);\n vec3 transformed = vec3(position);\n transformed.z += noise * uZCoef;\n `\n );\n this.materialShader = shader;\n };\n this.material.needsupdate = true;\n },\n updateTime() {\n this.uTime.value = (Date.now() - this.startTime) * this.timeCoef;\n },\n },\n __hmrId: 'NoisyText',\n};\n","\r\nimport {\r\n BufferGeometry,\r\n DoubleSide,\r\n Face3,\r\n Geometry,\r\n InstancedBufferAttribute,\r\n InstancedMesh,\r\n MathUtils,\r\n MeshBasicMaterial,\r\n Object3D,\r\n Vector2,\r\n Vector3,\r\n} from 'three';\r\n\r\nexport default class AnimatedPlane {\r\n constructor(params) {\r\n Object.entries(params).forEach(([key, value]) => {\r\n this[key] = value;\r\n });\r\n\r\n this.o3d = new Object3D();\r\n this.uProgress = { value: 0 };\r\n this.uvScale = new Vector2();\r\n\r\n this.initMaterial();\r\n this.initPlane();\r\n }\r\n\r\n initMaterial() {\r\n this.material = new MeshBasicMaterial({\r\n side: DoubleSide,\r\n transparent: true,\r\n map: this.texture,\r\n onBeforeCompile: shader => {\r\n shader.uniforms.progress = this.uProgress;\r\n shader.uniforms.uvScale = { value: this.uvScale };\r\n shader.vertexShader = `\r\n uniform float progress;\r\n uniform vec2 uvScale;\r\n\r\n attribute vec3 offset;\r\n attribute vec3 rotation;\r\n attribute vec2 uvOffset;\r\n\r\n mat3 rotationMatrixXYZ(vec3 r)\r\n {\r\n float cx = cos(r.x);\r\n float sx = sin(r.x);\r\n float cy = cos(r.y);\r\n float sy = sin(r.y);\r\n float cz = cos(r.z);\r\n float sz = sin(r.z);\r\n\r\n return mat3(\r\n cy * cz, cx * sz + sx * sy * cz, sx * sz - cx * sy * cz,\r\n -cy * sz, cx * cz - sx * sy * sz, sx * cz + cx * sy * sz,\r\n sy, -sx * cy, cx * cy\r\n );\r\n }\r\n ` + shader.vertexShader;\r\n\r\n shader.vertexShader = shader.vertexShader.replace('#include <uv_vertex>', `\r\n #include <uv_vertex>\r\n vUv = vUv * uvScale + uvOffset;\r\n `);\r\n\r\n shader.vertexShader = shader.vertexShader.replace('#include <project_vertex>', `\r\n mat3 rotMat = rotationMatrixXYZ(progress * rotation);\r\n transformed = rotMat * transformed;\r\n\r\n vec4 mvPosition = vec4(transformed, 1.0);\r\n #ifdef USE_INSTANCING\r\n mvPosition = instanceMatrix * mvPosition;\r\n #endif\r\n\r\n mvPosition.xyz += progress * offset;\r\n\r\n mvPosition = modelViewMatrix * mvPosition;\r\n gl_Position = projectionMatrix * mvPosition;\r\n `);\r\n },\r\n });\r\n }\r\n\r\n initPlane() {\r\n const { width, wWidth, wHeight } = this.screen;\r\n this.wSize = this.size * wWidth / width;\r\n this.nx = Math.ceil(wWidth / this.wSize) + 1;\r\n this.ny = Math.ceil(wHeight / this.wSize) + 1;\r\n this.icount = this.nx * this.ny;\r\n\r\n this.initGeometry();\r\n this.initUV();\r\n this.initAnimAttributes();\r\n\r\n if (this.imesh) {\r\n this.o3d.remove(this.imesh);\r\n }\r\n this.imesh = new InstancedMesh(this.bGeometry, this.material, this.icount);\r\n this.o3d.add(this.imesh);\r\n\r\n const dummy = new Object3D();\r\n let index = 0;\r\n let x = -(wWidth - (wWidth - this.nx * this.wSize)) / 2 + this.dx;\r\n for (let i = 0; i < this.nx; i++) {\r\n let y = -(wHeight - (wHeight - this.ny * this.wSize)) / 2 + this.dy;\r\n for (let j = 0; j < this.ny; j++) {\r\n dummy.position.set(x, y, 0);\r\n dummy.updateMatrix();\r\n this.imesh.setMatrixAt(index++, dummy.matrix);\r\n y += this.wSize;\r\n }\r\n x += this.wSize;\r\n }\r\n }\r\n\r\n initGeometry() {\r\n // square\r\n const geometry = new Geometry();\r\n geometry.vertices.push(new Vector3(0, 0, 0));\r\n geometry.vertices.push(new Vector3(this.wSize, 0, 0));\r\n geometry.vertices.push(new Vector3(0, this.wSize, 0));\r\n geometry.vertices.push(new Vector3(this.wSize, this.wSize, 0));\r\n geometry.faces.push(new Face3(0, 2, 1));\r\n geometry.faces.push(new Face3(2, 3, 1));\r\n\r\n geometry.faceVertexUvs[0].push([\r\n new Vector2(0, 0),\r\n new Vector2(0, 1),\r\n new Vector2(1, 0),\r\n ]);\r\n geometry.faceVertexUvs[0].push([\r\n new Vector2(0, 1),\r\n new Vector2(1, 1),\r\n new Vector2(1, 0),\r\n ]);\r\n\r\n // geometry.computeFaceNormals();\r\n // geometry.computeVertexNormals();\r\n\r\n // center\r\n this.dx = this.wSize / 2;\r\n this.dy = this.wSize / 2;\r\n geometry.translate(-this.dx, -this.dy, 0);\r\n\r\n this.bGeometry = new BufferGeometry().fromGeometry(geometry);\r\n }\r\n\r\n initAnimAttributes() {\r\n const { randFloat: rnd, randFloatSpread: rndFS } = MathUtils;\r\n const v3 = new Vector3();\r\n\r\n const offsets = new Float32Array(this.icount * 3);\r\n for (let i = 0; i < offsets.length; i += 3) {\r\n if (this.anim === 1) v3.set(rndFS(10), rnd(50, 100), rnd(20, 50)).toArray(offsets, i);\r\n else v3.set(rndFS(20), rndFS(20), rnd(20, 200)).toArray(offsets, i);\r\n }\r\n this.bGeometry.setAttribute('offset', new InstancedBufferAttribute(offsets, 3));\r\n\r\n const rotations = new Float32Array(this.icount * 3);\r\n const angle = Math.PI * 4;\r\n for (let i = 0; i < rotations.length; i += 3) {\r\n rotations[i] = rndFS(angle);\r\n rotations[i + 1] = rndFS(angle);\r\n rotations[i + 2] = rndFS(angle);\r\n }\r\n this.bGeometry.setAttribute('rotation', new InstancedBufferAttribute(rotations, 3));\r\n }\r\n\r\n initUV() {\r\n const ratio = this.nx / this.ny;\r\n const tRatio = this.texture.image.width / this.texture.image.height;\r\n if (ratio > tRatio) this.uvScale.set(1 / this.nx, (tRatio / ratio) / this.ny);\r\n else this.uvScale.set((ratio / tRatio) / this.nx, 1 / this.ny);\r\n const nW = this.uvScale.x * this.nx;\r\n const nH = this.uvScale.y * this.ny;\r\n\r\n const v2 = new Vector2();\r\n const uvOffsets = new Float32Array(this.icount * 2);\r\n for (let i = 0; i < this.nx; i++) {\r\n for (let j = 0; j < this.ny; j++) {\r\n v2.set(\r\n this.uvScale.x * i + (1 - nW) / 2,\r\n this.uvScale.y * j + (1 - nH) / 2\r\n ).toArray(uvOffsets, (i * this.ny + j) * 2);\r\n }\r\n }\r\n this.bGeometry.setAttribute('uvOffset', new InstancedBufferAttribute(uvOffsets, 2));\r\n }\r\n\r\n setTexture(texture) {\r\n this.texture = texture;\r\n this.material.map = texture;\r\n this.initUV();\r\n }\r\n\r\n resize() {\r\n this.initPlane();\r\n }\r\n}\r\n","import { TextureLoader } from 'three';\r\n\r\nexport default function useTextures() {\r\n const loader = new TextureLoader();\r\n const textures = [];\r\n\r\n const loadTexture = (img, index) => {\r\n return new Promise(resolve => {\r\n loader.load(\r\n img.src,\r\n texture => {\r\n textures[index] = texture;\r\n resolve(texture);\r\n }\r\n );\r\n });\r\n };\r\n\r\n const loadTextures = (images, cb) => {\r\n textures.splice(0);\r\n Promise.all(images.map(loadTexture)).then(cb);\r\n };\r\n\r\n return {\r\n textures,\r\n loadTextures,\r\n };\r\n};\r\n","<template>\r\n <Renderer ref=\"renderer\">\r\n <Camera ref=\"camera\" :position=\"{ z: 150 }\"></Camera>\r\n <Scene ref=\"scene\">\r\n </Scene>\r\n </Renderer>\r\n</template>\r\n\r\n<script>\r\nimport { Object3D } from 'three';\r\nimport { gsap, Power4 } from 'gsap';\r\nimport { lerp, limit } from '../../tools.js';\r\nimport AnimatedPlane from './AnimatedPlane.js';\r\nimport useTextures from '../../use/useTextures';\r\n\r\nexport default {\r\n props: {\r\n images: Array,\r\n events: { type: Object, default: () => { return { wheel: true, click: true, keyup: true }; } },\r\n },\r\n setup() {\r\n const { textures, loadTextures } = useTextures();\r\n return {\r\n textures,\r\n loadTextures,\r\n progress: 0,\r\n targetProgress: 0,\r\n };\r\n },\r\n mounted() {\r\n this.three = this.$refs.renderer.three;\r\n\r\n if (this.images.length < 2) {\r\n console.error('This slider needs at least 2 images.');\r\n } else {\r\n this.loadTextures(this.images, this.init);\r\n }\r\n },\r\n unmounted() {\r\n document.removeEventListener('click', this.onClick);\r\n document.removeEventListener('keyup', this.onKeyup);\r\n window.removeEventListener('wheel', this.onWheel);\r\n },\r\n methods: {\r\n init() {\r\n this.initScene();\r\n\r\n gsap.fromTo(this.plane1.uProgress,\r\n {\r\n value: -2,\r\n },\r\n {\r\n value: 0,\r\n duration: 2.5,\r\n ease: Power4.easeOut,\r\n }\r\n );\r\n\r\n if (this.events.click) document.addEventListener('click', this.onClick);\r\n if (this.events.keyup) document.addEventListener('keyup', this.onKeyup);\r\n if (this.events.wheel) window.addEventListener('wheel', this.onWheel);\r\n this.three.onBeforeRender(this.updateProgress);\r\n this.three.onAfterResize(this.onResize);\r\n },\r\n initScene() {\r\n const renderer = this.three.renderer;\r\n const scene = this.$refs.scene.scene;\r\n\r\n this.plane1 = new AnimatedPlane({\r\n renderer, screen: this.three.size,\r\n size: 10,\r\n anim: 1,\r\n texture: this.textures[0],\r\n });\r\n\r\n this.plane2 = new AnimatedPlane({\r\n renderer, screen: this.three.size,\r\n size: 10,\r\n anim: 2,\r\n texture: this.textures[1],\r\n });\r\n\r\n this.setPlanesProgress(0);\r\n this.planes = new Object3D();\r\n this.planes.add(this.plane1.o3d);\r\n this.planes.add(this.plane2.o3d);\r\n scene.add(this.planes);\r\n },\r\n onResize() {\r\n this.plane1.resize();\r\n this.plane2.resize();\r\n },\r\n onWheel(e) {\r\n // e.preventDefault();\r\n if (e.deltaY > 0) {\r\n this.targetProgress = limit(this.targetProgress + 1 / 20, 0, this.images.length - 1);\r\n } else {\r\n this.targetProgress = limit(this.targetProgress - 1 / 20, 0, this.images.length - 1);\r\n }\r\n },\r\n onClick(e) {\r\n if (e.clientY < this.three.size.height / 2) {\r\n this.navPrevious();\r\n } else {\r\n this.navNext();\r\n }\r\n },\r\n onKeyup(e) {\r\n if (e.keyCode === 37 || e.keyCode === 38) {\r\n this.navPrevious();\r\n } else if (e.keyCode === 39 || e.keyCode === 40) {\r\n this.navNext();\r\n }\r\n },\r\n navNext() {\r\n if (Number.isInteger(this.targetProgress)) this.targetProgress += 1;\r\n else this.targetProgress = Math.ceil(this.targetProgress);\r\n this.targetProgress = limit(this.targetProgress, 0, this.images.length - 1);\r\n },\r\n navPrevious() {\r\n if (Number.isInteger(this.targetProgress)) this.targetProgress -= 1;\r\n else this.targetProgress = Math.floor(this.targetProgress);\r\n this.targetProgress = limit(this.targetProgress, 0, this.images.length - 1);\r\n },\r\n updateProgress() {\r\n const progress1 = lerp(this.progress, this.targetProgress, 0.1);\r\n const pdiff = progress1 - this.progress;\r\n if (pdiff === 0) return;\r\n\r\n const p0 = this.progress % 1;\r\n const p1 = progress1 % 1;\r\n if ((pdiff > 0 && p1 < p0) || (pdiff < 0 && p0 < p1)) {\r\n const i = Math.floor(progress1);\r\n this.plane1.setTexture(this.textures[i]);\r\n this.plane2.setTexture(this.textures[i + 1]);\r\n }\r\n\r\n this.progress = progress1;\r\n this.setPlanesProgress(this.progress % 1);\r\n },\r\n setPlanesProgress(progress) {\r\n this.plane1.uProgress.value = progress;\r\n this.plane2.uProgress.value = -1 + progress;\r\n this.plane1.material.opacity = 1 - progress;\r\n this.plane2.material.opacity = progress;\r\n this.plane1.o3d.position.z = progress;\r\n this.plane2.o3d.position.z = progress - 1;\r\n },\r\n },\r\n};\r\n</script>\r\n","<template>\r\n <Renderer ref=\"renderer\" :orbit-ctrl=\"{ enableDamping: true, dampingFactor: 0.05 }\">\r\n <Camera ref=\"camera\" :position=\"cameraPosition\"></Camera>\r\n <Scene>\r\n <slot></slot>\r\n </Scene>\r\n </Renderer>\r\n</template>\r\n\r\n<script>\r\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\r\n\r\nexport default {\r\n props: {\r\n src: String,\r\n cameraPosition: Object,\r\n },\r\n mounted() {\r\n this.renderer = this.$refs.renderer;\r\n\r\n const loader = new GLTFLoader();\r\n loader.load(this.src, (gltf) => {\r\n this.renderer.three.scene.add(gltf.scene);\r\n });\r\n },\r\n};\r\n</script>\r\n","import * as TROIS from './index.js';\r\n\r\nexport const TroisJSVuePlugin = {\r\n install: (app) => {\r\n const comps = [\r\n 'Camera',\r\n 'PerspectiveCamera',\r\n 'Renderer',\r\n 'Scene',\r\n // 'Texture',\r\n // 'CubeTexture',\r\n\r\n 'BoxGeometry',\r\n 'CircleGeometry',\r\n 'ConeGeometry',\r\n 'CylinderGeometry',\r\n 'DodecahedronGeometry',\r\n 'IcosahedronGeometry',\r\n 'LatheGeometry',\r\n 'OctahedronGeometry',\r\n 'PolyhedronGeometry',\r\n 'RingGeometry',\r\n 'SphereGeometry',\r\n 'TetrahedronGeometry',\r\n 'TorusGeometry',\r\n 'TorusKnotGeometry',\r\n 'TubeGeometry',\r\n\r\n 'AmbientLight',\r\n 'DirectionalLight',\r\n 'PointLight',\r\n 'SpotLight',\r\n\r\n 'BasicMaterial',\r\n 'LambertMaterial',\r\n 'PhongMaterial',\r\n 'PhysicalMaterial',\r\n 'ShaderMaterial',\r\n 'StandardMaterial',\r\n 'SubSurfaceMaterial',\r\n 'ToonMaterial',\r\n\r\n 'Map',\r\n 'EnvMap',\r\n\r\n 'Box',\r\n 'Circle',\r\n 'Cone',\r\n 'Cylinder',\r\n 'Dodecahedron',\r\n 'Icosahedron',\r\n 'Mesh',\r\n 'Lathe',\r\n 'Octahedron',\r\n 'Plane',\r\n 'Polyhedron',\r\n 'Ring',\r\n 'Sphere',\r\n 'Tetrahedron',\r\n 'Text',\r\n 'Torus',\r\n 'TorusKnot',\r\n 'Tube',\r\n\r\n 'Gem',\r\n 'Image',\r\n 'InstancedMesh',\r\n 'MirrorMesh',\r\n 'RefractionMesh',\r\n 'Sprite',\r\n\r\n 'BokehPass',\r\n 'EffectComposer',\r\n 'FilmPass',\r\n 'HalftonePass',\r\n 'RenderPass',\r\n 'SAOPass',\r\n 'UnrealBloomPass',\r\n\r\n 'GLTFViewer',\r\n ];\r\n\r\n comps.forEach(comp => {\r\n app.component(comp, TROIS[comp]);\r\n });\r\n },\r\n};\r\n"],"names":["const","let","Plane","PerspectiveCamera","this","Scene","AmbientLight","DirectionalLight","PointLight","SpotLight","TShaderMaterial","Mesh","TMesh","InstancedMesh","Sprite","EffectComposer","RenderPass","BokehPass","FilmPass","HalftonePass","SAOPass","UnrealBloomPass","Geometry","i","_createBlock","_createVNode","_renderSlot"],"mappings":"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"}