UNPKG

@arcgis/core

Version:

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

27 lines (26 loc) 1.27 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ 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};