UNPKG

@arcgis/core

Version:

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

30 lines (29 loc) 1.36 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{glsl as e}from"../../../core/shaderModules/glsl.js";function o(o,l){const r=o.vertex;l.silhouette?(r.code.add(e`bool isSilhouetteEdge(vec3 viewDir, vec3 normalA, vec3 normalB) { float faceAVisible = dot(viewDir, normalA); float faceBVisible = dot(viewDir, normalB); return faceAVisible * faceBVisible < 0.0; }`),l.legacy?r.code.add(e`bool discardNonSilhouetteEdges(vec3 viewPos, vec3 worldPos, ComponentData data) { vec3 viewNormalA = _modelToViewNormal(data.normal); vec3 viewNormalB = _modelToViewNormal(data.normal2); vec3 viewDir = -viewPos; if (isSilhouetteEdge(viewDir, viewNormalA, viewNormalB)) { return false; } gl_Position = vec4(10.0, 10.0, 10.0, 1.0); return true; }`):r.code.add(e`bool discardNonSilhouetteEdges(vec3 viewPos, vec3 worldPos, ComponentData data) { vec3 worldNormalA = _modelToWorldNormal(data.normal); vec3 worldNormalB = _modelToWorldNormal(data.normal2); vec3 viewDir = -worldPos; if (isSilhouetteEdge(viewDir, worldNormalA, worldNormalB)) { return false; } gl_Position = vec4(10.0, 10.0, 10.0, 1.0); return true; }`)):r.code.add(e`bool discardNonSilhouetteEdges(vec3 viewPos, vec3 worldPos, ComponentData data) { return false; }`)}export{o as DiscardNonSilhouetteEdges};