UNPKG

@arcgis/core

Version:

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

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