Skip to content

⬅️ Back to Table of Contents

📄 Scene.js

📊 Analysis Summary

Metric Count
🔧 Functions 2
🧱 Classes 1
📦 Imports 2

📚 Table of Contents

🛠️ File Location:

📂 src/scenes/Scene.js

📦 Imports

Name Source
Object3D ../core/Object3D.js
Euler ../math/Euler.js

Functions

Scene.copy(source: any, recursive: any): this

Parameters:

  • source any
  • recursive any

Returns: this

Calls:

  • super.copy
  • source.background.clone
  • source.environment.clone
  • source.fog.clone
  • this.backgroundRotation.copy
  • this.environmentRotation.copy
  • source.overrideMaterial.clone
Code
copy( source, recursive ) {

        super.copy( source, recursive );

        if ( source.background !== null ) this.background = source.background.clone();
        if ( source.environment !== null ) this.environment = source.environment.clone();
        if ( source.fog !== null ) this.fog = source.fog.clone();

        this.backgroundBlurriness = source.backgroundBlurriness;
        this.backgroundIntensity = source.backgroundIntensity;
        this.backgroundRotation.copy( source.backgroundRotation );

        this.environmentIntensity = source.environmentIntensity;
        this.environmentRotation.copy( source.environmentRotation );

        if ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();

        this.matrixAutoUpdate = source.matrixAutoUpdate;

        return this;

    }

Scene.toJSON(meta: any): any

Parameters:

  • meta any

Returns: any

Calls:

  • super.toJSON
  • this.fog.toJSON
  • this.backgroundRotation.toArray
  • this.environmentRotation.toArray
Code
toJSON( meta ) {

        const data = super.toJSON( meta );

        if ( this.fog !== null ) data.object.fog = this.fog.toJSON();

        if ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;
        if ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;
        data.object.backgroundRotation = this.backgroundRotation.toArray();

        if ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;
        data.object.environmentRotation = this.environmentRotation.toArray();

        return data;

    }

Classes

Scene

Class Code
class Scene extends Object3D {

    /**
     * Constructs a new scene.
     */
    constructor() {

        super();

        /**
         * This flag can be used for type testing.
         *
         * @type {boolean}
         * @readonly
         * @default true
         */
        this.isScene = true;

        this.type = 'Scene';

        /**
         * Defines the background of the scene. Valid inputs are:
         *
         * - A color for defining a uniform colored background.
         * - A texture for defining a (flat) textured background.
         * - Cube textures or equirectangular textures for defining a skybox.
         *
         * @type {?(Color|Texture)}
         * @default null
         */
        this.background = null;

        /**
         * Sets the environment map for all physical materials in the scene. However,
         * it's not possible to overwrite an existing texture assigned to the `envMap`
         * material property.
         *
         * @type {?Texture}
         * @default null
         */
        this.environment = null;

        /**
         * A fog instance defining the type of fog that affects everything
         * rendered in the scene.
         *
         * @type {?(Fog|FogExp2)}
         * @default null
         */
        this.fog = null;

        /**
         * Sets the blurriness of the background. Only influences environment maps
         * assigned to {@link Scene#background}. Valid input is a float between `0`
         * and `1`.
         *
         * @type {number}
         * @default 0
         */
        this.backgroundBlurriness = 0;

        /**
         * Attenuates the color of the background. Only applies to background textures.
         *
         * @type {number}
         * @default 1
         */
        this.backgroundIntensity = 1;

        /**
         * The rotation of the background in radians. Only influences environment maps
         * assigned to {@link Scene#background}.
         *
         * @type {Euler}
         * @default (0,0,0)
         */
        this.backgroundRotation = new Euler();

        /**
         * Attenuates the color of the environment. Only influences environment maps
         * assigned to {@link Scene#environment}.
         *
         * @type {number}
         * @default 1
         */
        this.environmentIntensity = 1;

        /**
         * The rotation of the environment map in radians. Only influences physical materials
         * in the scene when {@link Scene#environment} is used.
         *
         * @type {Euler}
         * @default (0,0,0)
         */
        this.environmentRotation = new Euler();

        /**
         * Forces everything in the scene to be rendered with the defined material. It is possible
         * to exclude materials from override by setting {@link Material#allowOverride} to `false`.
         *
         * @type {?Material}
         * @default null
         */
        this.overrideMaterial = null;

        if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {

            __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );

        }

    }

    copy( source, recursive ) {

        super.copy( source, recursive );

        if ( source.background !== null ) this.background = source.background.clone();
        if ( source.environment !== null ) this.environment = source.environment.clone();
        if ( source.fog !== null ) this.fog = source.fog.clone();

        this.backgroundBlurriness = source.backgroundBlurriness;
        this.backgroundIntensity = source.backgroundIntensity;
        this.backgroundRotation.copy( source.backgroundRotation );

        this.environmentIntensity = source.environmentIntensity;
        this.environmentRotation.copy( source.environmentRotation );

        if ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();

        this.matrixAutoUpdate = source.matrixAutoUpdate;

        return this;

    }

    toJSON( meta ) {

        const data = super.toJSON( meta );

        if ( this.fog !== null ) data.object.fog = this.fog.toJSON();

        if ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;
        if ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;
        data.object.backgroundRotation = this.backgroundRotation.toArray();

        if ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;
        data.object.environmentRotation = this.environmentRotation.toArray();

        return data;

    }

}

Methods

copy(source: any, recursive: any): this
Code
copy( source, recursive ) {

        super.copy( source, recursive );

        if ( source.background !== null ) this.background = source.background.clone();
        if ( source.environment !== null ) this.environment = source.environment.clone();
        if ( source.fog !== null ) this.fog = source.fog.clone();

        this.backgroundBlurriness = source.backgroundBlurriness;
        this.backgroundIntensity = source.backgroundIntensity;
        this.backgroundRotation.copy( source.backgroundRotation );

        this.environmentIntensity = source.environmentIntensity;
        this.environmentRotation.copy( source.environmentRotation );

        if ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();

        this.matrixAutoUpdate = source.matrixAutoUpdate;

        return this;

    }
toJSON(meta: any): any
Code
toJSON( meta ) {

        const data = super.toJSON( meta );

        if ( this.fog !== null ) data.object.fog = this.fog.toJSON();

        if ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;
        if ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;
        data.object.backgroundRotation = this.backgroundRotation.toArray();

        if ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;
        data.object.environmentRotation = this.environmentRotation.toArray();

        return data;

    }