Skip to content

⬅️ Back to Table of Contents

📄 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
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 );

    }

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
Code
dispose() {

        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();

    }

}

Methods

updateMatrixWorld(force: any): void
Code
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 );

    }
dispose(): void
Code
dispose() {

        this.geometry.dispose();
        this.material.dispose();

    }