UNPKG

@xeokit/xeokit-sdk

Version:

3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision

22 lines (20 loc) 819 B
import {math} from "../../math/math.js"; const tmpVec4 = math.vec4(); export const PickMeshShaderSource = function(meshHash, programVariables) { const pickColor = programVariables.createUniform("vec4", "pickColor", (set, state) => { var pickID = state.meshPickID; // Mesh-indexed color tmpVec4[0] = pickID & 0xFF; tmpVec4[1] = pickID >> 8 & 0xFF; tmpVec4[2] = pickID >> 16 & 0xFF; tmpVec4[3] = pickID >> 24 & 0xFF; math.mulVec4Scalar(tmpVec4, 1 / 255, tmpVec4); set(tmpVec4); }); const outColor = programVariables.createOutput("vec4", "outColor"); return { getHash: () => [ meshHash ], programName: "PickMesh", isPick: true, appendFragmentOutputs: (src) => src.push(`${outColor} = ${pickColor};`) }; };