@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
TypeScript
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 | - | 
*
* 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/).
*
* 
*
* 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;
}