@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.6 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{FeatureSymbologyDrawOrder as e}from"../../../enums.js";import{FeatureTechnique as t}from"../FeatureTechnique.js";import{isHittest as i,getFeatureUniforms as s,getSelectionDefines as r,resolveDynamicUniforms as a,getFeaturePipelineState as h}from"../featureTechniqueUtils.js";import{TechniqueType as o}from"../TechniqueType.js";import{PieChartShader as u}from"./PieChartShader.js";class n extends t{constructor(){super(...arguments),this.type=o.PieChart,this.shaders={geometry:new u},this.symbologyPlane=e.MARKER}render(e,t){const{painter:o}=e,{instance:u,target:n}=t,l=this.shaders.geometry,m=u.getInput(),f=m.uniforms.numberOfFields,S=i(e),V=s(e,n),d=r(e);l.setNumberOfFields(f),o.setShader({shader:l,uniforms:{...a(e,t.target,m.uniforms.shader),...V.storage,...V.view,...V.highlight,highlightUniforms:V.highlight,hittestUniforms:V.hittestRequest?{hittestDist:V.hittestRequest?.distance,hittestPos:V.hittestRequest?.position}:null},defines:{VV_SIZE_MIN_MAX_VALUE:!!m.uniforms.shader.visualVariableSizeMinMaxValue,VV_SIZE_SCALE_STOPS:!!m.uniforms.shader.visualVariableSizeScaleStops,VV_SIZE_FIELD_STOPS:!!m.uniforms.shader.visualVariableSizeStops,VV_SIZE_UNIT_VALUE:!!m.uniforms.shader.visualVariableSizeUnitValue,VV_OPACITY:!!m.uniforms.shader.visualVariableOpacity,HITTEST:S,highlight:V.highlight?1:0,...d,numberOfFields:f},optionalAttributes:{},useComputeBuffer:S}),o.setPipelineState(h(e)),o.submitDraw(e,t)}}export{n as PieChartTechnique};