export declare const sdefVertex = "\n#ifndef SDEFVERTEX\n#define SDEFVERTEX\n\n#if !defined(BAKED_VERTEX_ANIMATION_TEXTURE) && defined(SDEF)\n\n#if NUM_BONE_INFLUENCERS > 0\n{\n    float weight0 = matricesWeights[0];\n    float weight1 = matricesWeights[1];\n\n    #ifdef BONETEXTURE\n        mat4 transformMatrix0 = readMatrixFromRawSampler(boneSampler, matricesIndices[0]);\n        mat4 transformMatrix1 = readMatrixFromRawSampler(boneSampler, matricesIndices[1]);\n    #else\n        mat4 transformMatrix0 = mBones[int(matricesIndices[0])];\n        mat4 transformMatrix1 = mBones[int(matricesIndices[1])];\n    #endif\n\n    mat3 slerpedRotationMatrix = quaternionToRotationMatrix(slerp(\n        rotationMatrixToQuaternion(mat3(transformMatrix0)), \n        rotationMatrixToQuaternion(mat3(transformMatrix1)),\n        weight1\n    ));\n\n    // -center transform\n    mat4 sdefInflunce = mat4(\n        vec4(1.0, 0.0, 0.0, 0.0),\n        vec4(0.0, 1.0, 0.0, 0.0),\n        vec4(0.0, 0.0, 1.0, 0.0),\n        vec4(-matricesSdefC, 1.0)\n    );\n\n    // rotation\n    mat4 rotationMatrix = mat4(\n        vec4(slerpedRotationMatrix[0], 0.0),\n        vec4(slerpedRotationMatrix[1], 0.0),\n        vec4(slerpedRotationMatrix[2], 0.0),\n        vec4(0.0, 0.0, 0.0, 1.0)\n    );\n    sdefInflunce = rotationMatrix * sdefInflunce;\n\n    // add position offset\n    vec3 positionOffset =\n        vec3(transformMatrix0 * vec4(matricesSdefR0, 1)) * weight0 +\n        vec3(transformMatrix1 * vec4(matricesSdefR1, 1)) * weight1;\n\n    sdefInflunce[3] += vec4(positionOffset, 0.0);\n    \n    float useLinearDeform = step(0.0, -abs(matricesSdefR0.x));\n\n    influence = mat4(\n        mix(sdefInflunce[0], influence[0], useLinearDeform),\n        mix(sdefInflunce[1], influence[1], useLinearDeform),\n        mix(sdefInflunce[2], influence[2], useLinearDeform),\n        mix(sdefInflunce[3], influence[3], useLinearDeform)\n    );\n}\n#endif\n\n#endif\n\n#endif\n";
