@openhps/core
Version:
Open Hybrid Positioning System - Core component
62 lines (56 loc) • 2.31 kB
JavaScript
;
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');