UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.69 kB
import{isSymbol3D as o}from"../../symbols.js";import e from"../../core/Error.js";import r from"../WebStyleSymbol.js";import m from"../PointSymbol3D.js";import i from"../SimpleLineSymbol.js";import l from"../LineSymbol3D.js";import t from"../SimpleMarkerSymbol.js";import s from"../PictureMarkerSymbol.js";import n from"../SimpleFillSymbol.js";import y from"../MeshSymbol3D.js";import f from"../PolygonSymbol3D.js";import b from"../TextSymbol.js";import p from"../LabelSymbol3D.js";const a={retainId:!1,ignoreDrivers:!1,hasLabelingContext:!0};function S(S,c=a){if(!S)return{symbol:null};const{retainId:u=a.retainId,ignoreDrivers:d=a.ignoreDrivers,hasLabelingContext:j=a.hasLabelingContext,retainCIM:g=a.retainCIM}=c;let D=null;if(o(S)||S instanceof r)D=S.clone();else if("cim"===S.type){const o=S.data?.symbol?.type;if("CIMPointSymbol"!==o)return{error:new e("symbol-conversion:unsupported-cim-symbol",`CIM symbol of type '${o||"unknown"}' is unsupported in 3D`,{symbol:S})};D=g?S.clone():m.fromCIMSymbol(S)}else if(S instanceof i)D=l.fromSimpleLineSymbol(S);else if(S instanceof t)D=m.fromSimpleMarkerSymbol(S);else if(S instanceof s)D=m.fromPictureMarkerSymbol(S);else if(S instanceof n)D=c.geometryType&&"mesh"===c.geometryType?y.fromSimpleFillSymbol(S):f.fromSimpleFillSymbol(S);else{if(!(S instanceof b))return{error:new e("symbol-conversion:unsupported-2d-symbol",`2D symbol of type '${S.type||S.declaredClass}' is unsupported in 3D`,{symbol:S})};D=j?p.fromTextSymbol(S):m.fromTextSymbol(S)}if(u&&D&&"cim"!==D.type&&(D.id=S.id),d&&o(D))for(let o=0;o<D.symbolLayers.length;++o)D.symbolLayers.getItemAt(o)._ignoreDrivers=!0;return{symbol:D}}export{a as defaultTo3DOptions,S as to3D};