declare var _default: "uniform vec4 mapSize;\nuniform vec4 geometryResolution;\nuniform vec4 geometryClip;\nattribute vec4 position4;\n\n// External\nvec3 getPosition(vec4 xyzw, float canonical);\n\nvec4 wrapAround(vec4 xyzw) {\n#ifdef SURFACE_CLOSED_X\n float gx = geometryClip.x;\n if (xyzw.x < 0.0) xyzw.x += gx;\n if (xyzw.x >= gx) xyzw.x -= gx;\n#endif\n#ifdef SURFACE_CLOSED_Y\n float gy = geometryClip.y;\n if (xyzw.y < 0.0) xyzw.y += gy;\n if (xyzw.y >= gy) xyzw.y -= gy;\n#endif\n return xyzw;\n}\n\nvoid getSurfaceGeometry(vec4 xyzw, float edgeX, float edgeY, out vec3 left, out vec3 center, out vec3 right, out vec3 up, out vec3 down) {\n vec4 deltaX = vec4(1.0, 0.0, 0.0, 0.0);\n vec4 deltaY = vec4(0.0, 1.0, 0.0, 0.0);\n\n center = getPosition(xyzw, 1.0);\n left = center;\n down = center;\n right = (edgeX < 0.5) ? getPosition(wrapAround(xyzw + deltaX), 0.0) : (2.0 * center - getPosition(xyzw - deltaX, 0.0));\n up = (edgeY < 0.5) ? getPosition(wrapAround(xyzw + deltaY), 0.0) : (2.0 * center - getPosition(xyzw - deltaY, 0.0));\n}\n\nvec3 getSurfaceNormal(vec3 left, vec3 center, vec3 right, vec3 up, vec3 down) {\n vec3 dx = right - left;\n vec3 dy = up - down;\n vec3 n = cross(dy, dx);\n if (length(n) > 0.0) {\n return normalize(n);\n }\n return vec3(0.0, 1.0, 0.0);\n}\n\nvarying vec3 vNormal;\nvarying vec3 vLight;\nvarying vec3 vPosition;\n\nvec3 getSurfacePositionShaded() {\n vec3 left, center, right, up, down;\n\n vec4 p = min(geometryClip, position4);\n vec2 surface = vec2(0.0);\n#ifdef SURFACE_CLOSED_X\n if (p.x == geometryClip.x) p.x = 0.0;\n#else\n if (p.x == geometryClip.x) surface.x = 1.0;\n //if (p.x == 0.0) surface.x = -1.0;\n#endif\n#ifdef SURFACE_CLOSED_Y\n if (p.y == geometryClip.y) p.y = 0.0;\n#else\n if (p.y == geometryClip.y) surface.y = 1.0;\n //if (p.y == 0.0) surface.y = -1.0;\n#endif\n\n getSurfaceGeometry(p, surface.x, surface.y, left, center, right, up, down);\n vNormal = getSurfaceNormal(left, center, right, up, down);\n vLight = normalize((viewMatrix * vec4(1.0, 2.0, 2.0, 0.0)).xyz); // hardcoded directional light\n vPosition = -center;\n\n#ifdef POSITION_UV\n#ifdef POSITION_UV_INT\n vUV = -.5 + (position4.xy * geometryResolution.xy) * mapSize.xy;\n#else\n vUV = position4.xy * geometryResolution.xy;\n#endif\n#endif\n\n return center;\n}\n"; export default _default;