declare const _default: "\n// Required call order: getCenter() first, then getOpacity() (loads and caches color),\n// then getColor() (returns cached RGB). getRotation(), getScale() can follow in any order.\nvar<private> cachedTransformA: vec4u;\nvar<private> cachedTransformB: vec2u;\nvar<private> cachedColor: vec4f;\n\nfn getCenter() -> vec3f {\n    cachedTransformA = loadDataTransformA();\n    cachedTransformB = loadDataTransformB().xy;\n    return vec3f(bitcast<f32>(cachedTransformA.r), bitcast<f32>(cachedTransformA.g), bitcast<f32>(cachedTransformA.b));\n}\n\nfn getOpacity() -> f32 {\n    #ifdef GSPLAT_COLOR_FLOAT\n        cachedColor = loadDataColor();\n    #else\n        let packedColor = loadDataColor();\n        let packed_rg = packedColor.r | (packedColor.g << 16u);\n        let packed_ba = packedColor.b | (packedColor.a << 16u);\n        cachedColor = vec4f(unpack2x16float(packed_rg), unpack2x16float(packed_ba));\n    #endif\n    return cachedColor.a;\n}\n\nfn getColor() -> vec3f {\n    return cachedColor.rgb;\n}\n\nfn getRotation() -> vec4f {\n    let rotXY = unpack2x16float(cachedTransformA.a);\n    let rotZscaleX = unpack2x16float(cachedTransformB.x);\n    let rotXYZ = vec3f(rotXY, rotZscaleX.x);\n    return vec4f(rotXYZ, sqrt(max(0.0, 1.0 - dot(rotXYZ, rotXYZ)))).wxyz;\n}\n\nfn getScale() -> vec3f {\n    let rotZscaleX = unpack2x16float(cachedTransformB.x);\n    let scaleYZ = unpack2x16float(cachedTransformB.y);\n    return vec3f(rotZscaleX.y, scaleYZ);\n}\n";
export default _default;
