Buckets:
| import { Mesh } from '../objects/Mesh.js'; | |
| import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js'; | |
| import { SphereGeometry } from '../geometries/SphereGeometry.js'; | |
| /** | |
| * This displays a helper object consisting of a spherical mesh for | |
| * visualizing an instance of {@link PointLight}. | |
| * | |
| * ```js | |
| * const pointLight = new THREE.PointLight( 0xff0000, 1, 100 ); | |
| * pointLight.position.set( 10, 10, 10 ); | |
| * scene.add( pointLight ); | |
| * | |
| * const sphereSize = 1; | |
| * const pointLightHelper = new THREE.PointLightHelper( pointLight, sphereSize ); | |
| * scene.add( pointLightHelper ); | |
| * ``` | |
| * | |
| * @augments Mesh | |
| */ | |
| class PointLightHelper extends Mesh { | |
| /** | |
| * Constructs a new point light helper. | |
| * | |
| * @param {PointLight} light - The light to be visualized. | |
| * @param {number} [sphereSize=1] - The size of the sphere helper. | |
| * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take | |
| * the color of the light. | |
| */ | |
| constructor( light, sphereSize, color ) { | |
| const geometry = new SphereGeometry( sphereSize, 4, 2 ); | |
| const material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } ); | |
| super( geometry, material ); | |
| /** | |
| * The light being visualized. | |
| * | |
| * @type {HemisphereLight} | |
| */ | |
| this.light = light; | |
| /** | |
| * The color parameter passed in the constructor. | |
| * If not set, the helper will take the color of the light. | |
| * | |
| * @type {number|Color|string} | |
| */ | |
| this.color = color; | |
| this.type = 'PointLightHelper'; | |
| this.matrix = this.light.matrixWorld; | |
| this.matrixAutoUpdate = false; | |
| this.update(); | |
| /* | |
| // TODO: delete this comment? | |
| const distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 ); | |
| const distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } ); | |
| this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial ); | |
| this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial ); | |
| const d = light.distance; | |
| if ( d === 0.0 ) { | |
| this.lightDistance.visible = false; | |
| } else { | |
| this.lightDistance.scale.set( d, d, d ); | |
| } | |
| this.add( this.lightDistance ); | |
| */ | |
| } | |
| /** | |
| * Frees the GPU-related resources allocated by this instance. Call this | |
| * method whenever this instance is no longer used in your app. | |
| */ | |
| dispose() { | |
| this.geometry.dispose(); | |
| this.material.dispose(); | |
| } | |
| /** | |
| * Updates the helper to match the position of the | |
| * light being visualized. | |
| */ | |
| update() { | |
| this.light.updateWorldMatrix( true, false ); | |
| if ( this.color !== undefined ) { | |
| this.material.color.set( this.color ); | |
| } else { | |
| this.material.color.copy( this.light.color ); | |
| } | |
| /* | |
| const d = this.light.distance; | |
| if ( d === 0.0 ) { | |
| this.lightDistance.visible = false; | |
| } else { | |
| this.lightDistance.visible = true; | |
| this.lightDistance.scale.set( d, d, d ); | |
| } | |
| */ | |
| } | |
| } | |
| export { PointLightHelper }; | |
Xet Storage Details
- Size:
- 2.96 kB
- Xet hash:
- 1c2b1913ccd08d1d9d1de243d6b321f63d4c20e566f03eb4dc141ed2e52aba27
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.