playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 991 B
TypeScript
declare const _default: "\nuniform spawnBounds: mat3x3f;\nuniform spawnPosInnerRatio: vec3f;\n\nfn calcSpawnPosition(inBounds: vec3f, rndFactor: f32) -> vec3f {\n var pos = inBounds - vec3f(0.5);\n\n let posAbs = abs(pos);\n let maxComp = max(posAbs.x, max(posAbs.y, posAbs.z));\n let maxPos = vec3f(maxComp);\n\n let edge = maxPos + (vec3f(0.5) - maxPos) * uniform.spawnPosInnerRatio;\n\n pos.x = edge.x * select(2.0 * pos.x, sign(pos.x), maxPos.x == posAbs.x);\n pos.y = edge.y * select(2.0 * pos.y, sign(pos.y), maxPos.y == posAbs.y);\n pos.z = edge.z * select(2.0 * pos.z, sign(pos.z), maxPos.z == posAbs.z);\n\n #ifndef LOCAL_SPACE\n return uniform.emitterPos + uniform.spawnBounds * pos;\n #else\n return uniform.spawnBounds * pos;\n #endif\n}\n\nfn addInitialVelocity(localVelocity: ptr<function, vec3f>, inBounds: vec3f) {\n *localVelocity = *localVelocity - vec3f(0.0, 0.0, uniform.initialVelocity);\n}\n";
export default _default;