{"ast":null,"code":"import { __decorate } from \"../tslib.es6.js\";\nimport { Vector3 } from \"./math.vector.js\";\nimport { nativeOverride } from \"../Misc/decorators.js\";\n// This helper class is only here so we can apply the nativeOverride decorator to functions.\nclass MathHelpers {\n static extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, minimum, maximum) {\n for (let index = indexStart; index < indexStart + indexCount; index++) {\n const offset = indices[index] * 3;\n const x = positions[offset];\n const y = positions[offset + 1];\n const z = positions[offset + 2];\n minimum.minimizeInPlaceFromFloats(x, y, z);\n maximum.maximizeInPlaceFromFloats(x, y, z);\n }\n }\n static extractMinAndMax(positions, start, count, stride, minimum, maximum) {\n for (let index = start, offset = start * stride; index < start + count; index++, offset += stride) {\n const x = positions[offset];\n const y = positions[offset + 1];\n const z = positions[offset + 2];\n minimum.minimizeInPlaceFromFloats(x, y, z);\n maximum.maximizeInPlaceFromFloats(x, y, z);\n }\n }\n}\n__decorate([nativeOverride.filter((...[positions, indices]) => !Array.isArray(positions) && !Array.isArray(indices))\n// eslint-disable-next-line @typescript-eslint/naming-convention\n], MathHelpers, \"extractMinAndMaxIndexed\", null);\n__decorate([nativeOverride.filter((...[positions]) => !Array.isArray(positions))\n// eslint-disable-next-line @typescript-eslint/naming-convention\n], MathHelpers, \"extractMinAndMax\", null);\n/**\n * Extracts minimum and maximum values from a list of indexed positions\n * @param positions defines the positions to use\n * @param indices defines the indices to the positions\n * @param indexStart defines the start index\n * @param indexCount defines the end index\n * @param bias defines bias value to add to the result\n * @returns minimum and maximum values\n */\nexport function extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, bias = null) {\n const minimum = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n const maximum = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n MathHelpers.extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, minimum, maximum);\n if (bias) {\n minimum.x -= minimum.x * bias.x + bias.y;\n minimum.y -= minimum.y * bias.x + bias.y;\n minimum.z -= minimum.z * bias.x + bias.y;\n maximum.x += maximum.x * bias.x + bias.y;\n maximum.y += maximum.y * bias.x + bias.y;\n maximum.z += maximum.z * bias.x + bias.y;\n }\n return {\n minimum: minimum,\n maximum: maximum\n };\n}\n/**\n * Extracts minimum and maximum values from a list of positions\n * @param positions defines the positions to use\n * @param start defines the start index in the positions array\n * @param count defines the number of positions to handle\n * @param bias defines bias value to add to the result\n * @param stride defines the stride size to use (distance between two positions in the positions array)\n * @returns minimum and maximum values\n */\nexport function extractMinAndMax(positions, start, count, bias = null, stride) {\n const minimum = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n const maximum = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n if (!stride) {\n stride = 3;\n }\n MathHelpers.extractMinAndMax(positions, start, count, stride, minimum, maximum);\n if (bias) {\n minimum.x -= minimum.x * bias.x + bias.y;\n minimum.y -= minimum.y * bias.x + bias.y;\n minimum.z -= minimum.z * bias.x + bias.y;\n maximum.x += maximum.x * bias.x + bias.y;\n maximum.y += maximum.y * bias.x + bias.y;\n maximum.z += maximum.z * bias.x + bias.y;\n }\n return {\n minimum: minimum,\n maximum: maximum\n };\n}\n/**\n * Flip flipped faces\n * @param positions defines the positions to use\n * @param indices defines the indices to use and update\n */\nexport function FixFlippedFaces(positions, indices) {\n const boundingInfo = extractMinAndMax(positions, 0, positions.length / 3);\n const inside = boundingInfo.maximum.subtract(boundingInfo.minimum).scale(0.5).add(boundingInfo.minimum);\n const tmpVectorA = new Vector3();\n const tmpVectorB = new Vector3();\n const tmpVectorC = new Vector3();\n const tmpVectorAB = new Vector3();\n const tmpVectorAC = new Vector3();\n const tmpVectorNormal = new Vector3();\n const tmpVectorAvgNormal = new Vector3();\n // Clean indices\n for (let index = 0; index < indices.length; index += 3) {\n const a = indices[index];\n const b = indices[index + 1];\n const c = indices[index + 2];\n // Evaluate face normal\n tmpVectorA.fromArray(positions, a * 3);\n tmpVectorB.fromArray(positions, b * 3);\n tmpVectorC.fromArray(positions, c * 3);\n tmpVectorB.subtractToRef(tmpVectorA, tmpVectorAB);\n tmpVectorC.subtractToRef(tmpVectorA, tmpVectorAC);\n Vector3.CrossToRef(tmpVectorAB, tmpVectorAC, tmpVectorNormal);\n tmpVectorNormal.normalize();\n // Calculate normal from face center to the inside of the geometry\n const avgX = tmpVectorA.x + tmpVectorB.x + tmpVectorC.x;\n const avgY = tmpVectorA.y + tmpVectorB.y + tmpVectorC.y;\n const avgZ = tmpVectorA.z + tmpVectorB.z + tmpVectorC.z;\n tmpVectorAvgNormal.set(avgX / 3, avgY / 3, avgZ / 3);\n tmpVectorAvgNormal.subtractInPlace(inside);\n tmpVectorAvgNormal.normalize();\n if (Vector3.Dot(tmpVectorNormal, tmpVectorAvgNormal) >= 0) {\n // Flip!\n indices[index] = c;\n indices[index + 2] = a;\n }\n }\n}","map":{"version":3,"names":["__decorate","Vector3","nativeOverride","MathHelpers","extractMinAndMaxIndexed","positions","indices","indexStart","indexCount","minimum","maximum","index","offset","x","y","z","minimizeInPlaceFromFloats","maximizeInPlaceFromFloats","extractMinAndMax","start","count","stride","filter","Array","isArray","bias","Number","MAX_VALUE","FixFlippedFaces","boundingInfo","length","inside","subtract","scale","add","tmpVectorA","tmpVectorB","tmpVectorC","tmpVectorAB","tmpVectorAC","tmpVectorNormal","tmpVectorAvgNormal","a","b","c","fromArray","subtractToRef","CrossToRef","normalize","avgX","avgY","avgZ","set","subtractInPlace","Dot"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Maths/math.functions.js"],"sourcesContent":["import { __decorate } from \"../tslib.es6.js\";\nimport { Vector3 } from \"./math.vector.js\";\nimport { nativeOverride } from \"../Misc/decorators.js\";\n// This helper class is only here so we can apply the nativeOverride decorator to functions.\nclass MathHelpers {\n static extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, minimum, maximum) {\n for (let index = indexStart; index < indexStart + indexCount; index++) {\n const offset = indices[index] * 3;\n const x = positions[offset];\n const y = positions[offset + 1];\n const z = positions[offset + 2];\n minimum.minimizeInPlaceFromFloats(x, y, z);\n maximum.maximizeInPlaceFromFloats(x, y, z);\n }\n }\n static extractMinAndMax(positions, start, count, stride, minimum, maximum) {\n for (let index = start, offset = start * stride; index < start + count; index++, offset += stride) {\n const x = positions[offset];\n const y = positions[offset + 1];\n const z = positions[offset + 2];\n minimum.minimizeInPlaceFromFloats(x, y, z);\n maximum.maximizeInPlaceFromFloats(x, y, z);\n }\n }\n}\n__decorate([\n nativeOverride.filter((...[positions, indices]) => !Array.isArray(positions) && !Array.isArray(indices))\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], MathHelpers, \"extractMinAndMaxIndexed\", null);\n__decorate([\n nativeOverride.filter((...[positions]) => !Array.isArray(positions))\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], MathHelpers, \"extractMinAndMax\", null);\n/**\n * Extracts minimum and maximum values from a list of indexed positions\n * @param positions defines the positions to use\n * @param indices defines the indices to the positions\n * @param indexStart defines the start index\n * @param indexCount defines the end index\n * @param bias defines bias value to add to the result\n * @returns minimum and maximum values\n */\nexport function extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, bias = null) {\n const minimum = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n const maximum = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n MathHelpers.extractMinAndMaxIndexed(positions, indices, indexStart, indexCount, minimum, maximum);\n if (bias) {\n minimum.x -= minimum.x * bias.x + bias.y;\n minimum.y -= minimum.y * bias.x + bias.y;\n minimum.z -= minimum.z * bias.x + bias.y;\n maximum.x += maximum.x * bias.x + bias.y;\n maximum.y += maximum.y * bias.x + bias.y;\n maximum.z += maximum.z * bias.x + bias.y;\n }\n return {\n minimum: minimum,\n maximum: maximum,\n };\n}\n/**\n * Extracts minimum and maximum values from a list of positions\n * @param positions defines the positions to use\n * @param start defines the start index in the positions array\n * @param count defines the number of positions to handle\n * @param bias defines bias value to add to the result\n * @param stride defines the stride size to use (distance between two positions in the positions array)\n * @returns minimum and maximum values\n */\nexport function extractMinAndMax(positions, start, count, bias = null, stride) {\n const minimum = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n const maximum = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n if (!stride) {\n stride = 3;\n }\n MathHelpers.extractMinAndMax(positions, start, count, stride, minimum, maximum);\n if (bias) {\n minimum.x -= minimum.x * bias.x + bias.y;\n minimum.y -= minimum.y * bias.x + bias.y;\n minimum.z -= minimum.z * bias.x + bias.y;\n maximum.x += maximum.x * bias.x + bias.y;\n maximum.y += maximum.y * bias.x + bias.y;\n maximum.z += maximum.z * bias.x + bias.y;\n }\n return {\n minimum: minimum,\n maximum: maximum,\n };\n}\n/**\n * Flip flipped faces\n * @param positions defines the positions to use\n * @param indices defines the indices to use and update\n */\nexport function FixFlippedFaces(positions, indices) {\n const boundingInfo = extractMinAndMax(positions, 0, positions.length / 3);\n const inside = boundingInfo.maximum.subtract(boundingInfo.minimum).scale(0.5).add(boundingInfo.minimum);\n const tmpVectorA = new Vector3();\n const tmpVectorB = new Vector3();\n const tmpVectorC = new Vector3();\n const tmpVectorAB = new Vector3();\n const tmpVectorAC = new Vector3();\n const tmpVectorNormal = new Vector3();\n const tmpVectorAvgNormal = new Vector3();\n // Clean indices\n for (let index = 0; index < indices.length; index += 3) {\n const a = indices[index];\n const b = indices[index + 1];\n const c = indices[index + 2];\n // Evaluate face normal\n tmpVectorA.fromArray(positions, a * 3);\n tmpVectorB.fromArray(positions, b * 3);\n tmpVectorC.fromArray(positions, c * 3);\n tmpVectorB.subtractToRef(tmpVectorA, tmpVectorAB);\n tmpVectorC.subtractToRef(tmpVectorA, tmpVectorAC);\n Vector3.CrossToRef(tmpVectorAB, tmpVectorAC, tmpVectorNormal);\n tmpVectorNormal.normalize();\n // Calculate normal from face center to the inside of the geometry\n const avgX = tmpVectorA.x + tmpVectorB.x + tmpVectorC.x;\n const avgY = tmpVectorA.y + tmpVectorB.y + tmpVectorC.y;\n const avgZ = tmpVectorA.z + tmpVectorB.z + tmpVectorC.z;\n tmpVectorAvgNormal.set(avgX / 3, avgY / 3, avgZ / 3);\n tmpVectorAvgNormal.subtractInPlace(inside);\n tmpVectorAvgNormal.normalize();\n if (Vector3.Dot(tmpVectorNormal, tmpVectorAvgNormal) >= 0) {\n // Flip!\n indices[index] = c;\n indices[index + 2] = a;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}