UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

78 lines (76 loc) 4.58 kB
import type Collection from "../core/Collection.js"; import type FillSymbol3DLayer from "./FillSymbol3DLayer.js"; import type Symbol3D from "./Symbol3D.js"; import type { ReadonlyArrayOrCollection } from "../core/Collection.js"; import type { FillSymbol3DLayerProperties } from "./FillSymbol3DLayer.js"; import type { Symbol3DProperties } from "./Symbol3D.js"; export interface MeshSymbol3DProperties extends Symbol3DProperties { /** * A Collection of [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) objects * used to visualize the graphic or feature. Individual symbol layers * may be autocast as objects and specified using the `type` property. */ symbolLayers?: ReadonlyArrayOrCollection<FillSymbol3DLayerProperties & { type: "fill"; }>; } /** * MeshSymbol3D is used to render 3D mesh features in a [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/) * in a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This symbol type is not supported in 2D * [MapViews](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/). * * A MeshSymbol3D must include at least one [symbol layer](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/#symbolLayers) for it to * render in the view. One or more of the following * [symbol layer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) types may be used to define a 3D mesh symbol: * * [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) Type | Flat/Volumetric | Size Units | Example * ------------|-----------|------------|----------- * [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/)| flat | - | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-fill-solid.png) * * The image below depicts a [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/) whose graphics * are styled with a MeshSymbol3D containing a [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/). * * ![3d-mesh](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-3d-mesh.png) * * See [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) and [Symbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) to read * more general information about 3D symbols, symbol layers and how they relate to one another. * * @since 4.0 * @see [Symbol Builder](https://developers.arcgis.com/javascript/latest/symbol-builder/) * @see [Sample - SceneLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer/) * @see [SimpleRenderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/SimpleRenderer/) * @see [UniqueValueRenderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/) * @see [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) * @example * let symbol = { * type: "mesh-3d", // autocasts as new MeshSymbol3D() * symbolLayers: [{ * type: "fill", // autocasts as new FillSymbol3DLayer() * material: { color: "green" } * }] * }; * sceneLayer.renderer = { * type: "simple", // autocasts as new SimpleRenderer() * symbol: symbol * }; */ export default class MeshSymbol3D extends Symbol3D { constructor(properties?: MeshSymbol3DProperties); /** * A Collection of [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) objects * used to visualize the graphic or feature. Individual symbol layers * may be autocast as objects and specified using the `type` property. */ get symbolLayers(): Collection<FillSymbol3DLayer>; set symbolLayers(value: ReadonlyArrayOrCollection<FillSymbol3DLayerProperties & { type: "fill"; }>); /** The symbol type. */ get type(): "mesh-3d"; /** * Creates a deep clone of the symbol. * * @returns A deep clone of the object that * invoked this method. * @example * // Creates a deep clone of the graphic's symbol * let symLyr = graphic.symbol.clone(); */ clone(): MeshSymbol3D; }