Skip to content
πŸŽ‰ Angular Three v4 is here! Read the announcement

is

The is utility provides type guards and comparison functions for THREE.js and Angular Three objects.

Checks if obj is a THREE.Material.

is.material(new THREE.MeshBasicMaterial()); // true
is.material({}); // false

Checks if obj is a THREE.BufferGeometry.

is.geometry(new THREE.BoxGeometry()); // true
is.geometry({}); // false

Checks if obj is a THREE.Camera.

is.camera(new THREE.PerspectiveCamera()); // true
is.camera(new THREE.OrthographicCamera()); // true
is.camera({}); // false

Checks if obj is a THREE.OrthographicCamera.

is.orthographicCamera(new THREE.OrthographicCamera()); // true
is.orthographicCamera(new THREE.PerspectiveCamera()); // false

Checks if obj is a THREE.PerspectiveCamera.

is.perspectiveCamera(new THREE.PerspectiveCamera()); // true
is.perspectiveCamera(new THREE.OrthographicCamera()); // false

Checks if obj is a valid renderer with a render() function

is.renderer(new THREE.WebGLRenderer()); // true
is.renderer({}); // false
is.renderer({ render() {} }); // true

Checks is obj is a THREE.Scene.

is.scene(new THREE.Scene()); // true
is.scene({}); // false

Checks if obj is a THREE.Object3D.

is.object3D(new THREE.Mesh()); // true
is.object3D({}); // false

Generic type guard for THREE.js objects using their is* property. This avoids instanceof check

is.three<THREE.Color>(maybeColor, 'isColor');
is.three<THREE.Mesh>(maybeMesh, 'isMesh');

Deep equality comparison with configurable behavior.

  • arrays: how to compare arrays ('shallow' | 'reference', default: 'shallow')
  • objects: how to compare objects ('shallow' | 'reference', default: 'reference')
  • strict: whether to do strict comparison (boolean, default: true)
is.equ([1,2,3], [1,2,3]) // true
is.equ({a:1}, {a:1}) // false
is.equ({a:1}, {a:1}, { objects: 'shallow' }) // true
is.equ([1,2,3], [1,2,3], { arrays: 'reference' }) // false