UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

62 lines (56 loc) 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformedTangentWorld = exports.transformedTangentView = exports.tangentWorld = exports.tangentView = exports.tangentLocal = exports.tangentGeometry = void 0; var _AttributeNode = require("../core/AttributeNode.js"); var _Camera = require("./Camera.js"); var _ModelNode = require("./ModelNode.js"); var _TSLBase = require("../tsl/TSLBase.js"); /** * TSL object that represents the tangent attribute of the current rendered object. * * @tsl * @type {Node<vec4>} */ const tangentGeometry = exports.tangentGeometry = /*@__PURE__*/(0, _TSLBase.Fn)(builder => { if (builder.geometry.hasAttribute('tangent') === false) { builder.geometry.computeTangents(); } return (0, _AttributeNode.attribute)('tangent', 'vec4'); })(); /** * TSL object that represents the vertex tangent in local space of the current rendered object. * * @tsl * @type {Node<vec3>} */ const tangentLocal = exports.tangentLocal = /*@__PURE__*/tangentGeometry.xyz.toVar('tangentLocal'); /** * TSL object that represents the vertex tangent in view space of the current rendered object. * * @tsl * @type {Node<vec3>} */ const tangentView = exports.tangentView = /*@__PURE__*/_ModelNode.modelViewMatrix.mul((0, _TSLBase.vec4)(tangentLocal, 0)).xyz.toVarying('v_tangentView').normalize().toVar('tangentView'); /** * TSL object that represents the vertex tangent in world space of the current rendered object. * * @tsl * @type {Node<vec3>} */ const tangentWorld = exports.tangentWorld = /*@__PURE__*/tangentView.transformDirection(_Camera.cameraViewMatrix).toVarying('v_tangentWorld').normalize().toVar('tangentWorld'); /** * TSL object that represents the transformed vertex tangent in view space of the current rendered object. * * @tsl * @type {Node<vec3>} */ const transformedTangentView = exports.transformedTangentView = /*@__PURE__*/tangentView.toVar('transformedTangentView'); /** * TSL object that represents the transformed vertex tangent in world space of the current rendered object. * * @tsl * @type {Node<vec3>} */ const transformedTangentWorld = exports.transformedTangentWorld = /*@__PURE__*/transformedTangentView.transformDirection(_Camera.cameraViewMatrix).normalize().toVar('transformedTangentWorld');