{"version":3,"file":"js/app.fc13c662.js","mappings":"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","sources":["webpack://ugly-face/./src/App.vue","webpack://ugly-face/./src/views/FaceGenerator.vue","webpack://ugly-face/./src/utils/face_shape.js","webpack://ugly-face/./src/utils/eye_shape.js","webpack://ugly-face/./src/utils/hair_lines.js","webpack://ugly-face/./src/utils/mouth_shape.js","webpack://ugly-face/./src/views/FaceGenerator.vue?1e98","webpack://ugly-face/./src/App.vue?7ccd","webpack://ugly-face/./src/main.js","webpack://ugly-face/webpack/bootstrap","webpack://ugly-face/webpack/runtime/chunk loaded","webpack://ugly-face/webpack/runtime/define property getters","webpack://ugly-face/webpack/runtime/global","webpack://ugly-face/webpack/runtime/hasOwnProperty shorthand","webpack://ugly-face/webpack/runtime/jsonp chunk loading","webpack://ugly-face/webpack/startup"],"sourcesContent":["\n \n\n\n\n\n\n","\n \n
\n
\n
\n
\n\n\n\n\n\n","function randomFromInterval(min, max) {\n // min and max included\n return Math.random() * (max - min) + min;\n}\nexport function getEggShapePoints(a, b, k, segment_points) {\n // the function is x^2/a^2 * (1 + ky) + y^2/b^2 = 1\n var result = [];\n // var pointString = \"\";\n for (var i = 0; i < segment_points; i++) {\n // x positive, y positive\n // first compute the degree\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = Math.sin(degree) * b;\n var x =\n Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = segment_points; i > 0; i--) {\n // x is negative, y is positive\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = Math.sin(degree) * b;\n var x =\n -Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = 0; i < segment_points; i++) {\n // x is negative, y is negative\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = -Math.sin(degree) * b;\n var x =\n -Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = segment_points; i > 0; i--) {\n // x is positive, y is negative\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = -Math.sin(degree) * b;\n var x =\n Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n return result;\n}\n\nexport function generateFaceCountourPoints(numPoints = 100) {\n var faceSizeX0 = randomFromInterval(50, 100);\n var faceSizeY0 = randomFromInterval(70, 100);\n\n\n var faceSizeY1 = randomFromInterval(50, 80);\n var faceSizeX1 = randomFromInterval(70, 100);\n var faceK0 = randomFromInterval(0.001, 0.005) * (Math.random() > 0.5 ? 1 : -1);\n var faceK1 = randomFromInterval(0.001, 0.005) * (Math.random() > 0.5 ? 1 : -1);\n var face0TranslateX = randomFromInterval(-5, 5);\n var face0TranslateY = randomFromInterval(-15, 15);\n\n var face1TranslateY = randomFromInterval(-5, 5);\n var face1TranslateX = randomFromInterval(-5, 25);\n var results0 = getEggShapePoints(faceSizeX0, faceSizeY0, faceK0, numPoints);\n var results1 = getEggShapePoints(faceSizeX1, faceSizeY1, faceK1, numPoints);\n for (var i = 0; i < results0.length; i++) {\n results0[i][0] += face0TranslateX;\n results0[i][1] += face0TranslateY;\n results1[i][0] += face1TranslateX;\n results1[i][1] += face1TranslateY;\n }\n var results = [];\n let center = [0, 0]\n for (var i = 0; i < results0.length; i++) {\n results.push([(results0[i][0]) * 0.5 + (results1[(i + results0.length / 4) % results0.length][1]) * 0.5, (results0[i][1]) * 0.5 - (results1[(i + results0.length / 4) % results0.length][0]) * 0.5]);\n center[0] += results[i][0];\n center[1] += results[i][1];\n }\n center[0] /= results.length;\n center[1] /= results.length;\n // center the face\n for (var i = 0; i < results.length; i++) {\n results[i][0] -= center[0];\n results[i][1] -= center[1];\n }\n\n let width = results[0][0] - results[results.length / 2][0];\n let height = results[results.length / 4][1] - results[results.length * 3 / 4][1];\n // add the first point to the end to close the shape\n results.push(results[0]);\n results.push(results[1]);\n return {face: results, width: width, height: height, center: [0, 0]};\n}","function randomFromInterval(min, max) {\n // min and max included\n return Math.random() * (max - min) + min;\n}\n\nfunction cubicBezier(P0, P1, P2, P3, t) {\n var x = (1 - t) ** 3 * P0[0] + 3 * (1 - t) ** 2 * t * P1[0] + 3 * (1 - t) * t ** 2 * P2[0] + t ** 3 * P3[0];\n var y = (1 - t) ** 3 * P0[1] + 3 * (1 - t) ** 2 * t * P1[1] + 3 * (1 - t) * t ** 2 * P2[1] + t ** 3 * P3[1];\n return [x, y];\n}\n\nfunction generateEyeParameters(width) {\n let height_upper = Math.random() * width / 1.2;// Less height for the upper eyelid to make it sharper\n let height_lower = Math.random() * width / 1.2;// More height for the lower eyelid to make it rounder and droopier\n let P0_upper_randX = Math.random() * 0.4 - 0.2;\n let P3_upper_randX = Math.random() * 0.4 - 0.2;\n let P0_upper_randY = Math.random() * 0.4 - 0.2;\n let P3_upper_randY = Math.random() * 0.4 - 0.2;\n let offset_upper_left_randY = Math.random();\n let offset_upper_right_randY = Math.random();\n let P0_upper = [-width / 2 + P0_upper_randX * width / 16, P0_upper_randY * height_upper / 16];\n let P3_upper = [width / 2 + P3_upper_randX * width / 16, P3_upper_randY * height_upper / 16];\n let P0_lower = P0_upper;// Starting at the same point as the upper eyelid\n let P3_lower = P3_upper;// Ending at the same point as the upper eyelid\n let eye_true_width = P3_upper[0] - P0_upper[0];\n\n let offset_upper_left_x = randomFromInterval(-eye_true_width / 10.0, eye_true_width / 2.3);// Upper eyelid control point offset to create asymmetry\n let offset_upper_right_x = randomFromInterval(-eye_true_width / 10.0, eye_true_width / 2.3);// Upper eyelid control point offset to create asymmetry\n let offset_upper_left_y = offset_upper_left_randY * height_upper;// Upper eyelid control point offset to create asymmetry\n let offset_upper_right_y = offset_upper_right_randY * height_upper;// Upper eyelid control point offset to create asymmetry\n let offset_lower_left_x = randomFromInterval(offset_upper_left_x, eye_true_width / 2.1);// Lower eyelid control point offset\n let offset_lower_right_x = randomFromInterval(offset_upper_right_x, eye_true_width / 2.1);// Upper eyelid control point offset to create asymmetry\n let offset_lower_left_y = randomFromInterval(-offset_upper_left_y + 5, height_lower);// Upper eyelid control point offset to create asymmetry\n let offset_lower_right_y = randomFromInterval(-offset_upper_right_y + 5, height_lower);// Upper eyelid control point offset to create asymmetry\n // Generate points for the Bezier curves\n let left_converge0 = Math.random();\n let right_converge0 = Math.random();\n // Generate points for the Bezier curves\n let left_converge1 = Math.random();\n let right_converge1 = Math.random();\n return {\n height_upper: height_upper,\n height_lower: height_lower,\n P0_upper_randX: P0_upper_randX,\n P3_upper_randX: P3_upper_randX,\n P0_upper_randY: P0_upper_randY,\n P3_upper_randY: P3_upper_randY,\n offset_upper_left_randY: offset_upper_left_randY,\n offset_upper_right_randY: offset_upper_right_randY,\n eye_true_width: eye_true_width,\n offset_upper_left_x: offset_upper_left_x,\n offset_upper_right_x: offset_upper_right_x,\n offset_upper_left_y: offset_upper_left_y,\n offset_upper_right_y: offset_upper_right_y,\n offset_lower_left_x: offset_lower_left_x,\n offset_lower_right_x: offset_lower_right_x,\n offset_lower_left_y: offset_lower_left_y,\n offset_lower_right_y: offset_lower_right_y,\n left_converge0: left_converge0,\n right_converge0: right_converge0,\n left_converge1: left_converge1,\n right_converge1: right_converge1\n }\n}\n\nexport function generateEyePoints(rands, width = 50) {\n\n let P0_upper = [-width / 2 + rands.P0_upper_randX * width / 16, rands.P0_upper_randY * rands.height_upper / 16];\n let P3_upper = [width / 2 + rands.P3_upper_randX * width / 16, rands.P3_upper_randY * rands.height_upper / 16];\n let P0_lower = P0_upper;// Starting at the same point as the upper eyelid\n let P3_lower = P3_upper;// Ending at the same point as the upper eyelid\n let eye_true_width = P3_upper[0] - P0_upper[0];\n\n // Upper eyelid control points\n let P1_upper = [P0_upper[0] + rands.offset_upper_left_x, P0_upper[1] + rands.offset_upper_left_y]; // First control point\n let P2_upper = [P3_upper[0] - rands.offset_upper_right_x, P3_upper[1] + rands.offset_upper_right_y]; // Second control point\n\n\n // Lower eyelid control points\n let P1_lower = [P0_lower[0] + rands.offset_lower_left_x, P0_lower[1] - rands.offset_lower_left_y]; // First control point\n let P2_lower = [P3_lower[0] - rands.offset_lower_right_x, P3_lower[1] - rands.offset_lower_right_y]; // Second control point\n\n // now we generate the points for the upper eyelid\n let upper_eyelid_points = [];\n let upper_eyelid_points_left_control = [];\n let upper_eyelid_points_right_control = [];\n let upper_eyelid_left_control_point = [P0_upper[0] * (1 - rands.left_converge0) + P1_lower[0] * rands.left_converge0, P0_upper[1] * (1 - rands.left_converge0) + P1_lower[1] * rands.left_converge0];\n let upper_eyelid_right_control_point = [P3_upper[0] * (1 - rands.right_converge0) + P2_lower[0] * rands.right_converge0, P3_upper[1] * (1 - rands.right_converge0) + P2_lower[1] * rands.right_converge0];\n for (let t = 0; t < 100; t++) {\n upper_eyelid_points.push(cubicBezier(P0_upper, P1_upper, P2_upper, P3_upper, t / 100));\n upper_eyelid_points_left_control.push(cubicBezier(upper_eyelid_left_control_point, P0_upper, P1_upper, P2_upper, t / 100));\n upper_eyelid_points_right_control.push(cubicBezier(P1_upper, P2_upper, P3_upper, upper_eyelid_right_control_point, t / 100));\n }\n\n for (let i = 0; i < 75; i++) {\n let weight = ((75.0 - i) / 75.0) ** 2\n upper_eyelid_points[i] = [upper_eyelid_points[i][0] * (1 - weight) + upper_eyelid_points_left_control[i + 25][0] * weight, upper_eyelid_points[i][1] * (1 - weight) + upper_eyelid_points_left_control[i + 25][1] * weight]\n upper_eyelid_points[i + 25] = [upper_eyelid_points[i + 25][0] * weight + upper_eyelid_points_right_control[i][0] * (1 - weight), upper_eyelid_points[i + 25][1] * weight + upper_eyelid_points_right_control[i][1] * (1 - weight)]\n }\n\n\n // now we generate the points for the upper eyelid\n let lower_eyelid_points = [];\n let lower_eyelid_points_left_control = [];\n let lower_eyelid_points_right_control = [];\n let lower_eyelid_left_control_point = [P0_lower[0] * (1 - rands.left_converge0) + P1_upper[0] * rands.left_converge0, P0_lower[1] * (1 - rands.left_converge0) + P1_upper[1] * rands.left_converge0];\n let lower_eyelid_right_control_point = [P3_lower[0] * (1 - rands.right_converge1) + P2_upper[0] * rands.right_converge1, P3_lower[1] * (1 - rands.right_converge1) + P2_upper[1] * rands.right_converge1];\n for (let t = 0; t < 100; t++) {\n lower_eyelid_points.push(cubicBezier(P0_lower, P1_lower, P2_lower, P3_lower, t / 100));\n lower_eyelid_points_left_control.push(cubicBezier(lower_eyelid_left_control_point, P0_lower, P1_lower, P2_lower, t / 100));\n lower_eyelid_points_right_control.push(cubicBezier(P1_lower, P2_lower, P3_lower, lower_eyelid_right_control_point, t / 100));\n }\n\n for (let i = 0; i < 75; i++) {\n let weight = ((75.0 - i) / 75.0) ** 2\n lower_eyelid_points[i] = [lower_eyelid_points[i][0] * (1 - weight) + lower_eyelid_points_left_control[i + 25][0] * weight, lower_eyelid_points[i][1] * (1 - weight) + lower_eyelid_points_left_control[i + 25][1] * weight]\n lower_eyelid_points[i + 25] = [lower_eyelid_points[i + 25][0] * weight + lower_eyelid_points_right_control[i][0] * (1 - weight), lower_eyelid_points[i + 25][1] * weight + lower_eyelid_points_right_control[i][1] * (1 - weight)]\n }\n for (let i = 0; i < 100; i++) {\n lower_eyelid_points[i][1] = -lower_eyelid_points[i][1]\n upper_eyelid_points[i][1] = -upper_eyelid_points[i][1]\n }\n\n let eyeCenter = [upper_eyelid_points[50][0] / 2.0 + lower_eyelid_points[50][0] / 2.0, upper_eyelid_points[50][1] / 2.0 + lower_eyelid_points[50][1] / 2.0];\n\n for (let i = 0; i < 100; i++) {\n // translate to center\n lower_eyelid_points[i][0] -= eyeCenter[0]\n lower_eyelid_points[i][1] -= eyeCenter[1]\n upper_eyelid_points[i][0] -= eyeCenter[0]\n upper_eyelid_points[i][1] -= eyeCenter[1]\n }\n eyeCenter = [0, 0];\n\n // we switch the upper and lower eyelid points because in svg the bottom is y+ and top is y-\n return { upper: upper_eyelid_points, lower: lower_eyelid_points, center: [eyeCenter]}\n}\n\nexport function generateBothEyes(width = 50) {\n let rands_left = generateEyeParameters(width)\n // Create a shallow copy of the object\n let rands_right = { ...rands_left };\n\n // Iterate over the object's keys\n for (let key in rands_right) {\n // Check if the property value is a number\n if (typeof rands_right[key] === 'number') {\n // Add a random value to the number, for example, between -5 and 5\n rands_right[key] += randomFromInterval(-rands_right[key] / 2.0, rands_right[key] / 2.0);\n }\n }\n let left_eye = generateEyePoints(rands_left, width)\n let right_eye = generateEyePoints(rands_right, width)\n\n for (let key in left_eye) {\n if (typeof left_eye[key] === 'object') {\n for (let i = 0; i < left_eye[key].length; i++) {\n left_eye[key][i][0] = -left_eye[key][i][0]\n }\n }\n }\n return { left: left_eye, right: right_eye }\n}","function randomFromInterval(min, max) {\n // min and max included\n return Math.random() * (max - min) + min;\n}\nfunction factorial(n) {\n if (n <= 1) return 1;\n return n * factorial(n - 1);\n}\n\nfunction binomialCoefficient(n, k) {\n return factorial(n) / (factorial(k) * factorial(n - k));\n}\n\nfunction calculateBezierPoint(t, controlPoints) {\n let x = 0, y = 0;\n const n = controlPoints.length - 1;\n\n for (let i = 0; i <= n; i++) {\n let binCoeff = binomialCoefficient(n, i);\n let a = Math.pow(1 - t, n - i);\n let b = Math.pow(t, i);\n x += binCoeff * a * b * controlPoints[i].x;\n y += binCoeff * a * b * controlPoints[i].y;\n }\n\n return [x, y];\n}\n\nfunction computeBezierCurve(controlPoints, numberOfPoints) {\n let curve = [];\n for (let i = 0; i <= numberOfPoints; i++) {\n let t = i / numberOfPoints;\n let point = calculateBezierPoint(t, controlPoints);\n curve.push(point);\n }\n return curve;\n}\n\nexport function generateHairLines0(faceCountour, numHairLines = 100) {\n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n var results = [];\n for (var i = 0; i < numHairLines; i++){\n var numHairPoints = 20 + Math.floor(randomFromInterval(-5, 5));\n // we generate some hair lines\n var hair_line = [];\n var index_offset = Math.floor(randomFromInterval(30, 140));\n for (var j = 0; j < numHairPoints; j++){\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - (j + index_offset)) % faceCountourCopy.length][0], y:faceCountourCopy[(faceCountourCopy.length - (j + index_offset)) % faceCountourCopy.length][1]});\n }\n var d0 = computeBezierCurve(hair_line, numHairPoints);\n hair_line = []\n index_offset = Math.floor(randomFromInterval(30, 140));\n for (var j = 0; j < numHairPoints; j++){\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - (-j + index_offset)) % faceCountourCopy.length][0], y:faceCountourCopy[(faceCountourCopy.length - (-j + index_offset)) % faceCountourCopy.length][1]});\n }\n var d1 = computeBezierCurve(hair_line, numHairPoints);\n var d = [];\n for (var j = 0; j < numHairPoints; j++){\n d.push([d0[j][0] * (j * (1 / numHairPoints)) ** 2 + d1[j][0] * (1 - (j * (1 / numHairPoints)) ** 2), d0[j][1] * (j * (1 / numHairPoints)) ** 2 + d1[j][1] * (1 - (j * (1 / numHairPoints)) ** 2)]);\n }\n\n results.push(d);\n }\n return results;\n}\nexport function generateHairLines1(faceCountour, numHairLines = 100) {\n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n var results = [];\n for (var i = 0; i < numHairLines; i++){\n var numHairPoints = 20 + Math.floor(randomFromInterval(-5, 5));\n // we generate some hair lines\n var hair_line = [];\n var index_start = Math.floor(randomFromInterval(20, 160));\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - index_start) % faceCountourCopy.length][0], y:faceCountourCopy[(faceCountourCopy.length - index_start) % faceCountourCopy.length][1]});\n\n for (var j = 1; j < numHairPoints + 1; j++){\n index_start = Math.floor(randomFromInterval(20, 160));\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - index_start) % faceCountourCopy.length][0], y:faceCountourCopy[(faceCountourCopy.length - index_start) % faceCountourCopy.length][1]});\n }\n var d = computeBezierCurve(hair_line, numHairPoints);\n \n results.push(d);\n }\n return results;\n}\n\n\nexport function generateHairLines2(faceCountour, numHairLines = 100) {\n \n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n var results = [];\n var pickedIndices = [];\n for (var i = 0; i < numHairLines; i++){\n pickedIndices.push(Math.floor(randomFromInterval(10, 180)));\n }\n pickedIndices.sort();\n for (var i = 0; i < numHairLines; i++){\n var numHairPoints = 20 + Math.floor(randomFromInterval(-5, 5));\n // we generate some hair lines\n var hair_line = [];\n var index_offset = pickedIndices[i];\n var lower = randomFromInterval(0.8 , 1.4);\n var reverse = Math.random() > 0.5 ? 1 : -1;\n for (var j = 0; j < numHairPoints; j++){\n var powerscale = randomFromInterval(0.1, 3);\n var portion = (1 - (j / numHairPoints) ** powerscale) * (1 - lower) + lower;\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - (reverse * j + index_offset)) % faceCountourCopy.length][0] * portion, y:faceCountourCopy[(faceCountourCopy.length - (reverse * j + index_offset)) % faceCountourCopy.length][1] * portion});\n }\n var d = computeBezierCurve(hair_line, numHairPoints);\n if (Math.random() > 0.7) d = d.reverse();\n if (results.length == 0){\n results.push(d);\n continue;\n }\n var lastHairPoint = results[results.length - 1][results[results.length - 1].length - 1];\n var lastPointsDistance = Math.sqrt((d[0][0] - lastHairPoint[0]) ** 2 + (d[0][1] - lastHairPoint[1]) ** 2);\n if (Math.random() > 0.5 && lastPointsDistance < 100){\n results[results.length - 1] = results[results.length - 1].concat(d);\n }else{\n results.push(d);\n }\n }\n return results;\n}\n\nexport function generateHairLines3(faceCountour, numHairLines = 100) {\n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n var results = [];\n var pickedIndices = [];\n for (var i = 0; i < numHairLines; i++){\n pickedIndices.push(Math.floor(randomFromInterval(10, 180)));\n }\n pickedIndices.sort();\n var splitPoint = Math.floor(randomFromInterval(0, 200));\n for (var i = 0; i < numHairLines; i++){\n var numHairPoints = 30 + Math.floor(randomFromInterval(-8, 8));\n // we generate some hair lines\n var hair_line = [];\n var index_offset = pickedIndices[i];\n var lower = randomFromInterval(1 , 2.3);\n if (Math.random() > 0.9) lower = randomFromInterval(0 , 1.);\n var reverse = index_offset > splitPoint ? 1 : -1;\n for (var j = 0; j < numHairPoints; j++){\n var powerscale = randomFromInterval(0.1, 3);\n var portion = (1 - (j / (numHairPoints)) ** powerscale) * (1 - lower) + lower;\n hair_line.push({x: faceCountourCopy[(faceCountourCopy.length - (reverse * j * 2 + index_offset)) % faceCountourCopy.length][0] * portion, y:faceCountourCopy[(faceCountourCopy.length - (reverse * j * 2 + index_offset)) % faceCountourCopy.length][1]});\n }\n var d = computeBezierCurve(hair_line, numHairPoints);\n results.push(d);\n }\n return results;\n}","function randomFromInterval(min, max) {\n // min and max included\n return Math.random() * (max - min) + min;\n}\nfunction cubicBezier(P0, P1, P2, P3, t) {\n var x = (1 - t) ** 3 * P0[0] + 3 * (1 - t) ** 2 * t * P1[0] + 3 * (1 - t) * t ** 2 * P2[0] + t ** 3 * P3[0];\n var y = (1 - t) ** 3 * P0[1] + 3 * (1 - t) ** 2 * t * P1[1] + 3 * (1 - t) * t ** 2 * P2[1] + t ** 3 * P3[1];\n return [x, y];\n}\nfunction getEggShapePoints(a, b, k, segment_points) {\n // the function is x^2/a^2 * (1 + ky) + y^2/b^2 = 1\n var result = [];\n // var pointString = \"\";\n for (var i = 0; i < segment_points; i++) {\n // x positive, y positive\n // first compute the degree\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = Math.sin(degree) * b;\n var x =\n Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = segment_points; i > 0; i--) {\n // x is negative, y is positive\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = Math.sin(degree) * b;\n var x =\n -Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = 0; i < segment_points; i++) {\n // x is negative, y is negative\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = -Math.sin(degree) * b;\n var x =\n -Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n for (var i = segment_points; i > 0; i--) {\n // x is positive, y is negative\n var degree =\n (Math.PI / 2 / segment_points) * i +\n randomFromInterval(\n -Math.PI / 1.1 / segment_points,\n Math.PI / 1.1 / segment_points\n );\n var y = -Math.sin(degree) * b;\n var x =\n Math.sqrt(((1 - (y * y) / (b * b)) / (1 + k * y)) * a * a) +\n randomFromInterval(-a / 200.0, a / 200.0);\n // pointString += x + \",\" + y + \" \";\n result.push([x, y]);\n }\n return result;\n }\n\nexport function generateMouthShape0(faceCountour, faceHeight, faceWidth) {\n // the first one is a a big smile U shape\n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n // choose one point on face at bottom side\n var mouthRightY = randomFromInterval(faceHeight / 7, faceHeight / 3.5)\n var mouthLeftY = randomFromInterval(faceHeight / 7, faceHeight / 3.5)\n var mouthRightX = randomFromInterval(faceWidth / 10, faceWidth / 2)\n var mouthLeftX = -mouthRightX + randomFromInterval(-faceWidth / 20, faceWidth / 20)\n var mouthRight = [mouthRightX, mouthRightY]\n var mouthLeft = [mouthLeftX, mouthLeftY]\n\n var controlPoint0 = [randomFromInterval(0, mouthRightX), randomFromInterval(mouthLeftY + 5, faceHeight / 1.5)]\n var controlPoint1 = [randomFromInterval(mouthLeftX, 0), randomFromInterval(mouthLeftY + 5, faceHeight / 1.5)]\n\n var mouthPoints = []\n for (var i = 0; i < 1; i += 0.01) {\n mouthPoints.push(cubicBezier(mouthLeft, controlPoint1, controlPoint0, mouthRight, i))\n }\n if (Math.random() > 0.5) {\n for (var i = 0; i < 1; i += 0.01) {\n mouthPoints.push(cubicBezier(mouthRight, controlPoint0, controlPoint1, mouthLeft, i))\n }\n }else{\n var y_offset_portion = randomFromInterval(0, 0.8);\n for (var i = 0; i < 100; i += 1) {\n mouthPoints.push([mouthPoints[99][0] * (1 - i / 100.0) + mouthPoints[0][0] * i / 100.0, (mouthPoints[99][1] * (1 - i / 100.0) + mouthPoints[0][1] * i / 100.0) * (1 - y_offset_portion) + mouthPoints[99 - i][1] * y_offset_portion])\n }\n }\n return mouthPoints;\n}\n\nexport function generateMouthShape1(faceCountour, faceHeight, faceWidth) {\n // the first one is a a big smile U shape\n var faceCountourCopy = faceCountour.slice(0, faceCountour.length - 2);\n // choose one point on face at bottom side\n var mouthRightY = randomFromInterval(faceHeight / 7, faceHeight / 4)\n var mouthLeftY = randomFromInterval(faceHeight / 7, faceHeight / 4)\n var mouthRightX = randomFromInterval(faceWidth / 10, faceWidth / 2)\n var mouthLeftX = -mouthRightX + randomFromInterval(-faceWidth / 20, faceWidth / 20)\n var mouthRight = [mouthRightX, mouthRightY]\n var mouthLeft = [mouthLeftX, mouthLeftY]\n\n var controlPoint0 = [randomFromInterval(0, mouthRightX), randomFromInterval(mouthLeftY + 5, faceHeight / 1.5)]\n var controlPoint1 = [randomFromInterval(mouthLeftX, 0), randomFromInterval(mouthLeftY + 5, faceHeight / 1.5)]\n\n var mouthPoints = []\n for (var i = 0; i < 1; i += 0.01) {\n mouthPoints.push(cubicBezier(mouthLeft, controlPoint1, controlPoint0, mouthRight, i))\n }\n\n var center = [(mouthRight[0] + mouthLeft[0]) / 2, mouthPoints[25][1] / 2 + mouthPoints[75][1] / 2];\n if (Math.random() > 0.5) {\n for (var i = 0; i < 1; i += 0.01) {\n mouthPoints.push(cubicBezier(mouthRight, controlPoint0, controlPoint1, mouthLeft, i))\n }\n }else{\n var y_offset_portion = randomFromInterval(0, 0.8);\n for (var i = 0; i < 100; i += 1) {\n mouthPoints.push([mouthPoints[99][0] * (1 - i / 100.0) + mouthPoints[0][0] * i / 100.0, (mouthPoints[99][1] * (1 - i / 100.0) + mouthPoints[0][1] * i / 100.0) * (1 - y_offset_portion) + mouthPoints[99 - i][1] * y_offset_portion])\n }\n }\n // translate to center\n for (var i = 0; i < mouthPoints.length; i++) {\n mouthPoints[i][0] -= center[0]\n mouthPoints[i][1] -= center[1]\n // rotate 180 degree\n mouthPoints[i][1] = -mouthPoints[i][1]\n // scale smaller\n mouthPoints[i][0] = mouthPoints[i][0] * 0.6\n mouthPoints[i][1] = mouthPoints[i][1] * 0.6\n // translate back\n mouthPoints[i][0] += center[0]\n mouthPoints[i][1] += center[1] * 0.8\n }\n return mouthPoints;\n}\n\nexport function generateMouthShape2(faceCountour, faceHeight, faceWidth) {\n // generate a random center\n var center = [randomFromInterval(-faceWidth / 8, faceWidth / 8), randomFromInterval(faceHeight / 4, faceHeight / 2.5)]\n\n var mouthPoints = getEggShapePoints(randomFromInterval(faceWidth / 4, faceWidth / 10), randomFromInterval(faceHeight / 10, faceHeight / 20), 0.001, 50);\n var randomRotationDegree = randomFromInterval(-Math.PI / 9.5, Math.PI / 9.5)\n for (var i = 0; i < mouthPoints.length; i++) {\n // rotate the point\n var x = mouthPoints[i][0]\n var y = mouthPoints[i][1]\n mouthPoints[i][0] = x * Math.cos(randomRotationDegree) - y * Math.sin(randomRotationDegree)\n mouthPoints[i][1] = x * Math.sin(randomRotationDegree) + y * Math.cos(randomRotationDegree)\n mouthPoints[i][0] += center[0]\n mouthPoints[i][1] += center[1]\n }\n return mouthPoints;\n}","import { render } from \"./FaceGenerator.vue?vue&type=template&id=34b6c360&scoped=true\"\nimport script from \"./FaceGenerator.vue?vue&type=script&lang=js\"\nexport * from \"./FaceGenerator.vue?vue&type=script&lang=js\"\n\nimport \"./FaceGenerator.vue?vue&type=style&index=0&id=34b6c360&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34b6c360\"]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=c3e8ebc6\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=c3e8ebc6&lang=css\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\nimport App from './App.vue'\n\ncreateApp(App).mount('#app')\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkugly_face\"] = self[\"webpackChunkugly_face\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(567); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["class","viewBox","xmlns","width","height","id","baseFrequency","numOctaves","type","result","in","in2","scale","x1","y1","x2","y2","points","eyeLeftCountour","eyeRightCountour","offset","style","dyeColorOffset","x","y","fill","computedFacePoints","stroke","faceScale","filter","transform","eyeRightUpper","eyeRightLower","i","key","r","Math","random","cx","rightPupilShiftX","cy","rightPupilShiftY","eyeLeftUpper","eyeLeftLower","leftPupilShiftX","leftPupilShiftY","hairs","hair","index","hairColor","rightNoseCenterX","rightNoseCenterY","leftNoseCenterX","leftNoseCenterY","d","mouthPoints","generateFace","downloadSVGAsPNG","randomFromInterval","min","max","getEggShapePoints","a","b","k","segment_points","degree","PI","sin","sqrt","push","generateFaceCountourPoints","numPoints","faceSizeX0","faceSizeY0","faceSizeY1","faceSizeX1","faceK0","faceK1","face0TranslateX","face0TranslateY","face1TranslateY","face1TranslateX","results0","results1","length","results","center","face","cubicBezier","P0","P1","P2","P3","t","generateEyeParameters","height_upper","height_lower","P0_upper_randX","P3_upper_randX","P0_upper_randY","P3_upper_randY","offset_upper_left_randY","offset_upper_right_randY","P0_upper","P3_upper","eye_true_width","offset_upper_left_x","offset_upper_right_x","offset_upper_left_y","offset_upper_right_y","offset_lower_left_x","offset_lower_right_x","offset_lower_left_y","offset_lower_right_y","left_converge0","right_converge0","left_converge1","right_converge1","generateEyePoints","rands","P0_lower","P3_lower","P1_upper","P2_upper","P1_lower","P2_lower","upper_eyelid_points","upper_eyelid_points_left_control","upper_eyelid_points_right_control","upper_eyelid_left_control_point","upper_eyelid_right_control_point","weight","lower_eyelid_points","lower_eyelid_points_left_control","lower_eyelid_points_right_control","lower_eyelid_left_control_point","lower_eyelid_right_control_point","eyeCenter","upper","lower","generateBothEyes","rands_left","rands_right","left_eye","right_eye","left","right","factorial","n","binomialCoefficient","calculateBezierPoint","controlPoints","binCoeff","pow","computeBezierCurve","numberOfPoints","curve","point","generateHairLines0","faceCountour","numHairLines","faceCountourCopy","slice","numHairPoints","floor","hair_line","index_offset","j","d0","d1","generateHairLines1","index_start","generateHairLines2","pickedIndices","sort","reverse","powerscale","portion","lastHairPoint","lastPointsDistance","concat","generateHairLines3","splitPoint","generateMouthShape0","faceHeight","faceWidth","mouthRightY","mouthLeftY","mouthRightX","mouthLeftX","mouthRight","mouthLeft","controlPoint0","controlPoint1","y_offset_portion","generateMouthShape1","generateMouthShape2","randomRotationDegree","cos","name","data","distanceBetweenEyes","leftEyeOffsetX","leftEyeOffsetY","rightEyeOffsetX","rightEyeOffsetY","eyeHeightOffset","leftEyeCenter","rightEyeCenter","hairColors","backgroundColors","methods","faceResults","this","eyes","leftInd0","rightInd0","leftInd1","rightInd1","leftLerp","rightLerp","numHairMethods","choice","svg","document","getElementById","svgData","XMLSerializer","serializeToString","canvas","createElement","ctx","getContext","img","svgSize","getBoundingClientRect","setAttribute","btoa","onload","drawImage","e","MouseEvent","download","href","toDataURL","dispatchEvent","mounted","window","addEventListener","__exports__","components","FaceGenerator","render","App","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","Object","keys","every","splice","definition","o","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}