import type { JSONSupport } from "../core/JSONSupport.js"; import type { Symbol3DLayerType } from "./types.js"; export interface Symbol3DLayerProperties {} /** * Symbol layers are used to define the visualization of [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/), [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/), * [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/), and mesh geometries rendered with [3D symbols](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/). * [3D symbols](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) may only be used to render features in a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), * [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/), or standalone [graphics](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) in a 3D * [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). There is no support for 3D symbols in 2D [MapViews](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/). * * All 3D symbols have a [Symbol3D.symbolLayers](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/#symbolLayers) property, which is an array of Symbol3DLayer objects. * All symbols must have at least one symbol layer added to the `symbolLayers` property. Think of the * [symbol object](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) as a container that holds multiple symbol layers which define the appearance * of the symbol. One layer may be an outline, another the fill, etc. The relationship of symbol layers to symbol is * similar to the relationship of [operational layers](https://developers.arcgis.com/javascript/latest/references/core/Map/#layers) to a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/). * * Each symbol layer type may only be applied to certain [Symbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) and [Geometry](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/) types. * See the table below to learn more about when to use each type of symbol layer. * * [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) Type | [Symbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) Type | Flat/Volumetric | Size Units | Example * ------------|-----------|------------|-------------|----------- * [IconSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/IconSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-icon-circle](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-icon-circle.avif) * [ObjectSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ObjectSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-object-sphere.avif) * [LineSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-line-line.avif) * [PathSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/PathSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/) | volumetric | meters | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-path-tube.avif) * [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/) | flat | - | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-fill-solid.avif) * [WaterSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | - | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-water-solid.avif) * [ExtrudeSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-extrude-solid.avif) * [TextSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/) | flat | points | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-label-text.avif) * * The size of flat symbol layers is usually defined in either points or pixels (screen space) whereas the * size of volumetric symbol layers is defined in meters (real-world space). * * @since 4.0 * @see [Symbol Builder](https://developers.arcgis.com/javascript/latest/symbol-builder/) * @see [Symbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) * @see [Renderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/Renderer/) * @see [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) * @see [ArcGIS blog - Working with icons, lines, and fill symbols](https://blogs.esri.com/esri/arcgis/2016/01/19/3d-visualization-working-with-icons-lines-and-fill-symbols/) * @see [ArcGIS blog - Working with objects, paths, and extrusion](https://blogs.esri.com/esri/arcgis/2016/01/25/3d-visualization-working-with-objects-paths-and-extrusion/) * @see [ArcGIS blog - Using attributes to represent real-world sizes of features](https://blogs.esri.com/esri/arcgis/2016/02/01/3d-visualization-using-attributes-to-represent-real-world-sizes-of-features/) */ export default class Symbol3DLayer extends JSONSupport { constructor(properties?: Symbol3DLayerProperties); /** * The 3D symbol layer type. See the table below for a list of possible values. * * Value | Description * ------|------------ * icon | ![s3d-icon](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-icon-circle.avif) * object | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-object-sphere.avif) * line | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-line-line.avif) * path | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-path-tube.avif) * fill | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-fill-solid.avif) * water | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-water-solid.avif) * extrude | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-extrude-solid.avif) * text | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-label-text.avif) */ get type(): Symbol3DLayerType | null | undefined; }