📄 Box3Helper.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 2 |
🧱 Classes | 1 |
📦 Imports | 5 |
📊 Variables & Constants | 4 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/helpers/Box3Helper.js
📦 Imports¶
Name | Source |
---|---|
LineSegments |
../objects/LineSegments.js |
LineBasicMaterial |
../materials/LineBasicMaterial.js |
BufferAttribute |
../core/BufferAttribute.js |
Float32BufferAttribute |
../core/BufferAttribute.js |
BufferGeometry |
../core/BufferGeometry.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
indices |
Uint16Array<ArrayBuffer> |
let/var | new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5... |
✗ |
positions |
number[] |
let/var | [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - ... |
✗ |
geometry |
BufferGeometry |
let/var | new BufferGeometry() |
✗ |
box |
Box3 |
let/var | this.box |
✗ |
Functions¶
Box3Helper.updateMatrixWorld(force: any): void
¶
Parameters:
force
any
Returns: void
Calls:
box.isEmpty
box.getCenter
box.getSize
this.scale.multiplyScalar
super.updateMatrixWorld
Code
Box3Helper.dispose(): void
¶
JSDoc:
/**
* Frees the GPU-related resources allocated by this instance. Call this
* method whenever this instance is no longer used in your app.
*/
Returns: void
Calls:
this.geometry.dispose
this.material.dispose
Classes¶
Box3Helper
¶
Class Code
class Box3Helper extends LineSegments {
/**
* Constructs a new box3 helper.
*
* @param {Box3} box - The box to visualize.
* @param {number|Color|string} [color=0xffff00] - The box's color.
*/
constructor( box, color = 0xffff00 ) {
const indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );
const positions = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 1, - 1, 1, - 1, - 1 ];
const geometry = new BufferGeometry();
geometry.setIndex( new BufferAttribute( indices, 1 ) );
geometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );
super( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );
/**
* The box being visualized.
*
* @type {Box3}
*/
this.box = box;
this.type = 'Box3Helper';
this.geometry.computeBoundingSphere();
}
updateMatrixWorld( force ) {
const box = this.box;
if ( box.isEmpty() ) return;
box.getCenter( this.position );
box.getSize( this.scale );
this.scale.multiplyScalar( 0.5 );
super.updateMatrixWorld( force );
}
/**
* 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();
}
}