12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import { Mesh } from '../objects/Mesh.js';
- import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js';
- import { SphereGeometry } from '../geometries/SphereGeometry.js';
- class PointLightHelper extends Mesh {
- constructor( light, sphereSize, color ) {
- const geometry = new SphereGeometry( sphereSize, 4, 2 );
- const material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );
- super( geometry, material );
- this.light = light;
- this.light.updateMatrixWorld();
- 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 );
- */
- }
- dispose() {
- this.geometry.dispose();
- this.material.dispose();
- }
- update() {
- 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 };
|