UNPKG

@giro3d/giro3d

Version:

A JS/WebGL framework for 3D geospatial data visualization

43 lines (41 loc) 1.07 kB
/* * Copyright (c) 2015-2018, IGN France. * Copyright (c) 2018-2026, Giro3D team. * SPDX-License-Identifier: MIT */ import { Object3D } from 'three'; import { isLineStringMesh } from './LineStringMesh'; export default class MultiLineStringMesh extends Object3D { isSimpleGeometryMesh = true; isMultiLineStringMesh = true; type = 'MultiLineStringMesh'; userData = {}; set opacity(opacity) { this.traverseLineStrings(ls => ls.opacity = opacity); } constructor(lineStrings) { super(); this.matrixAutoUpdate = false; this.add(...lineStrings); } dispose() { this.traverseLineStrings(ls => ls.dispose()); this.dispatchEvent({ type: 'dispose' }); } /** * Executes the callback on all the {@link LineStringMesh}es of this mesh. * @param callback - The callback to execute. */ traverseLineStrings(callback) { this.traverse(obj => { if (isLineStringMesh(obj)) { callback(obj); } }); } } export function isMultiLineStringMesh(obj) { return obj?.isMultiLineStringMesh ?? false; }